diff -Nru zsh-4.3.10/ChangeLog zsh-4.3.11/ChangeLog --- zsh-4.3.10/ChangeLog 2009-06-01 11:04:09.000000000 +0200 +++ zsh-4.3.11/ChangeLog 2010-12-20 11:28:43.000000000 +0100 @@ -1,6 +1,2217 @@ +2010-12-20 Peter Stephenson + + * Paul Ackersviller: 28538: as modified in 28540 plus a couple + of casts to char * I missed: Src/init.c,Src/input.c, + Src/parse.c, Src/prototypes.h, Src/utils.c, Src/Zle/zle_main.c: + pointer arithmetic needs to be done with char *, not void *. + +2010-12-19 Peter Stephenson + + * 28537: Src/lex.c, Test/D04parameter.ztst: word splitting on + '((' in command position that turned into nested subshell + commands was broken. + +2010-12-18 Barton E. Schaefer + + * 27862 (belatedly): Completion/X/Utility/_x_arguments: handle + X11 versions greater than X11R6 in the compdef line. + + * unposted: Src/Makefile.in: "prep" target depends on Makemod, + not on the files on which Makemod depends. + +2010-12-17 Peter Stephenson + + * Mikael: 28535: NEWS: typo + +2010-12-17 Peter Stephenson + + * Štěpán Němec: 28533: README, Doc/Zsh/compsys.yo, + Doc/Zsh/compwid.yo, Doc/Zsh/contrib.yo, Doc/Zsh/expn.yo, + Doc/Zsh/params.yo, Doc/Zsh/zle.yo, Functions/Chpwd/cdr: typos. + + * unposted: NEWS: note zle_highlight suffix control. + + * Mikael: users/15653: Src/Zle/zle_refresh.c: + zle_highlight=(none) should turn off suffix highlighting. + +2010-12-16 Peter Stephenson + + * Mikael: 28531: Completion/Base/Utility/_combination, + Doc/Zsh/expn.yo, Doc/Zsh/mod_clone.yo, Doc/Zsh/options.yo, + Src/exec.c: typos. + + * unposted: NEWS: add notes on (Z) parameter flag. + + * unposted: README, Config/version.mk, Etc/FAQ.yo, + Completion/Debian/Command/.distfiles: update for 4.3.10-test-3. + +2010-12-14 Barton E. Schaefer + + * 28530: Doc/Zsh/expn.yo, Src/subst.c, Test/D04parameter.ztst: + replace (z+opts+) flag with (Z:opts:), add reserved (_:flags:). + +2010-12-14 Peter Stephenson + + * unposted: Src/lex.c: another neatening of lexflags use for + ZLE. + + * 28529: Src/hist.c, Src/lex.c, Src/zsh.h, Src/Zle/compcore.c, + Src/Zle/compctl.c, Src/Zle/zle_tricky.c: save and restore + lexflags and separate out special word logic for ZLE by + adding new flag LEXFLAGS_ZLE. + + * 28528: Doc/Zsh/expn.yo, Src/hist.c, Src/lex.c, Src/subst.c, + Src/zsh.h, Src/Zle/compcore.c, Src/Zle/compctl.c, + Src/Zle/zle_tricky.c, Test/D04parameter.ztst: clear up use of + zleparse variable into lexflags; add (z+n+) for splitting with + newline treated as ordinary whitespace. + +2010-12-13 Peter Stephenson + + * 28526: Src/lex.c, Test/D04parameter.ztst: zplitting + 'line # with comment' when stripping comments shouldn't generate + a newline at the end (unless there is one). + +2010-12-12 Peter Stephenson + + * 28510: Doc/Zsh/expn.yo, Src/hist.c, Src/lex.c, Src/subst.c, + Src/Modules/parameter.c, Src/Zle/zle_hist.c, Src/Zle/zle_misc.c, + Test/D04parameter.ztst: add (z+c+) and (z+C+) parameter flags. + +2010-12-07 Peter Stephenson + + * unposted: remove users/15622 which causes problems + with certain existing forms of testing commands. + +2010-12-06 Peter Stephenson + + * Mikael: 28480: Doc/Zsh/params.yo, Src/utils.c: allow + PROMPT_EOL_MARK to be an empty string. + +2010-12-06 Peter Stephenson + + * users/15622: Completion/Base/Utility/_pick_variant: use + $service rather than $words[1] to pick the service. Although + there may be cases where this doesn't work, this provides + transparent behaviour for simple uses along the lines of + "compdef <_func> =" + + * users/15621: Completion/compinit, + Completion/Base/Core/dispatch: fix setting service for compef + -p/-P. + + * Mikael: 28487: Doc/Zsh/builtins.yo, Doc/Zsh/expn.yo, + Doc/Zsh/options.yo, Doc/Zsh/prompt.yo: fix docs to refer to + current directory rather than $PWD. + + * 28486: Src/Zle/compcore.c: $compstate[parameter] needed + untokenizing. + + * Mikael: 28484: Completion/Unix/Command/_du: updated for GNU + variant. + +2010-12-05 Peter Stephenson + + * unposted: NEWS: mention {START..END..STEP} changes. + + * Mikael: 28474, 28478: Doc/Zsh/expn.yo, Src/glob.c, + Test/D09brace.ztst: extended {START..END..STEP} syntax. + + * 28476: Test/.distfiles, Test/D09brace.ztst: new set of tests + for brace expansion. + + * 28475: Test/A05execution.ztst: test that starting a background + job resets the status. + + * 28469: Src/exec.c: fix memory leak in anonymous function. + +2010-12-04 Wayne Davison + + * Aaron Schrab: 28210: Completion/Unix/Command/_git: add completion + for help subcommand. + +2010-12-03 Peter Stephenson + + * 28468: Completion/Unix/Command/_man: if argument contains a + "/", complete file instead of manual page reference; prefer + files with man suffixes. + +2010-11-30 Peter Stephenson + + * unposted: NEWS: add news about ${NAME:OFFSET} and took the + opportunity for a general tidy up. + +2010-11-27 Barton E. Schaefer + + * 28461: Src/exec.c: flush stderr in PRINT_EXIT_VALUE handling. + + * users/15583: Functions/Misc/sticky-note: update with zstyles and + for ease of use in zle-line-init. + +2010-11-27 Peter Stephenson + + * 28459: Src/utils.c: flush shell output in PROMPT_SP handling. + +2010-11-25 Wayne Davison + + * 28445: Src/utils.c: overwrite PROMPT_SP string if it + should remain invisible, even with an upcoming newline. + +2010-11-25 Peter Stephenson + + * Sebastian Stark: users/15581: + Completion/Zsh/Command/_zmodload: MacOS has .bundle DLL files. + + * users/15580: Completion/Zsh/Function/_zsh-mime-handler, + Functions/MIME/zsh-mime-handler: fixes for completion when + dropping through to normal completion. + + * 28434: Doc/Zsh/expn.yo, Src/subst.c, Test/D04parameter.ztst: + Make ${NAME:OFFSET} always use zero-offset. + +2010-11-22 Peter Stephenson + + * 28424: Doc/Zsh/options.yo, Src/options.c, Src/utils.c, + Src/zsh.h, Test/A03quoting.ztst: New POSIX_STRINGS option + makes \0 in $'...' terminate the quoted string. + +2010-11-20 Peter Stephenson + + * 28425: Src/subst.c: remove null arguments and untokenize + in check_colon_subscript(). + +2010-11-18 Peter Stephenson + + * 28419: Doc/Zsh/expn.yo, Src/subst.c, Test/D04parameter.ztst: + KSH_ARRAY ${*:0:1} gives $0 etc. + + * 28418: Doc/Zsh/expn.yo, Src/lex.c, Src/params.c, Src/subst.c, + Test/D04parameter.ztst: add ${NAME:OFFSET} and + ${NAME:OFFSET:LENGTH} substitution syntax. + +2010-11-17 Peter Stephenson + + * 28377: Doc/Zsh/grammar.yo: document more alias problems. + +2010-11-14 Clint Adams + + * 28411: Completion/Unix/Command/_git: complete submodule + and annex as subcommands; complete files when the subcommand + is unknown. + +2010-11-10 Clint Adams + + * 28401: Completion/Debian/Command/_git-buildpackage: + git-buildpackage completion from Felipe Sateler. + +2010-11-07 Peter Stephenson + + * Mikael: 28389: Completion/Unix/Type/_java_class: empty section + in $CLASSPATH. + +2010-11-03 Barton E. Schaefer + + * 28384: Src/params.c: improve error message on assignment to a + field of a read-only hash. + +2010-10-27 Peter Stephenson + + * unposted: Doc/Zsh/grammar.yo: typo pointed out by + Štěpán plus slight rephrasing. + + * 28375: Doc/Zsh/grammar.yo: clarify how to quote aliases from + expansion. + +2010-10-25 Peter Stephenson + + * 28363: Src/Zle/zle_refresh.c: inserting a character when a + wide character was at the end of the line didn't work. + +2010-10-22 Peter Stephenson + + * 28360: Src/subst.c, Test/E01options.ztst: NO_UNSET option + should test parameters with following operators, too. + + * not quite posted: Completion/Unix/Command/_screen: better to + allow sessions to be completed after -S. + +2010-10-21 Peter Stephenson + + * Silas Silva (with minor improvement): users/15464: + Completion/Unix/Command/_man: support for -M argument. + +2010-10-18 Peter Stephenson + + * Jérôme Pouiller: 28351: Functions/Misc/run-help-openssl, + Functions/Misc/run-help-sudo: new help functions. + +2010-10-17 Peter Stephenson + + * Mikael: 28356: Src/Zle/zle_refresh.c: don't increment old + display line past NULL. + + * c.f. 28353: Doc/Zsh/metafaq.yo: removing remaining reference + to sunsite in FTP sites. + +2010-10-15 Peter Stephenson + + * 28345: Doc/Zsh/expn.yo, Functions/Chpwd/cdr, Src/builtin.c, + Src/utils.c: make new ${(D)} flag return the contracted file as + a fully usable command line argument. + +2010-10-12 Barton E. Schaefer + + * unposted (users/15440): Doc/Zsh/expn.yo: fix cross-references + among parameter expansion rules. + +2010-10-12 Peter Stephenson + + * Mikael: 28343: Completion/Unix/Command/_setfacl: didn't + complete file argument in all cases. + +2010-10-10 Peter Stephenson + + * 28340: Src/params.c: assignment with negative index didn't + work with multibyte characters. + + * 28339: Src/hist.c: NO_HIST_LEX_WORDS didn't handle + backslash-newline line continuation properly, either. + + * 28332: Src/hist.c: HIST_LEX_WORDS didn't handle + backslash-newline line continuation properly. Come to think of + it, neither does the alternative. + +2010-10-10 Phil Pennock + + * 28338: Src/cond.c, C02cond.ztst: keep =~ from inverting sense + of subsequent tests (after &&/||). + +2010-10-08 Peter Stephenson + + * Ben: 28330: Completion/X/Command/_acroread: add + completion for -openInNewInstance. + + * Ben: 28329: Completion/X/Command/_acroread: version 9 is + similar to 7 and 8. + +2010-10-07 Peter Stephenson + + * 28327: Src/hist.c: Fix bufferwords() splitting when RC_QUOTES + is turned on. + +2010-10-06 Peter Stephenson + + * 28326: Src/hist.c, Test/D04parameter.ztst: Problems with + HIST_LEX_WORDS: memory allocation was screwed if we skipped + "words" from the lexer; use local heap to avoid silly amounts of + memory; fallback to non-lex on failure rather than just fixing + up at the end; workaround oddity with splitting with RC_QUOTES. + + * 28319: Src/hist.c, Test/D04parameter.ztst: ${(z)...} + splitting oddities and some tests for consistency. + + * 28285: Doc/Zsh/zle.yo, Src/Zle/zle_hist.c: add + zle-isearch-update and zle-isearch-exit hooks. + +2010-10-02 Peter Stephenson + + * unposted: NEWS: note HIST_LEX_WORDS option. + + * 28310 with 28308 (Bart): Doc/Zsh/options.yo, Src/hist.c, + Src/options.c, Src/zsh.h: HIST_LEX_WORDS option and check + for full history file read. + + * 28309: Src/subst.c: infinite loop when padding with extra wide + characters. + + * Mikael: 28301: Doc/Zsh/compsys.yo: restore missing line. + +2010-10-01 Oliver Kiddle + + * 28307: Completion/Zsh/Command/_zstyle: support new styles + especially vcs_info ones and allow quoted contexts again + +2010-09-25 Peter Stephenson + + * 28295 plus tweak for failure case: Src/hist.c: use lexer to + split words from history file. + +2010-09-23 Peter Stephenson + + * unposted: Doc/Zsh/manual.yo: update address of HTML manual. + +2010-09-20 Peter Stephenson + + * 28282: Src/Zle/zle_keymap.c, Src/Zle/zle_main.c, + Src/zle_utils.c: new function zlecallhook() and fix argument to + zle-keymap-select. + +2010-09-19 Barton E. Schaefer + + * 28268: Src/builtin.c: I/O to a terminated (or never created) + coprocess emits a "no coprocess" diagnostic, instead of either + nothing or "bad file number". + +2010-09-16 Peter Stephenson + + * Baptiste: 28264: Completion/Unix/Command/_ffmpeg: remove the + need for sed. + +2010-09-15 Wayne Davison + + * 28261: Julius Plenz: Completion/Debian/_dpkg: separate the + options to _arguments. + +2010-09-14 Peter Stephenson + + * 28259: Src/exec.c, Src/lex.c, Src/parse.c, Src/text.c, + Src/zsh.h, Test/A04redirect.ztst: Fix bug that empty + here-documents were given a newline, and output here-documents + from shell text as real here-documents rather than here-strings. + + * 28258: Src/signals.c: bug in 28250 could cause undefined + variable resulting in mayhem. + +2010-09-13 Peter Stephenson + + * unposted: NEWS: add POSIX_TRAPS + + * Mikael: 28252: Completion/Zsh/Command/_zle: remove unnecessary + looped that caused errors. + +2010-09-12 Peter Stephenson + + * unposted: Doc/Zsh/builtins.yo: note exit trap runs before + zshexit hook. + + * 28250: Doc/Zsh/options.yo, Src/options.c, Src/signals.c, + Src/zsh.h, Test/C03traps.ztst: POSIX_TRAPS option. + + * Mikael: 28253: Doc/Zsh/mod_attr.yo: document -h argument to + attribute commands. + +2010-09-08 Peter Stephenson + + * unposted: Functions/Zle/replace-string-again: safety on + regexp failures. + + * 28244 with typo noted by Mikael and Bart: NEWS: updated 4.3.11 + news. + + * 28241: Doc/Zsh/zle.yo, Src/Zle/zle_keymap.c: don't list .safe + keymap with "bindkey -lL", you don't get there from here. + + * 28237: Doc/Zsh/params.yo, Doc/Zsh/zle.yo, Src/Zle/zle_main.c: + set ZLE_LINE_ABORTED to line so far when ZLE aborts on an error. + +2010-09-06 Peter Stephenson + + * unposted: Doc/Zsh/zle.yo: small typo. + +2010-09-05 Peter Stephenson + + * 28226, 28229: Doc/Zsh/zle.yo, Src/Zle/zle_keymap.c: "bindkey + -lL" now lists aliased keymaps in a more useful way; can list + individual keymaps. + + * 28227: Doc/Zsh/zle.yo: a few remarks on the question of + keymaps. + +2010-09-02 Peter Stephenson + + * users/15350: Doc/expn.yo: explain the strange rounding rules for + size glob qualifier. + +2010-09-01 Peter Stephenson + + * 28188: Doc/Zsh/mod_complist.yo, Doc/Zsh/zle.yo: better + documentation for limitations in the overlay key maps. + +2010-08-31 Peter Stephenson + + * 28220: Src/exec.c (plus comments), Src/params.c, + Test/A06assign.ztst: "HELLO=$HELLO shellfunc" failed because + we removed HELLO from the parameter table to save it. Copy it + instead. + + * Mikael: 28202: Src/Zle/complist.c: need line unmetafied for + reversemenucomplete(). + +2010-08-23 Peter Stephenson + + * Mikael: 28190: Doc/Zsh/options.yo: reference to wrong + manual page. + + * unposted: Completion/Unix/Command/_perforce: update for 2010.1. + +2010-08-22 Peter Stephenson + + * 28179: Src/jobs.c, Src/signals.c: use WIFCONTINUED() and + WCONTINUE by exporting child handler to a function. + + * users/15314: Doc/Zsh/expn.yo: redescribe process substitution. + + * users/15310 (bits applying to process substitution with + redirection): Src/exec.c: make redirection process substitution + attach to the appropriate process group. + + * users/15200: pass foreground signals on to process + substitutions in current shell + +2010-08-22 Barton E. Schaefer + + * 28186: Completion/Base/Utility/_multi_parts: replace a single + (...|...) pattern-match with a loop over the alternatives to + avoid issues with pattern-quoting each alternative. + +2010-08-21 Frank Terbeck + + * Mikael Magnusson: 28181: Doc/Zsh/mod_zprof.yo: Remove a + stray `)' that caused a ".RE" string to be output + +2010-08-19 Peter Stephenson + + * unposted: Completion/Unix/Command/_todo.sh: more commands. + +2010-08-18 Peter Stephenson + + * 28172: Src/jobs.c: mark processes as not stopped if + sent SIGCONT. + +2010-08-15 Peter Stephenson + + * 28167: Src/Zle/compresult.c: reset more variables when + invalidating completion list. + +2010-08-13 Peter Stephenson + + * 28160 modified as per 28164: Src/Zle/zle_refresh.c: when the + display was reset we didn't properly mark the old display line + as invalid. This could mean the display didn't get redrawn + properly. + +2010-08-11 Peter Stephenson + + * 28139: based on Frank Terbeck: 28122: Src/Zle/zle_params.c, + Doc/Zsh/zle.yo: add ZLE_STATE variable. + +2010-08-10 Clint Adams + + * unposted: Functions/Newuser/zsh-newuser-install: tweak + newline placement. + +2010-08-10 Peter Stephenson + + * unposted: Completion/Unix/Command/_todo.sh: need care matching + initial whitespace; strip priorities to get text to replace. + +2010-08-08 Peter Stephenson + + * 28137: Functions/MIME/zsh-mime-handler: $argv[0] should be + $argv[1]. + +2010-08-07 Peter Stephenson + + * Simon Ruderich: 28136: README: typo. + +2010-08-06 Peter Stephenson + + * 28131: MACHINES: latest status on Cygwin. + + * users/15232: Completion/Unix/Type/_path_files: somehow + this didn't get completed. + +2010-08-05 Peter Stephenson + + * users/15232: Completion/Unix/Type/_path_files: another + go at fixing up for bizarre quoting rules, c.f. users/15031. + +2010-08-05 Peter Stephenson + + * Holger Macht: 28130: Completion/Unix/Command/_osc: new + completion. + +2010-08-02 Frank Terbeck + + * Seth House: 28115: Misc/vcs_info-examples: Another git example + hook. + + * Seth House: 28114: + Functions/VCS_Info/Backends/VCS_INFO_get_data_git: Fix revision + lookup with packed repositories. + +2010-08-02 Peter Stephenson + + * Daiki Ueno: 28112: Src/Zle/zle_refresh.c: missing parentheses + caused incorrect size for character width. + +2010-07-31 Peter Stephenson + + * users/15219: Src/jobs.c: print exit status if PRINTEXITVALUE + and terminated by signal. + + * 28111: Src/jobs.c: always print exit status if PRINTEXITVALUE + is set. + + * users/15217: Src/Zle/zle_main.c: use top-level status + when redrawing prompt. + +2010-07-30 Frank Terbeck + + * Mikael Magnusson: 28110: Doc/Zsh/compsys.yo: Fix yodl warning. + + * unposted: Fix a date in ChangeLog. + +2010-07-29 Peter Stephenson + + * : 28104: Src/Zle/compcore.c: crash + in obscure completion case due to NULL pointer. + +2010-07-28 Peter Stephenson + + * users/15204: Functions/Zftp/zfinit: check compctl is loaded + before trying to use it (for ksh emulation). + + * as described in users/15202: Functions/Misc/run-help, + Functions/Newuser/zsh-newuser-install, + Functions/Prompts/promptinit, Functions/TCP/tcp_open, + Functions/Zftp/zfinit, Functions/Zle/down-case-word-match, + Functions/Zle/forward-word-match, + Functions/Zle/history-pattern-search, + Functions/Zle/insert-composed-char, Functions/Zle/kill-word-match, + Functions/Zle/match-words-by-style, + Functions/Zle/select-word-style, + Functions/Zle/transpose-words-match, + Functions/Zle/up-case-word-match, Functions/Zle/zed-set-file-name: + Use "autoload -Uz" consistently throughout distributed functions. + +2010-07-26 Peter Stephenson + + * 28102: Src/Zle/computil.c: use lstat() when checking + ignore-parents. + +2010-07-26 Frank Terbeck + + * 28101: Completion/Unix/Command/_tmux: Fix window completion + for tmux version 1.3 and newer. + +2010-07-25 Peter Stephenson + + * unposted: Config/version.mk: update to 4.3.10-dev-2. + +2010-07-24 Wayne Davison + + * 28000: Completion/Unix/Command/_git: make the branch arg for + "git log" optional. + +2010-07-20 Peter Stephenson + + * 28096: Functions/Chpwd/chpwd_recent_dirs: don't add + $OLDPWD. + + * 28081: Doc/Zsh/contrib.yo, + Functions/Chpwd/chpwd_recent_filehandler: document style + stuff with cdr, future-proof file reading. + +2010-07-19 Peter Stephenson + + * 28092: Completion/Unix/Command/_getconf: generate missing keys. + +2010-07-19 Frank Terbeck + + * 28093, based on Michel Lespinasse: 28090: + Functions/VCS_Info/Backends/VCS_INFO_get_data_git: Fix a problem + with `check-for-changes' and freshly initialised repositories. + + * Seth House: 28084, 28083: Misc/vcs_info-examples: cleanups + and new examples. + + * 28095: Functions/VCS_Info/Backends/VCS_INFO_get_data_git: Fix + two hard-coded invocations of the "git" command. + +2010-07-15 Peter Stephenson + + * 28073: Src/exec.c, Src/init.c, Src/utils.c: allow #! + scripts to search path if interpreter not found. + +2010-07-15 Doug Kearns + + * 28078: Completion/Unix/Command/_xmlsoft: update. + + * Michael Hwang: 28075: Completion/Unix/Command/_gpg: add gpg-zip + completion and other general improvements. + +2010-07-13 Peter Stephenson + + * Jörg Sommer: 28063: Completion/Unix/Command/_rubber: suppress + warning messages when extracting output. + +2010-07-12 Peter Stephenson + + * 28068: Doc/Zsh/contrib.yo: Texinfo declaration got wrapped + causing mayhem. + +2010-07-12 Frank Terbeck + + * users/15165: Doc/Zsh/contrib.yo: Fix a warning about a + missing macro. + +2010-07-09 Peter Stephenson + + * 28065: Doc/Zsh/contrib.yo, Functions/Chpwd/.distfiles, + Functions/Chpwd/cdr, Functions/Chpwd/_cdr, + Functions/Chpwd/chpwd_recent_add, + Functions/Chpwd/chpwd_recent_dirs, + Functions/Chpwd/chpwd_recent_filehandler, plus Src/zsh.mdd + (not posted): add cdr function, tools, and documentation. + +2010-06-30 Clint Adams + + * 27998, 28061, 28062: Functions/Newuser/zsh-newuser-install: + add recommended zshrc option. + + * 28060: Completion/Unix/Command/_xmlsoft: xmlsoft --nodtdattr + completion thanks to Vincent Lefevre. + +2010-06-23 Doug Kearns + + * 28056: Completion/Unix/Command/_lynx: add option descriptions. + +2010-06-22 Doug Kearns + + * 28055: Completion/Unix/Command/_vim: add some missing options. + +2010-06-22 Peter Stephenson + + * 28047: Src/hist.c: make fc -R/-W more consistently verbose + and allow fc -R to work if file could be read but permissions + didn't allow it to be locked (as distinct from failing to lock + it because something else had locked it). + +2010-06-22 Doug Kearns + + * 28052: Completion/Unix/Command/_cvs: remove duplicated completion of + the version subcommand. + + * unposted: INSTALL, README: fix typos. + + * 28051: Completion/Unix/Command/_elinks: update for version 0.12pre5. + +2010-06-17 Frank Terbeck + + * Holger Weiss: 28016, 28017, 28018, 28019: + Completion/Unix/Command/_git: various fixes and enhancements. + + * Holger Weiss: 28020: Doc/Zsh/compsys.yo: Fix a typo. + + * unposted: Fix a date in ChangeLog. + +2010-06-16 Peter Stephenson + + * 28042: Doc/Zsh/contrib.yo, Functions/Zle/.distfiles, + Functions/Zle/transpose-lines: new widget. + +2010-06-14 Peter Stephenson + + * 28038: Index: Completion/Zsh/Command/_zstyle, Doc/Zsh/calsys.yo, + Functions/Calendar/calendar, Functions/Calendar/calendar_add, + Functions/Calendar/calendar_parse, + Functions/Calendar/calendar_scandate: improved handling of + recurring events in calendar system. + + * unposted: Doc/Zsh/params.yo: extra note on ZSH_EVAL_CONTEXT. + + * 28037: Src/exec.c, Src/math.c, Src/module.c, + Test/V01zmodload.ztst: improved error messages for autoloading + math functions and builtins (but not conditions). + + * 28010: configure.ac, Src/compat.c: use getcwd() as fallback + if zgetcwd() fails. + +2010-06-13 Peter Stephenson + + * Mikael: 28027: Doc/Zsh/expn.yo: typo. + +2010-06-11 Peter Stephenson + + * 28026: Completion/Zsh/Context/_dynamic_directory_name, + Doc/Zsh/expn.yo: use "zsh_directory_name c" for completion + of dynamic directory names. + + * 28025: Doc/Zsh/expn.yo, Src/subst.c, Src/utils.c: (D) + parameter flag to abbreviate directories. + +2010-06-09 Peter Stephenson + + * Haakon Riiser: 28009: Completion/Unix/Command/_ffmpeg: new. + +2010-06-08 Peter Stephenson + + * 28006: Src/builtin.c, Src/compat.c, Src/init.c: Make zgetcwd() + fall back to pwd in preference to returning "."; only use "." if + we're trying to set pwd at that point. + +2010-06-08 Doug Kearns + + * unposted: Completion/Mandriva/Command/_urpmi: fix typo in parameter + name. + +2010-06-07 Peter Stephenson + + * Alexey: 27999: Test/V01zmodload.ztst: fix error message. + +2010-06-07 Doug Kearns + + * Simon Ruderich: 28002: Completion/Unix/Command/_feh: fix bad commit. + +2010-06-06 Doug Kearns + + * unposted: Completion/BSD/Command/_csup, + Completion/BSD/Command/_fetch, Completion/BSD/Command/_freebsd-update, + Completion/BSD/Command/_fstat, Completion/BSD/Command/_pfctl, + Completion/BSD/Command/_portaudit, Completion/BSD/Command/_portmaster, + Completion/BSD/Command/_portsnap, Completion/BSD/Command/_powerd, + Completion/BSD/Command/_procstat, Completion/Darwin/Command/_open, + Completion/Darwin/Command/_softwareupdate, + Completion/Debian/Command/_apt-file, + Completion/Linux/Command/_analyseplugin, + Completion/Linux/Command/_ethtool, Completion/Linux/Command/_ipset, + Completion/Linux/Command/_mdadm, Completion/Linux/Command/_rpmbuild, + Completion/Linux/Command/_strace, + Completion/Mandriva/Command/_rebootin, Completion/Redhat/Command/_yum, + Completion/Solaris/Command/_coreadm, + Completion/Solaris/Command/_dhcpinfo, + Completion/Solaris/Command/_dladm, Completion/Solaris/Command/_dumpadm, + Completion/Solaris/Command/_gcore, Completion/Solaris/Command/_inetadm, + Completion/Solaris/Command/_ptree, + Completion/Solaris/Command/_savecore, + Completion/Solaris/Command/_svcadm, Completion/Solaris/Command/_svccfg, + Completion/Solaris/Command/_svcprop, Completion/Solaris/Command/_svcs, + Completion/Solaris/Command/_zlogin, Completion/Unix/Command/_arp, + Completion/Unix/Command/_arping, Completion/Unix/Command/_bzr, + Completion/Unix/Command/_cdcd, Completion/Unix/Command/_ecasound, + Completion/Unix/Command/_feh, Completion/Unix/Command/_git, + Completion/Unix/Command/_gnupod, Completion/Unix/Command/_gnutls, + Completion/Unix/Command/_locate, Completion/Unix/Command/_module, + Completion/Unix/Command/_perforce, Completion/Unix/Command/_pkgadd, + Completion/Unix/Command/_pkginfo, Completion/Unix/Command/_pkgrm, + Completion/Unix/Command/_sisu, Completion/Unix/Command/_sqsh, + Completion/Unix/Command/_surfraw, Completion/Unix/Command/_tcpdump, + Completion/Unix/Command/_tmux, Completion/Unix/Command/_todo.sh, + Completion/Unix/Command/_wget, Completion/Unix/Command/_yafc, + Completion/Unix/Command/_zfs, Completion/Unix/Command/_zpool, + Completion/Unix/Type/_printers, Completion/X/Command/_mplayer, + Completion/X/Command/_setxkbmap, Completion/Zsh/Command/_cd: fix + incorrectly capitalized completion descriptions as per the + recommendations in Etc/completion-style-guide. + +2010-06-03 Peter Stephenson + + * 27983: Src/prompt.c: colours could be output twice. + +2010-06-03 Peter Stephenson + + * 27994: Src/params.c: better error message when failing to + autoload parameter. + +2010-06-03 Frank Terbeck + + * Holger Weiss: 27977: Completion/Unix/Command/_git: shouldn't + return 0 if there are no matches. + +2010-06-02 Peter Stephenson + + * 27990: Src/Modules/termcap.c (not in original patch), + Src/Modules/terminfo.c: ignore error return value from + setupterm(), it's not useful in telling us whether the module + booted OK. + +2010-06-01 Peter Stephenson + + * Daniel Friesel: 27982: Completion/Unix/Command/_feh: update. + +2010-05-31 Peter Stephenson + + * Mikael: 27981: Completion/Zsh/Context/_subscript: complete + (e). + +2010-05-28 Peter Stephenson + + * Mikael: 27980: Completion/Zsh/Type/_globquals: typo. + +2010-05-27 Peter Stephenson + + * 27965 plus as per 27966: Src/builtin.c, Src/subst.c, + Src/utils.c, Src/zsh.h: Use $'\n' quoting instead of literal + newline for ${(q)...} to avoid lines getting split unexpectedly. + Quote empty strings as ''. + + * 27976: Doc/Zsh/expn.yo: add yet more to the my-brain-hurts + description of how parameter expansion is ordered. + +2010-05-27 Frank Terbeck + + * Seth House: 27971: Functions/VCS_Info/Backends/VCS_INFO_get_data_hg: + vcs_info: Fix a bug that caused the mercurial backend to always return + `default' as the branch name. + +2010-05-23 Peter Stephenson + + * users/15078: Completion/Zsh/Function/.distfiles, + Completion/Zsh/Function/_zsh-mime-handler, Doc/Zsh/contrib.yo, + Functions/MIME/zsh-mime-handler: completion for a + zsh-mime-handler should understand how the line will be handled. + +2010-05-22 Clint Adams + + * 27964: Doc/Zsh/contrib.yo: add back missing enditem(). + +2010-05-14 Frank Terbeck + + * Simon Ruderich: 27954: Doc/Zsh/contrib.yo, Misc/vcs_info-examples: + vcs_info: more minor documentation fixes. + + * Simon Ruderich: 27953: Doc/Zsh/contrib.yo, Misc/vcs_info-examples, + Functions/VCS_Info/VCS_INFO_formats: vcs_info: changed default formats + and actionformats + +2010-05-12 Peter Stephenson + + * unposted: Doc/Zsh/params.yo, Src/Modules/zutil.c: fix typo + ("zregesparse-guard"). + + * 27951: Doc/Zsh/expn.yo, Doc/Zsh/params.yo, Src/builtin.c, + Src/exec.c, Src/glob.c, Src/init.c, Src/params.c, Src/signals.c, + Src/Builtins/sched.c, Src/Modules/zpty.c, Src/Modules/zutil.c: + Add $ZSH_EVAL_CONTEXT and $zsh_eval_context to provide context + stack. + +2010-05-10 Peter Stephenson + + * c.f. 27950: Test/C03traps.ztst some bogus whitespace got added + in patching 27947. + +2010-05-10 Frank Terbeck + + * Seth House, Simon Ruderich and myself: 27948: + Doc/Zsh/contrib.yo, Functions/VCS_Info/.distfiles, Misc/.distfiles, + Misc/vcs_info-examples, Functions/VCS_Info/Backends/VCS_INFO_detect_hg, + Functions/VCS_Info/Backends/VCS_INFO_get_data_git, + Functions/VCS_Info/Backends/VCS_INFO_get_data_hg, + Functions/VCS_Info/VCS_INFO_formats, Functions/VCS_Info/VCS_INFO_hook, + Functions/VCS_Info/VCS_INFO_quilt, Functions/VCS_Info/vcs_info: various + vcs_info changes: mercurial backend improvements, new hooks, quilt + support, documentation improvements and bugfixes + +2010-05-05 Peter Stephenson + + * users/15031: Completion/Unix/Type/_path_files: fix (still + incomplete) for bizarre quoting rules for files in completion + with path-completion off or accept-exact-dirs on. + + * 27947: Src/exec.c, Test/C03traps.ztst: fix some cases where we + should (probably) execute an EXIT trap but don't. + +2010-05-02 Frank Terbeck + + * Simon Ruderich: 27813: Completion/Unix/Command/_git: Complete + some generic symbolic references as heads. + +2010-04-28 Clint Adams + + * Bernd Zeimetz: 27931: Completion/Debian/Command/_bts: + completion for bts affects. + +2010-04-28 Peter Stephenson + + * Mikael: 27929: Src/lex.c, Doc/Zsh/options.yo (added pws): global + aliases with space shouldn't trigger HIST_IGNORE_SPACE. + +2010-04-27 Peter Stephenson + + * 27926: Src/Zle/zle_hist.c: fix completion suffix when inserting + last word. + + * 27911: Completion/Base/Core/_main_complete: ensure colouring is + not used if not configured when showing old lists. + +2010-04-26 Frank Terbeck + + * 27908: Functions/VCS_Info/vcs_info: Avoid locale related + problems + +2010-04-26 Peter Stephenson + + * unposted: Completion/Unix/Command/_perforce: update to Perforce + 2009.2 features. + + * unposted: Completion/X/Command/_kfmclient: also kioclient; + probe desktop bindings. + +2010-04-25 Clint Adams + + * 27912: Completion/Linux/Command/_lsusb: presume that + usb.ids is uncompressed now. + + * 27914 (tweaked): Completion/Linux/Command/_lsusb: find + usb.ids in /usr/share/misc. + +2010-04-23 Peter Stephenson + + * users/15028 (modified to do the unquoting a bit more + logically): Completion/Unix/Type/_path_files: for + path-completion false and accept-exact-dirs true we need to + unquote the word from the command line. + +2010-04-20 Peter Stephenson + + * 27889: Src/subst.c, Test/D04parameter.ztst: Force more use of + GLOB_SUBST in parameters if ~ is used. + +2010-04-20 Peter Stephenson + + * "Akinori MUSHA: 27892: Completion/Redhat/Command/.distfiles, + Completion/Redhat/Command/_service + Completion/Unix/Command/.distfiles, + Completion/Unix/Command/_init_d, + Completion/Unix/Command/_service (moved from Redhat), + Completion/Unix/Type/_services: updates for FreeBSD. + +2010-04-15 Peter Stephenson + + * unposted: NEWS: update to include path-completion. + +2010-04-15 Frank Terbeck + + * 27798: Alexey I. Froloff: Completion/Unix/Command/_git: support + for the `--interactive' option of "git commit". + +2010-04-14 Peter Stephenson + + * unposted: Doc/Zsh/compsys.yo: add kindex entry for + path-completion. + + * unposted: Doc/Zsh/compsys.yo: slightly rephrase previous doc. + + * users/15011: Completion/Unix/Type/_path_files, + Doc/Zsh/compsys.yo: add path-completion style to allow + completion of preceeding directories in files to be be turned + off. + +2010-04-13 Peter Stephenson + + * unposted: Functions/Calendar/calendar, Functions/Calendar/calendar_add, + Functions/Calendar/calendar-edit, Functions/Calendar/calendar_show, + Functions/Calendar/calendar_sort: Fall back to link file locking if + system file locking fails; don't need dcop for kdialog. + +2010-04-12 Clint Adams + + * 27876: Completion/Debian/Command/_axi-cache: completion for + axi-cache (from apt-xapian-index). + +2010-04-09 Peter Stephenson + + * Simon Ruderich: 27856 (tweaked): Doc/Zsh/metafaq.yo: Git + availability. + +2010-04-09 Peter Stephenson + + * 27865: Src/subst.c, Test/D04parameter.ztst: text in parameter + substitution that came from the command line rather than the + parameter was a candidate for GLOB_SUBST even if it was quoted + if the overall expression was not quoted. + + * Ben: 27589: Completion/Zsh/Context/_redirect: attempt + to use arguments better. + +2010-03-30 Clint Adams + + * 27847: Completion/Unix/Command/_uzbl: completion for uzbl. + +2010-03-29 Peter Stephenson + + * 27843: Simon Ruderich: Doc/Zsh/options.yo: claimed format for + extended history was incorrect. + +2010-03-26 Peter Stephenson + + * 27831: Doc/Zsh/expn.yo, Src/input.c, Src/subst.c, Src/utils.c: + add ${(mm)...} to count displayed characters and rationalise use + of wcwidth so that negative numbers are treated as zero. + +2010-03-25 Peter Stephenson + + * unposted: Test/A02alias.ztst: change sort to cat to + make test foolerproof. + + * 27827: Src/input.c, Test/A02alias.ztst: infinite loop + if alias with recursive definition occurred at end + of parsed string (normal shell input was OK). + +2010-03-22 Peter Stephenson + + * 27823: Src/hist.c: 27822 could access freed memory because + hptr wasn't consistently set to NULL when chline was. + + * 27812: Doc/Zsh/zle.yo, Src/Zle/zle.h, Src/Zle/zle_refresh.c, + Src/Zle/zle_utils.c: when wchar_t contains Unicode code points, + use private area to put bytes that don't form characters for + special display. + +2010-03-22 Peter Stephenson + + * 27822: Src/hist.c, Src/lex.c, Src/zle_params.c, + Src/zle_tricky.c: Fix ZLE access to current history line if pushed + onto lexical stack. + +2010-03-19 Peter Stephenson + + * unposted: Etc/FAQ.yo: update section on coloured prompts and + some other minor bits. + +2010-03-19 Peter Stephenson + + * unposted: Functions/Calendar/calendar: update previous + change also to perform calendar_show in current shell since + it interacts better with zle for use with sched. + + * 27808: Completion/Unix/Type/_files: Use // parameter + substitution instead of :gs. This form is consistent with the + rest of the file and has handled quoting correctly for longer. + +2010-03-18 Peter Stephenson + + * unposted: Test/A01grammar.ztst: missed -f option off zsh + invocation in 27793++. + + * 27804: Src/Zle/zle_hist.c: don't hang on encountering invalid + character in incremental search. + +2010-03-17 Peter Stephenson + + * unposted: Functions/Calendar/calendar: fix embarrassing bug in + calendar scheduling introduced by new file locking, 27756. + +2010-03-16 Peter Stephenson + + * unposted: Doc/Zsh/calsys.yo: age now uses zstat. + + * unposted: NEWS: PATH_SCRIPT + +2010-03-16 Peter Stephenson + + * 27793 plus 27794, 27795: Doc/Zsh/invoke.yo, Doc/Zsh/options.yo, + Src/init.c, Src/options.c, Src/zsh.h, Test/A01grammar.ztst: + add PATH_SCRIPT option to find script using path. + +2010-03-15 Peter Stephenson + + * Mikael: 27797: Completion/Base/Completer/_expand_alias: + delimit arguments to avoid problems with hyphens. + + * Alexey: 27789: Completion/Unix/Command/_sudo: use _arguments. + +2010-03-15 Peter Stephenson + + * 27780: Completion/Unix/Type/_files, Test/D04parameter.ztst: + users/14905 changed the number of backslashes needed to + quote backslashes in :s modifier. + +2010-03-11 Peter Stephenson + + * unposted: Doc/Zsh/expn.yo: note that & needs quoting in :s in + glob qualifier. + + * 27785: Src/init.c, Src/utils.c, Src/zsh.h: default IFS in sh + and ksh mode doesn't have '\0'. + +2010-03-11 Frank Terbeck + + * Simon Ruderich: 27779: Functions/VCS_Info/vcs_info_printsys, + Doc/Zsh/contrib.yo: Fix mistakes in vcs_info's documentation. + +2010-03-09 Peter Stephenson + + * unposted: Doc/Zsh/calsys.yo, Functions/Calendar/calendar, + Functions/Calendar/calendar_editfiles: Fix bug that + calendar wouldn't update repeating event times for events + that were already in the past; allow calendar_editfiles to + take argument to specify editor. + +2010-03-07 Peter Stephenson + + * Michael Hwang: 27773: Src/linklist.c: document how linked + lists are joined together. + +2010-03-04 Frank Terbeck + + * 27770: Completion/Unix/Command/_git: support for user specific + sub commands. + +2010-03-04 Peter Stephenson + + * Frank: 27768: Functions/VCS_Info/VCS_INFO_realpath: shut up cd + some more. + +2010-02-28 Clint Adams + + * 27762: Completion/Unix/Type/_hosts: omit ssh known_hosts + entries with port numbers from host completion. + +2010-02-27 Peter Stephenson + + * users/14905 (modified, see users/14096): Doc/Zsh/expn.yo, + Src/subst.c, Test/D04parameter.ztst: fix various problems + with :s modifier in parameters. + +2010-02-26 Peter Stephenson + + * users/14902: Src/Modules/datetime.c: another go. + + * users/14900: Src/Modules/datetime.c: ULONG_MAX may be valid + return value from strtoul(). + + * users/14897: Src/Modules/datetime.c: test needed on + conversion of time_t to struct tm. Found on 64-bit Linux. + + * 27756: Doc/Zsh/calsys.yo, Functions/Calendar/calendar, + Functions/Calendar/calendar_add, Functions/Calendar/calendar_edit, + Functions/Calendar/calendar_sort, Src/Modules/system.c: + use new file locking in calendar where available and add + errflag test to loop over fcntl(). + + * users/14891: Doc/Zsh/cond.yo: say explicitly that condition + arguments don't undergo file generation. + +2010-02-25 Peter Stephenson + + * 27755: Doc/Zsh/mod_system.yo, Src/Modules/system.c: + add "zsystem supports" to test what zsystem supports. + +2010-02-24 Peter Stephenson + + * 27754: NEWS (unposted), Doc/Zsh/mod_system.yo, Src/exec.c, + Src/utils.c, Src/zsh.h, Src/Modules/system.c: add + "zsystem flock" subcommand to zsh/system module. + +2010-02-22 Peter Stephenson + + * unposted: Src/utils.c: Add a debug test for trapping bad uses of + fdtable when closing fd's in zclose(). + + * 27721: Src/compat.c [with unnecessary test removed], Src/exec.c, + Src/system.h, Src/utils.c: update zopenmax() not to examine huge + numbers of file descriptors; only call it at initialisation; + rationalise use of fdtable_size and expansion of fdtable. + +2010-02-22 Clint Adams + + * 27744: Completion/Debian/Command/_pbuilder: completion for + pbuilder. + +2010-02-21 Peter Stephenson + + * Frank: 27731: Functions/VCS_Info/vcs_info: turn off + WARN_CREATE_GLOBAL. + +2010-02-21 Clint Adams + + * Michael Prokop: 27725: Completion/Debian/Command/_apt: apt + --no-install-recommends. + +2010-02-21 Peter Stephenson + + * Jonathan Beckman: 27728: Completion/X/Command/_mplayer: quote + colon after -ss. + +2010-02-19 Peter Stephenson + + * 27722: Src/cond.c, Test/C02cond.zts, Test/V01zmodload.ztst: Error + reporting for failed conditions was badly handled; one + piece of code didn't test for a '-' prefix. + + * 27723: Src/builtin.c, Test/D02glob.ztst: eval shouldn't + modify non-zero return statuses. + +2010-02-17 Peter Stephenson + + * Frank: 27717: Functions/VCS_Info/vcs_info_lastmsg: + add option terminators for builtins. + +2010-12-17 Andrey Borzenkov + + * unposted: Doc/Zsh/compsys.yo: typo fix + +2010-12-16 Andrey Borzenkov + + * 27715: Completion/Unix/Command/_stgit: fixes for new + version (workaround removed commands); autogenerate list + of stg subcommands. + +2010-02-16 Peter Stephenson + + * unposted: Completion/Unix/Command/.distfiles: new files + + * Frank Terbeck, Seth House: 27712, 22713, 27714: Doc/Zsh/contrib.yo, + Functions/VCS_Info/Backends/VCS_INFO_get_data_bzr, + Functions/VCS_Info/Backends/VCS_INFO_get_data_git, + Functions/VCS_Info/Backends/VCS_INFO_get_data_hg, + Functions/VCS_Info/Backends/VCS_INFO_get_data_p4, + Functions/VCS_Info/Backends/VCS_INFO_get_data_svk, + Functions/VCS_Info/Backends/VCS_INFO_get_data_svn, + Functions/VCS_Info/VCS_INFO_formats, + Functions/VCS_Info/VCS_INFO_hook, Functions/VCS_Info/vcs_info: + hooks and Mercurial improvements. + +2010-02-15 Peter Stephenson + + * 27710: Etc/FAQ.yo: update sections on advanced character sets. + + * unposted: Etc/FAQ.yo: correct outrageously old dates in FAQ. + +2010-02-13 Peter Stephenson + + * 27708: Src/text.c: remove distracting initial semicolons + in job output. + + * unposted: zero gf_pre_words from 27694. + + * Mikael: Completion/Zsh/Type/_globquals: extend argument + handling. + + * Frank: 27705: Completion/Unix/Command/_git: notes + +2010-02-12 Peter Stephenson + + * unposted: Completion/Zsh/Type/_globquals: add P to list. + +2010-02-09 Peter Stephenson + + * unposted: Doc/Zsh/expn.yo: typo in formatting. + +2010-02-09 Peter Stephenson + + * 27694: NEWS, Completion/Zsh/Type/_globquals, Doc/Zsh/expn.yo, + Src/glob.c, Test/D02glob.ztst: add "P" glob qualifier for + prepending words. + + * Frank: 27696: Completion/Unix/Command/_tmux: another update + + * Geoff: 27693: Src/exec.c, Src/init.c, Src/params.c, Src/init.c, + Src/utils.c: rename underscore to avoid name clash. + +2010-02-08 Peter Stephenson + + * unposted: Src/subst.c: comment about what colon in parameter + substitution might be doing. + + * unposted: Completion/compinit, + Functions/Calendar/calendar_scandate: add some "typeset -g"s + to avoid WARN_CREATE_GLOBAL warnings. + + * 27665: Frank: Completion/Unix/Command/_tmux: update. + + * 27658: Completion/Unix/Command/_zip: work around globbing + problems. + +2010-02-07 Peter Stephenson + + * Frank: 27679: + Functions/VCS_Info/Backends/VCS_INFO_get_data_git: + better logic. + + * Michael Hwang: 27675: Src/builtin.c: fix crash from error in + hash builtin. + +2010-02-04 Peter Stephenson + + * 27661: Ben: Doc/Zsh/builtins.yo, Doc/Zsh/options.yo, + Doc/Zsh/tcpsys.yo: typos in manual references. + +2010-02-03 Peter Stephenson + + * 27648, 267650/1, unposted README change: README, + Doc/Zsh/builtins.yo, Doc/Zsh/grammar.yo, + Etc/zsh-development-guide, Src/builtin.c, Src/init.c, + Src/mkbltnmlst.sh, Src/Builtins/rlimits.mdd: "repeat" + is not available when starting in emulation mode, + "ulimit" is; document that "sched", "limit", "unlimit" + already aren't. + +2010-02-02 Peter Stephenson + + * Mikael: 27647: Completion/Unix/Command/_cp: update + +2010-02-02 Peter Stephenson + + * unposted: Doc/Zsh/contrib.yo: minor doc upgrade for + regexp-replace. + + * based on Andrei, 27644: Config/installfns.zsh: check for + #! line without a fork. + +2010-02-01 Peter Stephenson + + * unposted: Etc/FAQ.yo: update with notes on + zsh-nt.sourceforge.net and application terminal mode horror. + +2010-01-31 Peter Stephenson + + * Mikael: 27642: Completion/Zsh/Type/_globquals: add some + missing entries. + +2010-01-29 Peter Stephenson + + * users/14752: Functions/Misc/zed, Src/builtin.c: add #! + line to zed; allow script run with -i to exit on "return". + + * Julien Jehannet: users/14751: Functions/Misc/zed: variable + incorrect when autoloading function. + +2010-01-27 Peter Stephenson + + * 27638, based on Frank Terbeck, 27633: Doc/Zsh/options.yo, + init.c, options.c, zsh.h: add SOURCE_TRACE option with output + similar to XTRACE for tracing sourced files. + +2010-01-23 Clint Adams + + * 27617: Completion/Unix/Command/_graphicsmagick: graphicsmagick + completion based on _imagemagick. + +2010-01-22 Peter Stephenson + + * users/14732: Src/Zle/computil.c: we need to test X:/ rather + than X: for recent versions of Cygwin. + +2010-01-21 Peter Stephenson + + * users/14723: Src/pattern.c: invalid character conversions + should never match valid character conversions. + +2010-01-20 Peter Stephenson + + * 27611: Src/math.c, Test/C01arith.ztst: cache parameter values so + that subscripts aren't multiply evaluated when they shouldn't be. + + * 27608: Src/Modules/pcre.c, Src/Modules/regex.c, + Test/C02cond.ztst: test was broken and sizes of variables + for arrays were wrong. + +2010-01-19 Peter Stephenson + + * unposted: Doc/Zsh/contrib.yo, Functions/Misc/regexp-replace: + return status 1 if no replacement. + + * unposted: Doc/Zsh/cond.yo: avoid Yodl error. + + * Frank: 27606: Completion/Unix/Command/_tmux: tmux -d. + +2010-01-18 Peter Stephenson + + * unposted: Doc/Zsh/contrib.yo: minor clarification in 27604. + + * 27604: Doc/Zsh/contrib.yo, Functions/Misc/.distfiles, + Functions/Misc/regexp-replace, + Functions/Misc/replace-string-again: add facilities for + substitution using regular expressions. + +2010-01-17 Peter Stephenson + + * 27600: Doc/Zsh/cond.yo, Src/Modules/pcre.c, Src/Modules/regex.c, + Test/C02cond.ztst: extend =~ syntax to set MBEGIN and MEND + with MATCH and mbegin and mend with match. + +2010-01-16 Peter Stephenson + + * Frank: 27599: Doc/Zsh/contrib.yo: fix formatting documentation + for VCS_Info. + +2010-01-13 Peter Stephenson + + * Mikael: 27597: Completion/Zsh/Command/_zstyle: accepting + completion unnecessarily hard. + +2010-01-13 Peter Stephenson + + * Joakim Rosqvist: 27591 as modified in 27594: + FEATURES, Doc/Zsh/options.yo, Doc/Zsh/params.yo, Src/input.c, + Src/options.c, Src/params.c: extend SUN_KEYBOARD_HACK option + to KEYBOARD_HACK variable. + +2010-01-04 Peter Stephenson + + * 27553: Jesse Weinstein: Doc/Zsh/compsys.yo: improve phrasing. + +2010-01-10 Clint Adams + + * Frank Terbeck: 27586: Completion/Unix/Command/_tmux: + more tmux completion support. + +2010-01-08 Peter Stephenson + + * 27577: sergio: Functions/Misc/zcalc: vared -p obeys + the PROMPTPERCENT option so it's not necessary to have an + explicit (%) in the variable expansion. + +2010-01-07 Clint Adams + + * 27579: Completion/Unix/Command/_ssh: allow ssh -S argument to + follow immediately the option letter. + + * 27578: Completion/Linux/Command/_ionice: allow ionice -c and -n + arguments to immediately follow the option letters. + +2010-01-05 Peter Stephenson + + * 27566: Src/Builtins/rlimits.c: add ulimit -c hard and immediate + return on argument error + + * 27565: Src/Builtins/rlimits.c: ulimit didn't sanity check + numeric arguments. + +2010-01-04 Clint Adams + + * 27559: Completion/Unix/Command/_espeak: espeak language + codes and voice names. + + * Jesse Weinstein: 27558: Completion/Unix/Command/_espeak: + completion for espeak. + +2010-01-04 Peter Stephenson + + * 27556: Src/lex.c: lexsave() should sanitize more variables else + inner loops can get confused by outer state. Symptom was + source within precmd. + +2009-12-28 Clint Adams + + * Chris Lamb: 27545: Completion/Unix/Command/_django: + runserver_plus and files completion for django. + +2009-12-18 Wayne Davison + + * users/14659: Src/hist.c: Add symlink-based hist-file locking. + +2009-12-17 Peter Stephenson + + * Greg: 27529: Completion/Unix/Command/_subversion: make URL + schemas (schemata?) configurable. + +2009-12-16 Wayne Davison + + * 26735+unposted: Src/utils.c, Src/Modules/zftp.c, Src/Modules/zpty.c, + Src/Zle/zle_main.c, Src/exec.c, Src/init.c, Src/input.c, Src/jobs.c, + Src/parse.c: Check the return value of all pipe(), read(), and + write() calls. Gets rid of all "ignoring return value" compiler + warnings, and makes some read/write operations safer by ensuring + that an EINTR is handled. + +2009-12-16 Peter Stephenson + + * unposted: Functions/Misc/run-help-p4, Functions/Misc/.distfiles: + new helper. + + * 27492 based on Jörg Sommer: 27473: Functions/Misc/run-help: + fix alias problem. + +2009-12-14 Peter Stephenson + + * 27518: Completion/Unix/Command/_configure: suggest some + more patterns for arguments. + +2009-12-14 Andrey Borzenkov + + * unposted: Completion/Unix/Command/_grep: + add --exclude-dir option + +2009-12-13 Peter Stephenson + + * Alexey I. Froloff: 27470: Completion/Unix/Command/_git: + update. + +2009-12-13 Wayne Davison + + * unposted: Completion/Unix/Command/_rsync: Fixed the + --human-readable options and arg-acceptance of -f. + +2009-12-12 Clint Adams + + * Michael Prokop: 27504: Completion/Debian/Command/_dput: + fix typo with dput --delayed. + +2009-12-11 Peter Stephenson + + * 27503: Src/utils.c: fix crash when changing a hook + function inside a hook function of the same type. + +2009-12-10 Clint Adams + + * 27494: Completion/Debian/Command/_bug: reportbug --paranoid, + --no-paranoid, --body, and --body-file. + +2009-12-07 Peter Stephenson + + * 27479: Src/Zle/zle_tricky.c: prevent completions + split across backlash-newline continuations from + causing mayhem. + +2009-12-05 Peter Stephenson + + * 27466: Doc/Zsh/zle.yo: document 27453. + + * Mikael: 27453: Src/Zle/zle_refresh.c: highlighting + of removable completions suffixes. + + * Frank: 27450: b/Completion/Unix/Command/_tmux: another + update. + +2009-12-05 Clint Adams + + * Frank Terbeck: 27458: Completion/Unix/Command/_tmux: + set-option -w completion. + + * Ingmar Vanhassel: 27457: Completion/Zsh/Command/_precommand: + add hilite as a precommand. + + * Ingmar Vanhassel: 27456: Completion/Unix/Type/_tar_archive: + complete .tar.lzma, .tbz, .txz. + +2009-12-03 Clint Adams + + * 27448: Completion/Unix/Command/_tar, + Completion/Unix/Type/_tar_archive: mild understanding of + xz-compressed tarballs. + +2009-12-02 Peter Stephenson + + * 27447: Doc/Zsh/options.yo: document 27442. + + * Frank: 27446: Completion/Unix/Command/_tmux: update. + + * 27442 plus tweak: Src/exec.c, Src/init.c, Src/jobs.c, + Src/signals.c: return status for last background job from + wait even if it's already exited, but only if POSIX_JOBS + is set. + +2009-12-01 Peter Stephenson + + * Alexey: 27445: Completion/Unix/Command/_ruby: argument can be + any file. + +2009-11-30 Peter Stephenson + + * 27442: Src/exec.c, Src/init.c, Src/job.s,c Src/signals.c: + add lastpid_status to record status of last background job + even after it's exited. + + * 27441: Doc/Zsh/mod_complist.yo, Src/Zle/complist.c: add "sa" + highlight code for suffix aliases. + + * Richard Hartmann: 27440: Src/Modules/cap.c, Src/Modules/zftp.c: + typos in warnings. + +2009-11-24 Peter Stephenson + + * Baptiste Daroussin: 27431: Completion/Unix/Command/_make: Fix + for FreeBSD. + + * 27430: Completion/Unix/Command/_make: extend variable value + completion to anything that looks like an assignment. + + * 27429: Completion/Unix/Command/_make: restore variable value + completion. Also make indentation more standard (not posted). + + * Michael Hwang : 27428: + Completion/Unix/Command/_make: complete rewrite with + variable completion. + +2009-11-22 Peter Stephenson + + * Alexey. I Froloff: users/14588: + Completion/Zsh/Command/.distfiles, + Completion/Zsh/Command/_ztodo, + Functions/Misc/.distfiles, Functions/Misc/ztodo: new ztodo + function. + +2009-11-20 Clint Adams + + * 27417: Completion/Unix/Command/_gpg: fix completion after + gpg --verify-files. + + * unposted: Functions/Prompts/prompt_clint_setup: change bracket + colors default to yellow when in an ssh session. + +2009-11-19 Peter Stephenson + + * Greg: 27416: Completion/Unix/Command/_subversion: repository + path enhancement. + +2009-11-17 Barton E. Schaefer + + * 27415: Src/Zle/computil.c: comparguments "*::..." descriptions + could step on sequentially earlier descriptions when completing + for a word other than the last word on the command line. + +2009-11-17 Peter Stephenson + + * unposted: Completion/Unix/Command/_perforce: improve + whole-path completion so that it doesn't take ages looking + for clients after typing two slashes. + +2009-11-15 Peter Stephenson + + * Greg Klanderman: 27409: Completion/Unix/Command/_subversion, + Completion/Unix/Type/_urls: improve subversion remote paths + and fix minor URL issues. + + * Frank Terbeck: 27407: Completion/Unix/Command/_tmux: + switch-client subcommand. + + * Benjamin R. Haskell: users/14565, 27399: + Completion/Unix/Command/_env: argument problem. + +2009-11-11 Barton E. Schaefer + + * Greg Klanderman: 27391: Completion/Unix/Command/_rm: + fix ignored (duplicate) file names + + * users/14548: Src/Modules/termcap.c: prevent libtermcap from + exiting on an unknown terminal type + + * Alexey Froloff: 27367: Completion/Unix/Command/_ri: update + for Ruby 1.9 and later + + * Frank Terbeck: 27364: Completion/Unix/Command/_tmux: fix + cut'n'paste error in descriptions + +2009-11-10 Barton E. Schaefer + + * 27368, 27369: FEATURES: replace one incorrect example with two + correct ones + +2009-11-07 Peter Stephenson + + * Mikael: 27362: Src/Modules/attr.c: some more fixes. + +2009-11-07 Clint Adams + + * Frank Terbeck: 27359: Completion/Unix/Command/.distfiles, + Completion/Unix/Command/_tmux: completion for tmux 1.1. + +2009-11-06 Peter Stephenson + + * 27358: Src/builtin.c: error if $0 was altered within + a sourced file. + + * 27357: Src/Modules/attr.c: fix compiler warnings + +2009-11-06 Peter Stephenson + + * Frank Terbeck: 27353: Functions/VCS_Info/VCS_INFO_bydir_detect, + Functions/VCS_Info/vcs_info: More sanity checks for vcs_info + +2009-11-05 Peter Stephenson + + * Jun T.: 27351: zdelattr missed first argument. + +2009-11-04 Peter Stephenson + + * Mikael: 27347: Completion/Zsh/Command/_zattr, + Doc/Zsh/mod_attr.yo, Src/Modules/attr.c: enhance the + extended attribute support. + +2009-11-03 Peter Stephenson + + * Mikael: 27337: Src/utils.c: fix bug with cd checking symlinks + that could do arbitrarily nasty things when looking for a "/". + +2009-10-29 Peter Stephenson + + * unposted: Functions/Calendar/calendar: brief display + failed on single-line entries. + +2009-10-24 Clint Adams + + * 27314, 27315: Completion/Unix/Command/_mpc: update for + mpc 0.17. + + * unposted: update config.guess and config.sub to + 2009-06-10 and 2009-06-11 versions respectively. + +2009-10-22 Peter Stephenson + + * Functions/Zle/history-beginning-search-menu: unposted: + make more variables local. + + * unposted, c.f. 27313: INSTALL, NEWS, README, Doc/Zsh/contrib.yo, + Doc/Zsh/manual.yo, Doc/Zsh/metafaq.yo, Etc/CONTRIBUTORS, + Etc/FAQ.yo, Etc/changelog2html.pl, + Functions/Zle/history-beginning-search-menu, + Functions/Zle/insert-composed-char: mailing lists moved + to zsh.org and website to zsh.sourceforge.net. + +2009-10-18 Peter Stephenson + + * Mikael: 27312: Completion/Unix/Command/_valgrind: option + changes. + + * Jesse Weinstein: 27311: Completion/Unix/Type/_diff_options: + remove redundant line. + + * Holger Weiss: 27310: Doc/Zsh/compsys.yo: typo. + + * Frank Terbeck: 27309: Doc/Zsh/contrib.yo: improve context + in VCS_Info docs. + +2009-10-04 Peter Stephenson + + * 27308, based on 27305 from Edgar Merino: + Completion/Unix/Command/_init_d, Completion/Unix/Type/_services: + search for init scripts in other locations. + + * Lionel Flandrin: 27307: + Functions/VCS_Info/Backends/VCS_INFO_get_data_hg, + Doc/Zsh/contrib.yo: enhanced VCS_INFO support for Mecurial. + +2009-09-30 Peter Stephenson + + * http://www.opensource.apple.com/source/zsh/zsh-53/patches/utils.c.patch: + Src/utils.c: fix length of search when spell checking. + + * http://www.opensource.apple.com/source/zsh/zsh-53/patches/PR-6370391.patch: + Src/jobs.c: fix error message. + +2009-09-29 Peter Stephenson + + * Jun T.: 27296: configure.ac: bad preprocessing of Mac OS + Snow Leopard headers. + +2009-09-29 Peter Stephenson + + * Jun T.: 27292: Src/Modules/socket.c: abuse of UNIX_PATH_MAX on + Snow Leopard: use the correct maximum. + +2009-09-22 Wayne Davison + + * 27286: Src/Modules/socket.c Src/Modules/tcp.c Src/utils.c: + Made movefd() return the targetfd on success. Added a little + more error checking in the callers of movefd(). + +2009-09-22 Peter Stephenson + + * 27284: Src/exec.c, Src/parse.c, Src/utils.c, + Src/Modules/socket.c, Src/Modules/tcp.c, Src/Modules/zpty.c: + improve use of movefd() and restore closing of original fd + on failure pending further work. + +2009-09-21 Peter Stephenson + + * 27283: Src/exec.c, Src/utils.c: failure to dup fd accessed + uninitialised memory and closed the original fd regardless. + +2009-09-21 Peter Stephenson + + * users/14411: Src/hashtable.c: only hash stat-able executable + regular files in the command table. + +2009-09-19 Peter Stephenson + + * Darel Henman: users/14412: Doc/Zsh/builtins.yo: fix confusions + in explanation of getopts option arguments. + + * Holger Weiss: 27281: Doc/Zsh/expn.yo: example of global + history substitution was wrong. + +2009-09-18 Peter Stephenson + + * Mikael: 27279: Doc/Zsh/builtins.yo, Doc/Zsh/mod_zselect.yo: + minor tweaks. + +2009-09-16 Peter Stephenson + + * Baptiste Daroussin: 27277: Completion/BSD/Command/_csup: Improve + csup completion. + +2009-09-15 Peter Stephenson + + * users/14387 (tweaked): Doc/Zsh/grammar.yo: alternative syntax is + not about to disappear, but does make shell scripts less portable + and possibly readable. + +2009-09-14 Peter Stephenson + + * Greg Klanderman: 27262: Completion/Unix/Type/_path_files: + prefixes were incorrect with accept-exact-dirs style. + +2009-09-13 Peter Stephenson + + * Baptiste Daroussin: 27271: Functions/Zftp/zfanon: remove awk + dependence. + + * Baptiste Daroussin: 27270: Functions/Zftp/zfcd_match: remove + awk dependence. + +2009-09-11 Peter Stephenson + + * Baptiste Daroussin: 27268: Functions/MIME/pick-web-browser: + remove Perl dependency. + + * Baptiste Daroussin: 27267 plus 27269 plus doc: + Functions/Zftp/zfrtime, Doc/Zsh/zftpsys.yo: remove perl + dependency. + +2009-09-10 Peter Stephenson + + * Greg Klanderman: 27259 / 27260: + Completion/Unix/Type/_path_files: make unset parameters in + file prefix not be treated as empty. + +2009-09-09 Peter Stephenson + + * Greg Klanderman: 27255: Doc/Zsh/builtins.yo, + Doc/Zsh/compctl.yo, Doc/Zsh/compsys.yo, Doc/Zsh/contrib.yo: + some consistency fixes. + +2009-09-07 Peter Stephenson + + * 27236 (somewhat late): configure.ac: use $CPPFLAGS + after all occurrences of $CPP and see what happens. + +2009-09-06 Peter Stephenson + + * Holger Weiss : 27248: + Src/Zle/zle_hist.c: anchoring of vi search was wrong because + of reversed prefix matching. + + * 27247: Functions/Misc/zmv: checking for "**/" was wrong. + +2009-09-05 Peter Stephenson + + * Daniel Friesel : 27244: + Completion/Unix/Command/_feh, Completion/Unix/Command/.distfils: + new completion. + + * 27243: Src/params.c, Test/D04parameter.ztst: reverse + indexing in array parameters with a beginning index out of range + returned the wrong value. + +2009-09-02 Peter Stephenson + + * 27240: Src/builtin.c: 27079 caused later use of tokstr and tok + to be invalid. + +2009-08-28 Peter Stephenson + + * 27233: Completion/Base/Utility/_values, + Completion/Unix/Command/_mount: improve _values handling of + optional arguments so that list separate removes the argument + separator; use this to make "mount -o loop" complete better. + +2009-08-21 Peter Stephenson + + * 27228: Functions/Newuser/zsh-newuser-install: add a clear + function if the command doesn't exist. + +2009-08-17 Peter Stephenson + + * 27219: Completion/Unix/Type/_files: "_files -F " wasnʼt + correctly handled, which broke duplicate filtering in _rm. + + * 27218: Src/Zle/computil.c: don't unquote command line + to generate "line" in _arguments since the caller can't + tell what was there before. + +2009-08-17 Peter Stephenson + + * 27217: Functions/Newuser/zsh-newuser-install: fix typo + in assignment. + +2009-08-16 Peter Stephenson + + * 27216: Src/hist.c: set chwords to NULL when freed. + +2009-08-15 Peter Stephenson + + * users/14307: Src/Zle/zle_tricky.c: end of current command in + completion wasn't properly found when using variant zsh loop + or test syntax. + +2009-08-07 Peter Stephenson + + * Andrew Psaltis: 27212: Completion/Linux/Command/_pkgtool: + Slackware supports extra tar formats. + +2009-08-05 Peter Stephenson + + * 27211: Src/Zle/computil.c: Extend exact completion within + compfiles -p/-P to treat drives and device files specially under + Cygwin. + +2009-08-05 Clint Adams + + * 27209: Completion/Unix/Type_path_files: fix breakage from + 27208. + + * Mikael Magnusson: 27204: Completion/Unix/Command/_patch: + remove stray curly brace. + + * 27208: Completion/Unix/Type_path_files: try to do the + right thing when applying file-sort to extant glob qualifiers. + +2009-08-01 Clint Adams + + * 27203: Completion/Debian/Command/_aptitude: treat + aptitude build-depends just as aptitude build-dep. + + * 27202: Src/system.h: unbreak _GNU_SOURCE on Debian + GNU/kFreeBSD. + +2009-07-30 Peter Stephenson + + * users/14267: Completion/Base/Core/_description: files added + for the ignore-line style need to be quoted to be treated + literally. + +2009-07-24 Peter Stephenson + + * 27188: Doc/Zsh/builtins.yo, Src/builtin.c, Test/B04read.ztst, + Test/D07multibyte.ztst: Make read -q use the same code as read + -k, hence enabling support for -t with terminals, -p and -u. + +2009-07-21 Peter Stephenson + + * 27181: Doc/Zsh/options.yo, Src/builtin.c: extend POSIX_CD to + handle target directory printing behaviour. + +2009-07-20 Peter Stephenson + + * 27178, 27180: Etc/FAQ.yo: as pointed out by Mikael, quoting + function names to stop alias expansion is always(ish) safe. + +2009-07-19 Barton E. Schaefer + + * 27169: Src/jobs.c, Src/signals.c: 23067 went too far in opening + up the signal mask when waiting for jobs; an interrupt from the + terminal should not terminate the shell until the foreground job + has a chance to exit or to choose not to do so. + +2009-07-19 Peter Stephenson + + * 27167: Src/builtin.c, Src/options.c, Src/zsh.h, + Doc/Zsh/builtins.yo, Doc/Zsh/options.yo: POSIX_CD option, + currently only moves testing of "." to after testing of CDPATH. + +2009-07-18 Clint Adams + + * 27160: Completion/Debian/Command/_bug: tweaks to reportbug + completion, thanks to Vincent Lefevre. + + * 27128: Completion/Unix/Type/_tex: complete tex files for + latexmk. + +2009-07-17 Peter Stephenson + + * users/14240: Src/parse.c: assignment before a function + definition should be an error, in common with other complex + functions and as documented. + +2009-07-14 Eric Blake + + * Eric Blake: 27151: Src/builtin.c: Fix // handling in cd for + cygwin. + +2009-07-14 Peter Stephenson + + * Andy Spencer: 27148: Completion/Linux/Command/_modutils: + ignore build as well as source directories when searching + recursively for modules. + +2009-07-12 Peter Stephenson + + * 27135: Doc/Zsh/options.yo, Src/exec.c, Src/jobs.c: expand + POSIX_JOBS option to leave MONITOR on in subshell and not to + report the parent shell's jobs. + + * 27134: Src/exec.c, Src/init.c: improve 27131 by setting + FD_CLOEXEC for SHTTY or closing it by hand when executing. + +2009-07-11 Peter Stephenson + + * 27131: Src/exec.c, Src/jobs.c: tentative attempt to + allow MONITOR option to be set in a subshell by not + closing SHTTY. + + * 27129: Src/exec.c, Src/init.c, Src/zsh.h, + Test/A01grammar.ztst, Test/C04funcdef.ztst, + Test/D08cmdsubst.ztst: fix 27126 so as not to break the + case where a status is tested at the start of a function, + command substitution, or "." file. + +2009-07-10 Clint Adams + + * 27127: Vincent Bernat: Completion/Debian/Command/_bts: handle + bts fixed and bts notfixed. + +2009-07-10 Peter Stephenson + + * 27126: Src/exec.c, Src/init.c, Test/A01grammar.ztst, + Test/C04funcdef.ztst, Test/D08cmdsubst.ztst: a few more + contexts where empty lists should give status zero. + + * 27125: Src/prompt.c: handle nested use of colour code buffer + allocation. + +2009-07-10 Peter Stephenson + + * 27122: Doc/Zsh/options.yo, Src/jobs.c, Src/options.c, Src/zsh.h: + add POSIX_JOBS option to print only job text for bg and fg. + + * 27106: Src/exec.c, Src/signals.c, Src/zsh.h, + Test/A01grammar.ztst: on a command line that had text that + expanded to nothing reset the status (unless it should come + from a command substitution). + + * 27119: Src/jobs.c: correct 27112: output is to stdout, not + stderr, and there's no automated jobs notification if not + INTERACTIVE. + +2009-07-09 Peter Stephenson + + * 27112: Src/jobs.c: allow output to stderr if MONITOR but + not INTERACTIVE. + +2009-07-09 Eric Blake + + * 27109: Touch up non-interactive MONITOR handling. + Don't mess with tty when MONITOR but not interactive. + +2009-07-09 Peter Stephenson + + * 27110: Src/init.c: Only turn on MONITOR if INTERACTIVE is on + or if set explicitly. + +2009-07-08 Peter Stephenson + + * 27100: Allow MONITOR option in non-interactive shells. + Not properly test it, but you only get if you ask for it, + so worth committing to allow it to be further investigated. + +2009-07-06 Peter Stephenson + + * 27092: Src/parse.c, Test/A01grammar.ztst: "if" didn't check + for missing clauses so a missing then-clause wasn't spotted + as an error. + +2009-07-05 Peter Stephenson + + * Brendan Cully: 27088: Completion/Unix/Command/_hg, + Completion/Unix/Command/.distfiles: new Mercurial completion. + +2009-07-02 Peter Stephenson + + * 27087: Doc/Zsh/builtins.yo, Src/builtin.c, Src/zsh.h, + Test/A01grammar.ztst: change return codes from 27083 to + 126, 127. + + * Nicolas Pouillard: 27028: Completion/Unix/Command/_darcs: New + darcs completion; it's a lot shorter but apparently that's OK. + +2009-07-01 Peter Stephenson + + * 27085: Doc/Zsh/mod_complist.yo, Src/Zle/complist.c: + in scrollist keymap allow accept-search to exit but do nothing + else. + + * 27083: Doc/Zsh/builtins.yo, Src/builtin.c, Src/init.c, + Src/zsh.h, Src/Modules/newuser.c, Test/A01grammar.ztst: "." + returns status 128 on execution failure, 129 on failure to find + file. + + * 27080: Doc/Zsh/mod_complist.yo, Src/Zle/complist.c: it + wasn't possible to exit menu selection cleanly. + +2009-07-01 Peter Stephenson + + * 27079: Src/builtin.c: test builtin uses parser and so should + save and restore the lexical context to avoid pulling the + rug out when called in some nested fashion. + +2009-06-28 Andrey Borzenkov + + * unposted: Completion/Unix/Command/_man: + support lzma compression of man pages used in Mandriva + +2009-06-27 Peter Stephenson + + * 27061: Nicolas Lalevée: Completion/Unix/Command/_ant: + importing files into ant. + +2009-06-26 Peter Stephenson + + * Greg Klanderman: 27057: Src/utils.c: %e and %f time formats + were swapped. + + * Frank Terbeck: users/14207: + Functions/VCS_Info/Backends/VCS_INFO_get_data_git: make + variable local. + +2009-06-19 Peter Stephenson + + * Frank Terbeck: 27049, 27050, 27051, 27052: + Functions/VCS_Info/VCS_INFO_bydir_detect, + Functions/VCS_Info/Backends/VCS_INFO_detect_hg, + Functions/VCS_Info/Backends/VCS_INFO_get_data_git, + Functions/VCS_Info/Backends/VCS_INFO_get_data_hg: VCS_INFO + improvements. + +2009-06-18 Clint Adams + + * 27048: Functions/MIME/zsh-mime-setup: avoid multiline prints + which break CSH_JUNKIE_QUOTES. + +2009-06-05 Peter Stephenson + + * 27305: Functions/Misc/run-help: use POSIXLY_CORRECT with man + to avoid GNU man grabbing options in the argument list. + + * 27304: Doc/Zsh/expn.yo, Src/subst.c, Src/utils.c, Src/zsh.h, + Test/D04parameter.ztst: add ${(q-)...} flag to do minimal + quoting of arguments with no unnecessary single quotes. + +2009-06-04 Peter Stephenson + + * Baptiste Daroussin: 27033: Completion/BSD/Command/_portaudit, + Completion/Unix/Command/_mount: more FreeBSD changes. + + * Baptiste Daroussin: 27030: Completion/Unix/Type/_file_systems: + update for FreeBSD. + + * Baptiste Daroussin: 27029: Completion/BSD/Command/_pfctl: new + completion. + +2009-06-02 Clint Adams + + * Colin Watson: 27027: Completion/Unix/Command/_bzr: + completion for bzr switch. + +2009-06-02 Peter Stephenson + + * Akinori MUSHA: private communication: + Completion/Unix/Command/_subversion: fix typo. + + * Config/version.mk: update version recorded in archive + to 4.3.10-dev-1 (not released). + +2009-06-01 Wayne Davison + + * Util/mkdisttree.sh, Util/preconfig: Tweak find to prune a .git dir. + This allows a .git/cvs dir to exist with a cvs checkout in it. + 2009-06-01 Peter Stephenson - * Config/versio.mk: release 4.3.10. + * Config/version.mk: release 4.3.10. 2009-05-30 Peter Stephenson @@ -272,7 +2483,7 @@ 2009-04-06 Peter Stephenson * Frank Terbeck : Functions/VCS_Info/*: - 26816: vcs_info: add revision and "misc" argument to + 26816: vcs_info: add revision and "misc" argument to VCS_INFO_formats(); 26817: updates for get-revision, %i and %m; 26818: Add git's sha1 hash as revision information; 26819: Add information about hg's local revision number and the commit's @@ -287,7 +2498,7 @@ 2009-04-04 Clint Adams * Simon Ruderich: 26800: Completion/Unix/Command/_git: fixes for "git add" - completion. + completion. 2009-04-01 Peter Stephenson @@ -2922,7 +5133,7 @@ * 24878: NEWS, Doc/Zsh/zle.yo, Src/glob.c, Src/pattern.c, Src/zsh.h, Src/Zle/iwidgets.list, Src/Zle/zle_hist.c: add history-incremental-pattern-search-backward and - history-incremental-pattern-search-forward, also optimize + history-incremental-pattern-search-forward, also optimize history searches a bit more. * 24876: don't install manual pages if empty. @@ -6636,7 +8847,7 @@ 2006-09-29 Vin Shelton - * 22789: Src/init.c: Source zshenv even if non-interactive. + * 22789: Src/init.c: Source zshenv even if non-interactive. 2006-09-29 Andrey Borzenkov @@ -11799,5 +14010,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.4705 $ +* $Revision: 1.5161 $ ***************************************************** diff -Nru zsh-4.3.10/Completion/Base/Completer/_expand_alias zsh-4.3.11/Completion/Base/Completer/_expand_alias --- zsh-4.3.10/Completion/Base/Completer/_expand_alias 2007-10-11 10:56:26.000000000 +0200 +++ zsh-4.3.11/Completion/Base/Completer/_expand_alias 2010-03-15 22:19:21.000000000 +0100 @@ -58,7 +58,7 @@ tmp="\\$tmp" fi fi - $pre _wanted aliases expl alias compadd -UQ ${tmp%%[[:blank:]]##} + $pre _wanted aliases expl alias compadd -UQ -- ${tmp%%[[:blank:]]##} elif (( $#pre )) && zstyle -t ":completion:${curcontext}:" complete; then $pre _aliases -s "$sel" -S '' else diff -Nru zsh-4.3.10/Completion/Base/Core/_description zsh-4.3.11/Completion/Base/Core/_description --- zsh-4.3.10/Completion/Base/Core/_description 2006-11-15 15:51:40.000000000 +0100 +++ zsh-4.3.11/Completion/Base/Core/_description 2009-07-30 21:04:31.000000000 +0200 @@ -49,13 +49,14 @@ zstyle -s ":completion:${curcontext}:$1" ignore-line hidden && case "$hidden" in - true|yes|on|1) _comp_ignore=( "$_comp_ignore[@]" "$words[@]" );; - current) _comp_ignore=( "$_comp_ignore[@]" "$words[CURRENT]" );; - current-shown) [[ "$compstate[old_list]" = *shown* ]] && - _comp_ignore=( "$_comp_ignore[@]" "$words[CURRENT]" );; + true|yes|on|1) _comp_ignore=( "$_comp_ignore[@]" ${(q)"${words[@]}"} );; + current) _comp_ignore=( "$_comp_ignore[@]" "${(q)words[CURRENT]}" );; + current-shown) + [[ "$compstate[old_list]" = *shown* ]] && + _comp_ignore=( "$_comp_ignore[@]" "${(q)words[CURRENT]}" );; other) _comp_ignore=( "$_comp_ignore[@]" - "${(@)words[1,CURRENT-1]}" - "${(@)words[CURRENT+1,-1]}" );; + "${(@q)words[1,CURRENT-1]}" + "${(@q)words[CURRENT+1,-1]}" );; esac # Ensure the ignore option is first so we can override it diff -Nru zsh-4.3.10/Completion/Base/Core/_dispatch zsh-4.3.11/Completion/Base/Core/_dispatch --- zsh-4.3.10/Completion/Base/Core/_dispatch 2004-06-03 17:09:58.000000000 +0200 +++ zsh-4.3.11/Completion/Base/Core/_dispatch 2010-12-06 17:06:24.000000000 +0100 @@ -2,6 +2,7 @@ local comp pat val name i ret=1 _compskip="$_compskip" local curcontext="$curcontext" service str noskip +local -a match mbegin mend # If we get the option `-s', we don't reset `_compskip'. @@ -24,6 +25,10 @@ [[ -n "$str" ]] || continue service="${_services[$str]:-$str}" for i in "${(@)_patcomps[(K)$str]}"; do + if [[ $i = (#b)"="([^=]#)"="(*) ]]; then + service=$match[1] + i=$match[2] + fi eval "$i" && ret=0 if [[ "$_compskip" = *patterns* ]]; then break diff -Nru zsh-4.3.10/Completion/Base/Core/_main_complete zsh-4.3.11/Completion/Base/Core/_main_complete --- zsh-4.3.10/Completion/Base/Core/_main_complete 2009-04-01 12:18:30.000000000 +0200 +++ zsh-4.3.11/Completion/Base/Core/_main_complete 2010-12-06 11:36:38.000000000 +0100 @@ -30,7 +30,8 @@ _saved_lastprompt="${compstate[last_prompt]}" \ _saved_list="${compstate[list]}" \ _saved_insert="${compstate[insert]}" \ - _saved_colors="$ZLS_COLORS" + _saved_colors="$ZLS_COLORS" \ + _saved_colors_set=${+ZLS_COLORS} # _precommand sets this to indicate we are following a precommand modifier local -a precommands @@ -325,7 +326,11 @@ compstate[list]="${compstate[list]//messages} force" if [[ "$compstate[old_list]" = keep ]]; then - ZLS_COLORS="$_saved_colors" + if [[ $_saved_colors_set = 1 ]]; then + ZLS_COLORS="$_saved_colors" + else + unset ZLS_COLORS + fi elif (( $#_comp_colors )); then ZLS_COLORS="${(j.:.)_comp_colors}" else diff -Nru zsh-4.3.10/Completion/Base/Utility/_combination zsh-4.3.11/Completion/Base/Utility/_combination --- zsh-4.3.10/Completion/Base/Utility/_combination 2007-07-05 20:11:23.000000000 +0200 +++ zsh-4.3.11/Completion/Base/Utility/_combination 2010-12-16 14:51:05.000000000 +0100 @@ -8,7 +8,7 @@ # # Example: telnet # -# Assume an user sets the style `users-hosts-ports' as for the my-accounts +# Assume a user sets the style `users-hosts-ports' as for the my-accounts # tag: # # zstyle ':completion:*:*:telnet:*:my-accounts' users-hosts-ports \ diff -Nru zsh-4.3.10/Completion/Base/Utility/_multi_parts zsh-4.3.11/Completion/Base/Utility/_multi_parts --- zsh-4.3.10/Completion/Base/Utility/_multi_parts 2008-10-16 11:34:06.000000000 +0200 +++ zsh-4.3.11/Completion/Base/Utility/_multi_parts 2010-08-22 17:54:36.000000000 +0200 @@ -127,7 +127,8 @@ return fi elif (( $#tmp1 )); then - local ret=1 + local ret=1 tt + local -a mm # More than one match. First we get all strings that match the # rest from the line. @@ -144,7 +145,11 @@ SUFFIX="$suf" fi - matches=( "${(@M)matches:#(${(j:|:)~${(q)tmp1}})*}" ) + for tt in $tmp1 + do + mm+=( "${(@M)matches:#$tt*}" ) + done + matches=( $mm ) if ! zstyle -t ":completion:${curcontext}:" expand suffix || [[ -n "$menu" || -z "$compstate[insert]" ]]; then diff -Nru zsh-4.3.10/Completion/Base/Utility/_values zsh-4.3.11/Completion/Base/Utility/_values --- zsh-4.3.10/Completion/Base/Utility/_values 2009-01-13 13:15:38.000000000 +0100 +++ zsh-4.3.11/Completion/Base/Utility/_values 2009-08-28 17:10:39.000000000 +0200 @@ -59,7 +59,7 @@ _describe "$descr" \ noargs "$sep[@]" -M 'r:|[_-]=* r:|=*' -- \ args -S "${argsep}" -M 'r:|[_-]=* r:|=*' -- \ - opts -qS "${argsep}" -M 'r:|[_-]=* r:|=*' + opts -qS "${argsep}" -r "${argsep}${sep} \\t\\n\\-" -M 'r:|[_-]=* r:|=*' curcontext="$oldcontext" diff -Nru zsh-4.3.10/Completion/BSD/Command/_csup zsh-4.3.11/Completion/BSD/Command/_csup --- zsh-4.3.10/Completion/BSD/Command/_csup 2008-08-12 12:28:11.000000000 +0200 +++ zsh-4.3.11/Completion/BSD/Command/_csup 2010-06-06 15:44:11.000000000 +0200 @@ -2,18 +2,21 @@ _arguments -s \ '-1[disable automatic retries]' \ - '-4[Force usage of IPv4 addresses]' \ - '-6[Force usage of IPv6 addresses]' \ - '-A[Local address to bind to when connecting to the server]:local address:_hosts' \ - '-b[Base directory]:base directory:_files -/' \ - '-c[Subdirectory of base for information about collections]:collections directory:_files -/' \ + '-4[force usage of IPv4 addresses]' \ + '-6[force usage of IPv6 addresses]' \ + '-A[local address to bind to when connecting to the server]:local address:_hosts' \ + '-b[base directory]:base directory:_files -/' \ + '-c[subdirectory of base for information about collections]:collections directory:_files -/' \ '-d[maximum number of deleted files]:maximum number of deleted files:' \ - '-h[Server host]:server host:_hosts' \ - '-i[Include only files and directories matching]:file pattern:' \ + '-h[server host]:server host:_hosts' \ + '-i[include only files and directories matching]:file pattern:' \ '-k[keep temporary copies of failed updates]' \ - '-l[Lock file]:lock file:_files' \ - '-L[Verbosity level]:verbosity level:(0 1 2)' \ - '-p[Server port]:port:_ports' \ + '-l[lock file]:lock file:_files' \ + '-L[verbosity level]:verbosity level:(0 1 2)' \ + '-L0[verbosity level 0]' \ + '-L1[verbosity level 1]' \ + '-L2[verbosity level 2]' \ + '-p[server port]:port:_ports' \ '-r[maximum number of retries]:maximum number of retries:' \ '-s[suppress status checks]' \ '-v[print version information]' \ diff -Nru zsh-4.3.10/Completion/BSD/Command/.distfiles zsh-4.3.11/Completion/BSD/Command/.distfiles --- zsh-4.3.10/Completion/BSD/Command/.distfiles 2008-08-12 12:31:32.000000000 +0200 +++ zsh-4.3.11/Completion/BSD/Command/.distfiles 2009-11-12 20:34:34.000000000 +0100 @@ -6,9 +6,13 @@ _cvsup _fetch _freebsd-update +_fstat _kld +_pfctl _portaudit _portlint +_portmaster _portsnap _powerd +_procstat ' diff -Nru zsh-4.3.10/Completion/BSD/Command/_fetch zsh-4.3.11/Completion/BSD/Command/_fetch --- zsh-4.3.10/Completion/BSD/Command/_fetch 2008-08-12 12:27:51.000000000 +0200 +++ zsh-4.3.11/Completion/BSD/Command/_fetch 2010-06-06 15:44:11.000000000 +0200 @@ -2,29 +2,29 @@ # Deprecated arguments are removed from the completion _arguments -s \ - '-1[Stop and return exit code 0 at the first successfully retrieved file]' \ - '-4[Forces fetch to use IPv4 addresses only]' \ - '-6[Forces fetch to use IPv6 addresses only]' \ - '-A[Do not automatically follow "temporary" (302) redirects]' \ - '-a[Automatically retry the transfer upon soft failures]' \ - '-B[Specify the read buffer size in bytes]:bytes:' \ - '-d[Use a direct connection even if a proxy is configured]' \ - '-F[In combination with the -r flag, forces a restart]' \ - '-l[If the target is a file-scheme URL, make a symbolic link to the target]' \ + '-1[stop and return exit code 0 at the first successfully retrieved file]' \ + '-4[forces fetch to use IPv4 addresses only]' \ + '-6[forces fetch to use IPv6 addresses only]' \ + '-A[do not automatically follow "temporary" (302) redirects]' \ + '-a[automatically retry the transfer upon soft failures]' \ + '-B[specify the read buffer size in bytes]:bytes:' \ + '-d[use a direct connection even if a proxy is configured]' \ + '-F[in combination with the -r flag, forces a restart]' \ + '-l[if the target is a file-scheme URL, make a symbolic link to the target]' \ '-M' \ - '-m[Mirror mode]' \ - '-N[Use file instead of ~/.netrc to look up login names and pass- words for FTP sites]' \ - '-n[Do not preserve the modification time]' \ - '-o[Set the output file name]:file:_files' \ + '-m[mirror mode]' \ + '-N[use file instead of ~/.netrc to look up login names and pass- words for FTP sites]' \ + '-n[do not preserve the modification time]' \ + '-o[set the output file name]:file:_files' \ '-P' \ - '-p[Use passive FTP]' \ - '-q[Quiet mode]' \ - '-R[Do not delete the output file in any circumstances]' \ - '-r[Restart a previously interrupted transfer]' \ - '-S[Require the file size reported by the server to match the specified value]' \ - '-s[Print the size in bytes, without fetching it]' \ - '-T[Set timeout value]:seconds:' \ - '-U[When using passive FTP, allocate the port for the data connection from the low port range]' \ - '-v[Increase verbosity level]' \ + '-p[use passive FTP]' \ + '-q[quiet mode]' \ + '-R[do not delete the output file in any circumstances]' \ + '-r[restart a previously interrupted transfer]' \ + '-S[require the file size reported by the server to match the specified value]' \ + '-s[print the size in bytes, without fetching it]' \ + '-T[set timeout value]:seconds:' \ + '-U[when using passive FTP, allocate the port for the data connection from the low port range]' \ + '-v[increase verbosity level]' \ '-w[wait successive retries]:seconds:' \ '*:URL to fetch:_urls' diff -Nru zsh-4.3.10/Completion/BSD/Command/_freebsd-update zsh-4.3.11/Completion/BSD/Command/_freebsd-update --- zsh-4.3.10/Completion/BSD/Command/_freebsd-update 2008-08-12 12:27:51.000000000 +0200 +++ zsh-4.3.11/Completion/BSD/Command/_freebsd-update 2010-06-06 15:44:11.000000000 +0200 @@ -2,19 +2,19 @@ local flags flags=( - '(cron)fetch[Fetch a compressed snapshot or update existing one]' - '(fetch)cron[Sleep rand(3600) seconds, and then fetch updates]' - '(install rollback)upgrade[Fetch files necessary for upgrading to a new release]' - '(upgrade rollback)install[Install the most recently fetched updates or upgrade]' - '(upgrade install)rollback[Uninstall the most recently installed updates]' + '(cron)fetch[fetch a compressed snapshot or update existing one]' + '(fetch)cron[sleep rand(3600) seconds, and then fetch updates]' + '(install rollback)upgrade[fetch files necessary for upgrading to a new release]' + '(upgrade rollback)install[install the most recently fetched updates or upgrade]' + '(upgrade install)rollback[uninstall the most recently installed updates]' ) _arguments -s \ - '-b[Operate on a system mounted at basedir]:basedir:_files -/' \ - '-d[Store working files in workdir]:workdir:_files -/' \ - '-f[Read configuration options from conffile]:conf file:_files' \ - '-k[Trust an RSA key with SHA256 of KEY]:RSA key:' \ - '-r[Specify the new release]:new release:' \ - '-s[Fetch files from the specified server or server pool]:server:_hosts' \ - '-f[Mail output of cron command, if any, to address]:address:' \ + '-b[operate on a system mounted at basedir]:basedir:_files -/' \ + '-d[store working files in workdir]:workdir:_files -/' \ + '-f[read configuration options from conffile]:conf file:_files' \ + '-k[trust an RSA key with SHA256 of KEY]:RSA key:' \ + '-r[specify the new release]:new release:' \ + '-s[fetch files from the specified server or server pool]:server:_hosts' \ + '-f[mail output of cron command, if any, to address]:address:' \ ':command:_values -S " " -w "commands" $flags[@]' diff -Nru zsh-4.3.10/Completion/BSD/Command/_fstat zsh-4.3.11/Completion/BSD/Command/_fstat --- zsh-4.3.10/Completion/BSD/Command/_fstat 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/BSD/Command/_fstat 2010-06-06 15:44:11.000000000 +0200 @@ -0,0 +1,15 @@ +#compdef fstat + +local pids +pids=(${${${(f)"$(/usr/bin/procstat -ah)"}/[[:space:]]#/}/[[:space:]]*[[:space:]](ELF[[:digit:]]#[[:space:]]|-[[:space:]]#)/:}) + +_arguments -s \ +'-f[restrict examination to files open in the same file systems as the named file arguments]' \ +'-M[extract values associated with the name list from the specified core]:core:_files' \ +'-N[extract the name list from the specified system]:system:' \ +'-m[include memory-mapped files in the listing]' \ +'-n[numerical format]' \ +'-p[report all files open by the specified process]:process id:(($pids))' \ +'-u[report all files open by the specified user]:user:_users' \ +'-v[verbose mode]' \ +'*:files:_files' diff -Nru zsh-4.3.10/Completion/BSD/Command/_pfctl zsh-4.3.11/Completion/BSD/Command/_pfctl --- zsh-4.3.10/Completion/BSD/Command/_pfctl 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/BSD/Command/_pfctl 2010-06-06 15:44:11.000000000 +0200 @@ -0,0 +1,96 @@ +#compdef pfctl + +local pfctl_flush_modifiers pfctl_optimizer_level pfctl_show_modifiers pfctl_tables_command pfctl_debug_level + +pfctl_flush_modifiers=( + 'all:flush all' + 'info:flush the filter information' + 'nat:flush the NAT rules' + 'osfp:flush the passive operating system fingerprints' + 'queue:flush the queue rules' + 'rules:flush the filter rules' + 'state:flush the stable table' + 'Sources:flush the source tracking table' + 'Tables:flush the tables' +) + +pfctl_show_modifiers=( + 'nat:show the currently loaded NAT rules' + 'queue:show the currently loaded queue rules' + 'rules:show the currently loaded filter rules' + 'Anchors:show the currently loaded anchors directly attached to the main ruleset' + 'state:show the contents of the state table' + 'Sources:show the contents of the source tracking table' + 'info:show filter information' + 'labels:show per-rule statistics of filter rules with labels' + 'timeouts:show the current global timeouts' + 'memory:show the current pool memory hard limits' + 'Tables:show the list of tables' + 'osfp:show the list of operating system fingerprints' + 'Interfaces:show the list of interfaces and interface drivers available to PF' + 'all:show all except for the lists of interfaces and operating system fingerprints' +) + +pfctl_optimizer_level=( + 'none:disable the ruleset optimizer' + 'basic:enable basic ruleset optimizations' + 'profile:enable basic ruleset optimizations with profiling' +) +pfctl_tables_command=( + 'kill:kill a table' + 'flush:flush all addresses of a table' + 'add:add one or more addresses in a table' + 'delete:delete one or more addresses from a table' + 'expire:delete addresses which had their statistics cleared more than number seconds ago' + 'replace:replace the addresses of the table' + 'show:show the content (addresses) of a table' + 'test:test if the given addresses match a table' + 'zero:clear all the statistics of a table' + 'load:load only the table definitions from pf.conf(5)' +) +pfctl_debug_level=( + "none:don\'t generate debug messages" + 'urgent:generate debug messages only for serious errors' + 'misc:generate debug messages for various errors' + 'loud:generate debug messages for common conditions' +) +_iface() { + local pfctl_iface + pfctl_iface=($(pfctl -s Interfaces)) + compadd $pfctl_iface +} +_tables() { + local pfctl_tables + pfctl_tables=($(pfctl -s Tables)) + compadd $pfctl_tables +} +# TODO: +# Missing -a +# +_arguments -s \ + '-F[flush the filter parameters specified by modifier]:modifier:(($pfctl_flush_modifiers))' \ + '-A[load only the queue rules present in the rule file]' \ + '-D[define macro to be set to value]:macro:' \ + '-d[disable the packet filter]' \ + '-e[enable the packet filter]' \ + '-f[load the rules contained in a file]:configuration file:_files' \ + '-g[include output helpful for debugging]' \ + '-h[help]' \ + '-i[restrict the operation to the given interface]:interface:_iface' \ + '-K[kill all of the source tracking entries originating from the specified host or network]:host or network:_hosts' \ + '-k[kill all of the state entries originating from the specified host or network]:host or network:_hosts' \ + '-m[merge in explicitly given options]' \ + '-N[load only the NAT rules present in the rule file]' \ + '-n[do not actually load rules, just parse them]' \ + '-O[load only the options present in the rule file]' \ + '-o[control the ruleset optimizer]:level:(($pfctl_optimizer_level))' \ + '-p[use the device file device instead of the default /dev/pf]:device:_files' \ + '-q[only print errors and warnings]' \ + '-R[load only the filter rules present in the rule file]' \ + '-r[perform reverse DNS lookups on states when displaying them]' \ + '-s[show the filter parameters specified by modifier]:modifier:(($pfctl_show_modifiers ))' \ + '-T[specify the command to apply to the table]:command:(($pfctl_tables_command))' \ + '-t[specify the name of the table]:table:_tables' \ + '-v[produce more verbose output]' \ + '-x[set the debug level]:debug level:(($pfctl_debug_level))' \ + '-z[clear per-rule statistics]' diff -Nru zsh-4.3.10/Completion/BSD/Command/_portaudit zsh-4.3.11/Completion/BSD/Command/_portaudit --- zsh-4.3.10/Completion/BSD/Command/_portaudit 2008-08-12 12:27:51.000000000 +0200 +++ zsh-4.3.11/Completion/BSD/Command/_portaudit 2010-06-06 15:44:11.000000000 +0200 @@ -1,14 +1,14 @@ #compdef portaudit _arguments -s \ - '-a[Vulnerability report for all installed packages]' \ - '-C[Vulnerability report for the port in the current working directory]'\ - '-d[Print creation date of the database]' \ - '-f[Check the packages listed in file]:file:_files' \ - '-F[Fetch the current database]' \ - '-q[Quiet mode]' \ - '-V[Show portaudit version number]'\ - '-v[Verbose mode]' \ - '-r[Restrict listed vulnerabilities with eregex pattern]:eregex:' \ - '-X[Download a fresh database]:days:'\ - ':pkg-name:_files' + '-a[vulnerability report for all installed packages]' \ + '-C[vulnerability report for the port in the current working directory]' \ + '-d[print creation date of the database]' \ + '-F[fetch the current database]' \ + '-q[quiet mode]' \ + '-V[show portaudit version number]'\ + '-v[verbose mode]' \ + '-X[download a fresh database from least days old]:days:' \ + '-f[check the packages listed in file]:file:_files' \ + '-r[restrict listed vulnerabilities with eregex pattern]:eregex:' \ + ':pkg-name:' diff -Nru zsh-4.3.10/Completion/BSD/Command/_portmaster zsh-4.3.11/Completion/BSD/Command/_portmaster --- zsh-4.3.10/Completion/BSD/Command/_portmaster 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/BSD/Command/_portmaster 2010-06-06 15:44:11.000000000 +0200 @@ -0,0 +1,112 @@ +#compdef portmaster + +_portmaster_pkgs() { + compadd "$@" - ${PKG_DBDIR:-/var/db/pkg}/*(/:t) +} + +_portmaster_ports() { + local ret=1 _fbsd_ports _fbsd_cat + _fbsd_cat=(${PORTSDIR:-/usr/ports}/[a-z]*(/:t)) + if [[ $PREFIX != */* ]] ; then + _wanted cat_packages expl 'category/ports' compadd -S '/' $_fbsd_cat + else + compset -P '*/' + _fbsd_ports=(${PORTSDIR:-/usr/ports}/$IPREFIX/*(/:t)) + _wanted cat_packages expl 'category/ports' compadd $_fbsd_ports + fi + return ret +} + +_portmaster_pkgs_and_ports() { + local ret=1 + _portmaster_pkgs && ret=0 + _portmaster_ports && ret=0 + + return ret +} + +_portmaster() { + local specific_args common_args expunge_args standalone_args kid + standalone_args=( + '--clean-distfiles[delete distfiles not associated with an installed ports: interactive]' + '--clean-distfiles-all[delete distfiles not associated with an installed ports]' + '--check-depends[cross-check and update dependency information for all ports]' + '--check-port-dbdir[check for stale entries in /var/db/ports]' + '--list-origins[list directories from /usr/ports for root and leaf ports]' + '-l[list all installed ports by category]' + '-L[list all installed ports by category, and search for updates]' + {'(-help)-h','(-h)--help'}'[display help message]:' + '--version[display the version only]:' + ) + specific_args=( + '(-s -r -o)-e[expunge port using pkg_delete, and remove all distfiles]:name of port:_portmaster_pkgs' + '(-e -r -o)-s[clean out stale ports that used to be depended on]' + '(-e -s -o)-r[rebuild the specified port, and all ports that depend on it]:name/glob of port:_portmaster_pkgs' + '(-e -s -r)-o[replace the installed port with a port from a different origin]:new port dir:_portmaster_ports' + ) + expunge_args=( + '(-b)-B[prevents creation of the backup package for the installed port]' + '(-d)-D[no cleaning of distfiles]' + '(-D)-d[always clean distfiles]' + ) + common_args=( + "(-G)--force-config[run 'make config' for all ports]" + "-C[prevents 'make clean' from being run before building]" + '-H[hide details of the port build and install in a log file]' + "-K[prevents 'make clean' from being run after building]" + '(-B)-b[create and keep a backup package of an installed port]' + '-g[create a package of the new port]' + '-n[run through configure, but do not make or install any ports]' + '-t[recurse dependencies thoroughly, using all-depends-list]' + '-v[verbose output]' + '-w[save old shared libraries before deinstall]' + '-u[unattended mode]' + '(-i)-f[always rebuild ports]' + '(-f)-i[interactive update mode]' + '-m[any arguments to supply to make]:arguments for make:' + '-x[avoid building or updating ports that match this pattern]:glob pattern to exclude from building:' + '-p[specify the full path to a port directory]:a port directory:' + '--show-work[show what dependent ports are, and are not installed]' + '-R[restart an update, skipping ports already up to date]' + '-a[check all ports, update as necessary]' + '-F[fetch distfiles only]' + $expunge_args + $specific_args + ) + if (( CURRENT == 2 ));then + _arguments -s \ + $standalone_args \ + $common_args \ + '*:packages and ports:_portmaster_pkgs_and_ports' + else + case "$words[2]" in + --clean-distfiles|--clean-distfiles-all|--check-depends|--check-port-dbdir|--version|-help|-h) + return 0 + ;; + *) + if (( $words[(I)-(e|r)] ));then + _arguments -s \ + '*:packages:_portmaster_pkgs' + elif (( kid=$words[(I)-o] ));then + if (( CURRENT == $kid + 1 ));then + _arguments -s \ + '*:ports replacing:_portmaster_ports' + elif (( CURRENT == $kid + 2 )); then + _arguments -s \ + '*:package to replace:_portmaster_pkgs' + else + return 0 + fi + elif (( $words[(I)-s] ));then + return 0 + else + _arguments -s \ + $common_args \ + '*:packages and ports:_portmaster_pkgs_and_ports' + fi + ;; + esac + fi + } + + _portmaster "$@" diff -Nru zsh-4.3.10/Completion/BSD/Command/_portsnap zsh-4.3.11/Completion/BSD/Command/_portsnap --- zsh-4.3.10/Completion/BSD/Command/_portsnap 2008-08-12 12:28:11.000000000 +0200 +++ zsh-4.3.11/Completion/BSD/Command/_portsnap 2010-06-06 15:44:11.000000000 +0200 @@ -4,20 +4,20 @@ typeset -A opt_args flags=( - '(cron)fetch[Fetch a compressed snapshot or update existing one]' - '(fetch)cron[Sleep rand(3600) seconds, and then fetch updates]' - '(update)extract[Extract snapshot, replacing existing files and dirs]' - '(extract)update[Update ports tree to match current snapshot]' + '(cron)fetch[fetch a compressed snapshot or update existing one]' + '(fetch)cron[sleep rand(3600) seconds, and then fetch updates]' + '(update)extract[extract snapshot, replacing existing files and dirs]' + '(extract)update[update ports tree to match current snapshot]' ) _arguments -C -s \ - '-d[Store working files in workdir]:workdir:_files -/' \ - '-f[Read configuration options from conffile]:conf file:_files' \ - '-I[Update INDEX only. (update command only)]' \ - '-k[Trust an RSA key with SHA256 hash of KEY]:RSA key:_files' \ - '-l[Merge the specified local describes file into the INDEX]:file:_files' \ - '-p[Location of uncompressed ports tree]:uncompressed ports tree:_files -/' \ - '-s[Server from which to fetch updates]:server:_hosts' \ + '-d[store working files in workdir]:workdir:_files -/' \ + '-f[read configuration options from conffile]:conf file:_files' \ + '-I[update INDEX only. (update command only)]' \ + '-k[trust an RSA key with SHA256 hash of KEY]:RSA key:_files' \ + '-l[merge the specified local describes file into the INDEX]:file:_files' \ + '-p[location of uncompressed ports tree]:uncompressed ports tree:_files -/' \ + '-s[server from which to fetch updates]:server:_hosts' \ '*:principal:->principal' && ret=0 if [[ $state == principal ]]; then diff -Nru zsh-4.3.10/Completion/BSD/Command/_powerd zsh-4.3.11/Completion/BSD/Command/_powerd --- zsh-4.3.10/Completion/BSD/Command/_powerd 2008-08-12 12:27:51.000000000 +0200 +++ zsh-4.3.11/Completion/BSD/Command/_powerd 2010-06-06 15:44:11.000000000 +0200 @@ -3,11 +3,11 @@ local powerd_mode powerd_mode=(minimum maximum adaptative) _arguments -s \ - "-a[Mode to use while on AC power]:mode:($powerd_mode)" \ - "-b[Mode to use while on battery power]:mode:($powerd_mode)" \ + "-a[mode to use while on AC power]:mode:($powerd_mode)" \ + "-b[mode to use while on battery power]:mode:($powerd_mode)" \ '-i[CPU idle percent level when begin to degrade performance]:percent:' \ "-n[mode to use normally when the AC line state is unknown]:mode:($powerd_mode)" \ '-p[polling interval (in milliseconds) for AC line state and system idle levels]:interval:' \ - '-P[Alternative pidfile]:pidfile:_files' \ + '-P[alternative pidfile]:pidfile:_files' \ '-r[CPU idle percent level where to increase performance]:percent:' \ - '-v[Verbose mode]' + '-v[verbose mode]' diff -Nru zsh-4.3.10/Completion/BSD/Command/_procstat zsh-4.3.11/Completion/BSD/Command/_procstat --- zsh-4.3.10/Completion/BSD/Command/_procstat 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/BSD/Command/_procstat 2010-06-06 15:44:11.000000000 +0200 @@ -0,0 +1,17 @@ +#compdef procstat + +local pids +#get list of pids and associated process name as comment +pids=(${${${(f)"$(/usr/bin/procstat -ah)"}/[[:space:]]#/}/[[:space:]]*[[:space:]](ELF[[:digit:]]#[[:space:]]|-[[:space:]]#)/:}) + +_arguments -s \ +'-b[display binary information for the process]' \ +'-c[display command line arguments for the process]' \ +'-f[display file descriptor information for the process]' \ +'-k[display the stacks of kernel threads in the process]' \ +'-s[display security credential information for the process]' \ +'-t[display thread information for the process]' \ +'-v[display virtual memory mappings for the process]' \ +'-h[suppress table headers]' \ +'-a[all processes]' \ +':process id:(($pids))' diff -Nru zsh-4.3.10/Completion/compinit zsh-4.3.11/Completion/compinit --- zsh-4.3.10/Completion/compinit 2008-09-04 14:34:21.000000000 +0200 +++ zsh-4.3.11/Completion/compinit 2010-12-06 17:02:28.000000000 +0100 @@ -230,6 +230,10 @@ compdef() { local opt autol type func delete new i ret=0 cmd svc + local -a match mbegin mend + + emulate -L zsh + setopt extendedglob # Get the options. @@ -364,10 +368,18 @@ else case "$type" in pattern) - _patcomps[$1]="$func" + if [[ $1 = (#b)(*)=(*) ]]; then + _patcomps[$match[1]]="=$match[2]=$func" + else + _patcomps[$1]="$func" + fi ;; postpattern) - _postpatcomps[$1]="$func" + if [[ $1 = (#b)(*)=(*) ]]; then + _postpatcomps[$match[1]]="=$match[2]=$func" + else + _postpatcomps[$1]="$func" + fi ;; *) if [[ "$1" = *\=* ]]; then @@ -440,7 +452,7 @@ (( $#_i_wdirs )) && _i_files=( "${(@)_i_files:#(${(j:|:)_i_wdirs%.zwc})/*}" ) fi fi - _comp_secure=yes + typeset -g _comp_secure=yes fi fi diff -Nru zsh-4.3.10/Completion/Darwin/Command/_open zsh-4.3.11/Completion/Darwin/Command/_open --- zsh-4.3.10/Completion/Darwin/Command/_open 2004-11-12 12:35:07.000000000 +0100 +++ zsh-4.3.11/Completion/Darwin/Command/_open 2010-06-06 15:44:11.000000000 +0200 @@ -13,7 +13,7 @@ _arguments -C \ '-a[specify application]: :->open_mac_applications' \ '-e[open with TextEdit]' \ - '-f[Reads input from standard input and opens with TextEdit]' \ + '-f[reads input from standard input and opens with TextEdit]' \ '*: :->open_files' case "$state" in diff -Nru zsh-4.3.10/Completion/Darwin/Command/_softwareupdate zsh-4.3.11/Completion/Darwin/Command/_softwareupdate --- zsh-4.3.10/Completion/Darwin/Command/_softwareupdate 2005-03-03 20:58:58.000000000 +0100 +++ zsh-4.3.11/Completion/Darwin/Command/_softwareupdate 2010-06-06 15:44:11.000000000 +0200 @@ -36,7 +36,7 @@ _arguments -R \ '(-h --help -l --list)-q[quiet mode]' \ - {-l,--list}'[List all available updates]:*:' \ + {-l,--list}'[list all available updates]:*:' \ {-d,--download}'[download to directory set in InternetConfig]:*:' \ {-i,--install}'[install (requires root)]:*: :->install' \ '--ignored[show or manage ignored updates list (per-user)]:*:: :->ignored' \ diff -Nru zsh-4.3.10/Completion/Debian/Command/_apt zsh-4.3.11/Completion/Debian/Command/_apt --- zsh-4.3.10/Completion/Debian/Command/_apt 2009-04-24 11:00:11.000000000 +0200 +++ zsh-4.3.11/Completion/Debian/Command/_apt 2010-02-21 19:00:03.000000000 +0100 @@ -403,6 +403,7 @@ -V,--verbose-versions:bool \ -m,--ignore-missing,--fix-missing:bool \ --no-download:bool \ + --no-install-recommends:bool \ --ignore-hold:bool \ --no-upgrade:bool \ --force-yes:bool \ diff -Nru zsh-4.3.10/Completion/Debian/Command/_apt-file zsh-4.3.11/Completion/Debian/Command/_apt-file --- zsh-4.3.10/Completion/Debian/Command/_apt-file 2006-12-17 16:33:27.000000000 +0100 +++ zsh-4.3.11/Completion/Debian/Command/_apt-file 2010-06-06 15:44:12.000000000 +0200 @@ -24,10 +24,10 @@ case $state in cmds) cmds=( - 'update:Resynchronize package contents' - 'search:Search in which package file is included' - 'list:List contents of a package' - 'show:Alias for list' + 'update:resynchronize package contents' + 'search:search in which package file is included' + 'list:list contents of a package' + 'show:alias for list' 'purge:remove all Contents-.gz files in cache directory' ) _describe -t commands 'apt-list command' cmds && ret=0 diff -Nru zsh-4.3.10/Completion/Debian/Command/_aptitude zsh-4.3.11/Completion/Debian/Command/_aptitude --- zsh-4.3.10/Completion/Debian/Command/_aptitude 2009-01-26 10:47:23.000000000 +0100 +++ zsh-4.3.11/Completion/Debian/Command/_aptitude 2009-08-01 06:49:31.000000000 +0200 @@ -54,7 +54,7 @@ search) _message -e patterns pattern ;; - (download|show|changelog|why|why-not|build-dep) + (download|show|changelog|why|why-not|build-dep|build-depends) _deb_packages avail && ret=0 ;; (remove|purge|hold|unhold|reinstall|forbid-version|markauto|unmarkauto) diff -Nru zsh-4.3.10/Completion/Debian/Command/_axi-cache zsh-4.3.11/Completion/Debian/Command/_axi-cache --- zsh-4.3.10/Completion/Debian/Command/_axi-cache 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/Debian/Command/_axi-cache 2010-04-12 15:23:33.000000000 +0200 @@ -0,0 +1,29 @@ +#compdef axi-cache + +local expl + +_arguments \ + '--version[version]' \ + '(-h --help)'{-h,--help}'[help]' \ + '(-s --sort)'{-s,--sort=}':sort value:('${(j: :)${${(M)${(f)"$(args' && return 0 + +if (( CURRENT == 2 )); then + _wanted tag expl 'axi-cache commands' \ + compadd help search more last show again +else + case "$words[2]" in + (search|show|again) + _wanted tag expl 'terms/query' \ + compadd -- $($service $words[2] --tabcomplete=plain -- $words[CURRENT]) + ;; + (more|last) + _wanted tag expl 'count' \ + compadd -- 1 2 3 4 5 6 7 8 9 0 + ;; + (*) + _files + ;; + esac +fi diff -Nru zsh-4.3.10/Completion/Debian/Command/_bts zsh-4.3.11/Completion/Debian/Command/_bts --- zsh-4.3.10/Completion/Debian/Command/_bts 2008-10-27 12:31:02.000000000 +0100 +++ zsh-4.3.11/Completion/Debian/Command/_bts 2010-04-28 14:16:59.000000000 +0200 @@ -26,7 +26,7 @@ reassign merge unmerge tag tags severity forwarded notforwarded help \ clone submitter found notfound block unblock user usertag usertags \ package owner noowner reportspam cache cleancache claim unclaim \ - subscribe unsubscribe + subscribe unsubscribe fixed notfixed affects return fi @@ -147,7 +147,7 @@ _wanted sep expl 'separator' compadd -S ' ' , . fi ;; - (found|notfound) + (found|notfound|fixed|notfixed) if [[ CURRENT -eq 2 ]]; then _message -e bugnum 'bug number' elif [[ CURRENT -eq 3 ]]; then @@ -216,6 +216,15 @@ _wanted sep expl 'separator' compadd -S ' ' , . fi ;; + (affects) + if [[ CURRENT -eq 2 ]]; then + _message -e bugnum 'bug number' + elif [[ CURRENT -eq 3 ]]; then + _wanted operator expl 'operator' compadd - '+' '-' '=' + else + _wanted package expl 'package' _deb_packages avail + fi + ;; help) ;& *) _wanted sep expl 'separator' compadd -S ' ' , . diff -Nru zsh-4.3.10/Completion/Debian/Command/_bug zsh-4.3.11/Completion/Debian/Command/_bug --- zsh-4.3.10/Completion/Debian/Command/_bug 2005-06-15 13:04:43.000000000 +0200 +++ zsh-4.3.11/Completion/Debian/Command/_bug 2009-12-10 21:49:39.000000000 +0100 @@ -41,7 +41,6 @@ '(-x --no-cc)'{-x,--no-cc}'[do not cc submitter]' \ '(-z --no-compress)'{-z,--no-compress}'[send configs verbatim]' \ '(-a --af)'{-a,--af}'[use af instead of editor]' \ - '(-b --no-bts-query)'{-b,--no-bts-query}'[do not check bts]' \ '(-g --gpg --gnupg)'{-g,--gpg,--gnupg}'[sign report with GnuPG]' \ '(-i --include)'{-i,--include}'[include text]:include file:_files' \ '(-A --attach)'{-A,--attach=}'[attach file]:attachment:_files' \ @@ -82,13 +81,17 @@ '--list-cc=:carbon copy:' \ '--report-quiet' \ '(-O --offline)'{-O,--offline}'[disable external queries]' \ - '(-n --no-query-bts --query-bts)'{-b,--no-query-bts}'[do not query BTS]' \ + '(-b --no-query-bts --query-bts)'{-b,--no-query-bts}'[do not query BTS]' \ '(-b --no-query-bts)--query-bts' \ '(-T --tags)'{-T,--tags=}'[add specified tags]:tags' \ '(-m)--maintonly' \ '(-d)--debug' \ '--version' \ '--license' \ + '(--no-paranoid)--paranoid' \ + '(--paranoid)--no-paranoid' \ + '--body=:message body string' \ + '--body-file=:message body file:_files' \ "$_bug_commonargs[@]" \ "$_rb_commonargs[@]" ;; diff -Nru zsh-4.3.10/Completion/Debian/Command/.distfiles zsh-4.3.11/Completion/Debian/Command/.distfiles --- zsh-4.3.10/Completion/Debian/Command/.distfiles 2008-08-11 10:38:10.000000000 +0200 +++ zsh-4.3.11/Completion/Debian/Command/.distfiles 2010-12-16 11:12:00.000000000 +0100 @@ -1,19 +1,52 @@ DISTFILES_SRC=' .distfiles -_a2utils _apt _apt-file -_aptitude _apt-move _apt-show-versions -_auto-apt _bts _bug -_cdbs-edit-patch _dak _dchroot -_dchroot-dsa _debchange _debdiff -_debfoster _debsign _dlocate -_dpatch-edit-patch _dpkg _dpkg-buildpackage -_dpkg-cross _dpkg-repack _dpkg_source -_dput _dupload _invoke-rc.d -_lighttpd _linda _lintian -_madison _make-kpkg _members -_mergechanges _module-assistant _piuparts -_reprepro _schroot _svn-buildpackage -_toolchain-source _update-alternatives _update-rc.d -_uscan _wajig _wanna-build +_a2utils +_apt +_apt-file +_aptitude +_apt-move +_apt-show-versions +_auto-apt +_axi-cache +_bts +_bug +_cdbs-edit-patch +_dak +_dchroot +_dchroot-dsa +_debchange +_debdiff +_debfoster +_debsign +_dlocate +_dpatch-edit-patch +_dpkg +_dpkg-buildpackage +_dpkg-cross +_dpkg-repack +_dpkg_source +_dput +_dupload +_git-buildpackage +_invoke-rc.d +_lighttpd +_linda +_lintian +_madison +_make-kpkg +_members +_mergechanges +_module-assistant +_pbuilder +_piuparts +_reprepro +_schroot +_svn-buildpackage +_toolchain-source +_update-alternatives +_update-rc.d +_uscan +_wajig +_wanna-build _vim-addons _grep-excuses ' diff -Nru zsh-4.3.10/Completion/Debian/Command/_dpkg zsh-4.3.11/Completion/Debian/Command/_dpkg --- zsh-4.3.10/Completion/Debian/Command/_dpkg 2008-02-22 15:37:41.000000000 +0100 +++ zsh-4.3.11/Completion/Debian/Command/_dpkg 2010-09-16 03:02:27.000000000 +0200 @@ -120,7 +120,7 @@ "$_dpkg_deb_and_query_only_options[@]" && return 0 ;; dpkg-reconfigure) - _arguments -sw \ + _arguments -s -w \ '(-f --frontend)'{-f,--frontend}'[select frontend to use]:frontend:(dialog readline noninteractive gnome kde editor web)' \ '(-p --priority)'{-p,--priority}'[specify min priority of questions]:priority:(low medium high critical)' \ '--default-priority[use default question priority]' \ diff -Nru zsh-4.3.10/Completion/Debian/Command/_dput zsh-4.3.11/Completion/Debian/Command/_dput --- zsh-4.3.10/Completion/Debian/Command/_dput 2007-08-20 10:40:43.000000000 +0200 +++ zsh-4.3.11/Completion/Debian/Command/_dput 2009-12-13 00:26:31.000000000 +0100 @@ -5,7 +5,7 @@ '(-c --config)'{-c,--config}'[specify config file]:config file:_files' \ '(-d --debug)'{-d,--debug}'[debug mode]' \ '(-D --dinstall)'{-D,--dinstall}'[run dinstall after upload]' \ - '(-e --delayed)'{-E,--delayed}'number of days in delayed queue:(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)' \ + '(-e --delayed)'{-E,--delayed}'[number of days in delayed queue]:number of days:(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)' \ '(-f --force)'{-f,--force}'[force upload of already uploaded package]' \ '(-H --host-list)'{-H,--host-list}'[display host list]' \ '(-l --lintian)'{-l,--lintian}'[run lintian before upload]' \ diff -Nru zsh-4.3.10/Completion/Debian/Command/_git-buildpackage zsh-4.3.11/Completion/Debian/Command/_git-buildpackage --- zsh-4.3.10/Completion/Debian/Command/_git-buildpackage 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/Debian/Command/_git-buildpackage 2010-11-10 17:13:52.000000000 +0100 @@ -0,0 +1,42 @@ +#compdef git-buildpackage + +_arguments \ + '--version[show program version number and exit]' \ + '--help[show help message and exit]' \ + '--git-ignore-new[build with uncommited changes in the source tree]' \ + '--git-no-ignore-new[negates --git-ignore-new]' \ + '--git-verbose[verbose command execution]' \ + '--git-tag[create a tag after a successful build]' \ + '--git-tag-only[do not build, only tag and run the posttag hook]' \ + '--git-retag[do not fail if the tag already exists]' \ + '--git-sign-tags[sign tags]' \ + '--git-no-sign-tags[negates --git-sign-tags]' \ + '--git-keyid=-[GPG keyid to sign tags with]:GPG key:' \ + '--git-debian-tag=-[format string for debian tags]:default is debian/%(version)s:' \ + '--git-upstream-tag=-[format string for upstream tags]:default is upstream/%(version)s:' \ + '--git-pristine-tar[use pristine-tar to create .orig.tar.gz]' \ + '--git-no-pristine-tar[negates --git-pristine-tar]' \ + '--git-force-create[force creation of orig.tar.gz]' \ + '--git-no-create-orig[do not create orig.tar.gz]' \ + '--git-tarball-dir=-[location to look for external tarballs]:tarball directory:_files -/' \ + '--git-compression=-[compression type]:compression:(auto gzip bzip2 lzma xz)' \ + '--git-compression-level=-[set compression level]:level:(1 2 3 4 5 6 7 8 9)' \ + '--git-upstream-branch=-[upstream branch]::' \ + '--git-debian-branch=-[branch the Debian package is being developed on]::' \ + '--git-ignore-branch[build although debian-branch != current branch]' \ + '--git-no-ignore-branch[negates --git-ignore-branch]' \ + '--git-builder=-[command to build the Debian package]:command:' \ + '--git-cleaner=-[command to clean the working copy]:command:' \ + '--git-prebuild=-[command to run before a build]:command:' \ + '--git-postbuild=-[hook run after a successful build]:command:' \ + '--git-posttag=-[hook run after a successful tag operation]:command:' \ + '--git-pbuilder[Invoke git-pbuilder for building]' \ + '--git-no-pbuilder[negates --git-pbuilder]' \ + '--git-dist=-[build for this distribution when using git-pbuilder]:distribution:' \ + '--git-arch=-[build for this architecture when using git-pbuilder]:architecture:' \ + '--git-export-dir=-[before building the package export the source into this directory]:directory:_files -/' \ + '--git-export=-[export treeish object instead of HEAD]:treeish:' \ + '--git-dont-purge[retain exported package build directory]' \ + '--git-overlay[extract orig tarball when using export-dir option]' \ + '--git-no-overlay[negates --git-overlay]' \ + '*:Other options:_dpkg-buildpackage' diff -Nru zsh-4.3.10/Completion/Debian/Command/_pbuilder zsh-4.3.11/Completion/Debian/Command/_pbuilder --- zsh-4.3.10/Completion/Debian/Command/_pbuilder 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/Debian/Command/_pbuilder 2010-02-22 01:35:36.000000000 +0100 @@ -0,0 +1,32 @@ +#compdef pbuilder + +local expl + +if (( CURRENT == 2 )); then + _wanted tag expl 'pbuilder command' \ + compadd create update build execute clean login dumpconfig debuild \ + --create --update --build --execute --clean --login --dumpconfig --debuild +else + compset -n 1 + _arguments \ + '--basetgz:location:_files -g "*.tgz"' \ + '--buildplace:location:_files -/' \ + '--buildresult:location:_files -/' \ + '--mirror:URL:_urls' \ + '--othermirror:URL:_urls' \ + '--distribution:suite:(breezy dapper edgy etch feisty gutsy hardy hoary intrepid jaunty karmic lenny lucid potato sarge sid squeeze warty woody' \ + '--architecture:architecture:(alpha amd64 armel hppa hurd-i386 i386 ia64 m68k mips mipsel powerpc s390 sparc)' \ + '--components:component:(main contrib non-free)' \ + '--override-config' \ + '--hookdir:location:_files -/' \ + '--debbuildopts:dpkg-buildpackage options:' \ + '--logfile:log file:_files' \ + '--binary-arch' \ + '--bindmounts:bind mountpoints:_files -/' \ + '--debootstrapopts:debootstrap options:' \ + '--debootstrap:debootstrap implementation:(debootstrap cdebootstrap)' \ + '--save-after-login' \ + '--save-after-exec' \ + '--autocleanaptcache' \ + '*:source package:_files -g "*.dsc"' +fi diff -Nru zsh-4.3.10/Completion/Linux/Command/_analyseplugin zsh-4.3.11/Completion/Linux/Command/_analyseplugin --- zsh-4.3.10/Completion/Linux/Command/_analyseplugin 2006-04-05 04:03:58.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_analyseplugin 2010-06-06 15:44:12.000000000 +0200 @@ -4,7 +4,7 @@ typeset -A opt_args _arguments \ - '-l[Gives a brief listing (one line per plugin)]' \ + '-l[gives a brief listing (one line per plugin)]' \ '(-)1:plugin file:->pfile' \ '(-)2::plugin label:->plabel' && ret=0 diff -Nru zsh-4.3.10/Completion/Linux/Command/_ethtool zsh-4.3.11/Completion/Linux/Command/_ethtool --- zsh-4.3.10/Completion/Linux/Command/_ethtool 2009-04-16 11:16:47.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_ethtool 2010-06-06 15:44:12.000000000 +0200 @@ -24,29 +24,29 @@ ;; advertise) _values 'hexidecimal value (or a combination of the following)' \ - '0x001[10 Half]' \ - '0x002[10 Full]' \ - '0x004[100 Half]' \ - '0x008[100 Full]' \ - '0x010[1000 Half(not supported by IEEE standards)]' \ - '0x020[1000 Full]' \ - '0x8000[2500 Full(not supported by IEEE standards)]' \ - '0x800[10000 Full]' \ - '0x03F[Auto]' + '0x001[10 half]' \ + '0x002[10 full]' \ + '0x004[100 half]' \ + '0x008[100 full]' \ + '0x010[1000 half(not supported by IEEE standards)]' \ + '0x020[1000 full]' \ + '0x8000[2500 full(not supported by IEEE standards)]' \ + '0x800[10000 full]' \ + '0x03F[auto]' ;; xcvr) _wanted -x xcvr expl 'transceiver type' compadd internal external ;; wol) _values -s '' 'Wake-on-LAN options' \ - '(d)p[Wake on phy activity]' \ - '(d)u[Wake on unicast messages]' \ - '(d)m[Wake on multicast messages]' \ - '(d)b[Wake on broadcast messages]' \ - '(d)a[Wake on ARP]' \ - '(d)g[Wake on MagicPacket(tm)]' \ - '(d)s[Enable SecureOn(tm) password for MagicPacket(tm)]' \ - '(p u m b a g s)d[Disable (wake on nothing)]' + '(d)p[wake on phy activity]' \ + '(d)u[wake on unicast messages]' \ + '(d)m[wake on multicast messages]' \ + '(d)b[wake on broadcast messages]' \ + '(d)a[wake on ARP]' \ + '(d)g[wake on MagicPacket(tm)]' \ + '(d)s[enable SecureOn(tm) password for MagicPacket(tm)]' \ + '(p u m b a g s)d[disable (wake on nothing)]' ;; sopass) _message -e secureon 'password - 6 bytes in ethernet MAC hex format (xx:yy:zz:aa:bb:cc)' @@ -58,9 +58,9 @@ case $words[2]; in -A|--pause) _values -S ' ' -w 'pause options' \ - 'autoneg[Specify if pause autonegotiation is enabled]' \ - 'rx[Specify if RX pause is enabled]' \ - 'tx[Specify if TX pause is enabled]' + 'autoneg[specify if pause autonegotiation is enabled]' \ + 'rx[specify if RX pause is enabled]' \ + 'tx[specify if TX pause is enabled]' ;; -C|--coalesce) _values -S ' ' -w 'coalescing settings' \ @@ -78,10 +78,10 @@ ;; -G|--set-ring) _values -S ' ' -w 'ring parameters' \ - 'rx[Change number of ring entries for the RX ring]' \ - 'rx-mini[Change number of ring entries for the RX Mini ring]' \ - 'rx-jumbo[Change number of ring entries for the RX Jumbo ring]' \ - 'tx[Change number of ring entries for the TX ring]' + 'rx[change number of ring entries for the RX ring]' \ + 'rx-mini[change number of ring entries for the RX Mini ring]' \ + 'rx-jumbo[change number of ring entries for the RX Jumbo ring]' \ + 'tx[change number of ring entries for the TX ring]' ;; -d|--register-dump) _values -S ' ' -w 'register dump options' \ @@ -103,12 +103,12 @@ ;; -K|--offload) _values -S ' ' -w 'offload options' \ - 'rx[Specify if RX checksumming is enabled]' \ - 'tx[Specify if TX checksumming is enabled]' \ - 'sg[Specify if scatter-gather is enabled]' \ - 'tso[Specify if TCP segmentation offload is enabled]' \ - 'ufo[Specify if UDP segmentation offload is enabled]' \ - 'gso[Specify if generic segmentation offload is enabled]' + 'rx[specify if RX checksumming is enabled]' \ + 'tx[specify if TX checksumming is enabled]' \ + 'sg[specify if scatter-gather is enabled]' \ + 'tso[specify if TCP segmentation offload is enabled]' \ + 'ufo[specify if UDP segmentation offload is enabled]' \ + 'gso[specify if generic segmentation offload is enabled]' ;; -p|--identify) if [[ $CURRENT -eq 4 ]] && _message -e length 'seconds' @@ -120,16 +120,16 @@ ;; -s|--change) _values -S ' ' -w 'change setting' \ - 'speed[Set speed in Mb/s]' \ - 'duplex[Set full or half duplex mode]' \ - 'port[Select device port]' \ - 'autoneg[Specify if autonegotiation is enabled]' \ - 'advertise[Set the speed and duplex advertised by autonegotiation]' \ + 'speed[set speed in Mb/s]' \ + 'duplex[set full or half duplex mode]' \ + 'port[select device port]' \ + 'autoneg[specify if autonegotiation is enabled]' \ + 'advertise[set the speed and duplex advertised by autonegotiation]' \ 'phyad[PHY address]' \ - 'xcvr[Select transceiver type]' \ - 'wol[Set Wake-on-LAN options]' \ - 'sopass[Set the SecureOn(tm) password]' \ - 'msglvl[Set the driver message level]' + 'xcvr[select transceiver type]' \ + 'wol[set Wake-on-LAN options]' \ + 'sopass[set the SecureOn(tm) password]' \ + 'msglvl[set the driver message level]' ;; esac ;; @@ -153,7 +153,7 @@ "($cmds)"{-i,--driver}'[queries the specified ethernet device for associated driver information]' \ "($cmds)"{-d,--register-dump}'[retrieves and prints a register dump for the specified ethernet device]' \ "($cmds)"{-e,--eeprom-dump}'[retrieves and prints an EEPROM dump for the specified ethernet device]' \ - "($cmds)"{-E,--change-eeprom}'[Changes EEPROM byte for the specified ethernet device]' \ + "($cmds)"{-E,--change-eeprom}'[changes EEPROM byte for the specified ethernet device]' \ "($cmds)"{-k,--show-offload}'[queries the specified ethernet device for offload information]' \ "($cmds)"{-K,--offload}'[change the offload parameters of the specified ethernet device]' \ "($cmds)"{-p,--identify}'[initiates adapter-specific action intended to identify the adapter by sight]' \ diff -Nru zsh-4.3.10/Completion/Linux/Command/_ionice zsh-4.3.11/Completion/Linux/Command/_ionice --- zsh-4.3.10/Completion/Linux/Command/_ionice 2008-10-03 10:39:32.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_ionice 2010-01-07 14:55:25.000000000 +0100 @@ -3,8 +3,8 @@ _arguments \ '(* -)-h[display usage information]' \ '(*)-p[interpret args as process ID]:pid:_pids' \ - '-c[scheduling class]:class:(( 1\:realtime 2\:best-effort 3\:idle ))' \ - '-n[scheduling class priority]:class-priority:(( + '-c+[scheduling class]:class:(( 1\:realtime 2\:best-effort 3\:idle ))' \ + '-n+[scheduling class priority]:class-priority:(( 0\:high\ priority {6..1}\: 7\:low\ priority diff -Nru zsh-4.3.10/Completion/Linux/Command/_ipset zsh-4.3.11/Completion/Linux/Command/_ipset --- zsh-4.3.10/Completion/Linux/Command/_ipset 2009-04-16 11:24:26.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_ipset 2010-06-06 15:44:12.000000000 +0200 @@ -5,17 +5,17 @@ _set_types () { _values -S \ "Set type" \ - 'ipmap[Up to 65536 IP addresses]' \ - 'macipmap[Up to 65536 IP addresses with MAC]' \ - 'portmap[Up to 65536 ports]' \ - 'iphash[Hash of IP addresses]' \ - 'nethash[Hash of network addresses]' \ - 'ipporthash[Hash of IP address and port pairs]' \ - 'ipportiphash[Hash of IP address,port and IP address triples]' \ - 'ipportnethash[Hash of IP address,port and network address triples]' \ - 'iptree[Tree of IP addresses, optionally with timeout]' \ - 'iptreemap[Tree of IP addresses or networks]' \ - 'setlist[List of sets]' + 'ipmap[up to 65536 IP addresses]' \ + 'macipmap[up to 65536 IP addresses with MAC]' \ + 'portmap[up to 65536 ports]' \ + 'iphash[hash of IP addresses]' \ + 'nethash[hash of network addresses]' \ + 'ipporthash[hash of IP address and port pairs]' \ + 'ipportiphash[hash of IP address,port and IP address triples]' \ + 'ipportnethash[hash of IP address,port and network address triples]' \ + 'iptree[tree of IP addresses, optionally with timeout]' \ + 'iptreemap[tree of IP addresses or networks]' \ + 'setlist[list of sets]' } if [[ $words[2] = (-q|--quiet) ]]; then @@ -50,9 +50,9 @@ '(--network)--to[to IP or network (with --netmask)]:IP' '(--from --to)--network[network]:IP/mask' ) -hash=( '--hashsize[The initial hash size (default 1024)]:hash size' - '--probes[Max number of tries to resolve clashing (default 8)]:probes' - '--resize[Ratio of increasing hash size after unsuccessful number of double-hashing]:percent' +hash=( '--hashsize[the initial hash size (default 1024)]:hash size' + '--probes[max number of tries to resolve clashing (default 8)]:probes' + '--resize[ratio of increasing hash size after unsuccessful number of double-hashing]:percent' ) case $words[offset+2]; in @@ -65,7 +65,7 @@ ;; macipmap) args=( $from_to - '--matchunset[Always match IP addresses which could be stored in the set but are not]' + '--matchunset[always match IP addresses which could be stored in the set but are not]' ) ;; portmap) @@ -85,21 +85,21 @@ args=( $from_to $hash ) ;; iptree) - args=( '--timeout[Timeout value for the entries in seconds (default 0)]:timeout' ) + args=( '--timeout[timeout value for the entries in seconds (default 0)]:timeout' ) ;; iptreemap) - args=( '--gc[Garbage collection inverval (default 300 seconds)]:timeout' ) + args=( '--gc[garbage collection inverval (default 300 seconds)]:timeout' ) ;; setlist) - args=( '--size[Size of the new setlist (default 8)]:size' ) + args=( '--size[size of the new setlist (default 8)]:size' ) ;; esac ;; -T|--test) - args=( '(-b --binding)'{-b,--binding}'[Test wether '$words[offset+4]' points to the specified binding]:::_ipsets' ) + args=( '(-b --binding)'{-b,--binding}'[test whether '$words[offset+4]' points to the specified binding]:::_ipsets' ) ;; -B|--bind) - args=( '(-b --binding)'{-b,--binding}'[Value of the binding]:::_ipsets' ) + args=( '(-b --binding)'{-b,--binding}'[value of the binding]:::_ipsets' ) ;; esac @@ -139,25 +139,25 @@ listopts=(-n --numeric -s --sorted -L --list -nL -sL -nsL -snL -ns -sn) _arguments \ - "($cmds $listopts)"{-N,--create}'[Create a set]:set name::::_set_types' \ - "($cmds $listopts)"{-X,--destroy}'[Destroy specified set (or all if none specified)]:set name:_sets' \ - "($cmds $listopts)"{-F,--flush}'[Flush specified set (or all if none specified)]:set name:_sets' \ + "($cmds $listopts)"{-N,--create}'[create a set]:set name::::_set_types' \ + "($cmds $listopts)"{-X,--destroy}'[destroy specified set (or all if none specified)]:set name:_sets' \ + "($cmds $listopts)"{-F,--flush}'[flush specified set (or all if none specified)]:set name:_sets' \ "($cmds $listopts)"{-E,--rename}'[rename set]:current set name:_ipsets:new set name:' \ "($cmds $listopts)"{-W,--swap}'[swap two sets]:::_ipsets:::_ipsets' \ - "($cmds -L --list -q --quiet -nL -sL -nsL -snL)"{-L,--list}'[List the entries and bindings for the specified set (or all if none specified)]:::_sets' \ - "($cmds -L --list -q --quiet -n --numeric -snL -nsL -sL -ns -sn)"-nL'[List the entries and bindings for the specified set (or all if none specified) \- numeric output]:::_sets' \ - "($cmds -L --list -q --quiet -s --sorted -snL -nsL -nL -ns -sn)"-sL'[List the entries and bindings for the specified set (or all if none specified) \- sorted output]:::_sets' \ - "($cmds $listopts -q --quiet)"{-nsL,-snL}'[List the entries and bindings for the specified set (or all if none specified) \- sorted numeric output]:::_sets' \ - "($cmds $listopts)"{-S,--save}'[Save the given set (or all if none specified)]:::_sets' \ - "($cmds $listopts)"{-R,--restore}'[Restore a saved session generated by --save from stdin]' \ - "($cmds $listopts)"{-A,--add}'[Add an IP to a set]:::_ipsets:IP' \ - "($cmds $listopts)"{-D,--del}'[Delete an IP from a set]:::_ipsets:::_ips' \ - "($cmds $listopts)"{-T,--test}'[Test wether an IP is in a set or the IP points to the specified binding]:::_ipsets:::_ips' \ - "($cmds $listopts)"{-B,--bind}'[Bind the IP in setname to to-setname]:::_ipsets:::_ips' \ - "($cmds $listopts)"{-U,--unbind}'[Delete the binding belonging to IP in set setname]:::_ipsets:::_ips' \ - "($cmds $listopts)"{-H,--help}'[Print help and settype specific help if settype specified]:::_set_types' \ - "(-q --quiet $listopts)"{-q,--quiet}'[Suppress any output to stdout and stderr]' \ - "($cmds -s --sorted -q --quiet -sL -nsL -snL -ns -sn)"{-s,--sorted}'[Sorted output]' \ - "($cmds -n --numeric -q --quiet -nL -nsL -snL -ns -sn)"{-n,--numeric}"[Numeric output; don't resolve host names, network names and services]" \ - "($cmds -ns -sn -q --quiet -nL -sL -nsL -snL -n --numeric -s --sorted)"{-ns,-sn}'[Sorted numeric output]' \ + "($cmds -L --list -q --quiet -nL -sL -nsL -snL)"{-L,--list}'[list the entries and bindings for the specified set (or all if none specified)]:::_sets' \ + "($cmds -L --list -q --quiet -n --numeric -snL -nsL -sL -ns -sn)"-nL'[list the entries and bindings for the specified set (or all if none specified) \- numeric output]:::_sets' \ + "($cmds -L --list -q --quiet -s --sorted -snL -nsL -nL -ns -sn)"-sL'[list the entries and bindings for the specified set (or all if none specified) \- sorted output]:::_sets' \ + "($cmds $listopts -q --quiet)"{-nsL,-snL}'[list the entries and bindings for the specified set (or all if none specified) \- sorted numeric output]:::_sets' \ + "($cmds $listopts)"{-S,--save}'[save the given set (or all if none specified)]:::_sets' \ + "($cmds $listopts)"{-R,--restore}'[restore a saved session generated by --save from stdin]' \ + "($cmds $listopts)"{-A,--add}'[add an IP to a set]:::_ipsets:IP' \ + "($cmds $listopts)"{-D,--del}'[delete an IP from a set]:::_ipsets:::_ips' \ + "($cmds $listopts)"{-T,--test}'[test wether an IP is in a set or the IP points to the specified binding]:::_ipsets:::_ips' \ + "($cmds $listopts)"{-B,--bind}'[bind the IP in setname to to-setname]:::_ipsets:::_ips' \ + "($cmds $listopts)"{-U,--unbind}'[delete the binding belonging to IP in set setname]:::_ipsets:::_ips' \ + "($cmds $listopts)"{-H,--help}'[print help and settype specific help if settype specified]:::_set_types' \ + "(-q --quiet $listopts)"{-q,--quiet}'[suppress any output to stdout and stderr]' \ + "($cmds -s --sorted -q --quiet -sL -nsL -snL -ns -sn)"{-s,--sorted}'[sorted output]' \ + "($cmds -n --numeric -q --quiet -nL -nsL -snL -ns -sn)"{-n,--numeric}"[numeric output; don't resolve host names, network names and services]" \ + "($cmds -ns -sn -q --quiet -nL -sL -nsL -snL -n --numeric -s --sorted)"{-ns,-sn}'[sorted numeric output]' \ "$args[@]" diff -Nru zsh-4.3.10/Completion/Linux/Command/_lsusb zsh-4.3.11/Completion/Linux/Command/_lsusb --- zsh-4.3.10/Completion/Linux/Command/_lsusb 2007-09-30 13:39:56.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_lsusb 2010-04-26 00:40:54.000000000 +0200 @@ -25,7 +25,7 @@ _lsusb_devices[${pair}]="$match[2]" ;; esac - done < <(zcat /var/lib/usbutils/usb.ids) + done < /usr/share/misc/usb.ids fi compadd -k _lsusb_devices diff -Nru zsh-4.3.10/Completion/Linux/Command/_mdadm zsh-4.3.11/Completion/Linux/Command/_mdadm --- zsh-4.3.10/Completion/Linux/Command/_mdadm 2009-04-16 11:18:03.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_mdadm 2010-06-06 15:44:12.000000000 +0200 @@ -36,24 +36,24 @@ ;; 10|raid10) _values -s ' ' 'RAID10 layout with number of copies of each datablock' \ - 'n1[Near copies]' \ - 'n2[Near copies]' \ - 'n3[Near copies]' \ - 'n4[Near copies]' \ - 'n5[Near copies]' \ - 'n6[Near copies]' \ - 'n7[Near copies]' \ - 'n8[Near copies]' \ - 'n8[Near copies]' \ - 'f1[Far copies]' \ - 'f2[Far copies]' \ - 'f3[Far copies]' \ - 'f4[Far copies]' \ - 'f5[Far copies]' \ - 'f6[Far copies]' \ - 'f7[Far copies]' \ - 'f8[Far copies]' \ - 'f9[Far copies]' + 'n1[near copies]' \ + 'n2[near copies]' \ + 'n3[near copies]' \ + 'n4[near copies]' \ + 'n5[near copies]' \ + 'n6[near copies]' \ + 'n7[near copies]' \ + 'n8[near copies]' \ + 'n8[near copies]' \ + 'f1[far copies]' \ + 'f2[far copies]' \ + 'f3[far copies]' \ + 'f4[far copies]' \ + 'f5[far copies]' \ + 'f6[far copies]' \ + 'f7[far copies]' \ + 'f8[far copies]' \ + 'f9[far copies]' ;; faulty) _values -S \ "Failure mode" \ @@ -70,46 +70,46 @@ if (( $+words[(r)-(A|-assemble)] )); then args=( - '(--bitmap)'--bitmap='[bitmap file to use with the array]::Bitmap file:_files' + '(--bitmap)'--bitmap='[bitmap file to use with the array]::bitmap file:_files' '(--uuid -u)'{--uuid=,-u}'[UUID of array to assemble]:UUID' - '(--super-minor -m)'{--super-minor=,-m}'[minor number to look for in super-block]:Minor number' - '(--name -N)'{--name=,-N}'[Array name to look for in super-block]:Array name' - '(--config -c)'{--config=,-c}'[config file]::Config file:_files' + '(--super-minor -m)'{--super-minor=,-m}'[minor number to look for in super-block]:minor number' + '(--name -N)'{--name=,-N}'[array name to look for in super-block]:array name' + '(--config -c)'{--config=,-c}'[config file]::config file:_files' '(--scan -s)'{--scan,-s}'[scan config file for missing information]' - '(--run -R)'{--run,-R}'[Try to start the array even if not enough devices for a full array are present]' - '(--force -f)'{--force,-f}'[Assemble the array even if some superblocks appear out-of-date]' - '(--update,-U)'{--update=,-U}'[Update superblock]::Update the superblock:(sparc2.2 summaries uuid resync byteorder super-minor)' + '(--run -R)'{--run,-R}'[try to start the array even if not enough devices for a full array are present]' + '(--force -f)'{--force,-f}'[assemble the array even if some superblocks appear out-of-date]' + '(--update,-U)'{--update=,-U}'[update superblock]::update the superblock:(sparc2.2 summaries uuid resync byteorder super-minor)' ) fi if (( $+words[(r)-(B|-build)] )); then args=( - '(--bitmap)'--bitmap='[file to store/find bitmap information in]::Bitmap file:_files' - '(--chunk -c)'{--chunk=,-c}'[chunk size of kibibytes]:Chunk size' - '(--rounding)'--rounding='[rounding factor for linear array (==chunk size)]:Rounding factor' + '(--bitmap)'--bitmap='[file to store/find bitmap information in]::bitmap file:_files' + '(--chunk -c)'{--chunk=,-c}'[chunk size of kibibytes]:chunk size' + '(--rounding)'--rounding='[rounding factor for linear array (==chunk size)]:rounding factor' '(--level -l)'{--level=,-l}'[RAID level]::RAID level:_raids_build' '(--raid-devices -n)'{--raid-devices=,-n}'[number of active devices in array]:active devices number' - '(--bitmap-chunk)'--bitmap-chunk='[bitmap chunksize in Kilobytes]:Bitmap chunk' - '(--delay -d)'{--delay=,-d}'[bitmap update delay in seconds]:Bitmap update delay' + '(--bitmap-chunk)'--bitmap-chunk='[bitmap chunksize in Kilobytes]:bitmap chunk' + '(--delay -d)'{--delay=,-d}'[bitmap update delay in seconds]:bitmap update delay' ) fi if (( $+words[(r)-(C|-create)] )); then args=( - '(--bitmap)'--bitmap='[create a bitmap for the array with the given filename]::Bitmap file:_files' - '(--chunk -c)'{--chunk=,-c}'[chunk size of kibibytes]:Chunk size' - '(--rounding)'--rounding='[rounding factor for linear array (==chunk size)]:Rounding factor' + '(--bitmap)'--bitmap='[create a bitmap for the array with the given filename]::bitmap file:_files' + '(--chunk -c)'{--chunk=,-c}'[chunk size of kibibytes]:chunk size' + '(--rounding)'--rounding='[rounding factor for linear array (==chunk size)]:rounding factor' '(--level -l)'{--level=,-l}'[RAID level]::RAID level:_raids' - '(--parity -p --layout)'{--parity=,-p,--layout=}'[RAID5/6/10 parity algorithm, faulty mode]::Layout:_layouts' + '(--parity -p --layout)'{--parity=,-p,--layout=}'[RAID5/6/10 parity algorithm, faulty mode]::layout:_layouts' '(--raid-devices -n)'{--raid-devices=,-n}'[number of active devices in array]:active devices number' - '(--spare-devices -x)'{--spare-devices=,-x}'[number of spares (eXtras) devices in initial array]:Spare devices number' - '(--size -z)'{--size=,-z}'[size (in K) of each drive in RAID1/4/5/6/10]:Size of each drive' + '(--spare-devices -x)'{--spare-devices=,-x}'[number of spares (eXtras) devices in initial array]:spare devices number' + '(--size -z)'{--size=,-z}'[size (in K) of each drive in RAID1/4/5/6/10]:size of each drive' '(--force -f)'{--force,-f}'[honour devices as listed on command line]' '(--run -R)'{--run,-R}'[insist of running the array even if not all devices are present or some look odd]' '(--readonly -o)'{--readonly,-o}'[start the array readonly]' - '(--name -N)'{--name=,-N}'[textual name for array - max 32 characters]:Array name' - '(--bitmap-chunk)'--bitmap-chunk='[bitmap chunksize in Kilobytes]:Bitmap chunk' - '(--delay -d)'{--delay,-d}'[bitmap update delay in seconds]:Bitmap update delay' + '(--name -N)'{--name=,-N}'[textual name for array - max 32 characters]:array name' + '(--bitmap-chunk)'--bitmap-chunk='[bitmap chunksize in Kilobytes]:bitmap chunk' + '(--delay -d)'{--delay,-d}'[bitmap update delay in seconds]:bitmap update delay' ) fi @@ -126,22 +126,22 @@ if (( $+words[(r)-(F|-follow|-monitor)] )); then args=( - '(--mail -m)'{--mail=,-m}'[Address to mail alerts of failure to]:::_email_addresses' - '(--program -p --alert)'{--program=,-p,--alert=}'[Program to run when an event is detected]::Program:_files' + '(--mail -m)'{--mail=,-m}'[address to mail alerts of failure to]:::_email_addresses' + '(--program -p --alert)'{--program=,-p,--alert=}'[program to run when an event is detected]::program:_files' '(--delay -d)'{--delay=,-d}'[seconds of delay between polling state]:seconds' - '(--config -c)'{--config=,-c}'[specify a different config file]::Config file:_files' + '(--config -c)'{--config=,-c}'[specify a different config file]::config file:_files' '(--scan -s)'{--scan,-s}'[find mail-address/program in config file]' - '(--daemonise -f)'{--daemonise,-f}'[Fork and continue in child, parent exits]' - '(--pid-file -i)'{--pid-file=,-i}'[In daemon mode write pid to specified file instead of stdout]::PID file:_files' - '(--oneshot -1)'{--oneshot,-1}'[Check for degraded arrays, then exit]' - '(--test -t)'{--test,-t}'[Generate a TestMessage event against each array at startup]' + '(--daemonise -f)'{--daemonise,-f}'[fork and continue in child, parent exits]' + '(--pid-file -i)'{--pid-file=,-i}'[in daemon mode write pid to specified file instead of stdout]::PID file:_files' + '(--oneshot -1)'{--oneshot,-1}'[check for degraded arrays, then exit]' + '(--test -t)'{--test,-t}'[generate a TestMessage event against each array at startup]' ) fi if (( $+words[(r)-(G|-grow)] )); then args=( - '(--size -z)'{--size=,-z}'[Change the active size of devices in an array]:active size' - '(--raid-disks -n)'{--raid-disks=,-n}'[Change the number of active devices in a RAID1 array]:number of active devices' + '(--size -z)'{--size=,-z}'[change the active size of devices in an array]:active size' + '(--raid-disks -n)'{--raid-disks=,-n}'[change the number of active devices in a RAID1 array]:number of active devices' ) fi @@ -150,22 +150,22 @@ vals=( ${${${(M)${(f)"$(< /etc/mdadm.conf)"}##ARRAY *}//ARRAY /}%%[[:blank:]]*} ) _describe -t mds "RAID devices" vals _arguments \ - "(-h --help)"{-h,--help}'[Display a mode specific help message]' + "(-h --help)"{-h,--help}'[display a mode specific help message]' } modes=(-A --assemble -B --build -C --create -F --follow --monitor -G --grow -h --help -V --version) misc=(-D --detail -E --examine -X --examine-bitmap -Q --query) _arguments \ - "($misc $modes)"{-A,--assemble}'[Assemble a pre-existing array]:::_mds' \ - "($misc $modes)"{-B,--build}'[Build a legacy array without superblocks]:::_mds' \ - "($misc $modes)"{-C,--create}'[Create a new array]' \ - "($misc $modes)"{-F,--follow,--monitor}'[Select Monitor mode]' \ - "($misc $modes)"{-G,--grow}'[Change the size or shape of an active array]' \ - "($modes -D --detail -E --examine -X --examine-bitmap)"{-D,--detail}'[Print detail of one or more md devices]' \ - "($modes -D --detail -E --examine -X --examine-bitmap -Q --query)"{-E,--examine}'[Print content of md superblock on device(s)]' \ - "($modes -Q --query)"{-Q,--query}'[Examine a device]' \ - "($modes -E --examine -X --examine-bitmap)"{-X,--examine-bitmap}'[Report information about a bitmap file]' \ - "(-)"{-h,--help}'[Display general help message]' \ - "(-)"{-V,--version}'[Print version information for mdadm]' \ + "($misc $modes)"{-A,--assemble}'[assemble a pre-existing array]:::_mds' \ + "($misc $modes)"{-B,--build}'[build a legacy array without superblocks]:::_mds' \ + "($misc $modes)"{-C,--create}'[create a new array]' \ + "($misc $modes)"{-F,--follow,--monitor}'[select Monitor mode]' \ + "($misc $modes)"{-G,--grow}'[change the size or shape of an active array]' \ + "($modes -D --detail -E --examine -X --examine-bitmap)"{-D,--detail}'[print detail of one or more md devices]' \ + "($modes -D --detail -E --examine -X --examine-bitmap -Q --query)"{-E,--examine}'[print content of md superblock on device(s)]' \ + "($modes -Q --query)"{-Q,--query}'[examine a device]' \ + "($modes -E --examine -X --examine-bitmap)"{-X,--examine-bitmap}'[report information about a bitmap file]' \ + "(-)"{-h,--help}'[display general help message]' \ + "(-)"{-V,--version}'[print version information for mdadm]' \ "$args[@]" diff -Nru zsh-4.3.10/Completion/Linux/Command/_modutils zsh-4.3.11/Completion/Linux/Command/_modutils --- zsh-4.3.10/Completion/Linux/Command/_modutils 2009-01-29 18:56:59.000000000 +0100 +++ zsh-4.3.11/Completion/Linux/Command/_modutils 2009-07-14 10:57:13.000000000 +0200 @@ -87,7 +87,7 @@ else kver=$(uname -r) fi - modules=( $modules_dir/$kver/(*~source)/**/*(.:t:r) ) + modules=( $modules_dir/$kver/(*~(source|build))/**/*(.:t:r) ) if [[ $state = loadable_modules ]]; then modules=( ${modules:#(${(j:|:)~${=loaded_modules//_/-}})} ) diff -Nru zsh-4.3.10/Completion/Linux/Command/_pkgtool zsh-4.3.11/Completion/Linux/Command/_pkgtool --- zsh-4.3.10/Completion/Linux/Command/_pkgtool 2005-06-24 16:15:27.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_pkgtool 2009-08-07 11:03:47.000000000 +0200 @@ -12,7 +12,7 @@ "-ask[always ask on package installation regardless of package's priority]" \ '-priority[provide a priority for the entire package list to use]:priority list:(ADD REC OPT SKP)' \ '-tagfile[specify a different file to use for package priorities]:tagfile:_files -/' \ - '*:package file:_files -g "*.tgz(-.)"' + '*:package file:_files -g "*.t[gblx]z(-.)"' ;; removepkg) @@ -29,11 +29,11 @@ '--install-new[install new packages in addition to upgrading existing ones]' \ '--reinstall[upgrade even when the same version is already installed]' \ '--verbose[show all the gory details of the upgrade]' \ - '*:package file:_files -g "*.tgz(-.)"' + '*:package file:_files -g "*.t[gblx]z(-.)"' ;; explodepkg) - _wanted file expl 'package file' _files -g '*.tgz(-.)' + _wanted file expl 'package file' _files -g '*.t[gblx]z(-.)' ;; makepkg) diff -Nru zsh-4.3.10/Completion/Linux/Command/_rpmbuild zsh-4.3.11/Completion/Linux/Command/_rpmbuild --- zsh-4.3.10/Completion/Linux/Command/_rpmbuild 2009-04-16 11:18:03.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_rpmbuild 2010-06-06 15:44:12.000000000 +0200 @@ -10,44 +10,44 @@ b_options=(--clean --nobuild --nodeps --nodigest --nosignature --rmsource --rmspec --short-circuit --sign --target --debug --with --without) _arguments \ - "($cmds $b_cmds $t_cmds)"{-ba,-ta}'[Build binary and source packages]' \ - "($cmds $b_cmds $t_cmds)"{-bb,-tb}'[Build a binary package]' \ - "($cmds $b_cmds $t_cmds)"{-bp,-tp}'[Execute the "%prep" stage]' \ - "($cmds $b_cmds $t_cmds)"{-bc,-tc}'[Do the "%build" stage]' \ - "($cmds $b_cmds $t_cmds)"{-bi,-ti}'[Do the "%install" stage]' \ - "($cmds $b_cmds $t_cmds)"{-bl,-tl}'[Do a "list check"]' \ - "($cmds $b_cmds $t_cmds)"{-bs,-ts}'[Build just the source package]' \ - "($cmds $b_cmds $t_cmds * $b_options $options)"{-\?,--help}'[Show help message]' \ - "($cmds $b_cmds $t_cmds * $b_options $options)"--querytags'[Display known query tags]' \ - "($cmds $b_cmds $t_cmds * $b_options)"--showrc'[Display final rpmrc and macro configuration]' \ - "($cmds $b_cmds $t_cmds * $b_options $options)"--usage'[Display brief usage message]' \ - "($cmds $b_cmds $t_cmds * $b_options $options)"--version'[Print the version of rpm being used]' \ - "(-v --verbose -vv)"--quiet'[Print as little as possible]' \ - "(-v --verbose --quiet)"{-v,--verbose}'[Print verbose information]' \ - "(-v --verbose --quiet)"-vv'[Print lots of ugly debugging information]' \ + "($cmds $b_cmds $t_cmds)"{-ba,-ta}'[build binary and source packages]' \ + "($cmds $b_cmds $t_cmds)"{-bb,-tb}'[build a binary package]' \ + "($cmds $b_cmds $t_cmds)"{-bp,-tp}'[execute the "%prep" stage]' \ + "($cmds $b_cmds $t_cmds)"{-bc,-tc}'[do the "%build" stage]' \ + "($cmds $b_cmds $t_cmds)"{-bi,-ti}'[do the "%install" stage]' \ + "($cmds $b_cmds $t_cmds)"{-bl,-tl}'[do a "list check"]' \ + "($cmds $b_cmds $t_cmds)"{-bs,-ts}'[build just the source package]' \ + "($cmds $b_cmds $t_cmds * $b_options $options)"{-\?,--help}'[show help message]' \ + "($cmds $b_cmds $t_cmds * $b_options $options)"--querytags'[display known query tags]' \ + "($cmds $b_cmds $t_cmds * $b_options)"--showrc'[display final rpmrc and macro configuration]' \ + "($cmds $b_cmds $t_cmds * $b_options $options)"--usage'[display brief usage message]' \ + "($cmds $b_cmds $t_cmds * $b_options $options)"--version'[print the version of rpm being used]' \ + "(-v --verbose -vv)"--quiet'[print as little as possible]' \ + "(-v --verbose --quiet)"{-v,--verbose}'[print verbose information]' \ + "(-v --verbose --quiet)"-vv'[print lots of ugly debugging information]' \ --rcfile'[RC files]:RC files:_files -S\:' \ - --macros'[Macros files]:Macros files:_files -S\:' \ - --pipe'[Command to pipe the output of rpm to]:command' \ - --dbpath'[Set database directory]:Database directory:_files -/' \ - "(-r --root)"{-r,--root}'[Root file system tree]:Chroot directory:_files -/' \ - --buildroot'[Override the BuildRoot]:BuildRoot directory:_files -/' \ - --clean'[Remove the build tree after the packages are made]' \ - --nobuild'[Do not execute any build stages (for spec testing purposes]' \ - --nodeps'[Do not verify build dependencies]' \ - --nodigest"[Don't verify package digest(s)]" \ - --nosignature"[Don't verify package signature(s)]" \ - --rmsource'[Remove the sources after the build]' \ - --rmspec'[Remove the spec file after the build]' \ - --short-circuit'[Skip straight to specified stage (-bc, -bi or -bb in PLD Linux]' \ - --sign'[Embed a GPG signature]' \ - --target='[Set target platform]:arch-vendor-os:' \ - {'*-D','*--define='}'[Define MACRO with value EXPR]:MACRO EXPR' \ - {'*-E','*--eval='}'[Print macro expansion of EXPR]:EXPR' \ - '*--with[Enable configure option for build]:option' \ - '*--without[Disable configure option for build]:option' \ - "($cmds $b_cmds $t_cmds * $b_options)"--bcond'[Find all --with/--without values]' \ - --debug'[Build packages with debug information]' \ - "($cmds $b_cmds $t_cmds * $b_options)"--install-build-tree'[Make all needed dirs for building binary rpms]' \ - "(--clean $b_cmds $t_cmds --rebuild)"--recompile'[Recompile source package]' \ - "(--clean $b_cmds $t_cmds --recompile)"--rebuild'[Rebuild source package]' \ + --macros'[macros files]:macros files:_files -S\:' \ + --pipe'[command to pipe the output of rpm to]:command' \ + --dbpath'[set database directory]:database directory:_files -/' \ + "(-r --root)"{-r,--root}'[root file system tree]:chroot directory:_files -/' \ + --buildroot'[override the BuildRoot]:BuildRoot directory:_files -/' \ + --clean'[remove the build tree after the packages are made]' \ + --nobuild'[do not execute any build stages (for spec testing purposes]' \ + --nodeps'[do not verify build dependencies]' \ + --nodigest"[don't verify package digest(s)]" \ + --nosignature"[don't verify package signature(s)]" \ + --rmsource'[remove the sources after the build]' \ + --rmspec'[remove the spec file after the build]' \ + --short-circuit'[skip straight to specified stage (-bc, -bi or -bb in PLD Linux]' \ + --sign'[embed a GPG signature]' \ + --target='[set target platform]:arch-vendor-os:' \ + {'*-D','*--define='}'[define MACRO with value EXPR]:MACRO EXPR' \ + {'*-E','*--eval='}'[print macro expansion of EXPR]:EXPR' \ + '*--with[enable configure option for build]:option' \ + '*--without[disable configure option for build]:option' \ + "($cmds $b_cmds $t_cmds * $b_options)"--bcond'[find all --with/--without values]' \ + --debug'[build packages with debug information]' \ + "($cmds $b_cmds $t_cmds * $b_options)"--install-build-tree'[make all needed dirs for building binary rpms]' \ + "(--clean $b_cmds $t_cmds --rebuild)"--recompile'[recompile source package]' \ + "(--clean $b_cmds $t_cmds --recompile)"--rebuild'[rebuild source package]' \ "*:file:_files -g '(#i)*.(spec|srpm|tgz|tar|tar.gz|tar.bz2)(-.)'" && ret=0 diff -Nru zsh-4.3.10/Completion/Linux/Command/_strace zsh-4.3.11/Completion/Linux/Command/_strace --- zsh-4.3.10/Completion/Linux/Command/_strace 2008-06-13 13:26:15.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_strace 2010-06-06 15:44:12.000000000 +0200 @@ -47,18 +47,18 @@ _sets () { _alternative \ - 'special:Special values:(all none)' \ + 'special:special values:(all none)' \ 'calls::_sys_calls' } _traces () { local expl - traces=('file:Trace all system calls which take a file name as an argument' - 'process:Trace all system calls which involve process management' - 'network:Trace all the network related system calls' - 'signal:Trace all signal related system calls' - 'ipc:Trace all IPC related system calls' - 'desc:Trace all file descriptor related system calls') + traces=('file:trace all system calls which take a file name as an argument' + 'process:trace all system calls which involve process management' + 'network:trace all the network related system calls' + 'signal:trace all signal related system calls' + 'ipc:trace all IPC related system calls' + 'desc:trace all file descriptor related system calls') compset -P '*,' _describe -t traces 'Related system calls' traces -qS , } @@ -71,43 +71,43 @@ _expression () { _values -S = "Qualifying expression" \ - 'trace[Trace specified set of system calls only]:system calls:_traces_sets' \ - 'abbrev[Abbreviate the output from printing each member of large structures]:system calls:_sets' \ - 'verbose[Dereference structures for the specified set of system calls]:system calls:_sets' \ - 'raw[Print raw, undecoded arguments for the specified set of system calls]:system calls:_sets' \ - 'signal[Trace only the specified subset of signals]:signal:{compset -P "*,"; _signals -s -qS ,}' \ - 'read[Perform a full hex and ASCII dump of all the data read from listed file descriptors]:file descriptors:{compset -P "*,"; _file_descriptors -qS ,}' \ - 'write[Perform a full hex and ASCII dump of all the data written to listed file descriptors]:file descriptors:{compset -P "*,"; _file_descriptors -qS ,}' + 'trace[trace specified set of system calls only]:system calls:_traces_sets' \ + 'abbrev[abbreviate the output from printing each member of large structures]:system calls:_sets' \ + 'verbose[dereference structures for the specified set of system calls]:system calls:_sets' \ + 'raw[print raw, undecoded arguments for the specified set of system calls]:system calls:_sets' \ + 'signal[trace only the specified subset of signals]:signal:{compset -P "*,"; _signals -s -qS ,}' \ + 'read[perform a full hex and ASCII dump of all the data read from listed file descriptors]:file descriptors:{compset -P "*,"; _file_descriptors -qS ,}' \ + 'write[perform a full hex and ASCII dump of all the data written to listed file descriptors]:file descriptors:{compset -P "*,"; _file_descriptors -qS ,}' if [[ -z "$words[CURRENT]" || -n "${words[CURRENT]:#*=*}" ]]; then _traces_sets fi } _arguments \ - '()-c[Count time, calls, and errors for each system call and report a summary]' \ - -d'[Show some debugging output of strace itself on the standard error]' \ - -f'[Trace child processes as they are created by currently traced processes]' \ - -ff'[Write each process trace to . (when using -o ]' \ - '(-c -d -f -ff -i -q -r -t -tt -ttt -T -v -V -x -xx -a -e -o -O -p -s -S -u -E)-h[Print help]' \ - -i'[Print the instruction pointer at the time of the system call]' \ - -q'[Suppress messages about attaching, detaching etc.]' \ - -r'[Print a relative timestamp upon entry to each system call]' \ - '(-ttt)-t[Prefix each line of the trace with the time of day]' \ - '(-ttt -tt)-tt[Prefix each line of the trace with the time of day including the microseconds]' \ - '(-tt -t)-ttt[Prefix each line of the trace with the number of seconds and microseconds since the epoch]' \ - -T'[Show the time spent in system calls]' \ - -v'[Print unabbreviated versions of environment, stat, termios, etc. calls]' \ - '(-c -d -f -ff -h -i -q -r -t -tt -ttt -T -v -x -xx -a -e -o -O -p -s -S -u -E)-V[Print the version number of strace]' \ - '(-xx)-x[Print all non-ASCII strings in hexadecimal string format]' \ - '(-x)-xx[Print all strings in hexadecimal string format]' \ - -a'[Align return values in a specific column (default 40)]:column number' \ - '*-e[Select events to trace or how to trace]:system call:_expression' \ - '-o[Write the trace output to the file]:output file:_files' \ - '-O[Overhead for tracing system calls]:overhead microseconds' \ - '(:)-p[Attach to the process with specified process ID and begin tracing]:Process ID:_pids' \ - '-s[Specify the maximum string size to print (default 32)]:maximum string size' \ - '-S[Sort the output of the histogram (-c option) by the specified criterion]:sort by:(time calls name nothing)' \ - '-u[Run as specified user]:user:_users' \ - '*-E[Remove variable from the inherited list of environment or define a value]:variable:_printenv' \ + '()-c[count time, calls, and errors for each system call and report a summary]' \ + -d'[show some debugging output of strace itself on the standard error]' \ + -f'[trace child processes as they are created by currently traced processes]' \ + -ff'[write each process trace to . (when using -o ]' \ + '(-c -d -f -ff -i -q -r -t -tt -ttt -T -v -V -x -xx -a -e -o -O -p -s -S -u -E)-h[print help]' \ + -i'[print the instruction pointer at the time of the system call]' \ + -q'[suppress messages about attaching, detaching etc.]' \ + -r'[print a relative timestamp upon entry to each system call]' \ + '(-ttt)-t[prefix each line of the trace with the time of day]' \ + '(-ttt -tt)-tt[prefix each line of the trace with the time of day including the microseconds]' \ + '(-tt -t)-ttt[prefix each line of the trace with the number of seconds and microseconds since the epoch]' \ + -T'[show the time spent in system calls]' \ + -v'[print unabbreviated versions of environment, stat, termios, etc. calls]' \ + '(-c -d -f -ff -h -i -q -r -t -tt -ttt -T -v -x -xx -a -e -o -O -p -s -S -u -E)-V[print the version number of strace]' \ + '(-xx)-x[print all non-ASCII strings in hexadecimal string format]' \ + '(-x)-xx[print all strings in hexadecimal string format]' \ + -a'[align return values in a specific column (default 40)]:column number' \ + '*-e[select events to trace or how to trace]:system call:_expression' \ + '-o[write the trace output to the file]:output file:_files' \ + '-O[overhead for tracing system calls]:overhead microseconds' \ + '(:)-p[attach to the process with specified process ID and begin tracing]:process ID:_pids' \ + '-s[specify the maximum string size to print (default 32)]:maximum string size' \ + '-S[sort the output of the histogram (-c option) by the specified criterion]:sort by:(time calls name nothing)' \ + '-u[run as specified user]:user:_users' \ + '*-E[remove variable from the inherited list of environment or define a value]:variable:_printenv' \ '(-):command name: _command_names -e' \ '*::arguments:_normal' diff -Nru zsh-4.3.10/Completion/Linux/Command/_valgrind zsh-4.3.11/Completion/Linux/Command/_valgrind --- zsh-4.3.10/Completion/Linux/Command/_valgrind 2006-05-25 10:30:02.000000000 +0200 +++ zsh-4.3.11/Completion/Linux/Command/_valgrind 2009-10-18 21:53:50.000000000 +0200 @@ -20,6 +20,10 @@ '--alignment=-[set minimum alignment of allocations]:number' ) +common_read_varinfo=( + '--read-var-info=-[read DWARF3 debug info]:enable:(yes no)' +) + common_mem_null=( '--xml=-[output everything in XML]:enable:(yes no)' '--xml-user-comment=-[copy specified string verbatim to XML output]:string' @@ -31,13 +35,14 @@ '--partial-loads-ok=-:enable:(yes no)' '--freelist-vol=-[volume of freed blocks queue]:blocks' '--leak-check=-[search for memory leaks at exit]:enable:(yes no)' - '--leak-resolution=-[how much bt merging in leak check]:(low med high)' + '--leak-resolution=-[how much bt merging in leak check]:level:(low med high)' '--show-reachable=-[show reachable blocks in leak check]:enable:(yes no)' '--workaround-gcc296-bugs=-:enable:(yes no)' ) args_memcheck=( $args_addrcheck + $common_read_varinfo ) args_cachegrind=( @@ -48,6 +53,7 @@ args_helgrind=( $common + $common_read_varinfo '--private-stacks=-[assume thread stacks are used privately]:enable:(yes no)' '--show-last-access=-[show location of last word access on error]:locations:(no some all)' ) diff -Nru zsh-4.3.10/Completion/Mandriva/Command/_rebootin zsh-4.3.11/Completion/Mandriva/Command/_rebootin --- zsh-4.3.10/Completion/Mandriva/Command/_rebootin 2009-01-09 12:34:03.000000000 +0100 +++ zsh-4.3.11/Completion/Mandriva/Command/_rebootin 2010-06-06 15:44:12.000000000 +0200 @@ -3,8 +3,8 @@ local loader=$(sudo detectloader -q) _arguments -C -s \ - '-n[No immediate reboot just set the flags for next reboot.]' \ - '-f[Create a /fastboot file to reboot in fastboot mode]' \ + '-n[no immediate reboot just set the flags for next reboot]' \ + '-f[create a /fastboot file to reboot in fastboot mode]' \ '*::arguments:->loader_entry' local expl diff -Nru zsh-4.3.10/Completion/Mandriva/Command/_urpmi zsh-4.3.11/Completion/Mandriva/Command/_urpmi --- zsh-4.3.10/Completion/Mandriva/Command/_urpmi 2006-10-17 01:05:37.000000000 +0200 +++ zsh-4.3.11/Completion/Mandriva/Command/_urpmi 2010-06-07 20:21:34.000000000 +0200 @@ -1,7 +1,7 @@ #compdef urpme urpmi urpmi.addmedia urpmi.removemedia urpmi.update urpmq urpmf parsehdlist _urpmi_media() { - local ret=1 signle=0 + local ret=1 single=0 local -a all_sources opts if [[ $1 = -s ]]; then diff -Nru zsh-4.3.10/Completion/Redhat/Command/.distfiles zsh-4.3.11/Completion/Redhat/Command/.distfiles --- zsh-4.3.10/Completion/Redhat/Command/.distfiles 2005-11-07 10:32:33.000000000 +0100 +++ zsh-4.3.11/Completion/Redhat/Command/.distfiles 2010-04-20 10:59:32.000000000 +0200 @@ -1,6 +1,5 @@ DISTFILES_SRC=' .distfiles _rpm -_service _yum ' diff -Nru zsh-4.3.10/Completion/Redhat/Command/_service zsh-4.3.11/Completion/Redhat/Command/_service --- zsh-4.3.10/Completion/Redhat/Command/_service 2002-05-23 16:48:58.000000000 +0200 +++ zsh-4.3.11/Completion/Redhat/Command/_service 1970-01-01 01:00:00.000000000 +0100 @@ -1,22 +0,0 @@ -#compdef service - -# *:: for last argument looks more like a hack but it is -# the simplest way known to me to reset $words and keep -# _sub_command happy - -# we are interested in init service only -local ctx="${curcontext}argument-1:" -zstyle -T ":completion:${ctx}" tag-order && \ - zstyle ":completion:${ctx}" tag-order init - - -_arguments -s \ - '(-d --debug)'{-d,--debug}'[turn debugging on]' \ - '(- :)'{-h,--help}'[print usage]' \ - '(- :)'{-v,--version}'[print version]' \ - '(-)'{-f,--full-restart}'[restart service]' \ - '(- :)'{-R,--full-restart-all}'[restart all services]' \ - '(- :)'{-s,--status-all}'[print status of all services]' \ - ':service name:_services' \ - '*::service argument: _init_d' - diff -Nru zsh-4.3.10/Completion/Redhat/Command/_yum zsh-4.3.11/Completion/Redhat/Command/_yum --- zsh-4.3.10/Completion/Redhat/Command/_yum 2008-11-03 10:30:53.000000000 +0100 +++ zsh-4.3.11/Completion/Redhat/Command/_yum 2010-06-06 15:44:12.000000000 +0200 @@ -8,19 +8,19 @@ _arguments -s \ {-h,--help}'[show the help message]' \ {-t,--tolerant}'[be tolerant of errors]' \ - '-C[Run entirely from cache]' \ - '-c[Config file location]:Yum conf file:_files' \ - '-R[Maximum command wait time (in minutes)]:Max wait time' \ - '-d[Debug level (0-10)]:Debug level' \ - '-e[Error level (0-10)]:Error level' \ - '-y[Answer yes for all questions]' \ - '--installroot=[Set install root]:Install Root:_files -/' \ - '*--enablerepo=[Enable or or more repositories]:Repos to enable:_yum_disabled_repos_list' \ - '*--disablerepo=[Disable one or more repositories]:Disable Repos:_yum_enabled_repos_list' \ - '--exclude=[Exclude package(s) by name or glob]:Exclude Packages' \ - '--version[Show yum version]' \ - '--obseletes[Enable obsoletes processing during updates]' \ - '--noplugins[Disable yum plugins]' \ + '-C[run entirely from cache]' \ + '-c[config file location]:Yum conf file:_files' \ + '-R[maximum command wait time (in minutes)]:max wait time' \ + '-d[debug level (0-10)]:debug level' \ + '-e[error level (0-10)]:error level' \ + '-y[answer yes for all questions]' \ + '--installroot=[set install root]:install root:_files -/' \ + '*--enablerepo=[enable or or more repositories]:repos to enable:_yum_disabled_repos_list' \ + '*--disablerepo=[disable one or more repositories]:disable repos:_yum_enabled_repos_list' \ + '--exclude=[exclude package(s) by name or glob]:exclude packages' \ + '--version[show yum version]' \ + '--obseletes[enable obsoletes processing during updates]' \ + '--noplugins[disable yum plugins]' \ '*::yum command:_yum_command' } @@ -28,29 +28,29 @@ { local -a _yum_cmds _yum_cmds=( - "install:Install the latest version of a package or group of packages" - "erase:Remove an installed package (with its dependencies)" - "remove:Remove an installed package (with its dependencies)" - "clean:Clean local yum cache" - "deplist:Gives a list of all dependencies for a package" - "check-update:Check if any updates are available" - "info:Get description of available packages" - "list:Is used to list various information about packages" - "groupinfo:Get info on package groups" - "groupinstall:Install a package group or groups" - "groupremove:Remove a package group or groups" - "grouplist:List package groups" - "groupupdate:Update a package group or groups" - "localinstall:Install packages with local rpm files" - "localupdate:Update packages with local rpm files" - "makecache:Makes a local yum cache" - "provides:Find out which package provides some feature or file" - "whatprovides:Find out which package provides some feature or file" - "resolvedep:List packages providing the specified dependencies" - "search:Find any packages matching pattern" - "shell:Enter the 'yum shell'" - "update:Update one or more packages" - "upgrade:Upgrade one or more packages" + "install:install the latest version of a package or group of packages" + "erase:remove an installed package (with its dependencies)" + "remove:remove an installed package (with its dependencies)" + "clean:clean local yum cache" + "deplist:gives a list of all dependencies for a package" + "check-update:check if any updates are available" + "info:get description of available packages" + "list:is used to list various information about packages" + "groupinfo:get info on package groups" + "groupinstall:install a package group or groups" + "groupremove:remove a package group or groups" + "grouplist:list package groups" + "groupupdate:update a package group or groups" + "localinstall:install packages with local rpm files" + "localupdate:update packages with local rpm files" + "makecache:makes a local yum cache" + "provides:find out which package provides some feature or file" + "whatprovides:find out which package provides some feature or file" + "resolvedep:list packages providing the specified dependencies" + "search:find any packages matching pattern" + "shell:enter the 'yum shell'" + "update:update one or more packages" + "upgrade:upgrade one or more packages" ) if (( CURRENT == 1 )); then diff -Nru zsh-4.3.10/Completion/Solaris/Command/_coreadm zsh-4.3.11/Completion/Solaris/Command/_coreadm --- zsh-4.3.10/Completion/Solaris/Command/_coreadm 2008-07-21 21:15:24.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_coreadm 2010-06-06 15:44:12.000000000 +0200 @@ -4,19 +4,19 @@ local -a content option content=( - "anon[Anonymous private mappings]" + "anon[anonymous private mappings]" "ctf[CTF type information]" - "data[Writable private file mappings]" + "data[writable private file mappings]" "dism[DISM mappings]" - "heap[Process heap]" + "heap[process heap]" "ism[ISM mappings]" - "rodata[Read-only private file mappings]" - "shanon[Anonymous shared mappings]" - "shfile[File-backed shared mappings]" + "rodata[read-only private file mappings]" + "shanon[anonymous shared mappings]" + "shfile[file-backed shared mappings]" "shm[System V shared memory]" - "stack[Process stack]" - "symtab[Symbol table sections for loaded files]" - "text[Readable and executable private file mappings]" + "stack[process stack]" + "symtab[symbol table sections for loaded files]" + "text[readable and executable private file mappings]" ) option=( @@ -31,18 +31,18 @@ # "+" or "-" _arguments -s \ - set1 \ - '-g[Global core file name pattern]:' \ - '-G[Global core file content]:content:_values -s + "content" $content' \ - '-i[Per-process core file name pattern]:' \ - '-I[Per-process core file content]:content:_values -s + "content" $content' \ - '*-d[Disable core option]:option:(($option))' \ - '*-e[Enable core option]:option:(($option))' \ + '-g[global core file name pattern]:' \ + '-G[global core file content]:content:_values -s + "content" $content' \ + '-i[per-process core file name pattern]:' \ + '-I[per-process core file content]:content:_values -s + "content" $content' \ + '*-d[disable core option]:option:(($option))' \ + '*-e[enable core option]:option:(($option))' \ - set2 \ '-p[PID-specific per-process core file name pattern]:' \ '-P[PID-specific per-process core file content]:content:_values -s + "content" $content' \ '*:pids:_pids' \ - set3 \ - '-u[Update options from coreadm.conf]' + '-u[update options from coreadm.conf]' } _coreadm "$@" diff -Nru zsh-4.3.10/Completion/Solaris/Command/_dhcpinfo zsh-4.3.11/Completion/Solaris/Command/_dhcpinfo --- zsh-4.3.10/Completion/Solaris/Command/_dhcpinfo 2008-07-21 21:15:24.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_dhcpinfo 2010-06-06 15:44:12.000000000 +0200 @@ -28,8 +28,8 @@ _arguments -A \ '-c[]' \ - '-i[Interface]:interface:' \ - '-n[Maximum number of lines]:limit:' \ + '-i[interface]:interface:' \ + '-n[maximum number of lines]:limit:' \ ':DHCP Parameter:_values "DHCP Parameter" $mnemonics_v4' \ } diff -Nru zsh-4.3.10/Completion/Solaris/Command/_dladm zsh-4.3.11/Completion/Solaris/Command/_dladm --- zsh-4.3.10/Completion/Solaris/Command/_dladm 2009-02-14 19:11:45.000000000 +0100 +++ zsh-4.3.11/Completion/Solaris/Command/_dladm 2010-06-06 15:44:12.000000000 +0200 @@ -77,7 +77,7 @@ if [[ $service == "dladm" ]]; then _arguments -C -A "-*" \ - '-\?[Help]' \ + '-\?[help]' \ '*::command:->subcmd' && return 0 if (( CURRENT == 1 )); then @@ -111,31 +111,31 @@ case $service in ("show-link") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[Display persistent link configuration]' \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ + '(-P --persistent)'{-P,--persistent}'[display persistent link configuration]' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ - set1 \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $link_properties' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $link_properties' \ - set2 \ - '(-s --statistics)'{-s,--statistics}'[Display link statistics]' \ - '(-i --interval)'{-i,--interval}'[Specify an interval]:interval:' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $link_stats_properties' \ + '(-s --statistics)'{-s,--statistics}'[display link statistics]' \ + '(-i --interval)'{-i,--interval}'[specify an interval]:interval:' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $link_stats_properties' \ ':link name:_dladm_links' \ ;; ("rename-link") _arguments -A "-*" \ - '-R[Root directory]:directory:_path_files -/' \ + '-R[root directory]:directory:_path_files -/' \ ':old link name:_dladm_links' \ ':new link name:' \ ;; ("show-phys") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[Display persistent link configuration]' \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ - '(-s --statistics)'{-s,--statistics}'[Display link statistics]' \ - '(-i --interval)'{-i,--interval}'[Specify an interval]:interval:' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" link media state speed duplex device' \ + '(-P --persistent)'{-P,--persistent}'[display persistent link configuration]' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-s --statistics)'{-s,--statistics}'[display link statistics]' \ + '(-i --interval)'{-i,--interval}'[specify an interval]:interval:' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" link media state speed duplex device' \ ':physical link name:_dladm_devs' ;; @@ -146,97 +146,97 @@ ("create-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Aggregation should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ - '(-P --policy)'{-P,--policy}'[Port selection policy]:policy:_values -s , "policy" L2 L3 L4' \ + '(-t --temporary)'{-t,--temporary}'[aggregation should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ + '(-P --policy)'{-P,--policy}'[port selection policy]:policy:_values -s , "policy" L2 L3 L4' \ '(-L --lacp-mode)'{-L,--lacp-mode}'[LACP mode]:lacp mode:(off active passive)' \ '(-T --lacp-timer)'{-T,--lacp-timer}'[LACP timer]:lacp timer:(short long)' \ - '(-u --unicast)'{-u,--unicast}'[Unicast address]:unicast address:' \ + '(-u --unicast)'{-u,--unicast}'[unicast address]:unicast address:' \ ':aggregate link name:' ;; ("modify-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Aggregation should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ - '(-P --policy)'{-P,--policy}'[Port selection policy]:policy:_values -s , "policy" L2 L3 L4' \ + '(-t --temporary)'{-t,--temporary}'[aggregation should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ + '(-P --policy)'{-P,--policy}'[port selection policy]:policy:_values -s , "policy" L2 L3 L4' \ '(-L --lacp-mode)'{-L,--lacp-mode}'[LACP mode]:lacp mode:(off active passive)' \ '(-T --lacp-timer)'{-T,--lacp-timer}'[LACP timer]:lacp timer:(short long)' \ - '(-u --unicast)'{-u,--unicast}'[Unicast address]:unicast address:' \ + '(-u --unicast)'{-u,--unicast}'[unicast address]:unicast address:' \ ':aggregate link name:_dladm_aggrs' ;; ("delete-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ ':aggregate link name:_dladm_aggrs' ;; ("add-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Aggregation should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ + '(-t --temporary)'{-t,--temporary}'[aggregation should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ ':aggregate link name:_dladm_aggrs' ;; ("remove-aggr") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Aggregation should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[Component link]:link:_dladm_aggr_ports' \ + '(-t --temporary)'{-t,--temporary}'[aggregation should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[component link]:link:_dladm_aggr_ports' \ ':aggregate link name:_dladm_aggrs' ;; ("show-aggr") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[Display persistent link configuration]' \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ - '(-s --statistics)'{-s,--statistics}'[Display link statistics]' \ - '(-i --interval)'{-i,--interval}'[Specify an interval]:interval:' \ + '(-P --persistent)'{-P,--persistent}'[display persistent link configuration]' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-s --statistics)'{-s,--statistics}'[display link statistics]' \ + '(-i --interval)'{-i,--interval}'[specify an interval]:interval:' \ ':aggregate link name:_dladm_links' \ - set1 \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $aggr_properties' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $aggr_properties' \ - lacp \ '(-L --lacp)'{-L,--lacp}'[LACP information]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $aggr_lacp_properties' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $aggr_lacp_properties' \ - extended \ - '(-x --extended)'{-x,--extended}'[Extended information]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $aggr_ext_properties' \ + '(-x --extended)'{-x,--extended}'[extended information]' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $aggr_ext_properties' \ ;; ("create-vlan") _arguments -A "-*" \ '(-t --temporary)'{-t,--temporary}'[VLAN should be temporary]' \ - '(-f --force)'{-f,--force}'[Force VLAN creation]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ + '(-f --force)'{-f,--force}'[force VLAN creation]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ '-v[VLAN ID]:id:' \ ':VLAN link name:' ;; ("delete-vlan") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ ':VLAN link name:_dladm_vlans' ;; ("show-vlan") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[Display persistent link configuration]' \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $vlan_properties' \ + '(-P --persistent)'{-P,--persistent}'[display persistent link configuration]' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $vlan_properties' \ ':VLAN link name:_dladm_vlans' ;; ("scan-wifi") _arguments -A "-*" \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $wifi_connect_properties' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $wifi_connect_properties' \ ':wireless link name:_dladm_wifi_links' ;; @@ -245,127 +245,127 @@ '(-e --essid)'{-e,--essid}'[ESSID name]:network:_dladm_wifi_nets' \ '(-b --bsstype)'{-b,--bsstype}'[BSS type]:' \ '(-m --mode)'{-m,--mode}'[802.11 mode]:mode:(a b g)' \ - '(-k --key)'{-k,--key}'[Key name]:key:_dladm_secobjs' \ - '(-s --sec)'{-s,--sec}'[Security mode]:(none wep wpa)' \ - '(-a --auth)'{-a,--auth}'[Authentication mode]:mode:(open shared)' \ - '(-c --create-ibss)'{-c,--create-ibss}'[Create an ad-hoc network]' \ - '(-T --timeout)'{-T,--timeout}'[Association timeout]:(forever)' \ + '(-k --key)'{-k,--key}'[key name]:key:_dladm_secobjs' \ + '(-s --sec)'{-s,--sec}'[security mode]:(none wep wpa)' \ + '(-a --auth)'{-a,--auth}'[authentication mode]:mode:(open shared)' \ + '(-c --create-ibss)'{-c,--create-ibss}'[create an ad-hoc network]' \ + '(-T --timeout)'{-T,--timeout}'[association timeout]:(forever)' \ ':wireless link name:_dladm_wifi_links' ;; ("disconnect-wifi") _arguments -A "-*" \ - set1 \ - '(-a --all-links)'{-a,--all-links}'[All links]' \ + '(-a --all-links)'{-a,--all-links}'[all links]' \ - set2 \ ':wireless link name:_dladm_wifi_links' ;; ("show-wifi") _arguments -A "-*" \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $wifi_properties' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $wifi_properties' \ ':wireless link name:_dladm_wifi_links' ;; ("show-ether") _arguments -A "-*" \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ - '(-x --extended)'{-x,--extended}'[Extended output]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $ether_properties' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-x --extended)'{-x,--extended}'[extended output]' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $ether_properties' \ ':ethernet link name:_dladm_ethers' ;; ("set-linkprop") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-p --prop)'{-p,--prop}'[Properties]:property:_dladm_linkprops' \ + '(-t --temporary)'{-t,--temporary}'[change should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-p --prop)'{-p,--prop}'[properties]:property:_dladm_linkprops' \ ':link name:_dladm_links' ;; ("reset-linkprop") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Change should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-p --prop)'{-p,--prop}'[Properties]:property:_dladm_linkprops' \ + '(-t --temporary)'{-t,--temporary}'[change should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-p --prop)'{-p,--prop}'[properties]:property:_dladm_linkprops' \ ':link name:_dladm_links' ;; ("show-linkprop") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[Display persistent link properties]' \ - '(-c --parseable)'{-c,--parseable}'[Parseable output]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $linkprop_properties' \ - '(-p --prop)'{-p,--prop}'[Properties]:property:_dladm_linkprops' \ + '(-P --persistent)'{-P,--persistent}'[display persistent link properties]' \ + '(-c --parseable)'{-c,--parseable}'[parseable output]' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $linkprop_properties' \ + '(-p --prop)'{-p,--prop}'[properties]:property:_dladm_linkprops' \ ':link name:_dladm_links' ;; ("create-secobj") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Creation should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-c --class)'{-c,--class}'[Class]:class:(wep wpa)' \ - '(-f --file)'{-f,--file}'[File containing object value]:file:_path_files' \ + '(-t --temporary)'{-t,--temporary}'[creation should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-c --class)'{-c,--class}'[class]:class:(wep wpa)' \ + '(-f --file)'{-f,--file}'[file containing object value]:file:_path_files' \ ':object name:' ;; ("delete-secobj") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ ':object name:_dladm_secobjs' ;; ("show-secobj") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[Display persistent object information]' \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $secobj_properties' \ + '(-P --persistent)'{-P,--persistent}'[display persistent object information]' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $secobj_properties' \ ':object name:_dladm_secobjs' ;; ("create-vnic") # TODO: MAC address completion could be richer _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Creation should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ - '(-l --link)'{-l,--link}'[Component link]:link:_dladm_links' \ + '(-t --temporary)'{-t,--temporary}'[creation should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ + '(-l --link)'{-l,--link}'[component link]:link:_dladm_links' \ '(-m --mac-address)'{-m,--mac-address}'[MAC address]:address:(factory random auto)' \ '-v[VLAN ID]:id:' \ - '(-p --prop)'{-p,--prop}'[Property values]:value:' \ + '(-p --prop)'{-p,--prop}'[property values]:value:' \ ':VNIC name:' ;; ("delete-vnic") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ ':VNIC name:_dladm_vnics' ;; ("show-vnic") _arguments -A "-*" \ - '(-P --persistent)'{-P,--persistent}'[Display persistent object information]' \ - '(-p --parseable)'{-p,--parseable}'[Parseable output]' \ - '(-o --output)'{-o,--output}'[Properties to display]:property:_values -s , "property" $vnic_properties' \ - '(-l --link)'{-l,--link}'[Limit to VNICs on link]:link:_dladm_links' \ - '(-s --statistics)'{-s,--statistics}'[Display VNIC statistics]' \ - '(-i --interval)'{-i,--interval}'[Specify an interval]:interval:' \ + '(-P --persistent)'{-P,--persistent}'[display persistent object information]' \ + '(-p --parseable)'{-p,--parseable}'[parseable output]' \ + '(-o --output)'{-o,--output}'[properties to display]:property:_values -s , "property" $vnic_properties' \ + '(-l --link)'{-l,--link}'[limit to VNICs on link]:link:_dladm_links' \ + '(-s --statistics)'{-s,--statistics}'[display VNIC statistics]' \ + '(-i --interval)'{-i,--interval}'[specify an interval]:interval:' \ ':VNIC name:_dladm_vnics' ;; ("create-etherstub") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Creation should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[creation should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ ':etherstub name:' ;; ("delete-etherstub") _arguments -A "-*" \ - '(-t --temporary)'{-t,--temporary}'[Deletion should be temporary]' \ - '(-R --root)'{-R,--root}'[Root directory]:directory:_path_files -/' \ + '(-t --temporary)'{-t,--temporary}'[deletion should be temporary]' \ + '(-R --root)'{-R,--root}'[root directory]:directory:_path_files -/' \ ':etherstub name:_dladm_etherstubs' ;; @@ -376,11 +376,11 @@ ("show-usage") _arguments -A "-*" \ - '(-f --file)'{-f,--file}'[Read records from file]:_path_files' \ - '(-F --format)'{-f,--format}'[Plotfile format]:(gnuplot)' \ - '(-p --plot)'{-p,--plot}'[Write plot to file]:' \ - '(-e --start)'{-e,--start}'[Start time]:date/time (MM/DD/YYYY,hh\:mm\:ss)' \ - '(-s --stop)'{-s,--stop}'[Stop time]:date/time (MM/DD/YYYY,hh\:mm\:ss)' \ + '(-f --file)'{-f,--file}'[read records from file]:_path_files' \ + '(-F --format)'{-f,--format}'[plotfile format]:(gnuplot)' \ + '(-p --plot)'{-p,--plot}'[write plot to file]:' \ + '(-e --start)'{-e,--start}'[start time]:date/time (MM/DD/YYYY,hh\:mm\:ss)' \ + '(-s --stop)'{-s,--stop}'[stop time]:date/time (MM/DD/YYYY,hh\:mm\:ss)' \ ':link name:_dladm_links' ;; diff -Nru zsh-4.3.10/Completion/Solaris/Command/_dumpadm zsh-4.3.11/Completion/Solaris/Command/_dumpadm --- zsh-4.3.10/Completion/Solaris/Command/_dumpadm 2008-07-21 21:15:24.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_dumpadm 2010-06-06 15:44:12.000000000 +0200 @@ -10,14 +10,14 @@ ) _arguments -s \ - '-n[Dont run savecore on reboot]' \ - '-u[Update dump configuration from dumpadm.conf]' \ - '-y[Run savecore on reboot]' \ - '-c[Set dump content]:dump content:(($content))' \ - '-d[Set dump device]:block devices:_files -g "*(-%b)"' \ - '-m[Set minfree size ]:' \ - '-s[Set the savecore directory]:directory:_files -/' \ - '-r[Alternate root directory]:directory:_files -/' + '-n[dont run savecore on reboot]' \ + '-u[update dump configuration from dumpadm.conf]' \ + '-y[run savecore on reboot]' \ + '-c[set dump content]:dump content:(($content))' \ + '-d[set dump device]:block devices:_files -g "*(-%b)"' \ + '-m[set minfree size ]:' \ + '-s[set the savecore directory]:directory:_files -/' \ + '-r[alternate root directory]:directory:_files -/' } _dumpadm "$@" diff -Nru zsh-4.3.10/Completion/Solaris/Command/_gcore zsh-4.3.11/Completion/Solaris/Command/_gcore --- zsh-4.3.10/Completion/Solaris/Command/_gcore 2008-07-21 21:15:24.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_gcore 2010-06-06 15:44:12.000000000 +0200 @@ -4,27 +4,27 @@ local -a content content=( - "anon[Anonymous private mappings]" + "anon[anonymous private mappings]" "ctf[CTF type information]" - "data[Writable private file mappings]" + "data[writable private file mappings]" "dism[DISM mappings]" - "heap[Process heap]" + "heap[process heap]" "ism[ISM mappings]" - "rodata[Read-only private file mappings]" - "shanon[Anonymous shared mappings]" - "shfile[File-backed shared mappings]" + "rodata[read-only private file mappings]" + "shanon[anonymous shared mappings]" + "shfile[file-backed shared mappings]" "shm[System V shared memory]" - "stack[Process stack]" - "symtab[Symbol table sections for loaded files]" - "text[Readable and executable private file mappings]" + "stack[process stack]" + "symtab[symbol table sections for loaded files]" + "text[readable and executable private file mappings]" ) _arguments -s \ - '-p[Use per-process core file repository]' \ - '-g[Use global core file repository]' \ - '-F[Force grabbing the target process]' \ - '-c[Set core file content]:_values -s + "content" $content' \ - '-o[Set core file base name]:' \ + '-p[use per-process core file repository]' \ + '-g[use global core file repository]' \ + '-F[force grabbing the target process]' \ + '-c[set core file content]:_values -s + "content" $content' \ + '-o[set core file base name]:' \ '*:pids:_pids' } diff -Nru zsh-4.3.10/Completion/Solaris/Command/_inetadm zsh-4.3.11/Completion/Solaris/Command/_inetadm --- zsh-4.3.10/Completion/Solaris/Command/_inetadm 2008-07-21 21:15:24.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_inetadm 2010-06-06 15:44:12.000000000 +0200 @@ -2,13 +2,13 @@ _inetadm() { _arguments -s \ - '-?[Help]' \ - '-l[List service instance properties]:FMRI:_svcs_fmri -i' \ - '-e[Enable specified instance]:FMRI:_svcs_fmri -i' \ - '-d[Disable specified instance]:FMRI:_svcs_fmri -i' \ - '-p[List inet service properties]' \ - '-m[Modify service instance properties]:FMRI:_svcs_fmri -i' \ - '-M[Modify inet service properties]' + '-?[help]' \ + '-l[list service instance properties]:FMRI:_svcs_fmri -i' \ + '-e[enable specified instance]:FMRI:_svcs_fmri -i' \ + '-d[disable specified instance]:FMRI:_svcs_fmri -i' \ + '-p[list inet service properties]' \ + '-m[modify service instance properties]:FMRI:_svcs_fmri -i' \ + '-M[modify inet service properties]' } _inetadm "$@" diff -Nru zsh-4.3.10/Completion/Solaris/Command/_ptree zsh-4.3.11/Completion/Solaris/Command/_ptree --- zsh-4.3.10/Completion/Solaris/Command/_ptree 2009-02-16 10:58:30.000000000 +0100 +++ zsh-4.3.11/Completion/Solaris/Command/_ptree 2010-06-06 15:44:12.000000000 +0200 @@ -5,9 +5,9 @@ typeset -A opt_args _arguments -s \ - '-a[All processes]' \ - '-c[Show contract memberships]' \ - '-z[Show processes in zone]:zone:($(zoneadm list))' \ + '-a[all processes]' \ + '-c[show contract memberships]' \ + '-z[show processes in zone]:zone:($(zoneadm list))' \ '*:pid or user:->pidoruser' && ret=0 if [[ $ret -ne 0 ]]; then diff -Nru zsh-4.3.10/Completion/Solaris/Command/_savecore zsh-4.3.11/Completion/Solaris/Command/_savecore --- zsh-4.3.10/Completion/Solaris/Command/_savecore 2008-07-21 21:15:24.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_savecore 2010-06-06 15:44:12.000000000 +0200 @@ -2,10 +2,10 @@ _savecore() { _arguments -s \ - '-L[Take live dump]' \ - '-v[Verbose]' \ - '-d[Disregard dump header valid flag]' \ - '-f[Save crash dump from file]:file:_files' \ + '-L[take live dump]' \ + '-v[verbose]' \ + '-d[disregard dump header valid flag]' \ + '-f[save crash dump from file]:file:_files' \ '::directory:_files -/' } diff -Nru zsh-4.3.10/Completion/Solaris/Command/_svcadm zsh-4.3.11/Completion/Solaris/Command/_svcadm --- zsh-4.3.10/Completion/Solaris/Command/_svcadm 2008-07-21 21:15:24.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_svcadm 2010-06-06 15:44:12.000000000 +0200 @@ -8,7 +8,7 @@ if [[ $service == "svcadm" ]]; then _arguments -C -A "-*" \ - '-v[Print actions verbosely]' \ + '-v[print actions verbosely]' \ '*::command:->subcmd' && return 0 if (( CURRENT == 1 )); then @@ -22,23 +22,23 @@ case $service in (enable) _arguments \ - '-r[Recursively enable dependencies]' \ - '-s[Wait for service to come online]' \ - '-t[State change is temporary]' \ + '-r[recursively enable dependencies]' \ + '-s[wait for service to come online]' \ + '-t[state change is temporary]' \ '*:instance FMRI:_svcs_fmri -i' ;; (disable) _arguments \ - '-s[Wait for service to become disabled]' \ - '-t[State change is temporary]' \ + '-s[wait for service to become disabled]' \ + '-t[state change is temporary]' \ '*:instance FMRI:_svcs_fmri -i' ;; (mark) _arguments \ - '-I[Change state immediately]' \ - '-t[State change is temporary]' \ + '-I[change state immediately]' \ + '-t[state change is temporary]' \ ':state:(degraded maintenance)' \ ':instance FMRI:_svcs_fmri -i' ;; @@ -50,7 +50,7 @@ (milestone) _arguments \ - '-d[Make milestone the default]' \ + '-d[make milestone the default]' \ '*:milestone FMRI:_svcs_fmri -m' ;; diff -Nru zsh-4.3.10/Completion/Solaris/Command/_svccfg zsh-4.3.11/Completion/Solaris/Command/_svccfg --- zsh-4.3.10/Completion/Solaris/Command/_svccfg 2009-02-16 10:58:30.000000000 +0100 +++ zsh-4.3.11/Completion/Solaris/Command/_svccfg 2010-06-06 15:44:12.000000000 +0200 @@ -25,11 +25,11 @@ if [[ $service == "svccfg" ]]; then _arguments -s \ - '-?[Help]' \ - '-v[Verbose]' \ + '-?[help]' \ + '-v[verbose]' \ '-s[FMRI on which to operate]:fmri:_svcs_fmri -c' \ - set1 \ - '-f[Read commands from file]:command file:_files' \ + '-f[read commands from file]:command file:_files' \ - set2 \ '*::command:->subcmd' && return 0 @@ -44,7 +44,7 @@ case $service in (import) _arguments \ - '-V[Verify property updates]' \ + '-V[verify property updates]' \ ':file:_files' ;; @@ -62,15 +62,15 @@ (delete) _arguments \ - '-f[Force deletion if online or degraded]' \ + '-f[force deletion if online or degraded]' \ '*:FMRI:_svcs_fmri -c' ;; (describe) local fmri=$opt_args[-s] _arguments -A "-*" \ - '-v[Give all information]' \ - '-t[Show only template data]' \ + '-v[give all information]' \ + '-t[show only template data]' \ ":property group or property:_svccfg_properties $fmri" ;; diff -Nru zsh-4.3.10/Completion/Solaris/Command/_svcprop zsh-4.3.11/Completion/Solaris/Command/_svcprop --- zsh-4.3.10/Completion/Solaris/Command/_svcprop 2008-07-21 21:15:24.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_svcprop 2010-06-06 15:44:12.000000000 +0200 @@ -2,19 +2,19 @@ _svcprop() { _arguments -s \ - '-f[Designate properties by their FMRI]' \ - '-q[Quiet]' \ - '-t[Use multi-property output format]' \ - '-v[Verbose]' \ + '-f[designate properties by their FMRI]' \ + '-q[quiet]' \ + '-t[use multi-property output format]' \ + '-v[verbose]' \ - set1 \ - '-w[Waits for the selected property or property group to change]' \ - '-p[Prints values of named property or property group]' \ + '-w[waits for the selected property or property group to change]' \ + '-p[prints values of named property or property group]' \ ':FMRI:_svcs_fmri -i' \ - set2 \ - '(-c -s)-C[Retrieve properties without composition]' \ - '(-C -s)-c[Retrieve properties with composition]' \ - '(-c -C)-s[Retrieve properties from snapshot]:snapshot:' \ - '*-p[Prints values of named property or property group]' \ + '(-c -s)-C[retrieve properties without composition]' \ + '(-C -s)-c[retrieve properties with composition]' \ + '(-c -C)-s[retrieve properties from snapshot]:snapshot:' \ + '*-p[prints values of named property or property group]' \ '*:FMRI:_svcs_fmri -i' } diff -Nru zsh-4.3.10/Completion/Solaris/Command/_svcs zsh-4.3.11/Completion/Solaris/Command/_svcs --- zsh-4.3.10/Completion/Solaris/Command/_svcs 2009-02-16 10:58:30.000000000 +0100 +++ zsh-4.3.11/Completion/Solaris/Command/_svcs 2010-06-06 15:44:12.000000000 +0200 @@ -11,19 +11,19 @@ ) _arguments -s \ - '(-l -x -d -D)-a[List all instances]' \ - '(-l -x -D -a -R)-d[List dependencies]' \ - '(-l -x -d -a -R)-D[List dependents]' \ - '(-l -x)-H[Suppress header line]' \ - '(-x -d -D -a -R -s)-l[Print detailed status about services and instances]' \ - '(-l -x)-o[Display specific columns]:column:_values -s , "column" ${^cols/\:/[}\]' \ - '(-l -x)-p[List processes]' \ - '(-l -x -d -D)-R[List services with the given restarter]:instance FMRI:_svcs_fmri -i' \ - '(-l -x)-s[Sort by a column]:column:(($cols))' \ - '(-l -x)-S[Reverse sort by a column]:column:(($cols))' \ + '(-l -x -d -D)-a[list all instances]' \ + '(-l -x -D -a -R)-d[list dependencies]' \ + '(-l -x -d -a -R)-D[list dependents]' \ + '(-l -x)-H[suppress header line]' \ + '(-x -d -D -a -R -s)-l[print detailed status about services and instances]' \ + '(-l -x)-o[display specific columns]:column:_values -s , "column" ${^cols/\:/[}\]' \ + '(-l -x)-p[list processes]' \ + '(-l -x -d -D)-R[list services with the given restarter]:instance FMRI:_svcs_fmri -i' \ + '(-l -x)-s[sort by a column]:column:(($cols))' \ + '(-l -x)-S[reverse sort by a column]:column:(($cols))' \ '-v[verbose columns]' \ - '(-l)-x[Display explanation for service states]' \ - '(-l -x)-\?[Print help]' \ + '(-l)-x[display explanation for service states]' \ + '(-l -x)-\?[print help]' \ '*:FMRI or pattern:_svcs_fmri -i' } diff -Nru zsh-4.3.10/Completion/Solaris/Command/_zlogin zsh-4.3.11/Completion/Solaris/Command/_zlogin --- zsh-4.3.10/Completion/Solaris/Command/_zlogin 2008-07-21 21:15:25.000000000 +0200 +++ zsh-4.3.11/Completion/Solaris/Command/_zlogin 2010-06-06 15:44:12.000000000 +0200 @@ -2,14 +2,14 @@ _zlogin() { _arguments -s \ - '-E[Disable escape character]' \ - '-e[Specify escape character]:character:' \ - '-l[Specify username]:username:_users' \ + '-E[disable escape character]' \ + '-e[specify escape character]:character:' \ + '-l[specify username]:username:_users' \ ':zonename:' \ - set1 \ - '-C[Connect to zone console]' \ + '-C[connect to zone console]' \ - set2 \ - '-S["Safe" login mode]' \ + '-S["safe" login mode]' \ ':utility' } diff -Nru zsh-4.3.10/Completion/Unix/Command/_ant zsh-4.3.11/Completion/Unix/Command/_ant --- zsh-4.3.10/Completion/Unix/Command/_ant 2009-01-26 10:47:23.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_ant 2009-06-27 22:22:49.000000000 +0200 @@ -12,10 +12,16 @@ # be invoked from the command line; see zsh-workers/24129. sed -n "s/ *]* name=[\"']\([^-][^\"']*\)[\"'].*/\1/p" $1 if (( $#importedfiles )) ; then - ( cd $1:h - for file in $importedfiles ; do - find_targets $file - done ) + ( cd $1:h + for file in $importedfiles ; do + expanded=( $(echo $file | sed -n "s|\${ant.home}|$ANT_HOME|p") ) + if [[ ! "bla$expanded" = "bla" ]]; then + file=$expanded + fi + if [[ -f $file ]]; then + find_targets $file + fi + done ) fi } diff -Nru zsh-4.3.10/Completion/Unix/Command/_arp zsh-4.3.11/Completion/Unix/Command/_arp --- zsh-4.3.10/Completion/Unix/Command/_arp 2008-06-24 14:57:54.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_arp 2010-06-06 15:44:12.000000000 +0200 @@ -10,8 +10,8 @@ "($cmds 1 -n --numeric -D --use-device -H --hw-type)"{-d,--delete}'[delete entry from table]:host:->hostintable' \ "($cmds 1 -n --numeric)"{-s,--set}'[create an ARP entry]:host:_hosts:ethernet address::*:option:(temp trail pub)' \ "($cmds 1 -n --numeric)"{-f,--file}'[read multiple entries from file]:file:_files' \ - '(-i --device)'{-i,--device}'[Select an interface]:::_net_interfaces:' \ - '(-D --use-device -a --display -d --delete)'{-D,--use-device}"[Use the interface ifa's hardware address]" \ + '(-i --device)'{-i,--device}'[select an interface]:::_net_interfaces:' \ + '(-D --use-device -a --display -d --delete)'{-D,--use-device}"[use the interface ifa's hardware address]" \ '(-H --hw-type -d --delete)'{-H,--hw-type}'[class of entries to check for]:class:(ether arcnet pronet ax25 netrom)' \ '(-n --numeric -d --delete -s --set -f --file)'{-n,--numeric}'[shows numerical addresses]' \ '(-v --verbose)'{-v,--verbose}'[be verbose]' \ diff -Nru zsh-4.3.10/Completion/Unix/Command/_arping zsh-4.3.11/Completion/Unix/Command/_arping --- zsh-4.3.10/Completion/Unix/Command/_arping 2007-01-30 20:03:56.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_arping 2010-06-06 15:44:12.000000000 +0200 @@ -7,7 +7,7 @@ '-q[be quiet]' \ '-b[keep broadcasting, do not go unicast]' \ '-D[duplicate address detection mode]'\ - '-U[Unsolicited ARP mode, update your neighbours]' \ + '-U[unsolicited ARP mode, update your neighbours]' \ '-A[ARP answer mode, update your neighbours]' \ '-V[print version and exit]' \ '-c[how many packets to send]:count' \ diff -Nru zsh-4.3.10/Completion/Unix/Command/_bzr zsh-4.3.11/Completion/Unix/Command/_bzr --- zsh-4.3.10/Completion/Unix/Command/_bzr 2008-11-10 10:28:25.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_bzr 2010-06-06 15:44:12.000000000 +0200 @@ -116,10 +116,10 @@ (log) args+=( '--forward[reverse direction of revisions]' - '(-l --long --short --log_format)--line[Use log format with one line per revision. Same as "--log-format line"]' - '(-l --long --short --line)--log-format=[Use the specified log format]:log format:(line short long)' - '(-l --long --short --line --log-format)'{--long,-l}'[Use detailed log format. Same as "--log-format long"]' - '(-l --long --log_format)--short[Use moderately short log format. Same as "--log-format short"]' + '(-l --long --short --log_format)--line[use log format with one line per revision. Same as "--log-format line"]' + '(-l --long --short --line)--log-format=[use the specified log format]:log format:(line short long)' + '(-l --long --short --line --log-format)'{--long,-l}'[use detailed log format. Same as "--log-format long"]' + '(-l --long --log_format)--short[use moderately short log format. Same as "--log-format short"]' '(-m --message)'{--message=,-m}'[specify regexp]:regexp:' '(-r --revision)'{--revision=,-r}'[revision or range]:rev or rev range:' '--show-ids[show file IDs]' @@ -180,8 +180,8 @@ (pull) args+=( - '--overwrite[Ignore differences, overwrite unconditionally]' - '--remember[Remember the specified location as a default]' + '--overwrite[ignore differences, overwrite unconditionally]' + '--remember[remember the specified location as a default]' '(-r --revision)'{--revision=,-r}'[get a particular revision]:revision:' '(-v --verbose)'{--verbose,-v}'[display more information]' '*:local repository:_files -/' @@ -191,14 +191,14 @@ (missing) args+=( - '(-l --long --short --log_format)--line[Use log format with one line per revision. Same as "--log-format line"]' - '(-l --long --short --line)--log-format=[Use the specified log format]:log format:(line short long)' - '(-l --long --short --line --log-format)'{--long,-l}'[Use detailed log format. Same as "--log-format long"]' - '(-l --long --log_format)--short[Use moderately short log format. Same as "--log-format short"]' - '--mine-only[Display changes in the local branch only]' - '--reverse[Reverse the order of revisions]' + '(-l --long --short --log_format)--line[use log format with one line per revision. Same as "--log-format line"]' + '(-l --long --short --line)--log-format=[use the specified log format]:log format:(line short long)' + '(-l --long --short --line --log-format)'{--long,-l}'[use detailed log format. Same as "--log-format long"]' + '(-l --long --log_format)--short[use moderately short log format. Same as "--log-format short"]' + '--mine-only[display changes in the local branch only]' + '--reverse[reverse the order of revisions]' '--show-ids[show internal object ids]' - '--theirs-only[Display changes in the remote branch only]' + '--theirs-only[display changes in the remote branch only]' '(-v --verbose)'{--verbose,-v}'[display more information]' '*:local repository:_files -/' ) @@ -238,8 +238,8 @@ (remerge) args+=( '--merge-type=[the type of the merge]:type:' - '--reprocess[Reprocess to reduce spurious conflicts]' - '--show-base[Show base revision text in conflicts]' + '--reprocess[reprocess to reduce spurious conflicts]' + '--show-base[show base revision text in conflicts]' ) _bzr_completeParents ;; @@ -308,10 +308,10 @@ args+=( '--force[ignore uncommitted changes]' '--merge-type:merge type:(diff3 merge3 weave)' - '--remember[Remember the specified location as a default]' - '--reprocess[Reprocess to reduce spurious conflicts]' + '--remember[remember the specified location as a default]' + '--reprocess[reprocess to reduce spurious conflicts]' '(-r --revision)'{--revision=,-r}'[revision]:revision:' - '--show-base[Show base revision text in conflicts]' + '--show-base[show base revision text in conflicts]' '*:local repository:_files -/' ) _bzr_completeParents @@ -322,15 +322,25 @@ '(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]' '(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]' '(-r --revision)'{--revision=,-r}'[revision]:revision:' - '--from-root[Print all paths from the root of the branch]' - '--non-recursive[Do not recurse into subdirectories]' - '--null[Null separate the files]' - '--ignored[Print ignored files]' - '--unknown[Print unknown files]' - '--versioned[Print versioned files]' + '--from-root[print all paths from the root of the branch]' + '--non-recursive[do not recurse into subdirectories]' + '--null[null separate the files]' + '--ignored[print ignored files]' + '--unknown[print unknown files]' + '--versioned[print versioned files]' ) ;; +(switch) + args+=( + '--force[switch even if local commits will be lost]' + '(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]' + '(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]' + '*:local repository:_files -/' + ) + _bzr_completeParents + ;; + (help) args=( '(-l --long)'{--long,-l}'[use long format]' @@ -357,9 +367,9 @@ (push) args+=( - '--create-prefix[Create the path leading up to the branch when missing]' - '--overwrite[Ignore differences, overwrite unconditionally]' - '--remember[Remember the specified location as a default]' + '--create-prefix[create the path leading up to the branch when missing]' + '--overwrite[ignore differences, overwrite unconditionally]' + '--remember[remember the specified location as a default]' '*:local repository:_files -/' ) _bzr_completeParents diff -Nru zsh-4.3.10/Completion/Unix/Command/_cdcd zsh-4.3.11/Completion/Unix/Command/_cdcd --- zsh-4.3.10/Completion/Unix/Command/_cdcd 2003-03-12 19:55:37.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_cdcd 2010-06-06 15:44:12.000000000 +0200 @@ -32,7 +32,7 @@ 'list:list all CDs in a CD-ROM changer' 'slot:changes the current CD in the CD-ROM changer' 'edit:edit information about the disc' - 'ext:Extended information about the disc' + 'ext:extended information about the disc' 'refresh:refresh the information about the CD from a CDDB server' 'device:change the CD-ROM device cdcd will use' 'verbose:toggle verbosity' diff -Nru zsh-4.3.10/Completion/Unix/Command/_configure zsh-4.3.11/Completion/Unix/Command/_configure --- zsh-4.3.10/Completion/Unix/Command/_configure 2007-05-14 11:23:43.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_configure 2009-12-14 22:36:04.000000000 +0100 @@ -6,4 +6,6 @@ (#s)--with- --without- (#s)--without- --with-)' \ '*=(E|)PREFIX*:prefix directory:_files -/' \ - '*=PROGRAM*:program:_command_names -e' + '*=PROGRAM*:program:_command_names -e' \ + '*=NAME*executable*:program:_command_names -e' \ + '*=NAME*:file:_files' diff -Nru zsh-4.3.10/Completion/Unix/Command/_cp zsh-4.3.11/Completion/Unix/Command/_cp --- zsh-4.3.10/Completion/Unix/Command/_cp 2007-11-19 12:50:19.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_cp 2010-02-02 21:51:01.000000000 +0100 @@ -3,27 +3,29 @@ _arguments -s \ '(-a --archive)'{-a,--archive}'[same as -dpR]' \ '(-b --backup)-b[backup]' \ - '(-b --backup)--backup=:method:(none off numbered t existing nil simple never)' \ + '(-b --backup)--backup=[backup]:method:(none off numbered t existing nil simple never)' \ '--copy-contents[copy contents of special files when recursive]' \ - '-d[same as --no-dereference --preserve=link]' \ + '-d[same as --no-dereference --preserve=links]' \ '(-f --force)'{-f,--force}'[remove and retry for destinations that cannot be opened]' \ '(-i --interactive)'{-i,--interactive}'[prompt before overwrite]' \ '-H[follow command-line symbolic links]' \ '(-l --link)'{-l,--link}'[link files instead of copying]' \ '(-L --dereference)'{-L,--dereference}'[always follow symbolic links]' \ + '(-n --no-clobber)'{-n,--no-clobber}'[do not overwrite an existing file]' \ + '(-P --no-dereference)'{-P,--no-dereference}'[never follow symbolic links]' \ '-p[same as --preserve=mode,ownership,timestamps]' \ - '--preserve=:attributes to preserve:_values -s , attribute mode ownership timestamps links all' \ - '--no-preserve=:attributes not to preserve:_values -s , attribute mode ownership timestamps links all' \ + '--preserve=[preserve specified attributes]:attributes to preserve:_values -s , mode timestamps ownership links context xattr all' \ + '--no-preserve=[don'\''t preserve specified attributes]:attributes not to preserve:_values -s , mode timestamps ownership links context xattr all' \ '--parents[append source path to target directory]' \ - '-P[same as --no-dereference]' \ '(-R -r --recursive)'{-R,-r,--recursive}'[copy directories recursively]' \ + '--reflink=[control clone/CoW copies]:when to perform a lightweight copy:(always auto)' \ '--remove-destination[remove each existing destination file before attempting to open it]' \ - '--reply=:how to handle the prompt about an existing destination file:(yes no query)' \ - '--sparse=:when to create sparse files:(auto always never)' \ + '--sparse=[control creation of sparse files]:when to create sparse files:(auto always never)' \ '--strip-trailing-slashes[remove any trailing slashes from each source argument]' \ '(-s --symbolic-link)'{-s,--symbolic-link}'[make symbolic links instead of copies of non-directories]' \ - '(-S --suffix)'{-S,--suffix=}':backup suffix:' \ - '--target-directory=:target directory:_files -/' \ + '(-S --suffix)'{-S,--suffix=}'[override the usual backup suffix]:backup suffix:' \ + '(-t --target-directory)'{-t,--target-directory=}'[copy all source arguments into target directory]:target directory:_files -/' \ + '(-T --no-target-directory)'{-T,--no-target-directory}'[treat DEST as a normal file]' \ '(-u --update)'{-u,--update}'[copy only when source is newer than destination or destination is missing]' \ '(-v --verbose)'{-v,--verbose}'[explain what is being done]' \ '(-x --one-file-system)'{-x,--one-file-system}'[stay on this file system]' \ diff -Nru zsh-4.3.10/Completion/Unix/Command/_cvs zsh-4.3.11/Completion/Unix/Command/_cvs --- zsh-4.3.10/Completion/Unix/Command/_cvs 2008-06-03 11:21:40.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_cvs 2010-06-22 04:20:44.000000000 +0200 @@ -48,7 +48,6 @@ (( $+_cvs_cmds )) || _cvs_cmds=( ${${(f)"$(_call_program commands cvs --help-commands 2>&1)"}[2,-2]/(#b) #([a-z]##) #([A-Z])/$match[1]:${match[2]:l}} - 'version:display cvs version being used on client and server' ) if (( CURRENT == 1 )); then diff -Nru zsh-4.3.10/Completion/Unix/Command/_darcs zsh-4.3.11/Completion/Unix/Command/_darcs --- zsh-4.3.10/Completion/Unix/Command/_darcs 2008-07-14 16:04:14.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_darcs 2009-07-02 11:00:52.000000000 +0200 @@ -1,503 +1,36 @@ #compdef darcs - -# EXTENDED_GLOB is required fr pattern backreferences. -setopt EXTENDED_GLOB - -local DARCS=$words[1] - -# test whether to hide short options from completion -autoload -z is-at-least -local hide_short -if zstyle -s ":completion:${curcontext}" hide-shortopts hide_short; then - case $hide_short in - true|yes|on|1) hide_short='!' ;; - *) hide_short='' ;; - esac -else - is-at-least 4.1 || hide_short='!' -fi - - - -_darcs_main() { -# Based on section 6.8 of _A User's Guide to the Z-Shell_ by Peter Stephenson. -# Also based on the tla completion module by Jason McCarty. How do I credit -# this? -local DARCS=$words[1] -local arguments -local curcontext="$curcontext" - -if (( CURRENT > 2 )); then - local cmd=${words[2]} - local var_cmd=cmd_${cmd//-/_} - curcontext="${curcontext%:*:*}:darcs-${cmd}:" - (( CURRENT-- )) - shift words - - local short long arg desc action - short=() - long=() - arg=() - desc=() - action=() - arguments=() - - # Collect all help lines which have a leading space. - local input - input=(${(f)"$($DARCS $cmd -h)"}) - input=(${input:#[^\ ]*}) - local i - for (( i=1 ; i <= ${#input} ; i++ )); do - # Assumption: the the argument descriptions from `darcs cmd -h` - # have the following format: - # [spaces]<-f>[spaces][--flag]<=argument>[spaces][description] - [[ "$input[i]" = (#b)' '#(-?|)' '#([^' ']#|)' '#(--[^=' ']#)(=([^' ']#)|)' '#(*) ]] \ - || _message -e messages "cannot parse command help output." || return 1 - - short[i]="$match[1]" - long[i]="$match[3]" - arg[i]="$match[5]" - desc[i]="$match[6]" - desc[i]="${${desc[i]//\[/\\[}//\]/\\]}" # escape brackets - - case $arg[i] in - DIRECTORY) - action[i]='_files -/' ;; - FILE|FILENAME|IDFILE|KEYS) - action[i]='_files' ;; - USERNAME) - action[i]='_users' ;; - EMAIL|FROM) - action[i]='_email_addresses' ;; - URL) - action[i]='_darcs_repository_or_tree' ;; - *) - action[i]='' ;; - esac - done - - # Compute the exludes for _arguments - - local excluded short_excluded long_excluded k - - for (( i=1 ; i <= ${#input} ; i++ )); do - excluded=() - for opt (${=excludes[$long[i]]}); do - k=$long[(i)$opt] - excluded=($excluded $short[k] $long[k]) - done - - # Generate arguments for _arguments. - # Make long and short options mutually exclusive. - short_excluded=($long[i] $excluded) - long_excluded=($short[i] $excluded) - [ $short[i] ] && arguments=("$arguments[@]" - "${hide_short}(${short_excluded})${short[i]}[${desc[i]}]${arg[i]:+:$arg[i]:$action[i]}") - [ $long[i] ] && arguments=("$arguments[@]" - "(${long_excluded})${long[i]}${arg[i]:+=}[${desc[i]}]${arg[i]:+:$arg[i]:$action[i]}") - done - - arguments=("$arguments[@]" "${(@P)var_cmd-*:FILE:_files}") +## Darcs completion snippet for zsh. +## +## Copyright (C) 2009 Nicolas Pouillard +## +## 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. + +if (($CURRENT == 2)); then + # We're completing the first word after "darcs" -- the command. + _wanted command expl 'darcs command' \ + compadd -- $( darcs --commands ) else - local hline - local -a cmdlist - _call_program help-commands darcs --help | while read -A hline; do - (( ${#hline} < 2 )) && continue - [[ $hline[1] == darcs ]] && continue - [[ $hline[1] == [A-Z]* ]] && continue - cmdlist=( $cmdlist "${hline[1]}:${hline[2,-1]/(#b)([A-Z])(*)./${match[1]:l}$match[2]}" ) - done - arguments=(':commands:(($cmdlist))') + case "${words[$CURRENT]}"; in + # If it looks like an URL... + ht*|ft*) + _arguments '*:URL:_urls' + ;; + # If it looks like an explicit path... + /*|./*|\~*|../*) + _arguments '*:file:_files' + ;; + # Otherwise, let's ask darcs for all possible options + *) + _wanted args expl 'arg for darcs command' \ + compadd -- $( darcs ${words[2]} --list-option ) + ;; + esac fi - -_arguments -S -A '-*' \ - "$arguments[@]" -} - - - -# -# Command argument definitions -# -local -a cmd_initialize cmd_get -cmd_initialize=() -cmd_get=(':repository:_files -/' ':new repository name:_files -/') - -local -a cmd_add cmd_remove cmd_move cmd_replace -cmd_add=('*:new files:_darcs_new_file_or_tree') -cmd_remove=('*:existing controlled files:_darcs_controlled_files -e') -cmd_move=('*:existing controlled files:_darcs_controlled_files -e') -cmd_replace=(':old token:' ':new token:' '*:existing controlled files:_darcs_controlled_files -e') - -local -a cmd_record cmd_pull cmd_push cmd_send cmd_apply -cmd_record=('*:controlled files:_darcs_controlled_files') -cmd_pull=(':repository:_darcs_repository_or_tree') -cmd_push=(':repository:_darcs_repository_or_tree') -cmd_send=(':repository:_darcs_repository_or_tree') -cmd_apply=(':patch file:_files') - -local -a cmd_whatsnew cmd_changes -cmd_whatsnew=('*:controlled files:_darcs_controlled_files') -cmd_changes=('*:controlled files:_darcs_controlled_files') - -local -a cmd_tag cmd_setpref cmd_check cmd_optimize -cmd_tag=() -cmd_setpref=(':preference key:(test predist boringfile binaries)' ':value:_files') -cmd_check=() -cmd_optimize=() - -local -a cmd_amend_record cmd_rollback cmd_unrecord cmd_unpull cmd_revert cmd_unrevert -cmd_amend_record=('*:controlled files:_darcs_controlled_files') -cmd_rollback=() -cmd_unrecord=() -cmd_unpull=() -cmd_revert=('*:controlled files:_darcs_controlled_files') -cmd_unrevert=() - -local -a cmd_diff cmd_annotate -cmd_diff=('*:controlled files:_darcs_controlled_files') -cmd_annotate=('*:controlled files:_darcs_controlled_files') - -local -a cmd_resolve cmd_dist cmd_trackdown cmd_repair -cmd_resolve=() -cmd_dist=() -cmd_trackdown=(':initialization:' ':command:') -cmd_repair=() - - -# -# Completion functions -# - -(( $+functions[_darcs_new_files] )) || -_darcs_new_files () { - local -a new_files - local -a local_files - local in_tree_head in_tree_tail - _darcs_make_tree_path in_tree_head in_tree_tail || return 1 - new_files=(${(f)"$(cd $(_darcs_absolute_tree_root)/$in_tree_head; $DARCS whatsnew -sl .)"}) - new_files=(${${new_files:#[^a]*}//a /}) - - local_files=() - for file ($new_files); do - [[ $file:h = $in_tree_head && $file:t = ${in_tree_tail}* ]] && local_files+=$file:t - done - - compset -P '*/' - _description new_files expl "new files" - compadd "$expl[@]" "$local_files[@]" -} - - - - -# _darcs_controlled_files [-e|r] [-f|d] -# -# Adds controlled files to the completion. Can take either -# -e or -r as flags which respectively only add the existing -# files or the deleted files. Can take either -f or -d which -# respectively add only the files or directories. -(( $+functions[_darcs_controlled_files] )) || -_darcs_controlled_files() { - local abs_root=$(_darcs_absolute_tree_root) - local only_removed only_existing only_files only_dirs - zparseopts -E \ - 'r=only_removed' 'e=only_existing' \ - 'f=only_files' 'd=only_dirs' - - local in_tree_head in_tree_tail - _darcs_make_tree_path in_tree_head in_tree_tail - local recorded_dir="$abs_root/_darcs/current/$in_tree_head" - local -a controlled_files controlled_dirs existing_files existing_dirs - local -a dir_display_strs removed_dir_display_strs - controlled_files=${(z)$(print $recorded_dir/$in_tree_tail*(.:t))} - controlled_dirs=${(z)$(print $recorded_dir/$in_tree_tail*(/:t))} - existing_files=() existing_dirs=() - removed_files=() removed_dirs=() - dir_display_strs=() removed_dir_display_strs=() - local dir file - for dir ($controlled_dirs); do - if [[ -e $abs_root/$in_tree_head/$dir ]]; then - existing_dirs+="$dir" - dir_display_strs+="$dir/" - else - removed_dirs+="$dir" - removed_dir_display_strs+="$dir/" - fi - done - for file ($controlled_files); do - if [[ -e $abs_root/$in_tree_head/$file ]]; then - existing_files+="$file" - else - removed_files+="$file" - fi - done - - compset -P '*/' - if (( ! ${#only_removed} )); then - _description controlled_files expl "existing revision controlled files" - (( ! ${#only_dirs} )) && compadd "$expl[@]" $existing_files - (( ! ${#only_files} )) \ - && compadd "$expl[@]" -q -S / -d dir_display_strs -a -- existing_dirs - fi - if (( ! ${#only_existing} )); then - _description removed_files expl "removed revision controlled files" - (( ! ${#only_dirs} )) && compadd "$expl[@]" $removed_files - (( ! ${#only_files} )) \ - && compadd "$expl[@]" -q -S / -d removed_dir_display_strs -a -- removed_dirs - fi -} - -(( $+functions[_darcs_repositories] )) || -_darcs_repositories() { - local local_repos_path="$(_darcs_absolute_tree_root)/_darcs/prefs/repos" - local global_repos_path="$HOME/.darcs/repos" - local -a local_repos global_repos - [[ -e $local_repos_path ]] && local_repos=( $(<$local_repos_path) ) - [[ -e $global_repos_path ]] && global_repos=( $(<$global_repos_path) ) - _description repositories expl "repositories" - (( ${#local_repos} )) && compadd "$expl[@]" -- "$local_repos[@]" - (( ${#global_repos} )) && compadd "$expl[@]" -- "$global_repos[@]" -} - - - -# Combination completion functions - -(( $+functions[_darcs_new_file_or_tree] )) || -_darcs_new_file_or_tree() { - local base_dir=$( cd ${$(_darcs_repodir):-.}; pwd -P) - [[ -z $(_darcs_absolute_tree_root $base_dir) ]] && return 1 - local -a ignored_files - ignored_files=(_darcs) - _alternative 'newfiles:new file:_darcs_new_files' \ - "directories:tree:_path_files -/ -W$base_dir -Fignored_files" -} - -(( $+functions[_darcs_repository_or_tree] )) || -_darcs_repository_or_tree() { - local -a ignored_files - ignored_files=(_darcs) - _alternative 'repository:repository:_darcs_repositories' \ - "directories:directories:_path_files -/ -Fignored_files" -} - - -# -# Mutually exclusive options -# - -typeset -A excludes -excludes=( -# Output - --summary '--no-summary' - --no-summary '--summary' - --context ' --xml-output --human-readable --unified' - --xml-output '--context --human-readable --unified' - --human-readable '--context --xml-output --unified' - --unified '--context --xml-output --human-readable ' - -# Verbosity - --verbose ' --quiet --standard-verbosity' - --quiet '--verbose --standard-verbosity' - --standard-verbosity '--verbose --quiet ' - -# Traversal - --recursive '--not-recursive' - --not-recursive '--recursive' - --look-for-adds '--dont-look-for-adds' - --dont-look-for-adds '--look-for-adds' - -# Pattern - --from-match ' --from-patch --from-tag' - --from-patch '--from-match --from-tag' - --from-tag '--from-patch --from-match ' - --to-match ' --to-patch -to-tag' - --to-patch '--to-match -to-tag' - --to-tag '--to-match --to-patch ' - -# Repository Properties - --plain-pristine-tree '--no-pristine-tree' - --no-pristine-tree '--plain-pristine-tree' - --parial '--complete' - --complete '--partial' - --compress '--dont-compress' - --dont-compress '--compress' - --set-default '--no-set-default' - --no-set-default '--set-default' - -# Logs - --edit-long-comment '--skip-long-comment --leave-test-directory' - --skip-long-comment '--edit-long-comment --leave-test-directory' - --prompt-long-comment '--edit-long-comment --skip-long-comment' - -# Security - --sign ' --sign-as --sign-ssl --dont-sign' - --sign-as '--sign --sign-ssl --dont-sign' - --sign-ssl '--sign --sign-as --dont-sign' - --dont-sign '--sign --sign-as --sign-ssl ' - --verify ' --verify-ssl --no-verify' - --verify-ssl '--verify --no-verify' - --no-verify '--verify --verify-ssl ' - --apply-as '--apply-as-myself' - --apply-as-myself '--apply-as' - -# Conflicts - --mark-conflicts '--allow-conflicts --no-resolve-conflicts --dont-allow-conflicts' - --allow-conflicts '--mark-conflicts --no-resolve-conflicts --dont-allow-conflicts' - --no-resolve-conflicts '--mark-conflicts --allow-conflicts --dont-allow-conflicts' - --dont-allow-conflicts '--mark-conflicts --allow-conflicts --no-resolve-conflicts ' - -# Test - --test '--no-test' - --no-test '--test' - --leave-test-directory '--remove-test-directory' - --remove-test-directory '--leave-test-directory' - -# Misc - --force '--no-force' - --no-force '--force' - --ask-deps '--no-ask-deps' - --no-ask-deps '--ask-deps' - --date-trick '--no-date-trick' - --no-date-trick '--date-trick' - --set-scripts-executable '--dont-set-scripts-executable' - --dont-set-scripts-executable '--set-scripts-executable' -) - - - -# -# Utility functions -# - -# _darcs_make_tree_path in_tree_head_name in_tree_tail_name path -# Set in_tree_head_name in_tree_tail_name to the corresponding path -# parts from inside the current darcs tree. -_darcs_make_tree_path () { - [[ -z $3 || $3 = '.' ]] && 3=${PREFIX:-./} - local _in_tree=$(_darcs_path_from_root ${$(_darcs_repodir):-.}/$3) - [[ -z $_in_tree ]] && return 1 - 4='' 5='' - if [[ ${3[-1]} = / ]]; then - 4=$_in_tree - else - 4=$_in_tree:h - [[ $_in_tree:t != . ]] && 5=$_in_tree:t - fi - set -A "$1" "$4" - set -A "$2" "$5" -} - -_darcs_repodir () { - local index=$words[(i)--repodir*] - if (( index < CURRENT )); then - if [[ $words[$index] = --repodir ]]; then - (( index++ )) - print $words[$index] - else - print ${words[$index]#*=} - fi - fi -} - -_darcs_absolute_tree_root () { - local root=$(_darcs_repodir) - [[ -z $root ]] && root=$(pwd -P) - while [[ ! $root -ef / ]]; do - [[ -d $root/_darcs ]] && break - root="$root/.." - done - [[ $root -ef / ]] || print $(cd $root; pwd -P) -} - -_darcs_tree_root () { - local abs=$(_darcs_absolute_tree_root) - local rel=$(_darcs_relative_path $abs $(pwd -P)) - [[ -n $abs ]] && print $rel -} - -# _darcs_paths_from_root name paths -# Sets name to the paths relative to the darcs tree root. -# If no argument is given then the current directory -# is assumed. -_darcs_paths_from_root () { - local name=$1 - abs=$(_darcs_absolute_tree_root) - [[ -z $abs ]] && set -A "$name" && return 1 - shift - 1=${1:=$PWD} - local -a subpaths - _darcs_filter_for_subpaths subpaths $abs $* - local i - for (( i=1; i<=${#subpaths}; i++ )); do - [[ $subpaths[$i] != '.' ]] && subpaths[$i]="./$subpaths[$i]" - done - set -A "$name" "$subpaths[@]" -} - -_darcs_path_from_root() { - local path - _darcs_paths_from_root path $1 - [[ -n $path ]] && print "$path" -} - -# _darcs_filter_for_in_dir name dir paths -# Sets name to the relative paths from dir to the given paths which -# traverse dir. It ignores paths which are not in dir. -_darcs_filter_for_subpaths () { - local name=$1 dir=$2 - shift 2 - local p rel - local -a accepted_paths - accepted_paths=() - for p; do - rel=$(_darcs_path_difference $p $dir) - [[ -n $rel ]] && accepted_paths+="$rel" - done - set -A "$name" "$accepted_paths[@]" -} - -# _darcs_path_difference p1 p2 -# Print the path from p2 to p1. If p2 is not an ancestor of p1 then it -# prints a blank string. If they point to the same directory then it returns -# a single period. p2 needs to be a directory path. -_darcs_path_difference () { - local diff=$(_darcs_relative_path $1 $2) - [[ ${diff%%/*} != .. ]] && print $diff || return 1 -} - - -# Print the a relative path from the second directory to the first, -# defaulting the second directory to $PWD if none is specified. -# Taken from the zsh mailing list. -_darcs_relative_path () { - 2=${2:=$PWD} - [[ -d $2 && -d $1:h ]] || return 1 - [[ ! -d $1 ]] && 3=$1:t 1=$1:h - 1=$(cd $1; pwd -P) - 2=$(cd $2; pwd -P) - [[ $1 -ef $2 ]] && print ${3:-.} && return - - local -a cur abs - cur=(${(s:/:)2}) # Split 'current' directory into cur - abs=(${(s:/:)1} $3) # Split target directory into abs - - # Compute the length of the common prefix, or discover a subdiretory: - integer i=1 - while [[ i -le $#abs && $abs[i] == $cur[i] ]] - do - ((++i > $#cur)) && print ${(j:/:)abs[i,-1]} && return - done - - 2=${(j:/:)cur[i,-1]/*/..} # Up to the common prefix directory and - 1=${(j:/:)abs[i,-1]} # down to the target directory or file - - print $2${1:+/$1} -} - -# Code to make sure _darcs is run when we load it -_darcs_main "$@" - - - diff -Nru zsh-4.3.10/Completion/Unix/Command/.distfiles zsh-4.3.11/Completion/Unix/Command/.distfiles --- zsh-4.3.10/Completion/Unix/Command/.distfiles 2009-04-24 11:11:13.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/.distfiles 2010-08-05 21:33:47.000000000 +0200 @@ -52,8 +52,11 @@ _elm _enscript _env +_espeak _fakeroot +_feh _fetchmail +_ffmpeg _figlet _find _finger @@ -77,12 +80,14 @@ _gpg _gphoto2 _gprof +_graphicsmagick _grep _groff _growisofs _gs _guilt _gzip +_hg _iconv _id _ifconfig @@ -115,7 +120,6 @@ _man _md5sum _mencal -_mercurial _metaflac _mh _mkdir @@ -134,6 +138,7 @@ _nice _nmap _nslookup +_osc _pack _patch _pax @@ -177,6 +182,7 @@ _sccs _screen _sed +_service _setfacl _sh _showmount @@ -205,6 +211,7 @@ _tiff _tin _tla +_tmux _todo.sh _toilet _topgit @@ -217,6 +224,7 @@ _uniq _units _user_admin +_uzbl _vim _vorbis _vorbiscomment diff -Nru zsh-4.3.10/Completion/Unix/Command/_django zsh-4.3.11/Completion/Unix/Command/_django --- zsh-4.3.10/Completion/Unix/Command/_django 2009-03-02 11:10:23.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_django 2009-12-29 20:56:14.000000000 +0100 @@ -154,7 +154,7 @@ ) ;; - runserver) + runserver|runserver_plus) args+=( '--noreload[do not use auto-reloader]' '--adminmedia=[directory from which to serve admin media]:directory:_directories' @@ -199,6 +199,10 @@ validate|runfcgi) ;; + + *) + _files + ;; esac _arguments $args && ret=0 diff -Nru zsh-4.3.10/Completion/Unix/Command/_du zsh-4.3.11/Completion/Unix/Command/_du --- zsh-4.3.10/Completion/Unix/Command/_du 2008-01-07 14:46:45.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_du 2010-12-06 11:13:55.000000000 +0100 @@ -7,22 +7,42 @@ '(-B --block-size -k)'{-B,--block-size=}'[specify block size]:size (bytes)' \ '(-B --block-size -k --apparent-size -b --bytes)'{-b,--bytes}'[equivalent to --apparent-size --block-size=1]' \ '(-c --total)'{-c,--total}'[produce a grand total]' \ - '(-D --dereference-args -L --dereference)'{-D,--dereference-args}'[dereference arguments that are symlinks]' \ + '(-H -D --dereference-args -L --dereference -P --no-dereference)'{-H,-D,--dereference-args}'[dereference arguments that are symlinks]' \ + '(-H -D --dereference-args -L --dereference -P --no-dereference)'{-P,--no-dereference}'[do not dereference any symlinks]' \ '(-h --human-readable -H --si)'{-h,--human-readable}'[print sizes in human readable format]' \ - '(-H --si -h --human-readable)'{-H,--si}'[human readable form using powers of 1000]' \ + '(--si -h --human-readable)--si[human readable form using powers of 1000]' \ '(-B --block-size)-k[use block size of 1k]' \ + '(-B --block-size)-m[use block size of 1M]' \ '(-l --count-links)'{-l,--count-links}'[count sizes many times if hard linked]' \ - '(-L --dereference -D --dereference-args)'{-L,--dereference}'[dereference all symlinks]' \ + '(-L --dereference -H -D --dereference-args -P --no-dereference)'{-L,--dereference}'[dereference all symlinks]' \ '(-S --separate-dirs)'{-S,--separate-dirs}'[do not include size of subdirectories]' \ '(-s --summarize --max-depth -a --all)'{-s,--summarize}'[only display total for each argument]' \ '(-x --one-file-system)'{-x,--one-file-system}'[skip directories on different filesystems]' \ + '(-0 --null)'{-0,--null}'[end each output line with NUL instead of newline]' \ \*{-X+,--exclude-from=}'[exclude files matching any pattern in file]:file:_files' \ '*--exclude=[exclude files matching pattern]:pattern' \ '(-s --summarize)--max-depth=[maximum levels to recurse]:levels' \ + '--files0-from=[use NUL-terminated list of files from file]:file' \ + '--time-style=[show times using given style, +FORMAT for strftime formatted args]:style:->timestyle' \ + '--time=-[show time of last modification of any file in the directory]:property:->time' \ '(* -)--help[display help information]' \ '(* -)--version[display version information]' \ '*:file:_files' - return + + case $state in + (time) + local -a property + property=(atime access use ctime status) + _wanted property expl property compadd -a property + ;; + (timestyle) + local -a style desc + style=(full-iso long-iso iso +) + desc=('full-iso' 'long-iso' 'iso' '+FORMAT like `date'\''') + _wanted -V style expl style compadd -d desc -a style + ;; + esac + else # based on $OSTYPE = solaris2.8 local xdev='[skip directories on different filesystems]' @@ -40,5 +60,4 @@ '-r[notify about unreadable files/directories]' \ '(-a)-s[only display total for each argument]' \ '*:file:_files' - return fi diff -Nru zsh-4.3.10/Completion/Unix/Command/_ecasound zsh-4.3.11/Completion/Unix/Command/_ecasound --- zsh-4.3.10/Completion/Unix/Command/_ecasound 2004-01-21 14:53:29.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_ecasound 2010-06-06 15:44:12.000000000 +0200 @@ -15,7 +15,7 @@ '-sr\:-[set internal sampling rate]:internal sampling rate:(8000 11025 22050 44100 48000)' \ '*-a\:-[select active signal chains]:chain name' \ '-b\:-[set the size of buffer in samples]:buffer size:->b' \ - '-m\:-[force use of specified mix mode]:mix mode:((auto\:Automatic simple\:Only\ one\ input/cain/output normal\:Normal\ single-threaded\ mode))' \ + '-m\:-[force use of specified mix mode]:mix mode:((auto\:automatic simple\:only\ one\ input/cain/output normal\:normal\ single-threaded\ mode))' \ '-r[use realtime scheduling policy (SCHED_FIFO)]' \ '-r\:-[use realtime scheduling policy (SCHED_FIFO)]:sched_priority' \ '-x[truncate outputs]' \ diff -Nru zsh-4.3.10/Completion/Unix/Command/_elinks zsh-4.3.11/Completion/Unix/Command/_elinks --- zsh-4.3.10/Completion/Unix/Command/_elinks 2004-07-22 11:21:44.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_elinks 2010-06-22 03:01:07.000000000 +0200 @@ -1,6 +1,6 @@ #compdef elinks -# ELinks 0.9.0 - Text WWW browser +# ELinks 0.12pre5 local curcontext="$curcontext" state line ret=1 typeset -A opt_args @@ -8,40 +8,55 @@ _arguments -C -A '-*' \ '*-anonymous[restrict to anonymous mode]::boolean:(0 1)' \ '*-auto-submit[autosubmit first form]::boolean:(0 1)' \ - '*-base-session[clone session with given ID]:ID number:' \ - '*-confdir[set config dir to given string]:configuration directory:_files -/' \ - '*-conffile[configuration file name]:configuration file:_files' \ - '*-default-mime-type[MIME type to assume for documents]:MIME type:_mime_types' \ - '*-dump[write formatted version of given URL to stdout]::boolean:(0 1)' \ + '*-base-session[clone internal session with given ID]:ID number:' \ + '*-config-dir[name of directory with configuration file]:configuration directory:_files -/' \ + '(- 1)-config-dump[print default configuration file to stdout]' \ + '*-config-file[name of configuration file]:configuration file:_files' \ + '*-default-mime-type[MIME type assumed for unknown document types]:MIME type:_mime_types' \ + '*-default-keys[ignore user-defined keybindings]::boolean:(0 1)' \ + '*-dump[print formatted versions of given URLs to stdout]::boolean:(0 1)' \ '*-dump-charset[codepage to use with -dump]:codepage:' \ + '-dump-color-mode[color mode used with -dump]:color mode:((-1\:standard\ dump\ mode 0\:mono\ mode 1\:16\ color\ mode 2\:88\ color\ mode 3\:256\ color\ mode 4\:true\ color\ mode))' \ '*-dump-width[width of document formatted with -dump]:width:' \ - '*-eval[evaluate given configuration option]:configuration option:' \ - '*-force-html[assume the file is HTML]' \ + '*-eval[evaluate configuration file directive]:configuration option:' \ + '*-force-html[interpret documents of unknown types as HTML]' \ '(- 1)-'{\?,h,help}'[print usage help and exit]' \ + '*-localhost[only permit local connections]::boolean:(0 1)' \ '(- 1)-long-help[print detailed usage help and exit]' \ '(- 1)-config-help[print help for configuration options]' \ '(- 1)-lookup[look up specified host]:host:_hosts' \ '*-no-connect[run as separate instance]::boolean:(0 1)' \ "*-no-home[don't use files in ~/.elinks]::boolean:(0 1)" \ + '*-no-numbering[disable link numbering in dump output]::boolean:(0 1)' \ + '*-no-references[disable printing of link references in dump output]::boolean:(0 1)' \ + '*-remote[control an already running ELinks]:*:command:->remote' \ '*-session-ring[connect to session ring with given ID]:ID number:' \ - '*-source[write the source of given URL to stdout]::boolean:(0 1)' \ + '*-source[print the source of given URLs to stdout]::boolean:(0 1)' \ '(1)*-stdin[read document from stdin]::boolean:(0 1)' \ - '*-no-numbering[do not number links in dump output]::boolean:(0 1)' \ '*-touch-files[touch files in ~/.elinks when running with -no-connect/-session-ring]::boolean:(0 1)' \ + '*-verbose[verbose level]:verbosity level:((0\:serious\ errors 1\:serious\ errors\ and\ warnings 2\:all\ messages ))' \ '(- 1)-version[print version information and exit]' \ '1:URL:->url' && ret=0 if [[ "$state" = url ]]; then - local elinks_bookmarks + local -a bookmarks + local file=${opt_args[-config-dir]:-${ELINKS_CONFDIR:-~/.elinks}}/bookmarks - if [[ -s ~/.elinks/bookmarks ]]; then - elinks_bookmarks=( $(cut -f2 ~/.elinks/bookmarks) ) + if [[ -s $file ]]; then + bookmarks=( ${${${(f)"$(< $file)"}#* }%% *} ) fi _alternative \ 'files:file:_files' \ - 'bookmarks:bookmark:compadd -a elinks_bookmarks' \ - 'urls:URL:_urls' && return + 'bookmarks:bookmark:compadd -a bookmarks' \ + 'urls:URL:_urls' && ret=0 +elif [[ "$state" = remote ]]; then + local -a commands + commands=( ping openURL addBookmark infoBox xfeDoCommand ) + + _alternative \ + 'commands:command:compadd -a commands' \ + 'urls:URL:_urls' && ret=0 fi return ret diff -Nru zsh-4.3.10/Completion/Unix/Command/_env zsh-4.3.11/Completion/Unix/Command/_env --- zsh-4.3.10/Completion/Unix/Command/_env 2006-04-13 04:46:50.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_env 2009-11-15 18:42:09.000000000 +0100 @@ -3,9 +3,10 @@ if _pick_variant gnu=Free\ Soft unix --version; then _arguments \ '(--ignore-environment -i)'{-i,--ignore-environment}'[start with empty environment]' \ - {-u,--unset=}':env var to remove:compadd ${(k)parameters[(R)*export*]}' \ + '*'{-u,--unset=}'[remove variable from the environment]:env var to remove:compadd ${(k)parameters[(R)*export*]}' \ '--help[help]' \ '--version[version]' \ + '(-):command: _command_names -e' \ '*::arguments: _normal' else _precommand diff -Nru zsh-4.3.10/Completion/Unix/Command/_espeak zsh-4.3.11/Completion/Unix/Command/_espeak --- zsh-4.3.10/Completion/Unix/Command/_espeak 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_espeak 2010-01-04 21:34:34.000000000 +0100 @@ -0,0 +1,33 @@ +#compdef espeak + +#TODO: complete non-existing filenames for -w and --phonout +#TODO: describe special cases for -k +#TODO: complete --punct better? + +_arguments \ + '-h[help]' \ + '-f[file to speak]:text file:_files' \ + '--stdin[speak from stdin]' \ + '-q[quiet, no sound output]' \ + '-a[amplitude]:integer:(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 +18 19 20)' \ + '-l[line length]:integer: ' \ + '-p[pitch]:integer:(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 +19 20 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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 +67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 +91 92 93 94 95 96 97 98 99)' \ + '-s[speed]:words per minute: ' \ + '-v[voice]:voice name:(afrikaans bosnian catalan czech welsh-test danish-test german greek default en-scottish english lancashire english_rp english_wmids english-us en-westindies esperanto spanish spanish-latin-american finnish french french greek-ancient hindi-test croatian hungarian armenian armenian-west indonesian-test icelandic-test italian test/jbo kurdish latin latvian macedonian-test dutch-test norwegian-test test/pap polish brazil portugal romanian russian_test slovak albanian serbian swedish swahihi-test tamil turkish vietnam-test Mandarin cantonese-test)' \ + '-b[8-bit text]' \ + '-m[SSML or other XML text]' \ + '-w[wav output]:filename: ' \ + '-x[output phoneme mnemonics]' \ + '-X[output phoneme mnemonics and translation trace]' \ + '--stdout[output speech to stdout]' \ + '-k[capital letter indication]:integer:' \ + '--punct=-::characters: ' \ + '--voices=-[list available voices]::language code:(af bs ca cs cy da de el en en-sc en-uk en-uk-north en-uk-rp en-uk-wmids en-us en-wi eo es es-la fi fr fr-be grc hi hr hu hy hy id is it jbo ku la lv mk nl no pap pl pt pt-pt ro ru sk sq sr sv sw ta tr vi zh zh-yue)' \ + '--path=-[espeak-data path]:path:_files -/' \ + '--compile=-[compile]::voicename or debug: ' \ + '--phonout=-[output filename for -x/-X]:filename: ' diff -Nru zsh-4.3.10/Completion/Unix/Command/_feh zsh-4.3.11/Completion/Unix/Command/_feh --- zsh-4.3.10/Completion/Unix/Command/_feh 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_feh 2010-06-07 06:59:54.000000000 +0200 @@ -0,0 +1,197 @@ +#compdef feh +## completion for feh 1.6, based on feh(1) + +typeset -a arguments +typeset -A argument_pairs argument_postfix +typeset arg + +argument_pairs=( + 'help' 'h' + 'version' 'v' + 'verbose' 'V' + 'quiet' 'q' + 'theme' 'T+' + 'recursive' 'r' + 'randomize' 'z' + 'filelist' 'f+' + 'preload' 'p' + 'full-screen' 'F' + 'geometry' 'g+' + 'auto-zoom' 'Z' + 'multiwindow' 'w' + 'borderless' 'x' + 'draw-filename' 'd' + 'slideshow-delay' 'D+' + 'reload' 'R+' + 'keep-http' 'k' + 'builtin' 'Q' + 'list' 'l' + 'customlist' 'L+' + 'loadable' 'U' + 'unloadable' 'u' + 'sort' 'S+' + 'reverse' 'n' + 'action' 'A+' + 'montage' 'm' + 'collage' 'c' + 'index' 'i' + 'fullindex' 'I' + 'thumbnails' 't' + 'menu-font' 'M+' + 'no-menus' 'N' + 'reload-button' '0' + 'menu-button' '3+' + 'prev-button' '4+' + 'next-button' '5+' + 'rotate-button' '8+' + 'blur-button' '9+' + 'ignore-aspect' 'X' + 'stretch' 's' + 'thumb-width' 'y+' + 'thumb-height' 'E+' + 'limit-width' 'W+' + 'limit-height' 'H+' + 'bg' 'b+' + 'alpha' 'a+' + 'font' 'e+' + 'scale-down' '.' + 'output-dir' 'j+' + 'wget-timestamp' 'G' + 'fontpath' 'C+' + 'image-bg' 'B+' + 'output' 'o' + 'output-only' 'O' + 'rcfile' '_' + 'thumb-title' '~' + 'title' '^' + 'start-at' '|' + 'title-font' '@' +) + +argument_postfix=( + 'help' '[show help]' + 'version' '[show version information]' + 'verbose' '[be verbose]' + 'quiet' '[suppress non-fatal errors]' + 'theme' '[load named options from config]:theme:_feh_theme' + 'recursive' '[recurse into subdirectories]' + 'randomize' '[randomize file list before displaying]' + 'filelist' '[read file list from this file]:file:_files' + 'preload' '[eliminate unlaodable images before displaying]' + 'full-screen' '[make the window fullscreen]' + 'geometry' '[limit window size]:geometry: ' + 'auto-zoom' '[zoom picture to screen size]' + 'multiwindow' '[multiple windows, one image per window]' + 'borderless' '[borderless windows]' + 'draw-filename' '[show filename in images]' + 'reload' '[time delay for reloading]:time: ' + 'keep-http' "[don't delete cached files]" + 'builtin' '[use builtin http client]' + 'list' '[list images, their size, etc.]' + 'customlist' '[format list output]:format: ' + 'loadable' '[print loadable images]' + 'unloadable' '[print unloadable images]' + 'sort' '[sort images]:sort type:(name filename width height pixels size format)' + 'reverse' '[reverse sort order]' + 'action' '[action to perform on each image]:shell: ' + 'montage' '[enable montage mode]' + 'collage' '[enable collage mode]' + 'index' '[enable index mode]' + 'fullindex' '[enable verbose index mode]' + 'thumbnails' '[enable interactive index mode]' + 'menu-font' '[set font in menus]:font: ' + 'no-menus' "[don't load or show any menus]" + 'reload-button' '[button to reload image]:button:_feh_button' + 'pan-button' '[button to pan image]:button:_feh_button' + 'zoom-button' '[button to zoom image]:button:_feh_button' + 'menu-button' '[button to activate menu]:button:_feh_button' + 'prev-button' '[button to go to previous image]:button:_feh_button' + 'next-button' '[button to go to next image]:button:_feh_button' + 'rotate-button' '[Ctrl+Button to rotate image]:button:_feh_button' + 'blur-button' '[Ctrl+Button tu blur image]:button:_feh_button' + 'ignore-aspect' "[montage mode: Don't preserve aspect ratio]" + 'stretch' '[montage mode: Enlarge images to fit thumbnail size]' + 'thumb-width' '[montage mode: Thumbnail width]:pixels: ' + 'thumb-height' '[montage mode: Thumbnail height]:pixels: ' + 'limit-width' '[montage mode: Limit montage width]:pixels: ' + 'limit-height' '[montage mode: Limit montage heihgt]:pixels: ' + 'bg' '[montage mode: Background image]:file:_files' + 'alpha' '[montage mode: Thumbnail transparency level]:integer: ' + 'font' '[index mode: Thumbnail info font]:font: ' + 'slideshow-delay' '[slide change delay]:seconds' + 'scale-down' '[scale down images which are too big]' + 'output-dir' '[save files to DIR (with -k)]:directory:_files -/' + 'wget-timestamp' '[add no timestamp ("?123") to URLs]' + 'fontpath' '[add paths to font path]:font path:_files -/' + 'image-bg' '[set transparent image background]:background:(white black default)' + 'output' '[montage mode: Output file]:file:_files' + 'output-only' "[montage mode: Output file, don't display montage]:file: files" + 'rcfile' '[specify config file]:file:_files' + 'thumb-title' '[window title in thumbnail mode]:format string' + 'title' '[window title in slideshow mode]:format string' + 'start-at' '[start slideshow at]:file:_files' + 'title-font' '[title font for index mode]:font' +) + +arguments=( + '--zoom[zoom images]:percent: ' + '--caption-path[where to look for image captions]:relative directory: ' + --action{1..9}':shell: ' + '--bg-tile[set tiled desktop background]:file:_files' + '--bg-center[set centered desktop background]:file:_files' + '--bg-scale[set scaled desktop background]:file:_files' + '--bg-seamless[set desktop background with seamless borders]:file:_files' + '--bg-fill[set scaled desktop background, preserving aspect ratio]:file:_files' + '--menu-style[style descriptor for menu text]:file:_files' + '--menu-border[set menu background border]:integer: ' + '--menu-ctrl-mask[use Ctrl+Button to display menu]' + '--no-rotate-ctrl-mask[don'\''t require Ctrl for the rotate button]' + '--no-blur-ctrl-mask[don'\''t require Ctrl for the blur button]' + '--no-xinerama[disable xinerama support]' + '--screen-clip[toggle window clipping]' + '--hide-pointer[hide mouse pointer in fullscreen mode]' + '*--fontpath[index mode: directory to search for fonts]:directory:_path_files -/' + '--index-name[show image name in index/thumbnail mode]:bool:(0 1)' + '--index-size[show image size in index/thumbnail mode]:bool:(0 1)' + '--index-dim[show image dimensions in index/thumbnail mode]:bool:(0 1)' + '--no-jump-on-resort[stay at current image after resorting the filelist]' + '--cycle-once[quit after one loop through the slideshow]' + '--draw-actions[draw defined actions]' + '--cache-thumbnails[enable thumbnail caching]' + '--menu-bg[background image in menus]: :_feh_background' + '--thumb-redraw[set thumbnail image redraw frequency]:digit' + '*:file:_files' +) + +for arg in ${(k)argument_pairs}; { + arguments+='(--'${arg}')-'${argument_pairs[$arg]}${argument_postfix[$arg]} + arguments+='(-'${argument_pairs[$arg]}[1]')--'${arg}${argument_postfix[$arg]} +} + +function _feh_theme { + if [[ -r ~/.fehrc ]]; then + typeset -a themes tmp + typeset theme IFS=$'\n' + for theme in $(grep "\w" ~/.fehrc | grep -v "^#"); do + tmp=(${(s: :)theme}) + theme=${tmp[1]} + shift tmp + themes+=${theme}:${(j: :)tmp} + done + _describe 'theme' themes + fi +} + +function _feh_button { + typeset expl + _wanted button expl button \ + compadd {0..5} +} + +function _feh_background { + _alternative \ + 'file:file:_files' \ + 'mode:mode:(trans)' +} + +_arguments -s ${arguments} diff -Nru zsh-4.3.10/Completion/Unix/Command/_ffmpeg zsh-4.3.11/Completion/Unix/Command/_ffmpeg --- zsh-4.3.10/Completion/Unix/Command/_ffmpeg 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_ffmpeg 2010-09-16 14:20:01.000000000 +0200 @@ -0,0 +1,163 @@ +#compdef ffmpeg + +local context state line +typeset -A opt_args + +local BOLD=$'\e[1m' +local NORM=$'\e[m' + +_ffmpeg_compadd() { + compadd -X "${BOLD}$1${NORM}" -q -S "$3" -a $2 +} + +_ffmpeg_presets() { + local presets + presets=(~/.ffmpeg/*.ffpreset(:t:r) "$FFMPEG_DATADIR"/*.ffpreset(:t:r)) + _ffmpeg_compadd 'select preset' presets '' +} + +_ffmpeg_acodecs() { + local acodecs + acodecs=(${${(M)${(f)"$(ffmpeg -codecs 2>/dev/null)"}:#[[:space:]][D[:space:]][E[:space:]]A[S[:space:]][D[:space:]][T[:space:]][[:space:]][^[:space:]]##*}//(#b)????????([^[:space:]]##)*/$match[1]}) + _ffmpeg_compadd 'force audio codec (''copy'' to copy stream)' acodecs '' +} + +_ffmpeg_vcodecs() { + local vcodecs + vcodecs=(${${(M)${(f)"$(ffmpeg -codecs 2>/dev/null)"}:#[[:space:]][D[:space:]][E[:space:]]V[S[:space:]][D[:space:]][T[:space:]][[:space:]][^[:space:]]##*}//(#b)????????([^[:space:]]##)*/$match[1]}) + _ffmpeg_compadd 'force video codec (''copy'' to copy stream)' vcodecs '' +} + +_ffmpeg_formats() { + local formats + formats=(${(ou)${=${(s:,:)${${(M)${(f)"$(ffmpeg -formats 2>/dev/null)"}:#[[:space:]][D[:space:]][E[:space:]][[:space:]][^[:space:]]##*}//(#b)????([^[:space:]]##)*/$match[1]}}}}) + _ffmpeg_compadd 'force format' formats '' +} + +_ffmpeg_list_pix_fmts() { + print -l ${${(M)${(f)"$(ffmpeg -pix_fmts 2>/dev/null)"}:#[I.]*}//(#b)??????([^[:space:]]##)*/$match[1]} +} + +_ffmpeg_pix_fmts() { + local pix_fmts + pix_fmts=($(_ffmpeg_list_pix_fmts)) + _ffmpeg_compadd 'set pixel format' pix_fmts '' +} + +_ffmpeg_bsfs() { + local bsfs + bsfs=(${${(f)"$(ffmpeg -bsfs 2>/dev/null)"}:#*:}) + _ffmpeg_compadd 'set bitstream filter' bsfs '' +} + +_ffmpeg_argspecs="$(ffmpeg -h 2>/dev/null | perl -e ' +my $lastopt; +my $lastopt_description; +my $lastopt_takesargs; +my @lastopt_values; +while (<>) { + if (/^(-\S+)\s+(\S.+)$/) { + print_opt(); + $lastopt = $1; + $lastopt_description = $2; + if ($lastopt_description =~ /<\w+>/) { + $lastopt_description =~ s/<.*?>\s+//; + $lastopt_description =~ s/\S{5} ?//; + $lastopt_description = $lastopt if not $lastopt_description; + escape_str($lastopt_description); + } elsif ($lastopt_description =~ /^(\S+)\s\s+/) { + my $example = $1; + $lastopt_description =~ s/^\S+\s\s+//; + escape_str($example); + escape_str($lastopt_description); + if ($example eq q(filename)) { + $lastopt_takesargs = 0; + $lastopt .= qq(:$lastopt_description:_files); + } elsif ($lastopt =~ /^-[asv]pre$/) { + $lastopt_takesargs = 0; + $lastopt .= qq(: :_ffmpeg_presets); + } elsif ($lastopt eq q(-acodec)) { + $lastopt_takesargs = 0; + $lastopt .= qq(: :_ffmpeg_acodecs); + } elsif ($lastopt eq q(-vcodec)) { + $lastopt_takesargs = 0; + $lastopt .= qq(: :_ffmpeg_vcodecs); + } elsif ($lastopt eq q(-f)) { + $lastopt_takesargs = 0; + $lastopt .= qq(: :_ffmpeg_formats); + } elsif ($lastopt eq q(-pix_fmt)) { + $lastopt_takesargs = 0; + $lastopt .= qq(: :_ffmpeg_pix_fmts); + } elsif ($example eq q(bitstream_filter)) { + $lastopt_takesargs = 0; + $lastopt .= qq(: :_ffmpeg_bsfs); + } else { + $lastopt_takesargs = 1; + $lastopt_description .= qq{ ($example)}; + } + } else { + $lastopt_takesargs = 0; + if ($lastopt eq q(-vfilters)) { + $lastopt .= qq(: :->vfilters); + } + } + @lastopt_values = (); + } elsif (/^ (\S+)/) { + $lastopt_takesargs = 1; + push @lastopt_values, $1; + } +} +print_opt(); +exit; + +sub escape_str { + $_[0] =~ s/:/\\:/g; +} + +sub print_opt { + return if not $lastopt; + + print qq($lastopt); + if (!$lastopt_takesargs) { + print qq(\n); + } else { + print qq(:$lastopt_description:); + if (@lastopt_values) { + printf qq{(%s)}, join(q( ), @lastopt_values); + } + print qq(\n); + } +} +')" +_ffmpeg_argspecs=(${(f)_ffmpeg_argspecs}) + +_arguments -S \ + "${_ffmpeg_argspecs[@]}" \ + '*:output file:_files' \ + && return 0 + +[[ "$state" == "vfilters" ]] && + _values -s , -S = 'video filters' \ + 'aspect:set aspect ratio (rational number X\:Y or decimal number):' \ + 'crop:crop input video (x\:y\:width\:height):' \ + 'format: :->format' \ + 'noformat: :->noformat' \ + 'null' \ + 'pad:add pads to the input image (width\:height\:x\:y\:color_string):' \ + 'pixelaspect:set pixel aspect ratio (rational number X\:Y or decimal number):' \ + 'scale:scale input video (width\:height):' \ + 'slicify:output slice height ("random" or a number of pixels):' \ + 'unsharp:luma_x\:luma_y\:luma_amount\:chroma_x\:chroma_y\:chroma_amount:' \ + 'vflip' \ + 'buffer' \ + 'nullsrc' \ + 'nullsink' \ + && return 0 + +[[ "$state" == "format" ]] && + _values -s : -S = 'convert input video to one of the specified pixel formats' $(_ffmpeg_list_pix_fmts) && return 0 + +[[ "$state" == "noformat" ]] && + _values -s : -S = 'disable specified pixel formats by force' $(_ffmpeg_list_pix_fmts) && return 0 + +return 1 diff -Nru zsh-4.3.10/Completion/Unix/Command/_getconf zsh-4.3.11/Completion/Unix/Command/_getconf --- zsh-4.3.10/Completion/Unix/Command/_getconf 2006-02-21 11:15:05.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_getconf 2010-07-20 11:06:56.000000000 +0200 @@ -2,48 +2,57 @@ local expl ret=1 +local -a syskeys posixkeys confkeys pathkeys1 pathkeys2 allkeys mykeys restkeys +syskeys=(ARG_MAX BC_BASE_MAX BC_DIM_MAX BC_SCALE_MAX + BC_STRING_MAX CHILD_MAX COLL_WEIGHTS_MAX EXPR_NEST_MAX LINE_MAX + NGROUPS_MAX OPEN_MAX RE_DUP_MAX STREAM_MAX TZNAME_MAX) +posixkeys=(_POSIX_CHILD_MAX _POSIX_LINK_MAX + _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX + _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX + _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VERSION + POSIX2_BC_BASE_MAX POSIX2_BC_DIM_MAX POSIX2_BC_SCALE_MAX + POSIX2_BC_STRING_MAX POSIX2_COLL_WEIGHTS_MAX POSIX2_EXPR_NEST_MAX + POSIX2_LINE_MAX POSIX2_RE_DUP_MAX POSIX2_VERSION POSIX2_C_BIND + POSIX2_C_DEV POSIX2_FORT_DEV POSIX2_FORT_RUN POSIX2_LOCALEDEF + POSIX2_SW_DEV _XOPEN_VERSION) +confkeys=(PATH GNU_LIBC_VERSION GNU_LIBPTHREAD_VERSION + LFS_CFLAGS LFS_LDFLAGS LFS_LIBS LFS_LINTFLAGS + LFS64_CFLAGS LFS64_LDFLAGS LFS64_LIBS LFS64_LINTFLAGS) +pathkeys1=(PIPE_BUF _POSIX_CHOWN_RESTRICTED + _POSIX_NO_TRUNC _POSIX_VDISABLE) +pathkeys2=(LINK_MAX MAX_CANON MAX_INPUT NAME_MAX PATH_MAX PIPE_BUF) +mykeys=($syskeys $posixkeys $confkeys $pathkeys1 $pathkeys2) + if [[ CURRENT -eq 2 ]]; then - _tags syswideconfig pathconfig standardsconfig confstring + _tags syswideconfig pathconfig standardsconfig confstring restconfig + + allkeys=(${${(f)"$(getconf -a 2>/dev/null)"}%%[: ]*}) + restkeys=(${allkeys:#(${(j.|.)~mykeys})}) while _tags; do _requested -V syswideconfig expl 'systemwide configuration variables' \ - compadd -S '' ARG_MAX BC_BASE_MAX BC_DIM_MAX BC_SCALE_MAX \ - BC_STRING_MAX CHILD_MAX COLL_WEIGHTS_MAX EXPR_NEST_MAX LINE_MAX \ - NGROUPS_MAX OPEN_MAX RE_DUP_MAX STREAM_MAX TZNAME_MAX && ret=0 + compadd -S '' $syskeys && ret=0 _requested -V standardsconfig \ expl 'system-standards configuration variables' \ - compadd -S '' _POSIX_CHILD_MAX _POSIX_LINK_MAX \ - _POSIX_MAX_CANON _POSIX_MAX_INPUT _POSIX_NAME_MAX _POSIX_NGROUPS_MAX \ - _POSIX_OPEN_MAX _POSIX_PATH_MAX _POSIX_PIPE_BUF _POSIX_SSIZE_MAX \ - _POSIX_STREAM_MAX _POSIX_TZNAME_MAX _POSIX_VERSION \ - POSIX2_BC_BASE_MAX POSIX2_BC_DIM_MAX POSIX2_BC_SCALE_MAX \ - POSIX2_BC_STRING_MAX POSIX2_COLL_WEIGHTS_MAX POSIX2_EXPR_NEST_MAX \ - POSIX2_LINE_MAX POSIX2_RE_DUP_MAX POSIX2_VERSION POSIX2_C_BIND \ - POSIX2_C_DEV POSIX2_FORT_DEV POSIX2_FORT_RUN POSIX2_LOCALEDEF \ - POSIX2_SW_DEV _XOPEN_VERSION && ret=0 - - _requested -V confstring \ - expl 'configuration-dependent string variables' \ - compadd -S '' PATH GNU_LIBC_VERSION GNU_LIBPTHREAD_VERSION \ - LFS_CFLAGS LFS_LDFLAGS LFS_LIBS LFS_LINTFLAGS \ - LFS64_CFLAGS LFS64_LDFLAGS LFS64_LIBS LFS64_LINTFLAGS \ - && ret=0 + compadd -S '' $posixkeys && ret=0 _requested -V confstring \ expl 'configuration-dependent string variables' \ - compadd -S '' PATH GNU_LIBC_VERSION GNU_LIBPTHREAD_VERSION \ - LFS_CFLAGS LFS_LDFLAGS LFS_LIBS LFS_LINTFLAGS \ - LFS64_CFLAGS LFS64_LDFLAGS LFS64_LIBS LFS64_LINTFLAGS \ - && ret=0 + compadd -S '' $confkeys && ret=0 _requested pathconfig && - while _next_label -V pathconfig expl 'system path configuration variables'; do - compadd "$expl[@]" -S '' PIPE_BUF _POSIX_CHOWN_RESTRICTED \ - _POSIX_NO_TRUNC _POSIX_VDISABLE && ret=0 - compadd "$expl[@]" -S ' ' LINK_MAX MAX_CANON MAX_INPUT NAME_MAX \ - PATH_MAX PIPE_BUF && ret=0 - done + while _next_label -V pathconfig expl 'system path configuration variables'; do + compadd "$expl[@]" -S '' $pathkeys1 && ret=0 + compadd "$expl[@]" -S ' ' $pathkeys2 && ret=0 + done + + if (( ${#restkeys} )); then + _requested -V restconfig \ + expl 'remaining unclassified configuration variables' \ + compadd -S '' $restkeys && ret=0 + fi + (( ret )) || return 0 done else diff -Nru zsh-4.3.10/Completion/Unix/Command/_git zsh-4.3.11/Completion/Unix/Command/_git --- zsh-4.3.10/Completion/Unix/Command/_git 2009-05-07 18:04:51.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_git 2010-12-06 11:11:35.000000000 +0100 @@ -1,4 +1,24 @@ -#compdef git git-add git-am git-annotate git-apply git-applymbox git-applypatch git-archimport git-archive git-bisect git-blame git-branch git-cat-file git-check-attr git-check-ref-format git-checkout git-checkout-index git-cherry git-cherry-pick git-clean git-clone git-clone-pack git-commit git-commit-tree git-convert-objects git-count-objects git-cvsexportcommit git-cvsimport git-cvsserver git-daemon git-describe git-diff git-diff-files git-diff-index git-diff-stages git-diff-tree git-fast-import git-fetch git-fetch-pack git-fmt-merge-msg git-for-each-ref git-format-patch git-fsck git-gc git-get-tar-commit-id git-grep git-hash-object git-http-fetch git-http-push git-imap-send git-index-pack git-init git-instaweb git-local-fetch git-log git-lost-found git-ls-files git-ls-remote git-ls-tree git-mailinfo git-mailsplit git-merge git-merge-base git-merge-file git-merge-index git-merge-one-file git-merge-tree git-mergetool git-mktag git-mktree git-mv git-name-rev git-pack-objects git-pack-redundant git-pack-refs git-patch-id git-peek-remote git-prune git-prune-packed git-pull git-push git-quiltimport git-read-tree git-rebase git-receive-pack git-reflog git-relink git-remote git-repack gut-runstatus git-config git-request-pull git-rerere git-reset git-rev-list git-rev-parse git-revert git-rm git-send-email git-send-pack git-sh-setup git-shell git-shortlog git-show git-show-branch git-show-index git-show-ref git-ssh-fetch git-ssh-upload git-status git-stripspace git-svn git-svnimport git-symbolic-ref git-tag git-tar-tree git-unpack-file git-unpack-objects git-update-index git-update-ref git-update-server-info git-upload-archive git-upload-pack git-var git-verify-pack git-verify-tag git-whatchanged git-write-tree +#compdef git git-cvsserver git-receive-pack git-upload-archive git-upload-pack git-shell + +# Some parts of this completion's behaviour are configurable: +# +# Say, you got your own git sub-commands (git will run a program `git-foo' +# when you run "git foo") and you want "git f" to complete that sub +# commands name for you. You can make that sub-command know to the completion +# via the user-command style: +# +# % zstyle ':completion:*:*:git:*' user-commands foo:'description for foo' +# +# `user-commands' is a list style, so you can add any number of programs there. +# The :description part is optional, so you could add all git-* programs from +# your $path like this: +# +# % zstyle ':completion:*:*:git:*' user-commands ${${(M)${(k)commands}:#git-*}/git-/} +# +# You could even create a function _git-foo() to handle specific completion +# for that command. + +# TODO: There is still undocumented configurability in here. # TODO: All if (( words[(I)-option] )) should be turned into # if (( words[(I)-option] > 0 && words[(I)-option] < CURRENT )), as the user @@ -170,6 +190,7 @@ 'fetch:download objects and a head from another repository' 'gc:cleanup unnecessary files and optimize the local repository' 'grep:print lines matching a pattern' + 'help:display help information about git subcommands' 'init:create empty git object database' 'log:show commit logs' 'merge:grand unified merge driver' @@ -185,6 +206,7 @@ 'stage:add file contents to the staging area' 'stash:stash away changes to the working tree' 'status:show working-tree'\''s status' + 'submodule:initialize or update or inspect submodules' 'tag:create tag object signed with GPG' 'verify-tag:check GPG signature of a tag') @@ -225,6 +247,7 @@ 'mktag:create tag object' 'mktree:build tree-object from ls-tree formatted text' 'name-rev:find symbolic names for given revisions' + 'notes:add/inspect commit notes' 'pack-objects:create packed archive of objects' 'pack-redundant:find redundant pack files' 'pack-refs:pack heads and tags for efficient repository access' @@ -269,7 +292,8 @@ 'cvsimport:import a CVS "repository" into a git repository' 'svnimport:import SVN repository into git' 'quiltimport:apply a quilt patchset' - 'svn:bidirectional operation between a single Subversion branch and git') + 'svn:bidirectional operation between a single Subversion branch and git' + 'annex:manage files without tracking content') local -a ancillary_commands ancillary_commands=( @@ -303,7 +327,9 @@ 'upload-pack:command invoked by clone-pack and fetch-pack') local wanted_commands - zstyle -s ':completion:${curcontext}:' commands wanted_commands || wanted_commands="all -internal" + zstyle -s ":completion:${curcontext}:" commands wanted_commands || wanted_commands="all -internal" + local -a user_commands + zstyle -a ":completion:${curcontext}:" user-commands user_commands || user_commands=() local -aU unique_wanted_commands unique_wanted_commands=($=wanted_commands) @@ -338,6 +364,7 @@ commands+=($internal_commands) ;; esac done + commands+=( $user_commands ) _describe -t commands 'git command' commands && ret=0 } @@ -466,6 +493,19 @@ '(--stdin):file:_files' && ret=0 } +(( $+functions[_git-help] )) || +_git-help () { + _arguments -S \ + ':command:_git_commands' \ + - '(all)' \ + '(:)'{--all,-a}'[List all available commands]' \ + - '(format)' \ + {--man,-m}'[Display help in man page format]' \ + {--info,-i}'[Display help in info format]' \ + {--web,-w}'[Display help in web browser]' \ + && ret=0 +} + (( $+functions[_git-index-pack] )) || _git-index-pack () { local -a stdin_arguments @@ -736,7 +776,7 @@ '--unmerged[if unmerged changes exists, ignore them instead of exiting]' \ '--ignore-missing[ignore missing files when refreshing the index]' \ '*--cacheinfo[insert information directly into the cache]: :_guard "[0-7]#" "octal file mode": :_guard "[[\:xdigit\:]]#" "object id":file:_files' \ - '(: -)--index-info[read index information from stdin.]' \ + '(: -)--index-info[read index information from stdin]' \ '--chmod=-[set the execute permissions on the updated files]:permission:((-x\:executable +x\:"not executable"))' \ '( --no-assume-unchanged)--assume-unchanged[set the "assume unchanged" bit for the given paths]' \ '(--assume-unchanged )--no-assume-unchanged[unset the "assume unchanged" bit for the given paths]' \ @@ -998,6 +1038,37 @@ '(--stdin --all)*:commit-ish:__git_revisions' && ret=0 } +(( $+functions[_git-notes] )) || +_git-notes () { + local expl + local -a notes_cmds + + notes_cmds=( + edit:"edit note" + show:"show commit note" + ) + + if (( CURRENT == 2 )); then + _describe -t command "git-notes commands" notes_cmds && ret=0 + else + case $words[2] in + (show) + _arguments \ + '*:commit id:__git_commits' && ret=0 + ;; + (edit) + _arguments \ + '-F[use file'\''s contents as the commit note]:file:_path_files' \ + '-m[use the given message as the commit note]:message' \ + '*:commit id:__git_commits' && ret=0 + ;; + (*) + _nothing + ;; + esac + fi +} + (( $+functions[_git-pack-redundant] )) || _git-pack-redundant () { _arguments \ @@ -1542,13 +1613,6 @@ } __git_zstyle_default ':completion::complete:git-branch:delete-argument-rest:*' ignore-line yes -(( $+functions[__git_is_treeish] )) || -__git_is_treeish () { - local sha1 - sha1="$(git rev-parse $1 -- 2> /dev/null)" && - [[ "$(git cat-file -t "${sha1}^{tree}" 2> /dev/null)" == tree ]] -} - # TODO: __git_tree_ishs is just stupid. It should be giving us a list of tags # and perhaps also allow all that just with ^{tree} and so on. Not quite sure # how to do that, though. @@ -1644,7 +1708,8 @@ _git-commit () { _arguments -S \ '--allow-empty[allow recording an empty commit]' \ - '(-a --all)'{-a,--all}'[update all paths in the index file]' \ + '(-a --all --interactive)'{-a,--all}'[update all paths in the index file]' \ + '(-a --all --interactive)--interactive[interactively update paths in the index file]' \ '--author[override the author name used in the commit]:author name' \ '--cleanup=-[specify how the commit message should be cleaned up]:mode:((verbatim\:"don'\''t change the commit message at all" whitespace\:"remove leading and trailing whitespace lines" @@ -1809,13 +1874,13 @@ _arguments -S \ $revision_arguments \ '--source[show which ref each commit is reached from]' \ - '--decorate[print out ref names of any commits that are shown.]' \ + '--decorate[print out ref names of any commits that are shown]' \ '*:file-or-branch:->files' && ret=0 case $state in (files) _arguments -S \ - ':branch:__git_commit_ranges2' \ + '::branch:__git_commit_ranges2' \ '*:index file:__git_cached_files' && ret=0 ;; esac @@ -1934,22 +1999,33 @@ (( $+functions[_git-reset] )) || _git-reset () { - local commit_arg path_arg + local curcontext=$curcontext state line + typeset -A opt_args - if [[ $words[2] == --mixed ]]; then - commit_arg=':commit:__git_revisions' - path_arg="*:file:__git_tree_files . $words[3]" - else - commit_arg='::commit:__git_revisions' - fi + _arguments -C -S -A '-*' \ + '(-q --quiet)'{-q,--quiet}'[be quiet, only report errors]' \ + '::commit:__git_revisions' \ + - reset-head \ + '( --soft --hard --merge --keep)--mixed[reset the index but not the working tree (default)]' \ + '(--mixed --hard --merge --keep)--soft[do not touch the index file nor the working tree]' \ + '(--mixed --soft --merge --keep)--hard[match the working tree and index to the given tree]' \ + '(--mixed --soft --hard --keep)--merge[reset out of a conflicted merge]' \ + '(--mixed --soft --hard --merge )--keep[like --hard, but keep local working tree changes]' \ + - reset-paths \ + '(-p --patch)'{-p,--patch}'[select diff hunks to remove from the index]' \ + '*::file:->files' && ret=0 - _arguments -S -A '--*' \ - '( --soft --hard)--mixed[like --soft but report what has not been updated (default)]' \ - '(--mixed --hard)--soft[do not touch the index file nor the working tree]' \ - '(--mixed --soft )--hard[match the working tree and index to the given tree]' \ - '--merge[bring local changes along to new commit]' \ - $commit_arg \ - $path_arg && ret=0 + case $state in + (files) + local commit + if [[ -n $line[1] ]] && __git_is_committish $line[1]; then + commit=$line[1] + else + commit=HEAD + fi + __git_tree_files . $commit && ret=0 + ;; + esac } (( $+functions[_git-revert] )) || @@ -2773,19 +2849,70 @@ __git_guard $* "[[:digit:]]#" 'stage' } +(( $+functions[__git_files_relative] )) || +__git_files_relative () { + local rawfiles files file f_parts prefix p_parts tmp + + prefix=$(_call_program gitprefix git rev-parse --show-prefix 2>/dev/null) + __git_command_successful || return + + # Empty prefix, no modifications + if (( $#prefix == 0 )); then + print $1 + return + fi + + rawfiles=(${(ps:\0:)1}) + files=() + + # Now we assume that we've given "absolute" paths list with "root" + # being repository top directory. $prefix is also "absolute" path. + for file in $rawfiles; do + # Collapse "/./" and "//", strip "/." and "/" from tail (I know, + # this is a bit paranoid). + f_parts=(${(s:/:)"${${${${file//\/\///}//\/.\///}%%/.}%%/}"}) + p_parts=(${(s:/:)"${${${${prefix//\/\///}//\/.\///}%%/.}%%/}"}) + tmp=() + + # Strip common path prefix. + while (( $#f_parts > 0 )) && (( $#p_parts > 0 )) && [[ $f_parts[1] == $p_parts[1] ]]; do + f_parts[1]=() + p_parts[1]=() + done + + # If prefix still not empty, ascend up. + while (( $#p_parts > 0 )); do + tmp+=.. + p_parts[1]=() + done + + # Add remaining path. + tmp=("$tmp[@]" "$f_parts[@]") + + files+=${(j:/:)tmp} + done + + print ${(pj:\0:)files} +} + (( $+functions[__git_files] )) || __git_files () { - local expl files ls_opts opts gitdir + local expl files ls_opts opts gitdir gitcdup zparseopts -D -E -a opts -- -cached -deleted -modified -others -ignored -unmerged -killed gitdir=$(_call_program gitdir git rev-parse --git-dir 2>/dev/null) __git_command_successful || return + gitcdup=$(_call_program gitcdup git rev-parse --show-cdup 2>/dev/null) + __git_command_successful || return + ls_opts=("--exclude-per-directory=.gitignore") [[ -f "$gitdir/info/exclude" ]] && ls_opts+="--exclude-from=$gitdir/info/exclude" - files=(${(ps:\0:)"$(_call_program files git ls-files -z $ls_opts $opts 2>/dev/null)"}) + files=$(_call_program files git ls-files -z --full-name $ls_opts $opts -- $gitcdup 2>/dev/null) + __git_command_successful || return + files=(${(ps:\0:)"$(__git_files_relative $files)"}) __git_command_successful || return _wanted files expl 'index file' _multi_parts $@ - / files @@ -2824,9 +2951,11 @@ #this is for git-commit which can take files both git-added and not (( $+functions[__git_changed_files] )) || __git_changed_files () { - local -a files + local files - files=(${(ps:\0:)"$(_call_program files git diff-index -z --name-only --no-color HEAD 2>/dev/null)"}) + files=$(_call_program files git diff-index -z --name-only --no-color HEAD 2>/dev/null) + __git_command_successful || return + files=(${(ps:\0:)"$(__git_files_relative $files)"}) __git_command_successful || return _wanted files expl 'index file' _multi_parts $@ - / files @@ -2837,7 +2966,9 @@ local multi_parts_opts local tree Path integer at_least_one_tree_added - local -a tree_files + local -a tree_files compadd_opts + + zparseopts -D -E -a compadd_opts V: J: 1 2 n f X: M: P: S: r: R: q F: [[ "$1" == */ ]] && Path="$1" || Path="${1:h}/" shift @@ -2848,11 +2979,11 @@ done if (( !at_least_one_tree_added )); then - return + return 1 fi local expl - _wanted files expl 'tree file' _multi_parts -f $@ -- / tree_files + _wanted files expl 'tree file' _multi_parts -f $compadd_opts -- / tree_files } # TODO: deal with things that __git_heads and __git_tags has in common (i.e., @@ -3017,7 +3148,7 @@ branch_names=(${${(f)"$(_call_program headrefs git for-each-ref --format='"%(refname)"' refs/heads refs/remotes 2>/dev/null)"}#refs/(heads|remotes)/}) __git_command_successful || return - _wanted heads expl branch-name compadd $* - $branch_names HEAD + _wanted heads expl branch-name compadd $* - $branch_names HEAD FETCH_HEAD ORIG_HEAD MERGE_HEAD } (( $+functions[__git_tags] )) || @@ -4312,6 +4443,23 @@ # --- +(( $+functions[__git_is_type] )) || +__git_is_type () { + local sha1 + sha1="$(git rev-parse $2 2> /dev/null)" && + [[ "$(git cat-file -t "${sha1}^{$1}" 2> /dev/null)" == $1 ]] +} + +(( $+functions[__git_is_committish] )) || +__git_is_committish () { + __git_is_type commit $1 +} + +(( $+functions[__git_is_treeish] )) || +__git_is_treeish () { + __git_is_type tree $1 +} + (( $+functions[__git_is_indexed] )) || __git_is_indexed () { [[ -n $(git ls-files $REPLY) ]] @@ -4361,12 +4509,18 @@ __git_aliases_and_commands else curcontext="${curcontext%:*:*}:git-$words[1]:" - _call_function ret _git-$words[1] + if (( $+functions[_git-$words[1]] )); then + _call_function ret _git-$words[1] + else + _files + fi + return ret fi ;; esac else _call_function ret _$service + return ret fi } diff -Nru zsh-4.3.10/Completion/Unix/Command/_gnupod zsh-4.3.11/Completion/Unix/Command/_gnupod --- zsh-4.3.10/Completion/Unix/Command/_gnupod 2009-03-02 11:10:23.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_gnupod 2010-06-06 15:44:12.000000000 +0200 @@ -8,31 +8,31 @@ '(-h --help)'{-h,--help}'[display help and exit]' --version'[output version information and exit]' '(-m --mount)'{-m,--mount=}'[iPod mountpoint, default is $IPOD_MOUNTPOINT]:mount point:_files' - '(-r --restore)'{-r,--restore}'[Restore the iPod (create a new GNUtunesDB from scratch)]' - '(-d --duplicate)'{-d,--duplicate}'[Allow duplicate files]' - '(-p --playlist)'{-p,--playlist=}'[Add songs to this playlist]:playlist:' - --playlist-is-podcast'[Set podcast flag for playlist(s) created using --playlist]' - --podcast-artwork'[Download and install artwork for podcasts from their channel.]' - --podcast-cache-dir='[Set a directory in which podcast media files will be cached.]:podcast cache dir:' - --podcast-files-limit='[Limit files to download (0 = all (default), -X = X oldest, X = X newest)]:podcast files limit:'. - --disable-v1'[Do not read ID3v1 Tags (MP3 Only)]' - --disable-v2'[Do not read ID3v2 Tags (MP3 Only)]' - '(-x --decode)'{-x,--decode=}'[Convert FLAC Files to WAVE/MP3 or AAC on-the-fly]:encoding:(pcm mp3 aac aacbm)' - --decode=video'[Convert .avi Files into iPod video on-the-fly]' - '(-e --reencode)'{-e,--reencode=}'[Reencode MP3/AAC files with new quality on-the-fly]:quality number (0 = Good 9 = Bad):(1 2 3 4 5 6 7 8 9)' - '(-t --set-title)'{-t,--set-title=}'[Set Title (Override ID3 Tag)]:title:' - '(-a --set-artist)'{-a,--set-artist=}'[Set Artist (Override ID3 Tag)]:artist:' - '(-l --set-album)'{-l,--set-album=}'[Set Album (Override ID3 Tag)]:album:' - '(-g --set-genre)'{-g,--set-genre=}'[Set Genre (Override ID3 Tag)]:genre:' - --set-rating='[Set Rating (0=-/20=*/40=**/60=***/80=****/100=*****)]:rating:(0 20 40 60 80 100)' - --set-playcount='[Set Playcount]:play count:' - --set-songnum='[Override Songnum/Tracknum field]:song number:' - '(-b --set-bookmarkable)'{-b,--set-bookmarkable}'[Set this song as bookmarkable (= Remember position)]' - --set-shuffleskip'[Exclude this file in shuffle-mode]' - --set-compilation'[Mark songs as being part of a compilation]' - --min-vol-adj='[Minimum volume adjustment allowed by ID3v2.4 RVA2 tag (range -100 to 100, default 0)]' - --max-vol-adj='[Maximum volume adjustment allowed by ID3v2.4 RVA2 tag (range -100 to 100, default 0)]' - --artwork='[Use FILE as album cover]:artwork:_files' + '(-r --restore)'{-r,--restore}'[restore the iPod (create a new GNUtunesDB from scratch)]' + '(-d --duplicate)'{-d,--duplicate}'[allow duplicate files]' + '(-p --playlist)'{-p,--playlist=}'[add songs to this playlist]:playlist:' + --playlist-is-podcast'[set podcast flag for playlist(s) created using --playlist]' + --podcast-artwork'[download and install artwork for podcasts from their channel]' + --podcast-cache-dir='[set a directory in which podcast media files will be cached]:podcast cache dir:' + --podcast-files-limit='[limit files to download (0 = all (default), -X = X oldest, X = X newest)]:podcast files limit:'. + --disable-v1'[do not read ID3v1 Tags (MP3 Only)]' + --disable-v2'[do not read ID3v2 Tags (MP3 Only)]' + '(-x --decode)'{-x,--decode=}'[convert FLAC Files to WAVE/MP3 or AAC on-the-fly]:encoding:(pcm mp3 aac aacbm)' + --decode=video'[convert .avi Files into iPod video on-the-fly]' + '(-e --reencode)'{-e,--reencode=}'[reencode MP3/AAC files with new quality on-the-fly]:quality number (0 = Good 9 = Bad):(1 2 3 4 5 6 7 8 9)' + '(-t --set-title)'{-t,--set-title=}'[set Title (Override ID3 Tag)]:title:' + '(-a --set-artist)'{-a,--set-artist=}'[set Artist (Override ID3 Tag)]:artist:' + '(-l --set-album)'{-l,--set-album=}'[set Album (Override ID3 Tag)]:album:' + '(-g --set-genre)'{-g,--set-genre=}'[set Genre (Override ID3 Tag)]:genre:' + --set-rating='[set Rating (0=-/20=*/40=**/60=***/80=****/100=*****)]:rating:(0 20 40 60 80 100)' + --set-playcount='[set Playcount]:play count:' + --set-songnum='[override Songnum/Tracknum field]:song number:' + '(-b --set-bookmarkable)'{-b,--set-bookmarkable}'[set this song as bookmarkable (= Remember position)]' + --set-shuffleskip'[exclude this file in shuffle-mode]' + --set-compilation'[mark songs as being part of a compilation]' + --min-vol-adj='[minimum volume adjustment allowed by ID3v2.4 RVA2 tag (range -100 to 100, default 0)]' + --max-vol-adj='[maximum volume adjustment allowed by ID3v2.4 RVA2 tag (range -100 to 100, default 0)]' + --artwork='[use FILE as album cover]:artwork:_files' '*:file to add:_files' ) ;; @@ -53,7 +53,7 @@ '(-m --mount)'{-m,--mount=}'[iPod mountpoint (default is $IPOD_MOUNTPOINT)]:mount point:_files' '(-d --disable-convert)'{-d,--disable-convert}'[do not try to convert an existing iTunesDB]' '(-f --france)'{-f,--france}'[limit volume to 100dB, works only on very old iPods]' - --noask'[Do not wait for any user input]' + --noask'[do not wait for any user input]' ) ;; @@ -76,7 +76,7 @@ --delete'[remove matched songs from the iPod]' --view='[modify output (default is ialt, see --help)]:output string:' --rename='[rename key into value for matched songs]:KEY=VALUE:' - --artwork='[Use FILE as Cover for found files]:artwork:_files' + --artwork='[use FILE as Cover for found files]:artwork:_files' ) ;; diff -Nru zsh-4.3.10/Completion/Unix/Command/_gnutls zsh-4.3.11/Completion/Unix/Command/_gnutls --- zsh-4.3.10/Completion/Unix/Command/_gnutls 2005-11-11 21:42:40.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_gnutls 2010-06-06 15:44:12.000000000 +0200 @@ -26,8 +26,8 @@ "$_gnutls_cli_common_args[@]" \ '(-r --resume)'{-r,--resume}'[resume session]' \ '(-s --starttls)'{-s,--starttls}'[start TLS on EOF or SIGALRM]' \ - '--crlf[Send CR LF instead of LF]' \ - '--x509fmtder[Use DER format for certificates to read from]' \ + '--crlf[send CR LF instead of LF]' \ + '--x509fmtder[use DER format for certificates to read from]' \ '(-f --fingerprint)'{-f,--fingerprint}'[send the openpgp fingerprint instead of the key]' \ '--disable-extensions[disable all the TLS extensions]' \ '--xml[print the certificate information in XML format]' \ diff -Nru zsh-4.3.10/Completion/Unix/Command/_gpg zsh-4.3.11/Completion/Unix/Command/_gpg --- zsh-4.3.10/Completion/Unix/Command/_gpg 2008-07-24 10:44:32.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_gpg 2010-07-15 05:16:43.000000000 +0200 @@ -1,134 +1,209 @@ -#compdef gpg gpgv +#compdef gpg gpgv gpg-zip local curcontext="$curcontext" state line expl ret=1 +local -a gpgbasic gpgextra gpgv gpgzip typeset -A opt_args -_arguments -C -s -S -A "-*" \ - '(-s --sign)'{-s,--sign}'[make a signature]' \ - '--clearsign[make a clear text signature]' \ - '(-b --detach-sign)'{-b,--detach-sign}'[make a detached signature]' \ - '(-e --encrypt)'{-e,--encrypt}'[encrypt data. this option may be combined with --sign]' \ - '(-c --symmetric)'{-c,--symmetric}'[encrypt with symmetric cypher only]' \ - '--store[store only]' \ - '--decrypt[decrypt file or stdin]' \ - '--verify[verify a signature]:file attachment:_files' \ - '--verify-files[verify a list of files]:_files attachment_files' \ - '(-f --encrypt-files)'{-f,--encrypt-files}'[encrypt files]' \ - '--decrypt-files[decrypt files]' \ - '--list-keys[list all keys]' \ - '--list-public-keys[list all public keys]' \ - '--list-secret-keys[list all secret keys]' \ - '--list-sigs[lists keys and signatures]:key attachment:->public-keys' \ - '--list-options[modify what the various --list-* commands show]' \ - '--check-sigs[list key, signatures and check them]:key attachment:->public-keys' \ - '--fingerprint[list all keys with their fingerprints]:key attachment:->public-keys' \ - '--list-packets[list only the sequence of packets]' \ - '--gen-key[generate a new pair key]' \ - '--edit-key[a menu for edit yours keys]:key attachment:->public-keys' \ - '--sign-key[sign a key]:key attachment:->public-keys'\ - '--lsign-key[sign a key but mark as non-exportable]:key attachment:->public-keys' \ - '--nrsign-key[sign a key non-revocably]' \ - '--delete-key[remove key from public keyring]:key attachment:->public-keys' \ - '--delete-secret-key[remove key from public & private keyring]:key attachment:->secret-keys' \ - '--delete-secret-and-public-key:key attachment:->secret-keys' \ - '--gen-revoke[generate a revocation certificate]' \ - '--desig-revoke[generate a designated revocation certificate]' \ - '--export[export all key from all keyrings]' \ - '--send-keys[send keys to a keyserver]:key attachment:->public-keyids' \ - '--export-all[export all key and not OpenPGP compatible keys]' \ - '--export-secret-keys:key attachment:->secret-keys' \ - '--export-secret-subkeys:key attachment:->secret-keys' \ - '--import[import a gpg key from a file]:_files attachment:_files' \ - '--fast-import[import a file without build trustdb]:_files attachment:_files' \ - '--recv-keys[receive a list of keys from a keyserver]:key attachment:->public-keyids' \ - '--refresh-keys[update all keys from a keyserver]' \ - '--search-keys[search for keys on a key server]' \ - '--update-trustdb[update the trust database]' \ - '--check-trustdb[unattended trust database update]' \ - '--fix-trustdb[fix a corrupted trust database]' \ - '--export-ownertrust[list the assigned ownertrust values in ASCII format]:file:_files' \ - '--import-ownertrust[update the trustdb with a file]:file:_files' \ - '--dearmor[de-Armor a file or stdin]' \ - '--enarmor[en-Armor a file or stdin]' \ - '--print-md[print message digests]:algorithm:->ciphers::file:_files' \ - '--print-mds[print message digests]::file:_files' \ - '--gen-random:count' --gen-prime \ - '--version[print info on program version and supported algorithms]' \ - '--warranty[print warranty info]' \ - '(-h --help)'{-h,--help}'[display usage information]' \ - '(-a --armor)'{-a,--armor}'[create ASCII armored output]' \ - '(-o --output)'{-o+,--output}'[write output to file]:output file:_files' \ +gpgv=('(-q --quiet)*'{-v,--verbose}'[increase amount of output]' + '(-q --quiet -v --verbose)'{-q,--quiet}'[reduce amount of output]' + '--keyring=[add specified file to list of keyrings]:file:_files' + '--'{status,logger}'-fd:file descriptor:_file_descriptors' + '--ignore-time-conflict' + '--homedir:directory:_directories') + +gpgzip=('--gpg[command to use instead of gpg]:command:_command' + '--gpg-args[gpg arguments]:gpg arguments:' + '--tar[command to use instead of tar]:command:_command' + '--tar-args[tar arguments]:tar arguments:' + '--list-archive[list archive contents]') + +gpgbasic=('(-e --encrypt)'{-e,--encrypt}'[encrypt data. this option may be combined with --sign]' + {-d,--decrypt}'[decrypt file or stdin]' + '(-c --symmetric)'{-c,--symmetric}'[encrypt with symmetric cypher only]' + '(-s --sign)'{-s,--sign}'[make a signature]' + '*'{-r+,--recipient}'[specify user to encrypt for]:recipient:->public-keys' '(-u --local-user)'{-u+,--local-user}'[use name as the user ID to sign]:user attachment:_users'\ - '--default-key[specify default user-id for signatures]:key:->secret-keys' \ - '*'{-r+,--recipient}'[specify user to encrypt for]:recipient:->public-keys' \ - '--default-recipient[specify default recipient]:recipient:->public-keys' \ - '--default-recipient-self[use default key as default recipient]' \ - '--no-default-recipient[reset default recipient]' \ - '*--encrypt-to[specify recipient]:key:->public-keys' \ - '(--encrypt-to)--no-encrypt-to[disable the use of all --encrypt-to keys]' \ - '(-q --quiet)*'{-v,--verbose}'[increase amount of output]' \ - '(-q --quiet -v --verbose)'{-q,--quiet}'[reduce amount of output]' \ - '(-z --compress)'{-z,--compress}'[specify compression level]:compression level:((0\:no\ compression 1\:minimum 2 3 4 5 6\:default 7 8 9\:maximum))' \ - '(-t --textmode)'{-t,--textmode}'[use canonical text mode]' \ - '(-n --dry-run)'{-n,--dry-run}"[don't make any changes]" \ - '(-i --interactive --batch)'{-i,--interactive}'[prompt before overwriting files]' \ - '(-i --interactive --no-batch)--batch[use batch mode]' \ - '--no-tty[never output to tty]' \ - '(--batch)--no-batch[disable batch mode]' \ - '(--no)--yes[assume "yes" on most questions]' \ - '(--yes)--no[assume "no" on most questions]' \ - '--default-cert-check-level:check level:((0\:no\ claim 1\:no\ verification 2\:casual\ verification 3\:extensive\ verification))' \ - '--trusted-key[assume that the specified key is trustworthy]:long key id' \ - '--always-trust[skip key validation]' \ - '--keyserver[specify key server to use]:key server:_hosts' \ - '--keyserver-options[specify keyserver options]:options' \ - '--import-options[specify options for importing keys]:options' \ - '--export-options[specify options for exporting keys]:options' \ - --show-photos --no-show-photos '--photo-viewer:command:_command_names -e'\ - --exec-path:path:_dir_list' \ - --show-keyring[display keyring name when listing keys]' \ - '--keyring=[add specified file to list of keyrings]:file:_files' \ - '--secret-keyring[add specified file to list of secret keyrings]:file:_files' \ - --homedir:directory:_directories \ - '--charset:character set:(iso-8859-1 iso-8859-2 koi8-r utf-8)' \ - '--utf8-strings' '--no-utf8-strings[arguments are not in UTF8]' \ - '(--no-options)--options[specify file to read options from]:options file:_files' \ - "(--options)--no-options[don't read options file]" \ - --{status,logger,attribute,passphrase,command}-fd:file\ descriptor:_file_descriptors \ - '--sk-comments[include secret key comments when exporting keys]' \ - '(--emit-version)--no-version[omit version string in clear text signatures]' \ - '(--no-version)--emit-version[force writing of version string in clear text signatures]' \ - '(-N --notation-data)'{-N,--notation-data}'[put parameter in signature]:name=value' \ - '(--no-show-notation)--show-notation[show key signature notations]' \ - "(--show-notation)--no-show-notation[don't show key signature notations]" \ - '--set-policy-url:policy URL' \ - '(--no-show-policy-url)--show-policy-url' \ - "(--show-policy-url)--no-show-policy-url" \ - '--set-filename[specify file which is stored in messages]:file:_files' \ - '(--for-your-eyes-only)--for-your-eyes-only' \ - "(--for-your-eyes-only)--no-for-your-eyes-only" \ - --completes-needed:number --marginals-needed:number --max-cert-depth:number \ - --{{,disable-,s2k-}cipher,{,s2k-,cert-}digest,disable-pubkey}'-algo:cipher:->ciphers' \ - --s2k-mode:value --simple-sk-checksum \ - '--compress-algo:compression algorithm:((0\:disable\ compression 1\:zlib 2\:rfc1950))' \ - --no-sig-cache --no-sig-create-check --{,no-}auto-check-trustdb --throw-keyid \ - --not-dash-escaped --escape-from-lines --use-agent \ - --rfc1991 --{,no-}pgp2 --{,no}pgp6 --{,no}pgp7 --openpgp \ - --{,no-}force-v3-sigs --{,no}force-v4-certs --force-mdc --disable-mdc \ - --{,no-}allow-non-selfsigned-uid --allow-freeform-uid \ - --ignore-time-conflict --ignore-valid-from \ - --ignore-crc-error --ignore-mdc-error --lock-once --lock-multiple --lock-never \ - --no-random-seed-file --no-verbose --no-greeting --no-secmem-warning \ - --no-permission-warning --no-mdc-warning --no-armor --no-default-keyring \ - --skip-verify --with-colons --with-key-data --with-fingerprint \ - --fast-list-mode --fixed-list-mode --list-only --no-literal --set-filesize \ - --emulate-md-encode-bug --show-session-key --override-session-key:string \ - --{,no-}ask-sig-expire --{,no}ask-cert-expire --{,no}expert \ - --merge-only --allow-secret-key-import --try-all-secrets \ - --enable-special-filenames --no-expensive-trust-checks --group:name=value \ - --preserve-permissions --personal-{cipher,digest,compress}-preferences:string \ - --default-preference-list:string \ - '*:args:->args' && ret=0 + '(-o --output)'{-o+,--output}'[write output to file]:output file:_files' + '(-h --help)'{-h,--help}'[display usage information]' + '--version[print info on program version and supported algorithms]') + +gpgextra=('--decrypt-files[decrypt multiple files]' + '(-b --detach-sign)'{-b,--detach-sign}'[make a detached signature]' + '--clearsign[make a clear text signature]' + '--store[store only]' + '--verify[verify a signature]' + '--verify-files[verify a list of files]' + '(-f --encrypt-files)'{-f,--encrypt-files}'[encrypt files]' + '--list-keys[list all keys]' + '--list-public-keys[list all public keys]' + '--list-secret-keys[list all secret keys]' + '--list-sigs[lists keys and signatures]:key attachment:->public-keys' + '--list-options[modify what the various --list-* commands show]' + '--check-sigs[list key, signatures and check them]:key attachment:->public-keys' + '--fingerprint[list all keys with their fingerprints]:key attachment:->public-keys' + '--list-packets[list only the sequence of packets]' + '--gen-key[generate a new pair key]' + '--edit-key[a menu for edit yours keys]:key attachment:->public-keys' + '--sign-key[sign a key]:key attachment:->public-keys'\ + '--lsign-key[sign a key but mark as non-exportable]:key attachment:->public-keys' + '--nrsign-key[sign a key non-revocably]' + '--delete-key[remove key from public keyring]:key attachment:->public-keys' + '--delete-secret-key[remove key from public & private keyring]:key attachment:->secret-keys' + '--delete-secret-and-public-key:key attachment:->secret-keys' + '--gen-revoke[generate a revocation certificate]' + '--desig-revoke[generate a designated revocation certificate]' + '--export[export all key from all keyrings]' + '--send-keys[send keys to a keyserver]:key attachment:->public-keyids' + '--export-all[export all key and not OpenPGP compatible keys]' + '--export-secret-keys:key attachment:->secret-keys' + '--export-secret-subkeys:key attachment:->secret-keys' + '--import[import a gpg key from a file]:_files attachment:_files' + '--fast-import[import a file without build trustdb]:_files attachment:_files' + '--fetch-keys[fetch key at URIs]:uri:' + '--recv-keys[receive a list of keys from a keyserver]:key attachment:->public-keyids' + '--refresh-keys[update all keys from a keyserver]' + '--search-keys[search for keys on a key server]' + '--update-trustdb[update the trust database]' + '--check-trustdb[unattended trust database update]' + '--fix-trustdb[fix a corrupted trust database]' + '--export-ownertrust[list the assigned ownertrust values in ASCII format]:file:_files' + '--import-ownertrust[update the trustdb with a file]:file:_files' + '--dearmor[de-Armor a file or stdin]' + '--enarmor[en-Armor a file or stdin]' + '--print-md[print message digests]:algorithm:->ciphers::file:_files' + '--print-mds[print message digests]::file:_files' + '--gen-random:count' '--gen-prime' + '--warranty[print warranty info]' + '(-a --armor)'{-a,--armor}'[create ASCII armored output]' + '--default-key[specify default user-id for signatures]:key:->secret-keys' + '--default-recipient[specify default recipient]:recipient:->public-keys' + '--default-recipient-self[use default key as default recipient]' + '--no-default-recipient[reset default recipient]' + '*--encrypt-to[specify recipient]:key:->public-keys' + '(--encrypt-to)--no-encrypt-to[disable the use of all --encrypt-to keys]' + '(-z --compress)'{-z,--compress}'[specify compression level]:compression level:((0\:no\ compression 1\:minimum 2 3 4 5 6\:default 7 8 9\:maximum))' + '(-t --textmode)'{-t,--textmode}'[use canonical text mode]' + '(-n --dry-run)'{-n,--dry-run}"[don't make any changes]" + '(-i --interactive --batch)'{-i,--interactive}'[prompt before overwriting files]' + '(-i --interactive --no-batch)--batch[use batch mode]' + '--no-tty[never output to tty]' + '(--batch)--no-batch[disable batch mode]' + '(--no)--yes[assume "yes" on most questions]' + '(--yes)--no[assume "no" on most questions]' + '--default-cert-check-level:check level:((0\:no\ claim 1\:no\ verification 2\:casual\ verification 3\:extensive\ verification))' + '--trusted-key[assume that the specified key is trustworthy]:long key id' + '--always-trust[skip key validation]' + '--keyserver[specify key server to use]:key server:_hosts' + '--keyserver-options[specify keyserver options]:options' + '--import-options[specify options for importing keys]:options' + '--export-options[specify options for exporting keys]:options' + '--show-photos' '--no-show-photos' '--photo-viewer:command:_command_names -e' + '--exec-path:path:_dir_list' + '--show-keyring[display keyring name when listing keys]' + '--secret-keyring[add specified file to list of secret keyrings]:file:_files' + '--charset:character set:(iso-8859-1 iso-8859-2 koi8-r utf-8)' + '--utf8-strings' '--no-utf8-strings[arguments are not in UTF8]' + '(--no-options)--options[specify file to read options from]:options file:_files' + "(--options)--no-options[don't read options file]" + '--'{attribute,passphrase,command}'-fd:file descriptor:_file_descriptors' + '--sk-comments[include secret key comments when exporting keys]' + '(--emit-version)--no-emit-version[omit version string in clear text signatures]' + '(--no-emit-version)--emit-version[force writing of version string in clear text signatures]' + '(-N --notation-data)'{-N,--notation-data}'[put parameter in signature]:name=value' + '(--no-show-notation)--show-notation[show key signature notations]' + "(--show-notation)--no-show-notation[don't show key signature notations]" + '--set-policy-url:policy URL' + '(--no-show-policy-url)--show-policy-url' + '(--show-policy-url)--no-show-policy-url' + '--set-filename[specify file which is stored in messages]:file:_files' + '(--for-your-eyes-only)--for-your-eyes-only' + '(--for-your-eyes-only)--no-for-your-eyes-only' + '--completes-needed:number' '--marginals-needed:number' '--max-cert-depth:number' + '--'{{,disable-,s2k-}cipher,{,s2k-,cert-}digest,disable-pubkey}'-algo:cipher:->ciphers' + '--s2k-mode:value' '--simple-sk-checksum' + '--compress-algo:compression algorithm:((0\:disable\ compression 1\:zlib 2\:rfc1950))' + '--no-sig-cache' '--no-sig-create-check' '--'{,no-}'auto-check-trustdb' '--throw-keyid' + '--not-dash-escaped' '--'{,no-}'escape-from-lines' '--'{,no-}'use-agent' + '--rfc1991' '--'{,no-}'pgp2' '--'{,no}'pgp6' '--'{,no}'pgp7' '--openpgp' + '--'{,no-}'force-v3-sigs' '--'{,no}'force-v4-certs' '--force-mdc' '--disable-mdc' + '--'{,no-}'allow-non-selfsigned-uid' '--allow-freeform-uid' + '--ignore-valid-from' + '--ignore-crc-error' '--ignore-mdc-error' '--lock-once' '--lock-multiple' '--lock-never' + '--no-random-seed-file' '--no-verbose' '--no-greeting' '--no-secmem-warning' + '--no-permission-warning' '--no-mdc-warning' '--no-armor' '--no-default-keyring' + '--skip-verify' '--with-colons' '--with-key-data' '--with-fingerprint' + '--fast-list-mode' '--fixed-list-mode' '--list-only' '--no-literal' '--set-filesize' + '--emulate-md-encode-bug' '--show-session-key' '--override-session-key:string' + '--'{,no-}'ask-sig-expire' '--'{,no}'ask-cert-expire' '--'{,no}'expert' + '--merge-only' '--allow-secret-key-import' '--try-all-secrets' + '--enable-special-filenames' '--no-expensive-trust-checks' '--group:name=value' + '--preserve-permissions' '--personal-'{cipher,digest,compress}'-preferences:string' + '--card-edit[present smartcard menu]' '--card-status[show smartcard content]' + '--change-pin[present menu to change smartcard pin]' + '--list-config[display internal configuration parameters]' + '--hidden-recipient[hidden recipient]:recipient:->public-keys' + '--dump-options[show all options]' '--default-preference-list:string' + '--fetch-keys:URIs:' '--gpgconf-list' '--gpgconf-test' + '--hidden-encrypt-to:recipient:->public-keys' + '--compress-level:integer:' + '--bzip2-compress-level:integer:' '--bzip2-decompress-lowmem' + '--default-sig-expire' '--default-cert-expire' '--no-ask-cert-expire' + '--default-cert-level:integer:' + '--min-cert-level' '--ask-cert-level' '--no-ask-cert-level' + '--max-output[maximum output generated when processing file]:bytes:' + '--gpg-agent-info[override GPG_AGENT_INFO]:' + '--primary-keyring:file:_files' + '--'{,no-}'verify-options:parameters:_multi_parts -q -S, "," + "(show-photos show-policy-urls show-notations show-std-notations + show-user-notations show-keyserver-urls show-uid-validity show-unusable-uids + show-primary-uid-only pka-lookups pka-trust-increase)"' + '--debug:flags:' '--debug-all' '--status-file:file:' + '--attribute-file:file:' '--load-extension:file:_files' + '--gnupg' '--rfc2440' '--rfc4880' '--pgp8' + '--s2k-count:integer:' '--'{,no-}'throw-keyids' + '--sig-notation:name=value:' '--cert-notation:name=value:' + '--passphrase-file:file:_files' '--passphrase-repeat:integer:' + '--command-file:file:_files' '--trustdb-name:file:_files' + '--'{,no-}'require-secmem' + '--trust-model:trust model:((pgp classic direct always auto))' + '--sig-policy-url:string:' '--cert-policy-url:string:' + '--sig-keyserver-url:string:' '--comment[comment]:comment:' + '--no-comments[disable comments]' + '--logger-file[write log to file]:file:_files' + '--'{,no-}'use-embedded-filename' + '--rebuild-keydb-caches[create signature caches in keyring]' + '--default-keyserver-url:name:' + '--display-charset[set native charset]:charset:((iso-8859-1 iso-8859-2 iso-8859-15 koi8-r utf-8))' + '--ungroup[remove group]:group name:' + '--no-groups[remove all entries from --group list]' + '--'{,no}'mangle-dos-filenames' + '--enable-progress-filter[enable progress status output]' + '--multifile[process multiple files]' + '--keyid-format[key id format]:key format:((short 0xshort long 0xlong))' + '--exit-on-status-write-error[exit immediately on error write]' + '--limit-card-insert-tries:integer:' + '--reader-port[card reader port]:port:' + '--ctapi-driver[file to use to access smartcard reader]:file:_files' + '--pcsc-driver[file to use to access smartcard reader]:file:_files' + '--disable-ccid' '--debug-ccid-driver' + '--'{enable,disable}'-dsa2' + '--'{,no-}'allow-multiple-messages' '--'{,no-}'require-cross-certification' + '--auto-key-locate:parameters:' '--no-auto-key-locate' + '--dump-options[show all options]') + +case "$service" in + gpg) + _arguments -C -s -S -A "-*" $gpgbasic $gpgextra $gpgv '*:args:->args' + ;; + + gpgv) + _arguments -C -s -S -A "-*" $gpgv '*:args:->args' + ;; + + gpg-zip) + _arguments -C -s -S -A "-*" $gpgbasic $gpgzip '*:args:->args' + ;; +esac if [[ $state = args ]]; then if (( ${+opt_args[--export]} || ${+opt_args[--list-keys]} || ${+opt_args[--list-public-keys]} )); then diff -Nru zsh-4.3.10/Completion/Unix/Command/_graphicsmagick zsh-4.3.11/Completion/Unix/Command/_graphicsmagick --- zsh-4.3.10/Completion/Unix/Command/_graphicsmagick 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_graphicsmagick 2010-01-23 08:16:47.000000000 +0100 @@ -0,0 +1,547 @@ +#compdef gm + +local state line expl formats curcontext="$curcontext" +typeset -A opt_args + +formats=jpg:jpeg:tiff:miff:ras:bmp:cgm:dcx:ps:eps:fig:fits:fpx:gif:mpeg:pbm:pgm:ppm:pcd:pcl:pdf:pcx:png:rad:rgb:rgba:rle:sgi:html:shtml:tga:ttf:uil:xwd:xbm:xpm:yuv + +if (( $# )); then + _files "$@" -g "*.(#i)(${~formats//:/|})(-.)" + return +fi + +if (( CURRENT == 2 )); then + compadd animate benchmark compare composite conjure convert display help identify import mogrify montage version + +else + +case "$words[2]" in + (display) + _arguments -M 'm:{a-z}={A-Z}' \ + '*-backdrop[use full screen]' \ + '*-background:color:_x_color' \ + '*-border:border size (x)' \ + '*-bordercolor:color:_x_color' \ + '*-borderwidth:geometry' \ + '*-cache[specify memory available to the pixel cache]:memory (MB)' \ + '*-colormap:colormap type:(shared private)' \ + '*-colors:preferred number of colors' \ + '*-colorspace:colorspace type:(GRAY OHTA RGB Transparent XYZ YCbCr YIQ YPbPr YUV CMYK)' \ + '*-comment:comment string' \ + '*-compress:image compression type:(None BZip Fax Group4 JPEG LZW RunlengthEncoded Zip)' \ + '*-contrast[enhance contrast]' \ + '*+contrast[reduce contrast]' \ + '*-crop:crop image (x{+-}{+-}{%%})' \ + '*-debug' \ + '*-delay:delay for next image (1/100ths of a second)' \ + '*-density:image resolution (x in pixels)' \ + '*-despeckle[reduce speckles in image]' \ + '*-display:display:_x_display' \ + '*-dispose:GIF disposal method:((0:no\ disposal 1\:don'\''t\ dispose\ between\ frames 2\:overwrite\ frame\ with\ background\ color 3\:overwrite\ with\ previous\ frame))' \ + '*-dither[apply dithering]' \ + '*-edge:edge detection factor (0.0 - 99.9%%)' \ + '*-endian:image endianess:(MSB LSB)' \ + '*+endian' \ + '*-enhance[enhance noisy image]' \ + '*-filter:filter type for resizing:(Point Box Triangle Hermite Hanning Hamming Blackman Gaussian Quadratic Cubic Catrom Mitchell Lanczos Bessel Sinc)' \ + '*-flip[vertical mirror image]' \ + '*-flop[horizontal mirror image]' \ + '*-font:font:_x_font' \ + '*-foreground:color:_x_color' \ + '*-frame:border dimensions (x++)' \ + '*-gamma[gamma correction level]:gamma correction level ( or //)' \ + '*+gamma[gamma correction level (don'\''t change pixels)]:gamma correction level ( or //)' \ + '*-geometry:window geometry (x{+-}{+-}{%%}{!}{<}{>})' \ + '(- *)-help[display help information]' \ + '*-iconGeometry:geometry:_x_geometry' \ + '*-iconic' \ + '*-immutable[disallow image modifications]' \ + '*-interlace:interlacing scheme:(None Line Plane Partition)' \ + '*-label:label string' \ + '*-magnify:factor' \ + '*-map:colormap type for display:(best default gray red green blue)' \ + '*-matte[store matte channel]' \ + '*-mattecolor:color:_x_color' \ + '*-monochrome[transform to black and white]' \ + '*-name:image name' \ + '*-negate[invert image]' \ + '*+negate[invert only grayscale]' \ + '*-noop' \ + '*-page:geometry of image canvas (x{+-}{+-}{%%}{!}{<}{>}):(11x17 Ledger Legal Letter LetterSmall ArchE ArchD ArchC ArchB ArchA A0 A1 A2 A3 A4 A4Small A5 A6 A7 A8 A9 A10 B0 B1 B2 B3 B4 B5 C0 C1 C2 C3 C4 C5 C6 Flsa Flse HalfLetter)' \ + '*-quality:JPEG/MIFF/PNG compression level' \ + '*-raise:3-D edges (raised)' \ + '*+raise:3-D edges (lowered)' \ + '*-remote:remote command (file name):_imagemagick' \ + '*-roll:image roll offset ({+-}{+-})' \ + '*-rotate:rotation (degrees{<}{>})' \ + '*-sample:scale factors (x)' \ + '*-sampling_factor:sampling factor (x)' \ + '*-scenes:image scene number' \ + '*-segment:cluster pixel number' \ + '*-shared_memory' \ + '*-sharpen:sharpening factor (0.0 - 99.9%%)' \ + '*-size:image size (x+)' \ + '*-text_font:font:_x_font' \ + '*-texture:background texture image:_imagemagick' \ + '*-title:image title' \ + '*-treedepth:color reduction tree depth' \ + '*-trim' \ + '*-update:redisplay test time (seconds)' \ + '*-use_pixmap' \ + '*-verbose' \ + '*-visual:visual to use for display:(StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor default)' \ + '*-window:window ID to display image in:_x_window' \ + '*-window_group' \ + '*-write:output filename:_files' \ + '*:picture file:_imagemagick' && return + ;; + + (animate) + _arguments -M 'm:{a-z}={A-Z}' \ + '*-backdrop[use full screen]' \ + '*-background:color:_x_color' \ + '*-bordercolor:color:_x_color' \ + '*-borderwidth:geometry' \ + '*-cache[specify memory available to the pixel cache]:memory (MB)' \ + '*-chop:x{+-}{+-}' \ + '*-colormap:colormap type:(Shared Private)' \ + '*-colors:preferred number of colors' \ + '*-colorspace:colorspace type:(GRAY OHTA RGB Transparent XYZ YCbCr YIQ YPbPr YUV CMYK)' \ + '*-crop:crop image (x{+-}{+-})' \ + '*-debug' \ + '*-delay:delay for next image (1/100ths of a second)' \ + '*-density:image resolution (x in pixels)' \ + '*-depth:image depth:(8 16)' \ + '*-display:display:_x_display' \ + '*-dither[apply dithering]' \ + '*-font:font:_x_font' \ + '*-foreground:color:_x_color' \ + '*-gamma[gamma correction level]:gamma correction level ( or //)' \ + '*+gamma[gamma correction level (don'\''t change pixels)]:gamma correction level ( or //)' \ + '*-geometry:window geometry (x{+-}{+-}{%%}{!}{<}{>})' \ + '(- *)-help[display help information]' \ + '*-iconGeometry:geometry:_x_geometry' \ + '*-iconic' \ + '*-interlace:interlacing scheme:(None Line Plane Partition)' \ + '*-map:colormap type for display:(best default gray red green blue)' \ + '*-matte[store matte channel]' \ + '*-mattecolor:color:_x_color' \ + '*-monochrome[transform to black and white]' \ + '*-name:image name' \ + '*-noop' \ + '*-pause:delay (seconds)' \ + '*-remote:remote command (file name):_imagemagick' \ + '*-rotate:rotation (degrees{<}{>})' \ + '*-scenes:image scene number' \ + '*-shared_memory' \ + '*-size:image size (x+)' \ + '*-text_font:font:_x_font' \ + '*-title:image title' \ + '*-treedepth:color reduction tree depth' \ + '*-trim' \ + '*-verbose[print image information]' \ + '*-visual:visual to use for display:(StaticGray GrayScale StaticColor PseudoColor TrueColor DirectColor default)' \ + '*-window:window ID to display image in:_x_window' \ + '*:picture file:_imagemagick' && return + ;; + + (import) + _x_arguments -M 'm:{a-z}={A-Z}' \ + '-adjoin[join images]' \ + '-border:border size (x):' \ + '-bordercolor:color:_x_color' \ + '-cache[specify memory available to the pixel cache]:memory (MB)' \ + '-colors:preferred number of colors' \ + '-colorspace:colorspace type:(GRAY OHTA RGB Transparent XYZ YCbCr YIQ YPbPr YUV CMYK)' \ + '-comment:comment string' \ + '-crop:crop image (x{+-}{+-}{%%})' \ + '-debug' \ + '-delay:delay for next image (1/100ths of a second)' \ + '-density:resolution in pixels of image (x)' \ + '-depth:image depth:(8 16)' \ + '-descend[descend window hierarchy]' \ + '-dispose:GIF disposal method:((0:no\ disposal 1\:don'\''t\ dispose\ between\ frames 2\:overwrite\ frame\ with\ background\ color 3\:overwrite\ with\ previous\ frame))' \ + '-dither[apply dithering]' \ + '(+endian)-endian:image endianess:(MSB LSB)' \ + '(-endian)+endian' \ + '-frame[include window manager frame]' \ + '(- *)-help[display help information]' \ + '-interlace:interlacing scheme:(None Line Plane Partition)' \ + '-label:label string' \ + '-monochrome[transform to black and white]' \ + '-negate[invert image]' \ + '+negate[invert only grayscale]' \ + '-page:geometry of image canvas (x{+-}{+-}{%%}{!}{<}{>}):(11x17 Ledger Legal Letter LetterSmall ArchE ArchD ArchC ArchB ArchA A0 A1 A2 A3 A4 A4Small A5 A6 A7 A8 A9 A10 B0 B1 B2 B3 B4 B5 C0 C1 C2 C3 C4 C5 C6 Flsa Flse HalfLetter)' \ + '-pause:delay (seconds)' \ + '-ping' \ + '-pointsize:Postscript font size' \ + '-quality:JPEG/MIFF/PNG compression level' \ + '-resize:size (x{%%}{@}{!}{<}{>})' \ + '-rotate:rotation (degrees{<}{>})' \ + '-sampling_factor:sampling factor (x)' \ + '-scene:number of screen snapshots' \ + '-screen[get root window]' \ + '-silent[be quiet]' \ + '-snaps:number' \ + '-transparent:transparent color:_x_color' \ + '-treedepth:color reduction tree depth' \ + '-trim' \ + '-type:image type:(Bilevel Grayscale Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte Optimize)' \ + '-verbose[print image information]' \ + '-window:window ID to get:_x_window' \ + ':output file:_files' && return + ;; + + (montage) + _arguments -M 'm:{a-z}={A-Z}' \ + '*-adjoin[join images]' \ + '*-background:color:_x_color' \ + '*-blur:blur factor (0.0 - 99.9%%)' \ + '*-bordercolor:color:_x_color' \ + '*-borderwidth:geometry' \ + '*-cache[specify memory available to the pixel cache]:memory (MB)' \ + '*-colors:preferred number of colors' \ + '*-colorspace:colorspace type:(GRAY OHTA RGB Transparent XYZ YCbCr YIQ YPbPr YUV CMYK)' \ + '*-comment:comment string' \ + '*-compose:image composition type:(Over In Out Atop Xor Plus Minus Add Subtract Difference Bumpmap Replace ReplaceRed ReplaceGreen ReplaceBlue ReplaceMatte)' \ + '*-compress:image compression type:(None BZip Fax Group4 JPEG LZW RunlengthEncoded Zip)' \ + '*-crop:crop image (x{+-}{+-}{%%})' \ + '*-debug' \ + '*-density:resolution in pixels of image (x)' \ + '*-depth:image depth:(8 16)' \ + '*-display:display:_x_display' \ + '*-dispose:GIF disposal method:((0:no\ disposal 1\:don'\''t\ dispose\ between\ frames 2\:overwrite\ frame\ with\ background\ color 3\:overwrite\ with\ previous\ frame))' \ + '*-dither[apply dithering]' \ + '*+dither[render Postscript without aliasing]' \ + '*-draw:drawing primitive:compadd -S "\\ " - rectangle circle ellipse polygon color matte text image' \ + '*-endian:image endianess:(MSB LSB)' \ + '*+endian' \ + '*-filter:filter type for resizing:(Point Box Triangle Hermite Hanning Hamming Blackman Gaussian Quadratic Cubic Catrom Mitchell Lanczos Bessel Sinc)' \ + '*-frame[draw frame around image]' \ + '*-font:annotation font:_x_font' \ + '*-gamma[gamma correction level]:gamma correction level ( or //)' \ + '*+gamma[gamma correction level (don'\''t change pixels)]:gamma correction level ( or //)' \ + '*-geometry:window geometry (x{+-}{+-}{%%}{!}{<}{>})' \ + '*-gravity:image gravity:(Center North NorthEast East SouthEast South SouthWest West NorthWest)' \ + '(- *)-help[display help information]' \ + '*-interlace:interlacing scheme:(None Line Plane Partition)' \ + '*-label:label string' \ + '*-matte[store matte channel]' \ + '*-mattecolor:color:_x_color' \ + '*-mode:montage type:(Frame Unframe Concatenate)' \ + '*-monochrome[transform to black and white]' \ + '*-noop' \ + '*-page:geometry of image canvas (x{+-}{+-}{%%}{!}{<}{>}):(11x17 Ledger Legal Letter LetterSmall ArchE ArchD ArchC ArchB ArchA A0 A1 A2 A3 A4 A4Small A5 A6 A7 A8 A9 A10 B0 B1 B2 B3 B4 B5 C0 C1 C2 C3 C4 C5 C6 Flsa Flse HalfLetter)' \ + '*-pen:font color:_x_color' \ + '*-pointsize:Postscript font size' \ + '*-quality:JPEG/MIFF/PNG compression level' \ + '*-resize:size (x{%%}{@}{!}{<}{>})' \ + '*-rotate:rotation (degrees{<}{>})' \ + '*-sampling_factor:sampling factor (x)' \ + '*-scenes:image scene number' \ + '*-shadow[add shadow]' \ + '*-sharpen:sharpening factor (0.0 - 99.9%%)' \ + '*-size:image size (x+)' \ + '*-stroke:color:_x_color' \ + '*-texture:background texture image:_imagemagick' \ + '*-tile:number of tiles (x)' \ + '*-title:image title' \ + '*-transparent:transparent color:_x_color' \ + '*-treedepth:color reduction tree depth' \ + '*-trim' \ + '*-type:image type:(Bilevel Grayscale Palette PaletteMatte TrueColor TrueColorMatte ColorSeparation ColorSeparationMatte Optimize)' \ + '*-verbose[print image information]' \ + '*:picture file:_imagemagick' && return + ;; + + (convert) + _arguments -C -M 'm:{a-z}={A-Z}' \ + '-adjoin[join images]' \ + '-affine[drawing transform matrix]:matrix' \ + '-antialias[remove pixel aliasing]' \ + '-append[append image sequence]' \ + '-average[average image sequence]' \ + '-background[specify background color]:color:_x_color' \ + '-blur:blur factor (0.0 - 99.9%%)' \ + '-border:border size (x)' \ + '-bordercolor:border color:_x_color' \ + '-box:annotation bounding box color:_x_color' \ + '-cache[specify memory available to the pixel cache]:memory (MB)' \ + '-channel:channel:(Red Green Blue Opacity Cyan Magenta Yellow Black)' \ + '-charcoal:charcoal drawing factor' \ + '-chop:x{+-}{+-}' \ + '-clip' \ + '-coalesce[merge image sequence]' \ + '-colorize:colorization amount ( or //)' \ + '-colors:preferred number of colors' \ + '-colorspace:colorspace type:(GRAY OHTA RGB Transparent XYZ YCbCr YIQ YPbPr YUV CMYK)' \ + '-comment:comment string' \ + '-compress:image compression type:(None BZip Fax Group4 JPEG LZW RunlengthEncoded Zip)' \ + '-contrast[enhance contrast]' \ + '+contrast[reduce contrast]' \ + '-crop:crop image (x{+-}{+-}{%%})' \ + '-cycle:image colormap shift' \ + '-debug' \ + '-deconstruct[break down image sequence into parts]' \ + '-delay:delay for next image (1/100ths of a second)' \ + '-density:resolution in pixels of image (x)' \ + '-depth:image depth:(8 16)' \ + '-despeckle[reduce speckles in image]' \ + '-display:display:_x_display' \ + '-dispose:GIF disposal method:((0:no\ disposal 1\:don'\''t\ dispose\ between\ frames 2\:overwrite\ frame\ with\ background\ color 3\:overwrite\ with\ previous\ frame))' \ + '-dither[apply dithering]' \ + '-draw:drawing primitive:compadd -S "\\ " - rectangle circle ellipse polygon color matte text image' \ + '-edge:edge detection factor (0.0 - 99.9%%)' \ + '-emboss[emboss image]' \ + '(+endian)-endian:image endianess:(MSB LSB)' \ + '(-endian)+endian' \ + '-enhance[enhance image]' \ + '-equalize[histogram equalization]' \ + '-fill[specify color to use when filling a graphic primitive]:color:_x_color' \ + '-filter:filter type for resizing:(Point Box Triangle Hermite Hanning Hamming Blackman Gaussian Quadratic Cubic Catrom Mitchell Lanczos Bessel Sinc)' \ + '-flatten[flatten a sequence of images]' \ + '-flip[vertical mirror image]' \ + '-flop[horizontal mirror image]' \ + '-font:annotation font:_x_font' \ + '-frame:border dimensions (x++)' \ + '-fuzz:maximum distance for equal colors' \ + '-gamma[gamma correction level]:gamma correction level ( or //)' \ + '+gamma[gamma correction level (don'\''t change pixels)]:gamma correction level ( or //)' \ + '-geometry:window geometry (x{+-}{+-}{%%}{!}{<}{>})' \ + '-gravity:image gravity:(Center North NorthEast East SouthEast South SouthWest West NorthWest)' \ + '-implode:implosion factor (0.0 - 99.9%%)' \ + '-interlace:interlacing scheme:(None Line Plane Partition)' \ + '-label:label string' \ + '-layer:layer type:(Red Green Blue Matte)' \ + '-linewidth:line width' \ + '-loop:number of iterations (GIF animation)' \ + '-map[single image colormap file]:picture file for colors:_imagemagick' \ + '+map[all images colormap file]:picture file for colors:_imagemagick' \ + '-matte[store matte channel]' \ + '-modulate:,,' \ + '-monochrome[transform to black and white]' \ + '-morph[morph image sequence]' \ + '-negate[invert image]' \ + '+negate[invert only grayscale]' \ + '-noise[noise peak elimination]' \ + '+noise:noise type:(Uniform Gaussian Multiplicative Impulse Laplacian Poisson)' \ + '-normalize[use full color value range]' \ + '-opaque:image pen color:_x_color' \ + '-page:geometry of image canvas (x{+-}{+-}{%%}{!}{<}{>}):(11x17 Ledger Legal Letter LetterSmall ArchE ArchD ArchC ArchB ArchA A0 A1 A2 A3 A4 A4Small A5 A6 A7 A8 A9 A10 B0 B1 B2 B3 B4 B5 C0 C1 C2 C3 C4 C5 C6 Flsa Flse HalfLetter)' \ + '-paint:oil painting radius' \ + '-pen:font color:_x_color' \ + '-pointsize:Postscript font size' \ + '-preview:image preview type:(Rotate Shear Roll Hue Saturation Brightness Gamma Spiff Dull Grayscale Quantize Despeckle ReduceNoise AddNoise Sharpen Blur Threshold Edge Detect Spread Shade Raise Segment Solarize Swirl Implode Wave OilPaint CharcoalDrawing JPEG)' \ + '-profile:information profile:->profile' \ + '-quality:JPEG/MIFF/PNG compression level' \ + '-raise:lighten or darken edges (x)' \ + '-region:image region (x{+-}{+-})' \ + '-roll:image roll offset ({+-}{+-})' \ + '-rotate:rotation (degrees{<}{>})' \ + '-sample:scale factors (x)' \ + '-scene:image scene number' \ + '-seed:random number seed' \ + '-segment:segment thresholds (x)' \ + '-shade:image shading (x)' \ + '-sharpen:sharpening factor (0.0 - 99.9%%)' \ + '-shear:shearing angles (x in degrees)' \ + '-size:image size (x+)' \ + '-solarize:solarization threshold' \ + '-spread:neighborhood size' \ + '-swirl:swirl tightness' \ + '-texture:background texture image:_imagemagick' \ + '-threshold:threshold for maximum intensity' \ + '-transparency:transparent color:_x_color' \ + '-treedepth:color reduction tree depth' \ + '-units:image resolution type:(Undefined PixelsPerInch PixelsPerCentimeter)' \ + '-verbose[print image information]' \ + '-view:FlashPix viewing parameters' \ + '-wave:sine wave parameters (x)' \ + '*:picture file:_imagemagick' && return + + if [[ "$state" = profile ]]; then + if compset -P '*:'; then + _files + else + _wanted prefixes expl 'profile type' compadd icc: iptc: + fi + return + fi + ;; + + (composite) + _arguments -M 'm:{a-z}={A-Z}' \ + '-blend:blending factor (0.0 - 99.9%%)' \ + '-colors:preferred number of colors' \ + '-colorspace:colorspace type:(GRAY OHTA RGB Transparent XYZ YCbCr YIQ YPbPr YUV CMYK)' \ + '-comment:comment string' \ + '-compose:image composition type:(Over In Out Atop Xor Plus Minus Add Subtract Difference Bumpmap Replace ReplaceRed ReplaceGreen ReplaceBlue ReplaceMatte)' \ + '-compress:image compression type:(None BZip Fax Group4 JPEG LZW RunlengthEncoded Zip)' \ + '-density:resolution in pixels of image (x)' \ + '-displace:displacements scales (x)' \ + '-display:display:_x_display' \ + '-dispose:GIF disposal method:((0:no\ disposal 1\:don'\''t\ dispose\ between\ frames 2\:overwrite\ frame\ with\ background\ color 3\:overwrite\ with\ previous\ frame))' \ + '-dither[apply dithering]' \ + '+dither[render Postscript without aliasing]' \ + '-font:normal text font:_x_font' \ + '-geometry:window geometry (x{+-}{+-}{%%}{!}{<}{>})' \ + '-gravity:image gravity:(Center North NorthEast East SouthEast South SouthWest West NorthWest)' \ + '-interlace:interlacing scheme:(None Line Plane Partition)' \ + '-label:label string' \ + '-matte[store matte channel]' \ + '-monochrome[transform to black and white]' \ + '-negate[invert image]' \ + '+negate[invert only grayscale]' \ + '-page:geometry of image canvas (x{+-}{+-}{%%}{!}{<}{>}):(11x17 Ledger Legal Letter LetterSmall ArchE ArchD ArchC ArchB ArchA A0 A1 A2 A3 A4 A4Small A5 A6 A7 A8 A9 A10 B0 B1 B2 B3 B4 B5 C0 C1 C2 C3 C4 C5 C6 Flsa Flse HalfLetter)' \ + '-quality:JPEG/MIFF/PNG compression level' \ + '-scene:image scene number' \ + '-stegano:watermark offset' \ + '-stereo[create stereo anaglyph]' \ + '-tile[repeat composite operation]' \ + '-treedepth:color reduction tree depth' \ + '-verbose[print image information]' \ + ':image file:_imagemagick' \ + ':composite file:_imagemagick' \ + ':mask or combined file:_imagemagick' \ + ':combined file:_files' && return + ;; + + (mogrify) + _arguments -M 'm:{a-z}={A-Z}' \ + '*-affine[drawing transform matrix]:matrix' \ + '*-antialias[remove pixel aliasing]' \ + '*-background[specify background color]:color:_x_color' \ + '*-blur:blur factor (0.0 - 99.9%%)' \ + '*-border:border size (x)' \ + '*-bordercolor:border color:_x_color' \ + '*-box:annotation bounding box color:_x_color' \ + '*-charcoal:charcoal drawing factor' \ + '*-colorize:colorization amount ( or //)' \ + '*-colors:preferred number of colors' \ + '*-colorspace:colorspace type:(GRAY OHTA RGB Transparent XYZ YCbCr YIQ YPbPr YUV CMYK)' \ + '*-comment:comment string' \ + '*-compress:image compression type:(None BZip Fax Group4 JPEG LZW RunlengthEncoded Zip)' \ + '*-contrast[enhance contrast]' \ + '*+contrast[reduce contrast]' \ + '*-crop:crop image (x{+-}{+-}{%%})' \ + '*-cycle:image colormap shift' \ + '*-delay:delay for next image (1/100ths of a second)' \ + '*-density:resolution in pixels of image (x)' \ + '*-depth:image depth:(8 16)' \ + '*-despeckle[reduce speckles in image]' \ + '*-display:display:_x_display' \ + '*-dispose:GIF disposal method:((0:no\ disposal 1\:don'\''t\ dispose\ between\ frames 2\:overwrite\ frame\ with\ background\ color 3\:overwrite\ with\ previous\ frame))' \ + '*-dither[apply dithering]' \ + '*+dither[render Postscript without aliasing]' \ + '*-draw:drawing primitive:compadd -S "\\ " - point line rectangle fillRectangle circle fillCircle ellipse fillEllipse polygon fillPolygon color matte text image' \ + '*-edge:edge detection factor (0.0 - 99.9%%)' \ + '*-emboss[emboss image]' \ + '*-enhance[enhance image]' \ + '*-equalize[histogram equalization]' \ + '*-filter:filter type for resizing:(Point Box Triangle Hermite Hanning Hamming Blackman Gaussian Quadratic Cubic Catrom Mitchell Lanczos Bessel Sinc)' \ + '*-flip[vertical mirror image]' \ + '*-flop[horizontal mirror image]' \ + "*-format:output file format:(${formats//:/ })" \ + '*-font:annotation font:_x_font' \ + '*-frame:border dimensions (x++)' \ + '*-fuzz:maximum distance for equal colors' \ + '*-gamma[gamma correction level]:gamma correction level ( or //)' \ + '*+gamma[gamma correction level (don'\''t change pixels)]:gamma correction level ( or //)' \ + '*-geometry:window geometry (x{+-}{+-}{%%}{!}{<}{>})' \ + '*-gravity:image gravity:(Center North NorthEast East SouthEast South SouthWest West NorthWest)' \ + '*-implode:implosion factor (0.0 - 99.9%%)' \ + '*-interlace:interlacing scheme:(None Line Plane Partition)' \ + '*-layer:layer type:(Red Green Blue Matte)' \ + '*-linewidth:line width' \ + '*-loop:number of iterations (GIF animation)' \ + '*-map[single image colormap file]:picture file for colors:_imagemagick' \ + '*+map[all images colormap file]:picture file for colors:_imagemagick' \ + '*-matte[store matte channel]' \ + '*-modulate:,,' \ + '*-monochrome[transform to black and white]' \ + '*-negate[invert image]' \ + '*+negate[invert only grayscale]' \ + '*-noise[noise peak elimination]' \ + '*+noise:noise type:(Uniform Gaussian Multiplicative Impulse Laplacian Poisson)' \ + '*-normalize[use full color value range]' \ + '*-opaque:image pen color:_x_color' \ + '*-page:geometry of image canvas (x{+-}{+-}{%%}{!}{<}{>}):(11x17 Ledger Legal Letter LetterSmall ArchE ArchD ArchC ArchB ArchA A0 A1 A2 A3 A4 A4Small A5 A6 A7 A8 A9 A10 B0 B1 B2 B3 B4 B5 C0 C1 C2 C3 C4 C5 C6 Flsa Flse HalfLetter)' \ + '*-paint:oil painting radius' \ + '*-pen:font color:_x_color' \ + '*-pointsize:Postscript font size' \ + '*-quality:JPEG/MIFF/PNG compression level' \ + '*-raise:lighten or darken edges (x)' \ + '*-region:image region (x{+-}{+-})' \ + '*-resize:size (x{%%}{@}{!}{<}{>})' \ + '*-roll:image roll offset ({+-}{+-})' \ + '*-rotate:rotation (degrees{<}{>})' \ + '*-sample:scale factors (x)' \ + '*-scene:image scene number' \ + '*-seed:random number seed' \ + '*-segment:segment thresholds (x)' \ + '*-shade:image shading (x)' \ + '*-sharpen:sharpening factor (0.0 - 99.9%%)' \ + '*-shave:shave edges (x{%%})' \ + '*-shear:shearing angles (x in degrees)' \ + '*-size:image size (x+)' \ + '*-solarize:solarization threshold' \ + '*-spread:neighborhood size' \ + '*-swirl:swirl tightness' \ + '*-texture:background texture image:_imagemagick' \ + '*-threshold:threshold for maximum intensity' \ + '*-transparency:transparent color:_x_color' \ + '*-treedepth:color reduction tree depth' \ + '*-units:image resolution type:(Undefined PixelsPerInch PixelsPerCentimeter)' \ + '*-verbose[print image information]' \ + '*-view:FlashPix viewing parameters' \ + '*-wave:sine wave parameters (x)' \ + '*:picture file:_imagemagick' && return + ;; + + (identify) + _arguments \ + '*-cache[specify memory available to the pixel cache]:memory (MB)' \ + '*-debug' '*-ping' \ + '*-density:resolution in pixels of image (x)' \ + '*-depth[specify image depth]:image depth:(8 16)' \ + '*-format[specify format for image characteristics]:format' \ + '(- *)-help[display help information]' \ + '*-size:image size (x+)' \ + '*-verbose[print more detailed info about image]' \ + '*:picture file:_imagemagick' && return + ;; + + (compare) + _arguments \ + '*-authenticate[decrypt image]:password' \ + '*-colorspace[alternate image colorspace]:type' \ + '*-debug[display copious debugging information]:events' \ + '*-define[coder/decoder specific options]:values' \ + '*-density[ horizontal and vertical density of the image]:geometry' \ + '*-depth[image depth]:value' \ + '*-display[get image or font from this X server]:server' \ + '*-endian[multibyte word order]:(LSB MSB Native)' \ + '*-file[write difference image to this file]:file:_files' \ + '(- *)-help[print program options]' \ + '*-highlight-color[color to use when annotating difference pixels]:color' \ + '*-highlight-style[pixel highlight style]:(assign threshold tint xor)' \ + '*-interlace:type:(None Line Plane Partition)' \ + '*-limit:resource limit type and value:(Disk Files Map Memory Pixels)' \ + '*-log[format of debugging information]:format' \ + '*-matte[store matte channel if the image has one]' \ + '*-metric[comparison metric (MAE, MSE, PAE, PSNR, RMSE)]' \ + '*-monitor[show progress indication]' \ + '*-sampling-factor[horizontal and vertical sampling factors]:factors' \ + '*-size[width and height of image]:geometry' \ + '*-type[image type]:type' \ + '*-verbose[print detailed information about the image]' \ + '*-version[print version information]' \ + '*:picture file:_files' && return + ;; + + (*) _message 'unknown' ;; +esac + +fi + +return 1 diff -Nru zsh-4.3.10/Completion/Unix/Command/_grep zsh-4.3.11/Completion/Unix/Command/_grep --- zsh-4.3.10/Completion/Unix/Command/_grep 2003-11-14 12:56:55.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_grep 2009-12-14 17:54:28.000000000 +0100 @@ -55,6 +55,7 @@ '*--include=[examine files matching specified pattern]:file pattern' '*--exclude=[skip files matching specified pattern]:file pattern' '*--exclude-from=[skip files matching pattern in specified file]:file:_files' + '*--exclude-dir=[skip directories matching specified pattern]:directory pattern' '(--no-messages -s)'{--no-messages,-s}'[suppress messages about unreadable]' '(--version -V)'{--version,-V}'[display version info]' '(--invert-match -v)'{--invert-match,-v}'[select non-matching lines]' diff -Nru zsh-4.3.10/Completion/Unix/Command/_hg zsh-4.3.11/Completion/Unix/Command/_hg --- zsh-4.3.10/Completion/Unix/Command/_hg 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Completion/Unix/Command/_hg 2009-11-15 18:50:12.000000000 +0100 @@ -0,0 +1,946 @@ +#compdef hg + +# Zsh completion script for mercurial. Rename this file to _hg and copy +# it into your zsh function path (/usr/share/zsh/site-functions for +# instance) +# +# If you do not want to install it globally, you can copy it somewhere +# else and add that directory to $fpath. This must be done before +# compinit is called. If the file is copied to ~/.zsh.d, your ~/.zshrc +# file could look like this: +# +# fpath=("$HOME/.zsh.d" $fpath) +# autoload -U compinit +# compinit +# +# Copyright (C) 2005, 2006 Steve Borho +# Copyright (C) 2006-9 Brendan Cully +# +# Permission is hereby granted, without written agreement and without +# licence or royalty fees, to use, copy, modify, and distribute this +# software and to distribute modified versions of this software for any +# purpose, provided that the above copyright notice and the following +# two paragraphs appear in all copies of this software. +# +# In no event shall the authors be liable to any party for direct, +# indirect, special, incidental, or consequential damages arising out of +# the use of this software and its documentation, even if the authors +# have been advised of the possibility of such damage. +# +# The authors specifically disclaim any warranties, including, but not +# limited to, the implied warranties of merchantability and fitness for +# a particular purpose. The software provided hereunder is on an "as +# is" basis, and the authors have no obligation to provide maintenance, +# support, updates, enhancements, or modifications. + +emulate -LR zsh +setopt extendedglob + +local curcontext="$curcontext" state line +typeset -A _hg_cmd_globals + +_hg() { + local cmd _hg_root + integer i=2 + _hg_cmd_globals=() + + while (( i < $#words )) + do + case "$words[$i]" in + -R|--repository) + eval _hg_root="$words[$i+1]" + _hg_cmd_globals+=("$words[$i]" "$_hg_root") + (( i += 2 )) + continue + ;; + -R*) + _hg_cmd_globals+="$words[$i]" + eval _hg_root="${words[$i]#-R}" + (( i++ )) + continue + ;; + --cwd|--config) + # pass along arguments to hg completer + _hg_cmd_globals+=("$words[$i]" "$words[$i+1]") + (( i += 2 )) + continue + ;; + -*) + # skip option + (( i++ )) + continue + ;; + esac + if [[ -z "$cmd" ]] + then + cmd="$words[$i]" + words[$i]=() + (( CURRENT-- )) + fi + (( i++ )) + done + + if [[ -z "$cmd" ]] + then + _arguments -s -w : $_hg_global_opts \ + ':mercurial command:_hg_commands' + return + fi + + # resolve abbreviations and aliases + if ! (( $+functions[_hg_cmd_${cmd}] )) + then + local cmdexp + (( $#_hg_cmd_list )) || _hg_get_commands + + cmdexp=$_hg_cmd_list[(r)${cmd}*] + if [[ $cmdexp == $_hg_cmd_list[(R)${cmd}*] ]] + then + # might be nice to rewrite the command line with the expansion + cmd="$cmdexp" + fi + if [[ -n $_hg_alias_list[$cmd] ]] + then + cmd=$_hg_alias_list[$cmd] + fi + fi + + curcontext="${curcontext%:*:*}:hg-${cmd}:" + + zstyle -s ":completion:$curcontext:" cache-policy update_policy + + if [[ -z "$update_policy" ]] + then + zstyle ":completion:$curcontext:" cache-policy _hg_cache_policy + fi + + if (( $+functions[_hg_cmd_${cmd}] )) + then + _hg_cmd_${cmd} + else + # complete unknown commands normally + _arguments -s -w : $_hg_global_opts \ + '*:files:_hg_files' + fi +} + +_hg_cache_policy() { + typeset -a old + + # cache for a minute + old=( "$1"(mm+10) ) + (( $#old )) && return 0 + + return 1 +} + +_hg_get_commands() { + typeset -ga _hg_cmd_list + typeset -gA _hg_alias_list + local hline cmd cmdalias + + _call_program hg hg debugcomplete -v | while read -A hline + do + cmd=$hline[1] + _hg_cmd_list+=($cmd) + + for cmdalias in $hline[2,-1] + do + _hg_cmd_list+=($cmdalias) + _hg_alias_list+=($cmdalias $cmd) + done + done +} + +_hg_commands() { + (( $#_hg_cmd_list )) || _hg_get_commands + _describe -t commands 'mercurial command' _hg_cmd_list +} + +_hg_revrange() { + compset -P 1 '*:' + _hg_tags "$@" +} + +_hg_tags() { + typeset -a tags + local tag rev + + _hg_cmd tags 2> /dev/null | while read tag + do + tags+=(${tag/ # [0-9]#:*}) + done + (( $#tags )) && _describe -t tags 'tags' tags +} + +# likely merge candidates +_hg_mergerevs() { + typeset -a heads + local myrev + + heads=(${(f)"$(_hg_cmd heads --template '{rev}\\n')"}) + # exclude own revision + myrev=$(_hg_cmd log -r . --template '{rev}\\n') + heads=(${heads:#$myrev}) + + (( $#heads )) && _describe -t heads 'heads' heads +} + +_hg_files() { + if [[ -n "$_hg_root" ]] + then + [[ -d "$_hg_root/.hg" ]] || return + case "$_hg_root" in + /*) + _files -W $_hg_root + ;; + *) + _files -W $PWD/$_hg_root + ;; + esac + else + _files + fi +} + +_hg_status() { + [[ -d $PREFIX ]] || PREFIX=$PREFIX:h + status_files=(${(ps:\0:)"$(_hg_cmd status -0n$1 ./$PREFIX 2>/dev/null)"}) +} + +_hg_unknown() { + typeset -a status_files + _hg_status u + _wanted files expl 'unknown files' _multi_parts / status_files +} + +_hg_missing() { + typeset -a status_files + _hg_status d + _wanted files expl 'missing files' _multi_parts / status_files +} + +_hg_modified() { + typeset -a status_files + _hg_status m + _wanted files expl 'modified files' _multi_parts / status_files +} + +_hg_resolve() { + local rstate rpath + + [[ -d $PREFIX ]] || PREFIX=$PREFIX:h + + _hg_cmd resolve -l ./$PREFIX 2> /dev/null | while read rstate rpath + do + [[ $rstate == 'R' ]] && resolved_files+=($rpath) + [[ $rstate == 'U' ]] && unresolved_files+=($rpath) + done +} + +_hg_resolved() { + typeset -a resolved_files unresolved_files + _hg_resolve + _wanted files expl 'resolved files' _multi_parts / resolved_files +} + +_hg_unresolved() { + typeset -a resolved_files unresolved_files + _hg_resolve + _wanted files expl 'unresolved files' _multi_parts / unresolved_files +} + +_hg_config() { + typeset -a items + items=(${${(%f)"$(_call_program hg hg showconfig)"}%%\=*}) + (( $#items )) && _describe -t config 'config item' items +} + +_hg_addremove() { + _alternative 'files:unknown files:_hg_unknown' \ + 'files:missing files:_hg_missing' +} + +_hg_ssh_urls() { + if [[ -prefix */ ]] + then + if zstyle -T ":completion:${curcontext}:files" remote-access + then + local host=${PREFIX%%/*} + typeset -a remdirs + compset -p $(( $#host + 1 )) + local rempath=${(M)PREFIX##*/} + local cacheid="hg:${host}-${rempath//\//_}" + cacheid=${cacheid%[-_]} + compset -P '*/' + if _cache_invalid "$cacheid" || ! _retrieve_cache "$cacheid" + then + remdirs=(${${(M)${(f)"$(_call_program files ssh -a -x $host ls -1FL "${(q)rempath}" 2> /dev/null)"}##*/}%/}) + _store_cache "$cacheid" remdirs + fi + _describe -t directories 'remote directory' remdirs -S/ + else + _message 'remote directory' + fi + else + if compset -P '*@' + then + _hosts -S/ + else + _alternative 'hosts:remote host name:_hosts -S/' \ + 'users:user:_users -S@' + fi + fi +} + +_hg_urls() { + if compset -P bundle:// + then + _files + elif compset -P ssh:// + then + _hg_ssh_urls + elif [[ -prefix *: ]] + then + _urls + else + local expl + compset -S '[^:]*' + _wanted url-schemas expl 'URL schema' compadd -S '' - \ + http:// https:// ssh:// bundle:// + fi +} + +_hg_paths() { + typeset -a paths pnames + _hg_cmd paths 2> /dev/null | while read -A pnames + do + paths+=($pnames[1]) + done + (( $#paths )) && _describe -t path-aliases 'repository alias' paths +} + +_hg_remote() { + _alternative 'path-aliases:repository alias:_hg_paths' \ + 'directories:directory:_files -/' \ + 'urls:URL:_hg_urls' +} + +_hg_clone_dest() { + _alternative 'directories:directory:_files -/' \ + 'urls:URL:_hg_urls' +} + +# Common options +_hg_global_opts=( + '(--repository -R)'{-R+,--repository}'[repository root directory]:repository:_files -/' + '--cwd[change working directory]:new working directory:_files -/' + '(--noninteractive -y)'{-y,--noninteractive}'[do not prompt, assume yes for any required answers]' + '(--verbose -v)'{-v,--verbose}'[enable additional output]' + '*--config[set/override config option]:defined config items:_hg_config' + '(--quiet -q)'{-q,--quiet}'[suppress output]' + '(--help -h)'{-h,--help}'[display help and exit]' + '--debug[debug mode]' + '--debugger[start debugger]' + '--encoding[set the charset encoding (default: UTF8)]' + '--encodingmode[set the charset encoding mode (default: strict)]' + '--lsprof[print improved command execution profile]' + '--traceback[print traceback on exception]' + '--time[time how long the command takes]' + '--profile[profile]' + '--version[output version information and exit]' +) + +_hg_pat_opts=( + '*'{-I+,--include}'[include names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/' + '*'{-X+,--exclude}'[exclude names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/') + +_hg_diff_opts=( + '(--text -a)'{-a,--text}'[treat all files as text]' + '(--git -g)'{-g,--git}'[use git extended diff format]' + "--nodates[don't include dates in diff headers]") + +_hg_dryrun_opts=( + '(--dry-run -n)'{-n,--dry-run}'[do not perform actions, just print output]') + +_hg_style_opts=( + '--style[display using template map file]:' + '--template[display with template]:') + +_hg_commit_opts=( + '(-m --message -l --logfile --edit -e)'{-e,--edit}'[edit commit message]' + '(-e --edit -l --logfile --message -m)'{-m+,--message}'[use as commit message]:message:' + '(-e --edit -m --message --logfile -l)'{-l+,--logfile}'[read the commit message from ]:log file:_files') + +_hg_remote_opts=( + '(--ssh -e)'{-e+,--ssh}'[specify ssh command to use]:' + '--remotecmd[specify hg command to run on the remote side]:') + +_hg_cmd() { + _call_program hg hg --config ui.verbose=0 --config defaults."$1"= \ + "$_hg_cmd_globals[@]" "$@" 2> /dev/null +} + +_hg_cmd_add() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '*:unknown files:_hg_unknown' +} + +_hg_cmd_addremove() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--similarity -s)'{-s+,--similarity}'[guess renamed files by similarity (0<=s<=100)]:' \ + '*:unknown or missing files:_hg_addremove' +} + +_hg_cmd_annotate() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--rev -r)'{-r+,--rev}'[annotate the specified revision]:revision:_hg_tags' \ + '(--follow -f)'{-f,--follow}'[follow file copies and renames]' \ + '(--text -a)'{-a,--text}'[treat all files as text]' \ + '(--user -u)'{-u,--user}'[list the author]' \ + '(--date -d)'{-d,--date}'[list the date]' \ + '(--number -n)'{-n,--number}'[list the revision number (default)]' \ + '(--changeset -c)'{-c,--changeset}'[list the changeset]' \ + '*:files:_hg_files' +} + +_hg_cmd_archive() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '--no-decode[do not pass files through decoders]' \ + '(--prefix -p)'{-p+,--prefix}'[directory prefix for files in archive]:' \ + '(--rev -r)'{-r+,--rev}'[revision to distribute]:revision:_hg_tags' \ + '(--type -t)'{-t+,--type}'[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \ + '*:destination:_files' +} + +_hg_cmd_backout() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '--merge[merge with old dirstate parent after backout]' \ + '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ + '--parent[parent to choose when backing out merge]' \ + '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ + '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ + '(--message -m)'{-m+,--message}'[use as commit message]:text:' \ + '(--logfile -l)'{-l+,--logfile}'[read commit message from ]:log file:_files -g \*.txt' +} + +_hg_cmd_bisect() { + _arguments -s -w : $_hg_global_opts \ + '(-)'{-r,--reset}'[reset bisect state]' \ + '(--good -g --bad -b --skip -s --reset -r)'{-g,--good}'[mark changeset good]'::revision:_hg_tags \ + '(--good -g --bad -b --skip -s --reset -r)'{-b,--bad}'[mark changeset bad]'::revision:_hg_tags \ + '(--good -g --bad -b --skip -s --reset -r)'{-s,--skip}'[skip testing changeset]' \ + '(--command -c --noupdate -U)'{-c+,--command}'[use command to check changeset state]':commands:_command_names \ + '(--command -c --noupdate -U)'{-U,--noupdate}'[do not update to target]' +} + +_hg_cmd_branch() { + _arguments -s -w : $_hg_global_opts \ + '(--force -f)'{-f,--force}'[set branch name even if it shadows an existing branch]' \ + '(--clean -C)'{-C,--clean}'[reset branch name to parent branch name]' +} + +_hg_cmd_branches() { + _arguments -s -w : $_hg_global_opts \ + '(--active -a)'{-a,--active}'[show only branches that have unmerge heads]' +} + +_hg_cmd_bundle() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \ + '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_tags' \ + ':output file:_files' \ + ':destination repository:_files -/' +} + +_hg_cmd_cat() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--output -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \ + '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ + '*:file:_hg_files' +} + +_hg_cmd_clone() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + '(--noupdate -U)'{-U,--noupdate}'[do not update the new working directory]' \ + '(--rev -r)'{-r+,--rev}'[a changeset you would like to have after cloning]:' \ + '--uncompressed[use uncompressed transfer (fast over LAN)]' \ + ':source repository:_hg_remote' \ + ':destination:_hg_clone_dest' +} + +_hg_cmd_commit() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--addremove -A)'{-A,--addremove}'[mark new/missing files as added/removed before committing]' \ + '(--message -m)'{-m+,--message}'[use as commit message]:text:' \ + '(--logfile -l)'{-l+,--logfile}'[read commit message from ]:log file:_files -g \*.txt' \ + '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ + '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ + '*:file:_hg_files' +} + +_hg_cmd_copy() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--after -A)'{-A,--after}'[record a copy that has already occurred]' \ + '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \ + '*:file:_hg_files' +} + +_hg_cmd_diff() { + typeset -A opt_args + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_diff_opts \ + '*'{-r,--rev}'+[revision]:revision:_hg_revrange' \ + '(--show-function -p)'{-p,--show-function}'[show which function each change is in]' \ + '(--ignore-all-space -w)'{-w,--ignore-all-space}'[ignore white space when comparing lines]' \ + '(--ignore-space-change -b)'{-b,--ignore-space-change}'[ignore changes in the amount of white space]' \ + '(--ignore-blank-lines -B)'{-B,--ignore-blank-lines}'[ignore changes whose lines are all blank]' \ + '*:file:->diff_files' + + if [[ $state == 'diff_files' ]] + then + if [[ -n $opt_args[-r] ]] + then + _hg_files + else + _hg_modified + fi + fi +} + +_hg_cmd_export() { + _arguments -s -w : $_hg_global_opts $_hg_diff_opts \ + '(--outout -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \ + '--switch-parent[diff against the second parent]' \ + '*:revision:_hg_tags' +} + +_hg_cmd_grep() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--print0 -0)'{-0,--print0}'[end filenames with NUL]' \ + '--all[print all revisions with matches]' \ + '(--follow -f)'{-f,--follow}'[follow changeset or file history]' \ + '(--ignore-case -i)'{-i,--ignore-case}'[ignore case when matching]' \ + '(--files-with-matches -l)'{-l,--files-with-matches}'[print only filenames and revs that match]' \ + '(--line-number -n)'{-n,--line-number}'[print matching line numbers]' \ + '*'{-r+,--rev}'[search in given revision range]:revision:_hg_revrange' \ + '(--user -u)'{-u,--user}'[print user who committed change]' \ + '1:search pattern:' \ + '*:files:_hg_files' +} + +_hg_cmd_heads() { + _arguments -s -w : $_hg_global_opts $_hg_style_opts \ + '(--rev -r)'{-r+,--rev}'[show only heads which are descendants of rev]:revision:_hg_tags' +} + +_hg_cmd_help() { + _arguments -s -w : $_hg_global_opts \ + '*:mercurial command:_hg_commands' +} + +_hg_cmd_identify() { + _arguments -s -w : $_hg_global_opts \ + '(--rev -r)'{-r+,--rev}'[identify the specified rev]:revision:_hg_tags' \ + '(--num -n)'{-n+,--num}'[show local revision number]' \ + '(--id -i)'{-i+,--id}'[show global revision id]' \ + '(--branch -b)'{-b+,--branch}'[show branch]' \ + '(--tags -t)'{-t+,--tags}'[show tags]' +} + +_hg_cmd_import() { + _arguments -s -w : $_hg_global_opts \ + '(--strip -p)'{-p+,--strip}'[directory strip option for patch (default: 1)]:count:' \ + '(--message -m)'{-m+,--message}'[use as commit message]:text:' \ + '(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \ + '*:patch:_files' +} + +_hg_cmd_incoming() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \ + '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \ + '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ + '(--patch -p)'{-p,--patch}'[show patch]' \ + '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:_hg_tags' \ + '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \ + '--bundle[file to store the bundles into]:bundle file:_files' \ + ':source:_hg_remote' +} + +_hg_cmd_init() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + ':dir:_files -/' +} + +_hg_cmd_locate() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--rev -r)'{-r+,--rev}'[search repository as it stood at revision]:revision:_hg_tags' \ + '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \ + '(--fullpath -f)'{-f,--fullpath}'[print complete paths]' \ + '*:search pattern:_hg_files' +} + +_hg_cmd_log() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_style_opts \ + '(--follow --follow-first -f)'{-f,--follow}'[follow changeset or history]' \ + '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \ + '(--copies -C)'{-C,--copies}'[show copied files]' \ + '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \ + '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \ + '*'{-r,--rev}'[show the specified revision or range]:revision:_hg_revrange' \ + '(--no-merges -M)'{-M,--no-merges}'[do not show merges]' \ + '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \ + '(--patch -p)'{-p,--patch}'[show patch]' \ + '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_tags' \ + '*:files:_hg_files' +} + +_hg_cmd_manifest() { + _arguments -s -w : $_hg_global_opts \ + ':revision:_hg_tags' +} + +_hg_cmd_merge() { + _arguments -s -w : $_hg_global_opts \ + '(--force -f)'{-f,--force}'[force a merge with outstanding changes]' \ + '(--rev -r 1)'{-r,--rev}'[revision to merge]:revision:_hg_mergerevs' \ + '(--preview -P)'{-P,--preview}'[review revisions to merge (no merge is performed)]' \ + ':revision:_hg_mergerevs' +} + +_hg_cmd_outgoing() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \ + '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \ + '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ + '(--patch -p)'{-p,--patch}'[show patch]' \ + '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]' \ + '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \ + ':destination:_hg_remote' +} + +_hg_cmd_parents() { + _arguments -s -w : $_hg_global_opts $_hg_style_opts \ + '(--rev -r)'{-r+,--rev}'[show parents of the specified rev]:revision:_hg_tags' \ + ':last modified file:_hg_files' +} + +_hg_cmd_paths() { + _arguments -s -w : $_hg_global_opts \ + ':path:_hg_paths' +} + +_hg_cmd_pull() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \ + '(--update -u)'{-u,--update}'[update to new tip if changesets were pulled]' \ + '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:' \ + ':source:_hg_remote' +} + +_hg_cmd_push() { + _arguments -s -w : $_hg_global_opts $_hg_remote_opts \ + '(--force -f)'{-f,--force}'[force push]' \ + '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]:revision:_hg_tags' \ + ':destination:_hg_remote' +} + +_hg_cmd_remove() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--after -A)'{-A,--after}'[record remove that has already occurred]' \ + '(--force -f)'{-f,--force}'[remove file even if modified]' \ + '*:file:_hg_files' +} + +_hg_cmd_rename() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--after -A)'{-A,--after}'[record a rename that has already occurred]' \ + '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \ + '*:file:_hg_files' +} + +_hg_cmd_resolve() { + local context state line + typeset -A opt_args + + _arguments -s -w : $_hg_global_opts \ + '(--list -l --mark -m --unmark -u)'{-l,--list}'[list state of files needing merge]:*:merged files:->resolve_files' \ + '(--mark -m --list -l --unmark -u)'{-m,--mark}'[mark files as resolved]:*:unresolved files:_hg_unresolved' \ + '(--unmark -u --list -l --mark -m)'{-u,--unmark}'[unmark files as resolved]:*:resolved files:_hg_resolved' \ + '*:file:_hg_unresolved' + + if [[ $state == 'resolve_files' ]] + then + _alternative 'files:resolved files:_hg_resolved' \ + 'files:unresolved files:_hg_unresolved' + fi +} + +_hg_cmd_revert() { + local context state line + typeset -A opt_args + + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \ + '(--all -a :)'{-a,--all}'[revert all changes when no arguments given]' \ + '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_tags' \ + '--no-backup[do not save backup copies of files]' \ + '*:file:->diff_files' + + if [[ $state == 'diff_files' ]] + then + if [[ -n $opt_args[-r] ]] + then + _hg_files + else + typeset -a status_files + _hg_status mard + _wanted files expl 'modified, added, removed or deleted file' _multi_parts / status_files + fi + fi +} + +_hg_cmd_serve() { + _arguments -s -w : $_hg_global_opts \ + '(--accesslog -A)'{-A+,--accesslog}'[name of access log file]:log file:_files' \ + '(--errorlog -E)'{-E+,--errorlog}'[name of error log file]:log file:_files' \ + '(--daemon -d)'{-d,--daemon}'[run server in background]' \ + '(--port -p)'{-p+,--port}'[listen port]:listen port:' \ + '(--address -a)'{-a+,--address}'[interface address]:interface address:' \ + '(--name -n)'{-n+,--name}'[name to show in web pages]:repository name:' \ + '(--templates -t)'{-t,--templates}'[web template directory]:template dir:_files -/' \ + '--style[web template style]:style' \ + '--stdio[for remote clients]' \ + '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]' +} + +_hg_cmd_showconfig() { + _arguments -s -w : $_hg_global_opts \ + '(--untrusted -u)'{-u+,--untrusted}'[show untrusted configuration options]' \ + ':config item:_hg_config' +} + +_hg_cmd_status() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '(--all -A)'{-A,--all}'[show status of all files]' \ + '(--modified -m)'{-m,--modified}'[show only modified files]' \ + '(--added -a)'{-a,--added}'[show only added files]' \ + '(--removed -r)'{-r,--removed}'[show only removed files]' \ + '(--deleted -d)'{-d,--deleted}'[show only deleted (but tracked) files]' \ + '(--clean -c)'{-c,--clean}'[show only files without changes]' \ + '(--unknown -u)'{-u,--unknown}'[show only unknown files]' \ + '(--ignored -i)'{-i,--ignored}'[show ignored files]' \ + '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \ + '(--copies -C)'{-C,--copies}'[show source of copied files]' \ + '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \ + '--rev[show difference from revision]:revision:_hg_tags' \ + '*:files:_files' +} + +_hg_cmd_tag() { + _arguments -s -w : $_hg_global_opts \ + '(--local -l)'{-l,--local}'[make the tag local]' \ + '(--message -m)'{-m+,--message}'[message for tag commit log entry]:message:' \ + '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \ + '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \ + '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_tags' \ + ':tag name:' +} + +_hg_cmd_tip() { + _arguments -s -w : $_hg_global_opts $_hg_style_opts \ + '(--patch -p)'{-p,--patch}'[show patch]' +} + +_hg_cmd_unbundle() { + _arguments -s -w : $_hg_global_opts \ + '(--update -u)'{-u,--update}'[update to new tip if changesets were unbundled]' \ + ':files:_files' +} + +_hg_cmd_update() { + _arguments -s -w : $_hg_global_opts \ + '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \ + '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \ + ':revision:_hg_tags' +} + +# HGK +_hg_cmd_view() { + _arguments -s -w : $_hg_global_opts \ + '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \ + ':revision range:_hg_tags' +} + +# MQ +_hg_qseries() { + typeset -a patches + patches=(${(f)"$(_hg_cmd qseries 2> /dev/null)"}) + (( $#patches )) && _describe -t hg-patches 'patches' patches +} + +_hg_qapplied() { + typeset -a patches + patches=(${(f)"$(_hg_cmd qapplied 2> /dev/null)"}) + if (( $#patches )) + then + patches+=(qbase qtip) + _describe -t hg-applied-patches 'applied patches' patches + fi +} + +_hg_qunapplied() { + typeset -a patches + patches=(${(f)"$(_hg_cmd qunapplied 2> /dev/null)"}) + (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches +} + +# unapplied, including guarded patches +_hg_qdeletable() { + typeset -a unapplied + unapplied=(${(f)"$(_hg_cmd qseries 2> /dev/null)"}) + for p in $(_hg_cmd qapplied) + do + unapplied=(${unapplied:#$p}) + done + + (( $#unapplied )) && _describe -t hg-allunapplied-patches 'all unapplied patches' unapplied +} + +_hg_qguards() { + typeset -a guards + local guard + compset -P "+|-" + _hg_cmd qselect -s 2> /dev/null | while read guard + do + guards+=(${guard#(+|-)}) + done + (( $#guards )) && _describe -t hg-guards 'guards' guards +} + +_hg_qseries_opts=( + '(--summary -s)'{-s,--summary}'[print first line of patch header]') + +_hg_cmd_qapplied() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qdelete() { + _arguments -s -w : $_hg_global_opts \ + '(--keep -k)'{-k,--keep}'[keep patch file]' \ + '*'{-r+,--rev}'[stop managing a revision]:applied patch:_hg_revrange' \ + '*:unapplied patch:_hg_qdeletable' +} + +_hg_cmd_qdiff() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts \ + '*:pattern:_hg_files' +} + +_hg_cmd_qfold() { + _arguments -s -w : $_hg_global_opts $_h_commit_opts \ + '(--keep,-k)'{-k,--keep}'[keep folded patch files]' \ + '*:unapplied patch:_hg_qunapplied' +} + +_hg_cmd_qgoto() { + _arguments -s -w : $_hg_global_opts \ + '(--force -f)'{-f,--force}'[overwrite any local changes]' \ + ':patch:_hg_qseries' +} + +_hg_cmd_qguard() { + _arguments -s -w : $_hg_global_opts \ + '(--list -l)'{-l,--list}'[list all patches and guards]' \ + '(--none -n)'{-n,--none}'[drop all guards]' \ + ':patch:_hg_qseries' \ + '*:guards:_hg_qguards' +} + +_hg_cmd_qheader() { + _arguments -s -w : $_hg_global_opts \ + ':patch:_hg_qseries' +} + +_hg_cmd_qimport() { + _arguments -s -w : $_hg_global_opts \ + '(--existing -e)'{-e,--existing}'[import file in patch dir]' \ + '(--name -n 2)'{-n+,--name}'[patch file name]:name:' \ + '(--force -f)'{-f,--force}'[overwrite existing files]' \ + '*'{-r+,--rev}'[place existing revisions under mq control]:revision:_hg_revrange' \ + '*:patch:_files' +} + +_hg_cmd_qnew() { + _arguments -s -w : $_hg_global_opts $_hg_commit_opts \ + '(--force -f)'{-f,--force}'[import uncommitted changes into patch]' \ + ':patch:' +} + +_hg_cmd_qnext() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qpop() { + _arguments -s -w : $_hg_global_opts \ + '(--all -a :)'{-a,--all}'[pop all patches]' \ + '(--name -n)'{-n+,--name}'[queue name to pop]:' \ + '(--force -f)'{-f,--force}'[forget any local changes]' \ + ':patch:_hg_qapplied' +} + +_hg_cmd_qprev() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qpush() { + _arguments -s -w : $_hg_global_opts \ + '(--all -a :)'{-a,--all}'[apply all patches]' \ + '(--list -l)'{-l,--list}'[list patch name in commit text]' \ + '(--merge -m)'{-m+,--merge}'[merge from another queue]:' \ + '(--name -n)'{-n+,--name}'[merge queue name]:' \ + '(--force -f)'{-f,--force}'[apply if the patch has rejects]' \ + ':patch:_hg_qunapplied' +} + +_hg_cmd_qrefresh() { + _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_commit_opts \ + '(--git -g)'{-g,--git}'[use git extended diff format]' \ + '(--short -s)'{-s,--short}'[short refresh]' \ + '*:files:_hg_files' +} + +_hg_cmd_qrename() { + _arguments -s -w : $_hg_global_opts \ + ':patch:_hg_qseries' \ + ':destination:' +} + +_hg_cmd_qselect() { + _arguments -s -w : $_hg_global_opts \ + '(--none -n :)'{-n,--none}'[disable all guards]' \ + '(--series -s :)'{-s,--series}'[list all guards in series file]' \ + '--pop[pop to before first guarded applied patch]' \ + '--reapply[pop and reapply patches]' \ + '*:guards:_hg_qguards' +} + +_hg_cmd_qseries() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts \ + '(--missing -m)'{-m,--missing}'[print patches not in series]' +} + +_hg_cmd_qunapplied() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_qtop() { + _arguments -s -w : $_hg_global_opts $_hg_qseries_opts +} + +_hg_cmd_strip() { + _arguments -s -w : $_hg_global_opts \ + '(--force -f)'{-f,--force}'[force multi-head removal]' \ + '(--backup -b)'{-b,--backup}'[bundle unrelated changesets]' \ + '(--nobackup -n)'{-n,--nobackup}'[no backups]' \ + ':revision:_hg_tags' +} + +_hg "$@" diff -Nru zsh-4.3.10/Completion/Unix/Command/_init_d zsh-4.3.11/Completion/Unix/Command/_init_d --- zsh-4.3.10/Completion/Unix/Command/_init_d 2007-10-08 10:38:22.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_init_d 2010-04-20 10:59:32.000000000 +0200 @@ -1,26 +1,90 @@ #compdef -p */(init|rc[0-9S]#).d/* -local magic cmds what script +local cmds script _compskip=all -# This should probably be system specific... +if [[ $OSTYPE = freebsd* ]]; then + (( $+functions[_init_d_fullpath] )) || + _init_d_fullpath() { + local -a scriptpath + local name=$1 dir + # Known locations of init scripts + # C.f. Unix/Type/_services + scriptpath=(/etc/rc.d $(/bin/sh -c '. /etc/rc.subr; load_rc_config XXX; echo $local_startup' 2>/dev/null)) + + for dir in $scriptpath; do + if [[ -f $dir/$name ]]; then + echo $dir/$name + return 0 + fi + done + return 1 + } + + (( $+functions[_init_d_get_cmds] )) || + _init_d_get_cmds() { + local magic cmds cmd_prefix + + [[ -x $script ]] || return 1 + [[ $(read -u0 -k2 magic < $script && echo $magic) = '#!' ]] || return 0 + [[ -f /etc/rc.subr ]] && [[ -x /sbin/rcorder ]] || return 0 + grep -q '^ *\. */etc/rc\.subr *$' $script || return 0 + cmds=( + start stop restart rcvar status poll + $(/bin/sh -c "set -- rcvar; . $script >/dev/null; echo \$extra_commands" 2>/dev/null) + ) + + for cmd_prefix in {,one,fast,force,quiet}; do + echo ${cmds/#/$cmd_prefix} + done + + return 0 + } +else + (( $+functions[_init_d_fullpath] )) || + _init_d_fullpath() { + local -a scriptpath + local name=$1 dir + # Known locations of init scripts + # C.f. Unix/Type/_services + scriptpath=(/etc/init.d /etc/rc.d /etc/rc.d/init.d) + + for dir in $scriptpath; do + if [[ -f $dir/$name ]]; then + echo $dir/$name + return 0 + fi + done + return 1 + } + + (( $+functions[_init_d_get_cmds] )) || + _init_d_get_cmds() { + local what magic cmds -script=$words[1] -[[ $script = */* ]] || script=/etc/init.d/$script - -# If the file starts with `#!' we hope that this is a shell script -# and get lines looking like foo|bar) with the words in $what. + # If the file starts with `#!' we hope that this is a shell script + # and get lines looking like foo|bar) with the words in $what. -what='(st(art|op|atus)|(force-|)re(start|load)|debug_(up|down)|dump(|_stats)|add|delete|clean|list)' + what='(st(art|op|atus)|(force-|)re(start|load)|debug_(up|down)|dump(|_stats)|add|delete|clean|list)' -read -u0 -k2 magic < $script && [[ $magic = '#!' ]] && + read -u0 -k2 magic < $script && [[ $magic = '#!' ]] && cmds=( ${${(j:|:s:|:)${(M)${(f)"$(< $script)"}:#[[:blank:]]#(\'|)${~what}([[:blank:]]#\|[[:blank:]]#${~what})#(\'|)\)}}//[^-a-z_]} ) -# This would be the pattern to use every line of the form foo). -# Some people say this might match too many lines... -# -# cmds=( ${${(j:|:s:|:)${(M)${(f)"$(< $script)"}:#[[:blank:]]#(\'|)[a-z_|]##\'|)\)}}//[^a-z_]} ) + # This would be the pattern to use every line of the form foo). + # Some people say this might match too many lines... + # + # cmds=( ${${(j:|:s:|:)${(M)${(f)"$(< $script)"}:#[[:blank:]]#(\'|)[a-z_|]##\'|)\)}}//[^a-z_]} ) + + echo $cmds + return 0 + } +fi + +script=$words[1] +[[ $script = */* ]] || script="$(_init_d_fullpath "$script")" + +cmds=( $(_init_d_get_cmds) ) || return (( $#cmds )) || zstyle -a ":completion:${curcontext}:commands" commands cmds || cmds=(start stop) diff -Nru zsh-4.3.10/Completion/Unix/Command/_locate zsh-4.3.11/Completion/Unix/Command/_locate --- zsh-4.3.10/Completion/Unix/Command/_locate 2008-05-27 12:24:52.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_locate 2010-06-06 15:44:12.000000000 +0200 @@ -52,22 +52,22 @@ # -m and --mmap are ignored, so don't bother # -s and --stdio likewise _arguments -s -S : \ - {-b,--basename}'[Match only the basename of files in the database]' \ - {-c,--count}'[Output the number of matching entries]' \ - {-d,--database=}'[Use alternative database]:database:_files' \ - {-e,--existing}'[Restrict display to existing files]' \ - {-L,--follow}'[Follow symbolic links to find existing files (default)]' \ - {-h,--help}'[Show help]' \ - {-i,--ignore-case}'[Ignore case distinctions in patterns]' \ - {-l,-n,--limit=}'[Limit search results]:file limit: ' \ - {-P,-H,--nofollow}'[Don'\''t follow symbolic links]' \ - {-0,--null}'[Output separated by NUL characters]' \ - {-S,--statistics}'[Show database statistics]' \ - {-q,--quiet}'[Don'\''t report errors]' \ - {-r,--regexp=}'[Search for given basic regexp]:basic regexp: ' \ - --regex'[Patterns are extended regexps]' \ - {-V,--version}'[Show version]' \ - {-w,--wholename}'[Match entire file path (default)]' \ + {-b,--basename}'[match only the basename of files in the database]' \ + {-c,--count}'[output the number of matching entries]' \ + {-d,--database=}'[use alternative database]:database:_files' \ + {-e,--existing}'[restrict display to existing files]' \ + {-L,--follow}'[follow symbolic links to find existing files (default)]' \ + {-h,--help}'[show help]' \ + {-i,--ignore-case}'[ignore case distinctions in patterns]' \ + {-l,-n,--limit=}'[limit search results]:file limit: ' \ + {-P,-H,--nofollow}'[don'\''t follow symbolic links]' \ + {-0,--null}'[output separated by NUL characters]' \ + {-S,--statistics}'[show database statistics]' \ + {-q,--quiet}'[don'\''t report errors]' \ + {-r,--regexp=}'[search for given basic regexp]:basic regexp: ' \ + --regex'[patterns are extended regexps]' \ + {-V,--version}'[show version]' \ + {-w,--wholename}'[match entire file path (default)]' \ '*:pattern: ' ;; @@ -76,57 +76,57 @@ # -e can take a comma-separated list of directories. # -f should complete list of file system types like mount _arguments -s -S : \ - -u'[Create slocate database starting at path /]' \ - -U'[Create slocate database starting at given path]:directory:_files -/' \ - -c'[Parse GNU locate updatedb with -u, -U]' \ - -e'[Exclude directories with -u, -U]:directories:_files -/' \ - -f'[Exclude file system types from db with -u, -U]:file system:_file_systems' \ - -l'[Security level]:level:(0 1)' \ - -q'[Quiet mode]' \ - -n'[Limit search results]:file limit: ' \ - -i'[Case insensitive search]' \ - {-r,--regexp=}'[Use basic regular expression]:regexp: ' \ - {-o,--output=}'[Specify database to create]:database:_files' \ - {-d,--database=}'[Specify database to search]:database:_files' \ - {-h,--help}'[Display help]' \ - {-v,--verbose}'[Display files when creating database]' \ - {-V,--version}'[Display version]' \ + -u'[create slocate database starting at path /]' \ + -U'[create slocate database starting at given path]:directory:_files -/' \ + -c'[parse GNU locate updatedb with -u, -U]' \ + -e'[exclude directories with -u, -U]:directories:_files -/' \ + -f'[exclude file system types from db with -u, -U]:file system:_file_systems' \ + -l'[security level]:level:(0 1)' \ + -q'[quiet mode]' \ + -n'[limit search results]:file limit: ' \ + -i'[case insensitive search]' \ + {-r,--regexp=}'[use basic regular expression]:regexp: ' \ + {-o,--output=}'[specify database to create]:database:_files' \ + {-d,--database=}'[specify database to search]:database:_files' \ + {-h,--help}'[display help]' \ + {-v,--verbose}'[display files when creating database]' \ + {-V,--version}'[display version]' \ '*:pattern: ' ;; (gnu) _arguments -s : \ - {-d,--database=}'[Use alternative database]:database:_files' \ - {-e,--existing}'[Restrict display to existing files]' \ - {-E,--non-existing}'[Allow display of nonexistent files (default)]' \ - {-i,--ignore-case}'[Ignore case distinctions in patterns]' \ - {-w,--wholename}'[Match entire file path (default)]' \ - {-b,--basename}'[Match only the basename of files in the database]' \ - {-l,-n,--limit=}'[Limit search results]:file limit: ' \ - {-S,--statistics}'[Show database statistics]' \ - {-0,--null}'[Output separated by NUL characters]' \ - {-c,--count}'[Output the number of matching entries]' \ - {-P,-H,--nofollow}'[Don'\''t follow symbolic links]' \ - {-L,--follow}'[Follow symbolic links to find existing files (default)]' \ - {-A,-all}'[Match all arguments instead of at least one]' \ - {-p,--print}'[Include search results with statistics or count]' \ - {-r,--regex=}'[Patterns are regular expressions]:basic regexp: ' \ - --regextype='[Select type of regular expression]' \ - {-V,--version}'[Show version]' \ - --help'[Show help]' \ + {-d,--database=}'[use alternative database]:database:_files' \ + {-e,--existing}'[restrict display to existing files]' \ + {-E,--non-existing}'[allow display of nonexistent files (default)]' \ + {-i,--ignore-case}'[ignore case distinctions in patterns]' \ + {-w,--wholename}'[match entire file path (default)]' \ + {-b,--basename}'[match only the basename of files in the database]' \ + {-l,-n,--limit=}'[limit search results]:file limit: ' \ + {-S,--statistics}'[show database statistics]' \ + {-0,--null}'[output separated by NUL characters]' \ + {-c,--count}'[output the number of matching entries]' \ + {-P,-H,--nofollow}'[don'\''t follow symbolic links]' \ + {-L,--follow}'[follow symbolic links to find existing files (default)]' \ + {-A,-all}'[match all arguments instead of at least one]' \ + {-p,--print}'[include search results with statistics or count]' \ + {-r,--regex=}'[patterns are regular expressions]:basic regexp: ' \ + --regextype='[select type of regular expression]' \ + {-V,--version}'[show version]' \ + --help'[show help]' \ '*:pattern: ' ;; (bsd) _arguments -s -S -A '-*' \ - '(-S)-0[Separate file names by NUL characters]' \ - '(- *)-S[Show database statistics and exit]' \ - '(-S)-c[Output the number of matching file names]' \ - '(-S)*-d[Specify database to search]:database:_files' \ - '(-S)-i[Ignore case distinctions in pattern and database]' \ - '(-S)-l[Limit output to specified number of file names]:file limit: ' \ - '(-S)-m[Use mmap(2) instead of stdio(3) (default)]' \ - '(-S)-s[Use stdio(3) instead of mmap(2)]' \ + '(-S)-0[separate file names by NUL characters]' \ + '(- *)-S[show database statistics and exit]' \ + '(-S)-c[output the number of matching file names]' \ + '(-S)*-d[specify database to search]:database:_files' \ + '(-S)-i[ignore case distinctions in pattern and database]' \ + '(-S)-l[limit output to specified number of file names]:file limit: ' \ + '(-S)-m[use mmap(2) instead of stdio(3) (default)]' \ + '(-S)-s[use stdio(3) instead of mmap(2)]' \ '*:pattern: ' ;; esac diff -Nru zsh-4.3.10/Completion/Unix/Command/_lynx zsh-4.3.11/Completion/Unix/Command/_lynx --- zsh-4.3.10/Completion/Unix/Command/_lynx 2004-06-02 11:27:06.000000000 +0200 +++ zsh-4.3.11/Completion/Unix/Command/_lynx 2010-06-23 03:03:29.000000000 +0200 @@ -1,143 +1,159 @@ #compdef lynx +# Lynx Version 2.8.7rel.1 (05 Jul 2009) + local curcontext="$curcontext" state line ret=1 typeset -A opt_args _arguments -C \ - '-accept_all_cookies' \ - '-anonymous' \ - '-assume_charset=:character set:' \ - '-assume_local_charset=:character set:' \ - '-assume_unrec_charset=:character set:' \ - '-auth=:username\:password:' \ - '-base' \ - '-bibp=:bibp server:_urls' \ - '-blink' \ - '-book' \ - '-buried_news' \ - '-cache=:number of documents:' \ - '-case' \ - '-center' \ - '-cfg=:configuration file:_files' \ - '-child' \ - '-cmd_log=:keystroke log:_files' \ - '-cmd_script=:keystroke log:_files' \ - '-color' \ - '-connect_timeout=:connection timeout (seconds):' \ - '-cookie_file=:cookie file:_files' \ - '-cookie_save_file=:cookie file:_files' \ - '-cookies' \ - '-core' \ - '-crawl' \ - '-curses_pads' \ - '-debug_partial' \ - '-display=:display:_x_display' \ - '-display_charset=:character set:' \ - '-dont_wrap_pre' \ - '-dump' \ - '-editor=:editor:_command_names -e' \ - '-emacskeys' \ - '-enable_scrollback' \ - '-error_file=:error file:_files' \ - '-exec' \ - '-fileversions' \ - '-force_empty_hrefless_a' \ - '-force_html' \ - '-force_secure' \ - '-forms_options' \ - '-from' \ - '-ftp' \ - '-get_data' \ - '-head' \ - '-help' \ - '-hiddenlinks=:option:(merge listonly ignore)' \ - '-historical' \ - '-homepage=:URL:->html' \ - '-image_links' \ - '-index=:URL:->html' \ - '-ismap' \ - '-justify' \ - '-link=:starting count:' \ - '-localhost' \ - '-locexec' \ - '-lss=:color-style file:_files' \ - '-mime_header' \ - '-minimal' \ - '-newschunksize=:number of news articles:' \ - '-newsmaxchunk=:maximum number of news articles:' \ - '-nobold' \ - '-nobrowse' \ - '-nocc' \ - '-nocolor' \ - '-noexec' \ - '-nofilereferer' \ - '-nolist' \ - '-nolog' \ - '-nonrestarting_sigwinch' \ - '-nopause' \ - '-noprint' \ - '-noredir' \ - '-noreferer' \ - '-noreverse' \ - '-nosocks' \ - '-nostatus' \ - '-nounderline' \ - '-number_fields' \ - '-number_links' \ - '-partial' \ - '-partial_thres=:number of lines:' \ - '-pauth=:username\:password:' \ - '-popup' \ - '-post_data' \ - '-preparsed' \ - '-prettysrc' \ - '-print' \ - '-pseudo_inlines' \ - '-raw' \ - '-realm' \ - '-reload' \ - '-restrictions=:options:->restrictions' \ - '-resubmit_posts' \ - '-rlogin' \ - '-scrollbar' \ - '-scrollbar_arrow' \ - '-selective' \ - '-short_url' \ - '-show_cursor' \ - '-show_rate' \ - '-soft_dquotes' \ - '-source' \ - '-stack_dump' \ - '-startfile_ok' \ - '-stdin' \ - '-tagsoup' \ - '-telnet' \ - '-term=:terminal name:_terminals' \ - '-tlog' \ - '-tna' \ - '-trace' \ - '-trace_mask=:trace mask:(0 1 2 3 4 5 6 7)' \ - '-traversal' \ - '-trim_input_fields' \ - '-underscore' \ - '-use_mouse' \ - '-useragent=:user-agent header:' \ - '-validate' \ - '-verbose' \ - '-version' \ - '-vikeys' \ - '-width=:number of columns:' \ - '-with_backspaces' \ + '-accept_all_cookies[accept cookies without prompting if Set-Cookie handling is on (off)]' \ + '-anonymous[apply restrictions for anonymous account, see also -restrictions]' \ + "-assume_charset=[charset for documents that don't specify it]:character set:" \ + '-assume_local_charset=[charset assumed for local files]:character set:' \ + '-assume_unrec_charset=[use this instead of unrecognized charsets]:character set:' \ + '-auth=[authentication information for protected documents]:username\:password:' \ + '-base[prepend a request URL comment and BASE tag to text/html outputs for -source dumps]' \ + '-bibp=[specify a local bibp server (default http://bibhost/)]:bibp server:_urls' \ + '-blink[forces high intensity background colors for color mode, if available and supported by the terminal]' \ + '-book[use the bookmark page as the startfile (off)]' \ + '-buried_news[toggles scanning of news articles for buried references (on)]' \ + '-cache=[specify number of documents cached in memory]:number of documents:' \ + '-case[enable case sensitive user searching (off)]' \ + '-center[toggle center alignment in HTML TABLE (off)]' \ + '-cfg=[specifies a lynx.cfg file other than the default]:configuration file:_files' \ + '-child[exit on left-arrow in startfile, and disable save to disk]' \ + '-child_relaxed[exit on left-arrow in startfile (allows save to disk)]' \ + '-cmd_log=[log keystroke commands to the given file]:keystroke log:_files' \ + '-cmd_script=[read keystroke commands from the given file (see -cmd_log)]:keystroke log:_files' \ + '-color[forces color mode on, if available]' \ + '-connect_timeout=[set the N-second connection timeout (18000)]:connection timeout (seconds):' \ + '-cookie_file=[specifies a file to use to read cookies]:cookie file:_files' \ + '-cookie_save_file=[specifies a file to use to store cookies]:cookie file:_files' \ + '-cookies[toggles handling of Set-Cookie headers (on)]' \ + '-core[toggles forced core dumps on fatal errors (off)]' \ + '-crawl[with -traversal, output each page to a file with -dump, format output as with -traversal, but to stdout]' \ + '-curses_pads[uses curses pad feature to support left/right shifting (on)]' \ + '-debug_partial[incremental display stages with MessageSecs delay (off)]' \ + '-delay=[set NNN-second delay at statusline message (0.000)]:delay (seconds):' \ + "-display=[set the display variable for X exec'ed programs]:display:_x_display" \ + '-display_charset=[charset for the terminal output]:character set:' \ + "-dont_wrap_pre[inhibit wrapping of text in
 when -dump'ing and -crawl'ing, mark wrapped lines in interactive session (off)]" \
+  '-dump[dump the first file to stdout and exit]' \
+  '-editor=[enable edit mode with specified editor]:editor:_command_names -e' \
+  '-emacskeys[enable emacs-like key movement (off)]' \
+  "-enable_scrollback[toggles compatibility with comm programs' scrollback keys (may be incompatible with some curses packages) (off)]" \
+  '-error_file=[write the HTTP status code here]:error file:_files' \
+  '-exec[enable local program execution (normally not configured)]' \
+  '-fileversions[include all versions of files in local VMS directory listings]' \
+  '-force_empty_hrefless_a[force HREF-less 'A' elements to be empty (close them as soon as they are seen) (off)]' \
+  '-force_html[forces the first document to be interpreted as HTML (off)]' \
+  '-force_secure[toggles forms-based vs old-style options menu (on)]' \
+  '-forms_options[toggles forms-based vs old-style options menu (on)]' \
+  '-from[toggle transmission of From headers (on)]' \
+  '-ftp[disable ftp access (off)]' \
+  '-get_data[user data for get forms, read from stdin, terminated by '---' on a line]' \
+  '-head[send a HEAD request (off)]' \
+  '(- *)-help[print this usage message]' \
+  '-hiddenlinks=[hidden links: options are merge, listonly, or ignore]:option:(merge listonly ignore)' \
+  "-historical[toggles use of '>' or '-->' as terminator for comments (off)]" \
+  '-homepage=[set homepage separate from start page]:URL:->html' \
+  '-image_links[toggles inclusion of links for all images (off)]' \
+  '-index=[set the default index file to URL]:URL:->html' \
+  '-ismap[toggles inclusion of ISMAP links when client-side MAPs are present (off)]' \
+  '-justify[do justification of text (off)]' \
+  '-link=[starting count for lnk#.dat files produced by -crawl (0)]:starting count:' \
+  '-listonly[with -dump, forces it to show only the list of links (off)]' \
+  '-localhost[disable URLs that point to remote hosts (off)]' \
+  '-locexec[enable local program execution from local files only (if lynx was compiled with local execution enabled)]' \
+  '-lss=[specifies a lynx.lss file other than the default]:color-style file:_files' \
+  '-mime_header[include mime headers and force source dump]' \
+  '-minimal[toggles minimal versus valid comment parsing (on)]' \
+  '-newschunksize=[number of articles in chunked news listings]:number of news articles:' \
+  '-newsmaxchunk=[maximum news articles in listings before chunking]:maximum number of news articles:' \
+  '-nobold[disable bold video-attribute]' \
+  '-nobrowse[disable directory browsing]' \
+  '-nocc[disable Cc: prompts for self copies of mailings (off)]' \
+  '-nocolor[turn off color support]' \
+  '-noexec[disable local program execution]' \
+  '-nofilereferer[disable transmission of Referer headers for file URLs (on)]' \
+  '-nolist[disable the link list feature in dumps (off)]' \
+  '-nolog[disable mailing of error messages to document owners (on)]' \
+  '-nomargins[disable the right/left margins in the default style-sheet (off)]' \
+  '-nomore[disable -more- string in statusline messages]' \
+  '-nonrestarting_sigwinch[make window size change handler non-restarting (off)]' \
+  '-nonumbers[disable the link/form numbering feature in dumps (off)]' \
+  '-nopause[disable forced pauses for statusline messages]' \
+  '-noprint[disable some print functions, like -restrictions=print (off)]' \
+  "-noredir[don't follow Location: redirection (off)]" \
+  '-noreferer[disable transmission of Referer headers (off)]' \
+  '-noreverse[disable reverse video-attribute]' \
+  '-nosocks[disable SOCKS proxy usage by a SOCKSified Lynx]' \
+  '-nostatus[disable the miscellaneous information messages (off)]' \
+  '-notitle[disable the title at the top of each page (off)]' \
+  '-nounderline[disable underline video-attribute]' \
+  '-number_fields[force numbering of links as well as form input fields (off)]' \
+  '-number_links[force numbering of links (off)]' \
+  '-partial[toggles display partial pages while downloading (on)]' \
+  '-partial_thres=[number of lines to render before repainting display with partial-display logic (-1)]:number of lines:' \
+  '-passive-ftp[toggles passive ftp connection (on)]' \
+  '-pauth=[authentication information for protected proxy server]:username\:password:' \
+  '-popup[toggles handling of single-choice SELECT options via popup windows or as lists of radio buttons (off)]' \
+  '-post_data[user data for post forms, read from stdin, terminated by '---' on a line]' \
+  '-preparsed[show parsed text/html with -source and in source view to visualize how lynx behaves with invalid HTML (off)]' \
+  '-prettysrc[do syntax highlighting and hyperlink handling in source view (off)]' \
+  '-print[enable print functions (DEFAULT), opposite of -noprint (on)]' \
+  '-pseudo_inlines[toggles pseudo-ALTs for inlines with no ALT string (on)]' \
+  '-raw[toggles default setting of 8-bit character translations or CJK mode for the startup character set (off)]' \
+  '-realm[restricts access to URLs in the starting realm (off)]' \
+  '-read_timeout=[set the N-second read-timeout (18000)]:timeout (seconds):' \
+  '-reload[flushes the cache on a proxy server (only the first document affected) (off)]' \
+  '-restrictions=[use -restrictions to see list]:options:->restrictions' \
+  '-resubmit_posts[toggles forced resubmissions (no-cache) of forms with method POST when the documents they returned are sought with the PREV_DOC command or from the History List (off)]' \
+  '-rlogin[disable rlogins (off)]' \
+  '-scrollbar[toggles showing scrollbar (off)]' \
+  '-scrollbar_arrow[toggles showing arrows at ends of the scrollbar (on)]' \
+  '-selective[require .www_browsable files to browse directories]' \
+  '-short_url[enables examination of beginning and end of long URL in status line (off)]' \
+  "-show_cfg[show 'LYNX.CFG' setting (off)]" \
+  '-show_cursor[toggles hiding of the cursor in the lower right corner (on)]' \
+  '-show_rate[toggles display of transfer rate (on)]' \
+  "-soft_dquotes[toggles emulation of the old Netscape and Mosaic bug which treated '>' as a co-terminator for double-quotes and tags (off)]" \
+  '-source[dump the source of the first file to stdout and exit]' \
+  '-stack_dump[disable SIGINT cleanup handler (off)]' \
+  '-startfile_ok[allow non-http startfile and homepage with -validate (off)]' \
+  '-stderr[write warning messages to standard error when -dump or -source is used (off)]' \
+  '-stdin[read startfile from standard input (off)]' \
+  '-tagsoup[use TagSoup rather than SortaSGML parser (off)]' \
+  '-telnet[disable telnets (off)]' \
+  '-term=[set terminal type]:terminal name:_terminals' \
+  '-tlog[toggles use of a Lynx Trace Log for the current session (on)]' \
+  '-tna[turn on "Textfields Need Activation" mode (off)]' \
+  '-trace[turns on Lynx trace mode (off)]' \
+  '-trace_mask=[customize Lynx trace mode]:trace mask:(0 1 2 3 4 5 6 7)' \
+  '-traversal[traverse all http links derived from startfile]' \
+  '-trim_input_fields[trim input text/textarea fields in forms (off)]' \
+  '-underline_links[toggles use of underline/bold attribute for links (off)]' \
+  '-underscore[toggles use of _underline_ format in dumps (off)]' \
+  '-use_mouse[turn on mouse support (off)]' \
+  '-useragent=[set alternate Lynx User-Agent header]:user-agent header:' \
+  '-validate[accept only http URLs (meant for validation) implies more restrictions than -anonymous, but goto is allowed for http and https (off)]' \
+  '-verbose[toggles [LINK\], [IMAGE\] and [INLINE\] comments with filenames of these images (on)]' \
+  '(- *)-version[print Lynx version information]' \
+  '-vikeys[enable vi-like key movement (off)]' \
+  '-width=[screen width for formatting of dumps (default is 80)]:number of columns:' \
+  '-with_backspaces[emit backspaces in output if -dumping or -crawling]' \
+  '-xhtml-parsing[enable XHTML 1.0 parsing (off)]' \
   ':URL:->html' && ret=0
 
 case "$state" in
 restrictions)
   _values -s ',' 'restriction' \
-    all bookmark bookmark_exec change_exec_perms default dired_support \
-    disk_save dotfiles download editor exec exec_frozen externals file_url \
-    goto inside_ftp inside_news inside_rlogin inside_telnet jump mail \
-    multibook news_post options_save outside_ftp outside_news outside_rlogin \
-    outside_telnet print shell suspend telnet_port useragent && return
+    \? all bookmark bookmark_exec change_exec_perms chdir default \
+    dired_support disk_save dotfiles download editor exec exec_frozen \
+    externals file_url goto inside_ftp inside_news inside_rlogin \
+    inside_telnet jump lynx_cgi mail multibook news_post options_save \
+    outside_ftp outside_news outside_rlogin outside_telnet print shell \
+    suspend telnet_port useragent && return
   ;;
 html)
   _alternative 'files:file:_files -g "*.x#html#(-.)"' 'urls:URL:_urls' && return
diff -Nru zsh-4.3.10/Completion/Unix/Command/_make zsh-4.3.11/Completion/Unix/Command/_make
--- zsh-4.3.10/Completion/Unix/Command/_make	2007-12-10 19:03:35.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_make	2009-11-24 16:46:58.000000000 +0100
@@ -1,121 +1,147 @@
 #compdef make gmake pmake dmake
 
-local prev="$words[CURRENT-1]" file expl tmp is_gnu dir incl
+# TODO: Based on targets given on the command line, show only variables that
+# are used in those targets and their dependencies.
+
+local prev="$words[CURRENT-1]" file expl tmp is_gnu dir incl match
+local -A TARGETS VARIABLES
 
 expandVars() {
-    local open close var val tmp=$2 ret=$2
-    if (( $1 == 0 )); then
-	return
-    fi
-    while :; do
-	var=${tmp#*\$}
-	if [[ $var != $tmp ]]; then
-	    tmp=$var
-	    case $var in
-	    (\(*)
-		open='('
-		close=')'
-		;;
-	    ({*)
-		open='{'
-		close='}'
-		;;
-	    ([[:alpha:]]*)
-		open=''
-		close=''
-		var=${(s::)var[1]}
-		;;
-	    (\$*)
-		# avoid parsing second $ in $$
-		tmp=${tmp#\$}
-		;&
-	    (*)
-		continue
-		;;
-	    esac
-	    if [[ $open != '' ]]; then
-		var=${var#$open}
-		var=${var%%$close*}
-	    fi
-	    case $var in
-	    ([[:alnum:]_]#)
-		val=${(P)var}
-		val=$(expandVars $(($1 - 1)) $val)
-		ret=${ret//\$$open$var$close/$val}
-		;;
-	    esac
-	else
-	    print -- ${ret//\$\$/\$}
-	    return
-	fi
-    done
+  local open close var val front ret tmp=$1
+
+  front=${tmp%%\$*}
+  case $tmp in
+    (\(*) # Variable of the form $(foobar)
+    open='('
+    close=')'
+    ;;
+
+    ({*) # ${foobar}
+    open='{'
+    close='}'
+    ;;
+
+    ([[:alpha:]]*) # $foobar. This is exactly $(f)oobar.
+    open=''
+    close=''
+    var=${(s::)var[1]}
+    ;;
+
+    (\$*) # Escaped $.
+    print -- "${front}\$$(expandVars ${tmp#\$})"
+    return
+    ;;
+
+    (*) # Nothing left to substitute.
+    print -- $tmp
+    return
+    ;;
+  esac
+
+  if [[ -n $open ]]
+  then
+    var=${tmp#$open}
+    var=${var%%$close*}
+  fi
+
+  case $var in
+    ([[:alnum:]_]#)
+    val=${VARIABLES[$var]}
+    ret=${ret//\$$open$var$close/$val}
+    ;;
+
+    (*)
+    # Improper variable name. No replacement.
+    # I'm not sure if this is desired behavior.
+    front+="\$$open$var$close"
+    ret=${ret/\$$open$var$close/}
+    ;;
+  esac
+
+  print -- "${front}$(expandVars ${ret})"
 }
 
-# parseMakefile only runs inside $(...), so it doesn't matter that
-# it pollutes the global namespace, setting zsh variables to
-# make variables.  The difficult case is where a make variable
-# is special in zsh; we use local -h to hide those.  This
-# isn't a complete solution since it means variables defined in
-# included Makefiles are undefined before returning to the parent.
-parseMakefile() {
-    local input var val TAB=$'\t' dir=$1
-
-    while read input; do
-	case "$input " in
-	([[:alnum:]][[:alnum:]_]#[ $TAB]#=*)
-	    var=${input%%[ $TAB]#=*}
-	    val=${input#*=}
-	    val=${val##[ $TAB]#}
-	    [[ ${(tP)var} = *special ]] && local -h $var
-	    eval $var=\$val
-	    ;;
-	([[:alnum:]][[:alnum:]_]#[ $TAB]#:=*)
-	    var=${input%%[ $TAB]#:=*}
-	    val=${input#*=}
-	    val=${val##[ $TAB]#}
-	    val=$(expandVars 10 $val)
-	    [[ ${(tP)var} = *special ]] && local -h $var
-	    eval $var=\$val
-	    ;;
-	([[:alnum:]][^$TAB:=]#:[^=]*)
-	    input=${input%%:*}
-	    print $(expandVars 10 $input)
-	    ;;
-	(${~incl} *)
-	    local f=${input##${~incl} ##}
-	    if [[ $incl = '.include' ]]; then
-		f=${f#[\"<]}
-		f=${f%[\">]}
-	    fi
-	    f=$(expandVars 10 $f)
-	    case $f in
-	    (/*) ;;
-	    (*)  f=$dir/$f ;;
-	    esac
-	    if [ -r $f ]; then
-		parseMakefile ${f%%/[^/]##} < $f
-	    fi
-	    ;;
-	esac
-    done
+parseMakefile () {
+  local input var val target dep TAB=$'\t' dir=$1 tmp
+
+  while read input
+  do
+    case "$input " in
+      # VARIABLE = value
+      ([[:alnum:]][[:alnum:]_]#[ $TAB]#=*)
+      var=${input%%[ $TAB]#=*}
+      val=${input#*=}
+      val=${val##[ $TAB]#}
+      VARIABLES[$var]=$val
+      ;;
+
+      # VARIABLE := value
+      # Evaluated immediately
+      ([[:alnum:]][[:alnum:]_]#[ $TAB]#:=*)
+      var=${input%%[ $TAB]#:=*}
+      val=${input#*=}
+      val=${val##[ $TAB]#}
+      val=$(expandVars $val)
+      VARIABLES[$var]=$val
+      ;;
+
+      # TARGET: dependencies
+      # TARGET1 TARGET2 TARGET3: dependencies
+      ([[:alnum:]][^$TAB:=]#:[^=]*)
+      input=$(expandVars $input)
+      target=${input%%:*}
+      dep=${input#*:}
+      dep=${(z)dep}
+      dep="$dep"
+      for tmp in ${(z)target}
+      do
+        TARGETS[$tmp]=$dep
+      done
+      ;;
+
+      # Include another makefile
+      (${~incl} *)
+      local f=${input##${~incl} ##}
+      if [[ $incl == '.include' ]]
+      then
+        f=${f#[\"<]}
+        f=${f%[\">]}
+      fi
+      f=$(expandVars $f)
+      case $f in
+        (/*) ;;
+        (*) f=$dir/$f ;;
+      esac
+
+      if [[ -r $f ]]
+      then
+        parseMakefile ${f%%/[^/]##} < $f
+      fi
+      ;;
+    esac
+  done
 }
 
 findBasedir () {
   local file index basedir
   basedir=$PWD
-  for ((index=0; index<$#@; index++)); do
-    if [[ $@[index] = -C ]]; then
+  for (( index=0; index < $#@; index++ ))
+  do
+    if [[ $@[index] == -C ]]
+    then
       file=${~@[index+1]};
-      if [[ -z $file ]]; then
-	# make returns with an error if an empty arg is given
-	# even if the concatenated path is a valid directory
-	return
-      elif [[ $file = /* ]]; then
-	# Absolute path, replace base directory
-	basedir=$file
+      if [[ -z $file ]]
+      then
+        # make returns with an error if an empty arg is given
+        # even if the concatenated path is a valid directory
+        return
+      elif [[ $file == /* ]]
+      then
+        # Absolute path, replace base directory
+        basedir=$file
       else
-	# Relative, concatenate path
-	basedir=$basedir/$file
+        # Relative, concatenate path
+        basedir=$basedir/$file
       fi
     fi
   done
@@ -124,45 +150,73 @@
 
 _pick_variant -r is_gnu gnu=GNU unix -v -f
 
-if [[ $is_gnu = gnu ]]; then
-    incl="(-|)include"
+if [[ $is_gnu == gnu ]]
+then
+  incl="(-|)include"
 else
-    incl=.include
+  incl=.include
 fi
-if [[ "$prev" = -[CI] ]]; then
+
+if [[ "$prev" == -[CI] ]]
+then
   _files -W ${(q)$(findBasedir ${words[1,CURRENT-1]})} -/
-elif [[ "$prev" = -[foW] ]]; then
+elif [[ "$prev" == -[foW] ]]
+then
   _files -W ${(q)$(findBasedir $words)}
 else
   file="$words[(I)-f]"
-  if (( file )); then
+  if (( file ))
+  then
     file=${~words[file+1]}
-    [[ $file = [^/]* ]] && file=${(q)$(findBasedir $words)}/$file
+    [[ $file == [^/]* ]] && file=${(q)$(findBasedir $words)}/$file
     [[ -r $file ]] || file=
   else
     local basedir
     basedir=${(q)$(findBasedir $words)}
-    if [[ $is_gnu = gnu && -r $basedir/GNUmakefile ]]; then
+    if [[ $is_gnu == gnu && -r $basedir/GNUmakefile ]]
+    then
       file=$basedir/GNUmakefile
-    elif [[ -r $basedir/makefile ]]; then
+    elif [[ -r $basedir/makefile ]]
+    then
       file=$basedir/makefile
-    elif [[ -r $basedir/Makefile ]]; then
+    elif [[ -r $basedir/Makefile ]]
+    then
       file=$basedir/Makefile
     else
       file=''
     fi
   fi
 
-  if [[ -n "$file" ]] && _tags targets; then
-    if [[ $is_gnu = gnu ]] &&
-       zstyle -t ":completion:${curcontext}:targets" call-command; then
-       tmp=( $(_call_program targets "$words[1]" -nsp --no-print-directory -f "$file" .PHONY 2> /dev/null | parseMakefile $PWD) )
+  if [[ -n "$file" ]]
+  then
+    if [[ $is_gnu == gnu ]] && zstyle -t ":completion:${curcontext}:targets" call-command
+    then
+      parseMakefile $PWD < <(_call_program targets "$words[1]" -nsp --no-print-directory -f "$file" .PHONY 2> /dev/null)
     else
-       tmp=( $(parseMakefile $PWD < $file) )
+      case "$OSTYPE" in
+        freebsd*)
+        parseMakefile $PWD < <(_call_program targets "$words[1]" -nsp -f "$file" .PHONY 2> /dev/null)
+	;;
+	*)
+        parseMakefile $PWD < $file
+      esac
     fi
-    _wanted targets expl 'make target' compadd -a tmp && return 0
   fi
-  compstate[parameter]="${PREFIX%%\=*}"
-  compset -P 1 '*='
-  _value "$@"
+
+  if [[ $PREFIX == *'='* ]]
+  then
+    # Complete make variable as if shell variable
+    compstate[parameter]="${PREFIX%%\=*}"
+    compset -P 1 '*='
+    _value "$@"
+  else
+    _tags targets variables
+    while _tags
+    do
+      _requested targets expl 'make targets' \
+        compadd -- ${(k)TARGETS}
+      _requested variables expl 'make variables' \
+        compadd -S '=' -- ${(k)VARIABLES}
+    done
+  fi
 fi
diff -Nru zsh-4.3.10/Completion/Unix/Command/_man zsh-4.3.11/Completion/Unix/Command/_man
--- zsh-4.3.10/Completion/Unix/Command/_man	2009-04-16 12:02:30.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_man	2010-12-03 18:14:37.000000000 +0100
@@ -3,6 +3,10 @@
 _man() {
   local dirs expl mrd awk
 
+  if (( $words[(I)-M] == (( $CURRENT - 1 )) )); then
+    _directories && return 0
+  fi
+
   if [[ $service == man ]] && (( $words[(I)-l] + $words[(I)--local-file] )); then
     _files || return 0
   fi
@@ -21,6 +25,13 @@
   (( $#_manpath )) ||
       _manpath=( /usr/man(-/) /(opt|usr)/(pkg|dt|share|X11R6|local)/(cat|)man(-/) )
 
+  integer index=$words[(I)-M]
+  if (( index )); then
+    local opt
+    opt=$words[index+1]
+    _manpath=($_manpath $opt)
+  fi
+
   # `sman' is the SGML manual directory for Solaris 7.
   # 1M is system administrator commands on SVR4
 
@@ -75,6 +86,18 @@
 _man_pages() {
   local matcher pages dummy sopt
 
+  # What files corresponding to manual pages can end in.
+  local suf='.((?|<->*)(|.gz|.bz2|.Z|.lzma))'
+
+  if [[ $PREFIX$SUFFIX = */* ]]; then
+    # Easy way to test for versions of man that allow file names.
+    # This can't be a normal man page reference.
+    # Try to complete by glob first.
+    _path_files -g "*$suf" && return
+    _path_files
+    return
+  fi
+
   zparseopts -E M+:=matcher
 
   if (( $#matcher )); then
@@ -98,9 +121,9 @@
   if ((CURRENT > 2)) ||
       ! zstyle -t ":completion:${curcontext}:manuals.$sect" insert-sections
   then
-    compadd "$@" - ${pages%.((?|<->*)(|.gz|.bz2|.Z))}
+    compadd "$@" - ${pages%$~suf}
   else
-    compadd "$@" -P "$sopt$sect " - ${pages%.((?|<->*)(|.gz|.bz2|.Z))}
+    compadd "$@" -P "$sopt$sect " - ${pages%$~suf}
   fi
 }
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_mercurial zsh-4.3.11/Completion/Unix/Command/_mercurial
--- zsh-4.3.10/Completion/Unix/Command/_mercurial	2008-11-26 11:49:22.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_mercurial	1970-01-01 01:00:00.000000000 +0100
@@ -1,873 +0,0 @@
-#compdef hg
-
-emulate -LR zsh
-setopt extendedglob
-
-local curcontext="$curcontext" state line
-typeset -A _hg_cmd_globals
-
-_hg() {
-  local cmd _hg_root
-  integer i=2
-  _hg_cmd_globals=()
-
-  while (( i < $#words ))
-  do
-    case "$words[$i]" in
-      -R|--repository)
-        eval _hg_root="$words[$i+1]"
-        _hg_cmd_globals+=("$words[$i]" "$_hg_root")
-        (( i += 2 ))
-        continue
-      ;;
-      -R*)
-        _hg_cmd_globals+="$words[$i]"
-        eval _hg_root="${words[$i]#-R}"
-       (( i++ ))
-       continue
-      ;;
-      --cwd|--config)
-        # pass along arguments to hg completer
-        _hg_cmd_globals+=("$words[$i]" "$words[$i+1]")
-        (( i += 2 ))
-        continue
-      ;;
-      -*)
-        # skip option
-        (( i++ ))
-        continue
-      ;;
-    esac
-    if [[ -z "$cmd" ]]
-    then
-      cmd="$words[$i]"
-      words[$i]=()
-      (( CURRENT-- ))
-    fi
-    (( i++ ))
-  done
-
-  if [[ -z "$cmd" ]]
-  then
-    _arguments -s -w : $_hg_global_opts \
-    ':mercurial command:_hg_commands'
-    return
-  fi
-
-  # resolve abbreviations and aliases
-  if ! (( $+functions[_hg_cmd_${cmd}] ))
-  then
-    local cmdexp
-    (( $#_hg_cmd_list )) || _hg_get_commands
-
-    cmdexp=$_hg_cmd_list[(r)${cmd}*]
-    if [[ $cmdexp == $_hg_cmd_list[(R)${cmd}*] ]]
-    then
-      # might be nice to rewrite the command line with the expansion
-      cmd="$cmdexp"
-    fi
-    if [[ -n $_hg_alias_list[$cmd] ]]
-    then
-      cmd=$_hg_alias_list[$cmd]
-    fi
-  fi
-
-  curcontext="${curcontext%:*:*}:hg-${cmd}:"
-
-  zstyle -s ":completion:$curcontext:" cache-policy update_policy
-
-  if [[ -z "$update_policy" ]]
-  then
-    zstyle ":completion:$curcontext:" cache-policy _hg_cache_policy
-  fi
-
-  if (( $+functions[_hg_cmd_${cmd}] ))
-  then
-    _hg_cmd_${cmd}
-  else
-    # complete unknown commands normally
-    _arguments -s -w : $_hg_global_opts \
-      '*:files:_hg_files'
-  fi
-}
-
-_hg_cache_policy() {
-  typeset -a old
-
-  # cache for a minute
-  old=( "$1"(mm+10) )
-  (( $#old )) && return 0
-
-  return 1
-}
-
-_hg_get_commands() {
-  typeset -ga _hg_cmd_list
-  typeset -gA _hg_alias_list
-  local hline cmd cmdalias
-  _call_program help hg --verbose help | while read -A hline
-  do
-    cmd="$hline[1]"
-    case $cmd in
-      *:)
-        cmd=${cmd%:}
-        _hg_cmd_list+=($cmd)
-      ;;
-      *,)
-        cmd=${cmd%,}
-        _hg_cmd_list+=($cmd)
-        integer i=2
-        while (( i <= $#hline ))
-        do
-          cmdalias=${hline[$i]%(:|,)}
-          _hg_cmd_list+=($cmdalias)
-          _hg_alias_list+=($cmdalias $cmd)
-          (( i++ ))
-        done
-      ;;
-    esac
-  done
-}
-
-_hg_commands() {
-  (( $#_hg_cmd_list )) || _hg_get_commands
-  _describe -t commands 'mercurial command' _hg_cmd_list
-}
-
-_hg_revrange() {
-  compset -P 1 '*:'
-  _hg_tags "$@"
-}
-
-_hg_tags() {
-  typeset -a tags
-  local tag rev
-
-  _hg_cmd tags 2> /dev/null | while read tag
-  do
-    tags+=(${tag/ #    [0-9]#:*})
-  done
-  (( $#tags )) && _describe -t tags 'tags' tags
-}
-
-_hg_files() {
-  if [[ -n "$_hg_root" ]]
-  then
-    [[ -d "$_hg_root/.hg" ]] || return
-    case "$_hg_root" in
-      /*)
-        _files -W $_hg_root
-      ;;
-      *)
-        _files -W $PWD/$_hg_root
-      ;;
-    esac
-  else
-    _files
-  fi
-}
-
-_hg_status() {
-  [[ -d $PREFIX ]] || PREFIX=$PREFIX:h
-  status_files=(${(ps:\0:)"$(_hg_cmd status -0n$1 ./$PREFIX 2>/dev/null)"})
-}
-
-_hg_unknown() {
-  typeset -a status_files
-  _hg_status u
-  _wanted files expl 'unknown files' _multi_parts / status_files
-}
-
-_hg_missing() {
-  typeset -a status_files
-  _hg_status d
-  _wanted files expl 'missing files' _multi_parts / status_files
-}
-
-_hg_modified() {
-  typeset -a status_files
-  _hg_status m
-  _wanted files expl 'modified files' _multi_parts / status_files
-}
-
-_hg_resolve() {
-  local rstate rpah
-
-  [[ -d $PREFIX ]] || PREFIX=$PREFIX:h
-
-  _hg_cmd resolve -l ./$PREFIX 2> /dev/null | while read rstate rpath
-  do
-    [[ $rstate == 'R' ]] && resolved_files+=($rpath)
-    [[ $rstate == 'U' ]] && unresolved_files+=($rpath)
-  done
-}
-
-_hg_resolved() {
-  typeset -a resolved_files unresolved_files
-  _hg_resolve
-  _wanted files expl 'resolved files' _multi_parts / resolved_files
-}
-
-_hg_unresolved() {
-  typeset -a resolved_files unresolved_files
-  _hg_resolve
-  _wanted files expl 'unresolved files' _multi_parts / unresolved_files
-}
-
-_hg_config() {
-    typeset -a items
-    items=(${${(%f)"$(_call_program hg hg showconfig)"}%%\=*})
-    (( $#items )) && _describe -t config 'config item' items
-}
-
-_hg_addremove() {
-  _alternative 'files:unknown files:_hg_unknown' \
-    'files:missing files:_hg_missing'
-}
-
-_hg_ssh_urls() {
-  if [[ -prefix */ ]]
-  then
-    if zstyle -T ":completion:${curcontext}:files" remote-access
-    then
-      local host=${PREFIX%%/*}
-      typeset -a remdirs
-      compset -p $(( $#host + 1 ))
-      local rempath=${(M)PREFIX##*/}
-      local cacheid="hg:${host}-${rempath//\//_}"
-      cacheid=${cacheid%[-_]}
-      compset -P '*/'
-      if _cache_invalid "$cacheid" || ! _retrieve_cache "$cacheid"
-      then
-        remdirs=(${${(M)${(f)"$(_call_program files ssh -a -x $host ls -1FL "${(q)rempath}" 2> /dev/null)"}##*/}%/})
-        _store_cache "$cacheid" remdirs
-      fi
-      _describe -t directories 'remote directory' remdirs -S/
-    else
-      _message 'remote directory'
-    fi
-  else
-    if compset -P '*@'
-    then
-      _hosts -S/
-    else
-      _alternative 'hosts:remote host name:_hosts -S/' \
-        'users:user:_users -S@'
-    fi
-  fi
-}
-
-_hg_urls() {
-  if compset -P bundle://
-  then
-    _files
-  elif compset -P ssh://
-  then
-    _hg_ssh_urls
-  elif [[ -prefix *: ]]
-  then
-    _urls
-  else
-    local expl
-    compset -S '[^:]*'
-    _wanted url-schemas expl 'URL schema' compadd -S '' - \
-      http:// https:// ssh:// bundle://
-  fi
-}
-
-_hg_paths() {
-  typeset -a paths pnames
-  _hg_cmd paths 2> /dev/null | while read -A pnames
-  do
-    paths+=($pnames[1])
-  done
-  (( $#paths )) && _describe -t path-aliases 'repository alias' paths
-}
-
-_hg_remote() {
-  _alternative 'path-aliases:repository alias:_hg_paths' \
-    'directories:directory:_files -/' \
-    'urls:URL:_hg_urls'
-}
-
-_hg_clone_dest() {
-  _alternative 'directories:directory:_files -/' \
-    'urls:URL:_hg_urls'
-}
-
-# Common options
-_hg_global_opts=(
-    '(--repository -R)'{-R+,--repository}'[repository root directory]:repository:_files -/'
-    '--cwd[change working directory]:new working directory:_files -/'
-    '(--noninteractive -y)'{-y,--noninteractive}'[do not prompt, assume yes for any required answers]'
-    '(--verbose -v)'{-v,--verbose}'[enable additional output]'
-    '*--config[set/override config option]:defined config items:_hg_config'
-    '(--quiet -q)'{-q,--quiet}'[suppress output]'
-    '(--help -h)'{-h,--help}'[display help and exit]'
-    '--debug[debug mode]'
-    '--debugger[start debugger]'
-    '--encoding[set the charset encoding (default: UTF8)]'
-    '--encodingmode[set the charset encoding mode (default: strict)]'
-    '--lsprof[print improved command execution profile]'
-    '--traceback[print traceback on exception]'
-    '--time[time how long the command takes]'
-    '--profile[profile]'
-    '--version[output version information and exit]'
-)
-
-_hg_pat_opts=(
-  '*'{-I+,--include}'[include names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/'
-  '*'{-X+,--exclude}'[exclude names matching the given patterns]:dir:_files -W $(_hg_cmd root) -/')
-
-_hg_diff_opts=(
-  '(--text -a)'{-a,--text}'[treat all files as text]'
-  '(--git -g)'{-g,--git}'[use git extended diff format]'
-  "--nodates[don't include dates in diff headers]")
-
-_hg_dryrun_opts=(
-  '(--dry-run -n)'{-n,--dry-run}'[do not perform actions, just print output]')
-
-_hg_style_opts=(
-  '--style[display using template map file]:'
-  '--template[display with template]:')
-
-_hg_commit_opts=(
-  '(-m --message -l --logfile --edit -e)'{-e,--edit}'[edit commit message]'
-  '(-e --edit -l --logfile --message -m)'{-m+,--message}'[use  as commit message]:message:'
-  '(-e --edit -m --message --logfile -l)'{-l+,--logfile}'[read the commit message from ]:log file:_files')
-
-_hg_remote_opts=(
-  '(--ssh -e)'{-e+,--ssh}'[specify ssh command to use]:'
-  '--remotecmd[specify hg command to run on the remote side]:')
-
-_hg_cmd() {
-  _call_program hg hg "$_hg_cmd_globals[@]" "$@"
-}
-
-_hg_cmd_add() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
-  '*:unknown files:_hg_unknown'
-}
-
-_hg_cmd_addremove() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
-  '(--similarity -s)'{-s+,--similarity}'[guess renamed files by similarity (0<=s<=100)]:' \
-  '*:unknown or missing files:_hg_addremove'
-}
-
-_hg_cmd_annotate() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--rev -r)'{-r+,--rev}'[annotate the specified revision]:revision:_hg_tags' \
-  '(--follow -f)'{-f,--follow}'[follow file copies and renames]' \
-  '(--text -a)'{-a,--text}'[treat all files as text]' \
-  '(--user -u)'{-u,--user}'[list the author]' \
-  '(--date -d)'{-d,--date}'[list the date]' \
-  '(--number -n)'{-n,--number}'[list the revision number (default)]' \
-  '(--changeset -c)'{-c,--changeset}'[list the changeset]' \
-  '*:files:_hg_files'
-}
-
-_hg_cmd_archive() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '--no-decode[do not pass files through decoders]' \
-  '(--prefix -p)'{-p+,--prefix}'[directory prefix for files in archive]:' \
-  '(--rev -r)'{-r+,--rev}'[revision to distribute]:revision:_hg_tags' \
-  '(--type -t)'{-t+,--type}'[type of distribution to create]:archive type:(files tar tbz2 tgz uzip zip)' \
-  '*:destination:_files'
-}
-
-_hg_cmd_backout() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-    '--merge[merge with old dirstate parent after backout]' \
-    '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
-    '--parent[parent to choose when backing out merge]' \
-    '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
-    '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
-    '(--message -m)'{-m+,--message}'[use  as commit message]:text:' \
-    '(--logfile -l)'{-l+,--logfile}'[read commit message from ]:log file:_files -g \*.txt'
-}
-
-_hg_cmd_bundle() {
-  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
-  '(--force -f)'{-f,--force}'[run even when remote repository is unrelated]' \
-  '(2)*--base[a base changeset to specify instead of a destination]:revision:_hg_tags' \
-  ':output file:_files' \
-  ':destination repository:_files -/'
-}
-
-_hg_cmd_cat() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--output -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \
-  '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
-  '*:file:_hg_files'
-}
-
-_hg_cmd_clone() {
-  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
-  '(--noupdate -U)'{-U,--noupdate}'[do not update the new working directory]' \
-  '(--rev -r)'{-r+,--rev}'[a changeset you would like to have after cloning]:' \
-  '--uncompressed[use uncompressed transfer (fast over LAN)]' \
-  ':source repository:_hg_remote' \
-  ':destination:_hg_clone_dest'
-}
-
-_hg_cmd_commit() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--addremove -A)'{-A,--addremove}'[mark new/missing files as added/removed before committing]' \
-  '(--message -m)'{-m+,--message}'[use  as commit message]:text:' \
-  '(--logfile -l)'{-l+,--logfile}'[read commit message from ]:log file:_files -g \*.txt' \
-  '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
-  '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
-  '*:file:_hg_files'
-}
-
-_hg_cmd_copy() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
-  '(--after -A)'{-A,--after}'[record a copy that has already occurred]' \
-  '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \
-  '*:file:_hg_files'
-}
-
-_hg_cmd_diff() {
-  typeset -A opt_args
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_diff_opts \
-  '*'{-r,--rev}'+[revision]:revision:_hg_revrange' \
-  '(--show-function -p)'{-p,--show-function}'[show which function each change is in]' \
-  '(--ignore-all-space -w)'{-w,--ignore-all-space}'[ignore white space when comparing lines]' \
-  '(--ignore-space-change -b)'{-b,--ignore-space-change}'[ignore changes in the amount of white space]' \
-  '(--ignore-blank-lines -B)'{-B,--ignore-blank-lines}'[ignore changes whose lines are all blank]' \
-  '*:file:->diff_files'
-
-  if [[ $state == 'diff_files' ]]
-  then
-    if [[ -n $opt_args[-r] ]]
-    then
-      _hg_files
-    else
-      _hg_modified
-    fi
-  fi
-}
-
-_hg_cmd_export() {
-  _arguments -s -w : $_hg_global_opts $_hg_diff_opts \
-  '(--outout -o)'{-o+,--output}'[print output to file with formatted name]:filespec:' \
-  '--switch-parent[diff against the second parent]' \
-  '*:revision:_hg_tags'
-}
-
-_hg_cmd_grep() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--print0 -0)'{-0,--print0}'[end filenames with NUL]' \
-  '--all[print all revisions with matches]' \
-  '(--follow -f)'{-f,--follow}'[follow changeset or file history]' \
-  '(--ignore-case -i)'{-i,--ignore-case}'[ignore case when matching]' \
-  '(--files-with-matches -l)'{-l,--files-with-matches}'[print only filenames and revs that match]' \
-  '(--line-number -n)'{-n,--line-number}'[print matching line numbers]' \
-  '*'{-r+,--rev}'[search in given revision range]:revision:_hg_revrange' \
-  '(--user -u)'{-u,--user}'[print user who committed change]' \
-  '1:search pattern:' \
-  '*:files:_hg_files'
-}
-
-_hg_cmd_heads() {
-  _arguments -s -w : $_hg_global_opts $_hg_style_opts \
-  '(--rev -r)'{-r+,--rev}'[show only heads which are descendants of rev]:revision:_hg_tags'
-}
-
-_hg_cmd_help() {
-  _arguments -s -w : $_hg_global_opts \
-  '*:mercurial command:_hg_commands'
-}
-
-_hg_cmd_identify() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--rev -r)'{-r+,--rev}'[identify the specified rev]:revision:_hg_tags' \
-  '(--num -n)'{-n+,--num}'[show local revision number]' \
-  '(--id -i)'{-i+,--id}'[show global revision id]' \
-  '(--branch -b)'{-b+,--branch}'[show branch]' \
-  '(--tags -t)'{-t+,--tags}'[show tags]'
-}
-
-_hg_cmd_import() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--strip -p)'{-p+,--strip}'[directory strip option for patch (default: 1)]:count:' \
-  '(--message -m)'{-m+,--message}'[use  as commit message]:text:' \
-  '(--force -f)'{-f,--force}'[skip check for outstanding uncommitted changes]' \
-  '*:patch:_files'
-}
-
-_hg_cmd_incoming() {
-  _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \
-  '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \
-  '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
-  '(--patch -p)'{-p,--patch}'[show patch]' \
-  '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:_hg_tags' \
-  '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \
-  '--bundle[file to store the bundles into]:bundle file:_files' \
-  ':source:_hg_remote'
-}
-
-_hg_cmd_init() {
-  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
-  ':dir:_files -/'
-}
-
-_hg_cmd_locate() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--rev -r)'{-r+,--rev}'[search repository as it stood at revision]:revision:_hg_tags' \
-  '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \
-  '(--fullpath -f)'{-f,--fullpath}'[print complete paths]' \
-  '*:search pattern:_hg_files'
-}
-
-_hg_cmd_log() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_style_opts \
-  '(--follow --follow-first -f)'{-f,--follow}'[follow changeset or history]' \
-  '(-f --follow)--follow-first[only follow the first parent of merge changesets]' \
-  '(--copies -C)'{-C,--copies}'[show copied files]' \
-  '(--keyword -k)'{-k+,--keyword}'[search for a keyword]:' \
-  '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \
-  '*'{-r,--rev}'[show the specified revision or range]:revision:_hg_revrange' \
-  '(--no-merges -M)'{-M,--no-merges}'[do not show merges]' \
-  '(--only-merges -m)'{-m,--only-merges}'[show only merges]' \
-  '(--patch -p)'{-p,--patch}'[show patch]' \
-  '(--prune -P)'{-P+,--prune}'[do not display revision or any of its ancestors]:revision:_hg_tags' \
-  '*:files:_hg_files'
-}
-
-_hg_cmd_manifest() {
-  _arguments -s -w : $_hg_global_opts \
-  ':revision:_hg_tags'
-}
-
-_hg_cmd_outgoing() {
-  _arguments -s -w : $_hg_global_opts $_hg_remote_opts $_hg_style_opts \
-  '(--no-merges -M)'{-M,--no-merges}'[do not show merge revisions]' \
-  '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
-  '(--patch -p)'{-p,--patch}'[show patch]' \
-  '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]' \
-  '(--newest-first -n)'{-n,--newest-first}'[show newest record first]' \
-  ':destination:_hg_remote'
-}
-
-_hg_cmd_parents() {
-  _arguments -s -w : $_hg_global_opts $_hg_style_opts \
-  '(--rev -r)'{-r+,--rev}'[show parents of the specified rev]:revision:_hg_tags' \
-  ':last modified file:_hg_files'
-}
-
-_hg_cmd_paths() {
-  _arguments -s -w : $_hg_global_opts \
-  ':path:_hg_paths'
-}
-
-_hg_cmd_pull() {
-  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
-  '(--force -f)'{-f,--force}'[run even when the remote repository is unrelated]' \
-  '(--update -u)'{-u,--update}'[update to new tip if changesets were pulled]' \
-  '(--rev -r)'{-r+,--rev}'[a specific revision up to which you would like to pull]:revision:' \
-  ':source:_hg_remote'
-}
-
-_hg_cmd_push() {
-  _arguments -s -w : $_hg_global_opts $_hg_remote_opts \
-  '(--force -f)'{-f,--force}'[force push]' \
-  '(--rev -r)'{-r+,--rev}'[a specific revision you would like to push]:revision:_hg_tags' \
-  ':destination:_hg_remote'
-}
-
-_hg_cmd_remove() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--after -A)'{-A,--after}'[record remove that has already occurred]' \
-  '(--force -f)'{-f,--force}'[remove file even if modified]' \
-  '*:file:_hg_files'
-}
-
-_hg_cmd_rename() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
-  '(--after -A)'{-A,--after}'[record a rename that has already occurred]' \
-  '(--force -f)'{-f,--force}'[forcibly copy over an existing managed file]' \
-  '*:file:_hg_files'
-}
-
-_hg_cmd_resolve() {
-  local context state line
-  typeset -A opt_args
-
-  _arguments -s -w : $_hg_global_opts \
-  '(--list -l --mark -m --unmark -u)'{-l,--list}'[list state of files needing merge]:*:merged files:->resolve_files' \
-  '(--mark -m --list -l --unmark -u)'{-m,--mark}'[mark files as resolved]:*:unresolved files:_hg_unresolved' \
-  '(--unmark -u --list -l --mark -m)'{-u,--unmark}'[unmark files as resolved]:*:resolved files:_hg_resolved' \
-  '*:file:_hg_unresolved'
-
-  if [[ $state == 'resolve_files' ]]
-  then
-    _alternative 'files:resolved files:_hg_resolved' \
-      'files:unresolved files:_hg_unresolved'
-  fi
-}
-
-_hg_cmd_revert() {
-  local context state line
-  typeset -A opt_args
-
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_dryrun_opts \
-  '(--all -a :)'{-a,--all}'[revert all changes when no arguments given]' \
-  '(--rev -r)'{-r+,--rev}'[revision to revert to]:revision:_hg_tags' \
-  '--no-backup[do not save backup copies of files]' \
-  '*:file:->diff_files'
-
-  if [[ $state == 'diff_files' ]]
-  then
-    if [[ -n $opt_args[-r] ]]
-    then
-      _hg_files
-    else
-      typeset -a status_files
-      _hg_status mard
-      _wanted files expl 'modified, added, removed or deleted file' _multi_parts / status_files
-    fi
-  fi
-}
-
-_hg_cmd_serve() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--accesslog -A)'{-A+,--accesslog}'[name of access log file]:log file:_files' \
-  '(--errorlog -E)'{-E+,--errorlog}'[name of error log file]:log file:_files' \
-  '(--daemon -d)'{-d,--daemon}'[run server in background]' \
-  '(--port -p)'{-p+,--port}'[listen port]:listen port:' \
-  '(--address -a)'{-a+,--address}'[interface address]:interface address:' \
-  '(--name -n)'{-n+,--name}'[name to show in web pages]:repository name:' \
-  '(--templates -t)'{-t,--templates}'[web template directory]:template dir:_files -/' \
-  '--style[web template style]:style' \
-  '--stdio[for remote clients]' \
-  '(--ipv6 -6)'{-6,--ipv6}'[use IPv6 in addition to IPv4]'
-}
-
-_hg_cmd_showconfig() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--untrusted -u)'{-u+,--untrusted}'[show untrusted configuration options]' \
-  ':config item:_hg_config'
-}
-
-_hg_cmd_status() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '(--all -A)'{-A,--all}'[show status of all files]' \
-  '(--modified -m)'{-m,--modified}'[show only modified files]' \
-  '(--added -a)'{-a,--added}'[show only added files]' \
-  '(--removed -r)'{-r,--removed}'[show only removed files]' \
-  '(--deleted -d)'{-d,--deleted}'[show only deleted (but tracked) files]' \
-  '(--clean -c)'{-c,--clean}'[show only files without changes]' \
-  '(--unknown -u)'{-u,--unknown}'[show only unknown files]' \
-  '(--ignored -i)'{-i,--ignored}'[show ignored files]' \
-  '(--no-status -n)'{-n,--no-status}'[hide status prefix]' \
-  '(--copies -C)'{-C,--copies}'[show source of copied files]' \
-  '(--print0 -0)'{-0,--print0}'[end filenames with NUL, for use with xargs]' \
-  '--rev[show difference from revision]:revision:_hg_tags' \
-  '*:files:_files'
-}
-
-_hg_cmd_tag() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--local -l)'{-l,--local}'[make the tag local]' \
-  '(--message -m)'{-m+,--message}'[message for tag commit log entry]:message:' \
-  '(--date -d)'{-d+,--date}'[record datecode as commit date]:date code:' \
-  '(--user -u)'{-u+,--user}'[record user as commiter]:user:' \
-  '(--rev -r)'{-r+,--rev}'[revision to tag]:revision:_hg_tags' \
-  ':tag name:'
-}
-
-_hg_cmd_tip() {
-  _arguments -s -w : $_hg_global_opts $_hg_style_opts \
-  '(--patch -p)'{-p,--patch}'[show patch]'
-}
-
-_hg_cmd_unbundle() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--update -u)'{-u,--update}'[update to new tip if changesets were unbundled]' \
-  ':files:_files'
-}
-
-_hg_cmd_update() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--clean -C)'{-C,--clean}'[overwrite locally modified files]' \
-  '(--rev -r)'{-r+,--rev}'[revision]:revision:_hg_tags' \
-  ':revision:_hg_tags'
-}
-
-# bisect extension
-_hg_cmd_bisect() {
-  _arguments -s -w : $_hg_global_opts ':evaluation:(help init reset next good bad)'
-}
-
-# HGK
-_hg_cmd_view() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--limit -l)'{-l+,--limit}'[limit number of changes displayed]:' \
-  ':revision range:_hg_tags'
-}
-
-# MQ
-_hg_qseries() {
-  typeset -a patches
-  patches=(${(f)"$(_hg_cmd qseries 2>/dev/null)"})
-  (( $#patches )) && _describe -t hg-patches 'patches' patches
-}
-
-_hg_qapplied() {
-  typeset -a patches
-  patches=(${(f)"$(_hg_cmd qapplied 2>/dev/null)"})
-  if (( $#patches ))
-  then
-    patches+=(qbase qtip)
-    _describe -t hg-applied-patches 'applied patches' patches
-  fi
-}
-
-_hg_qunapplied() {
-  typeset -a patches
-  patches=(${(f)"$(_hg_cmd qunapplied 2>/dev/null)"})
-  (( $#patches )) && _describe -t hg-unapplied-patches 'unapplied patches' patches
-}
-
-_hg_qguards() {
-  typeset -a guards
-  local guard
-  compset -P "+|-"
-  _hg_cmd qselect -s 2>/dev/null | while read guard
-  do
-    guards+=(${guard#(+|-)})
-  done
-  (( $#guards )) && _describe -t hg-guards 'guards' guards
-}
-
-_hg_qseries_opts=(
-  '(--summary -s)'{-s,--summary}'[print first line of patch header]')
-
-_hg_cmd_qapplied() {
-  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
-}
-
-_hg_cmd_qdelete() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--keep -k)'{-k,--keep}'[keep patch file]' \
-  '*'{-r+,--rev}'[stop managing a revision]:applied patch:_hg_revrange' \
-  '*:unapplied patch:_hg_qunapplied'
-}
-
-_hg_cmd_qdiff() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts \
-  '*:pattern:_hg_files'
-}
-
-_hg_cmd_qfold() {
-  _arguments -s -w : $_hg_global_opts $_h_commit_opts \
-  '(--keep,-k)'{-k,--keep}'[keep folded patch files]' \
-  '*:unapplied patch:_hg_qunapplied'
-}
-
-_hg_cmd_qgoto() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--force -f)'{-f,--force}'[overwrite any local changes]' \
-  ':patch:_hg_qseries'
-}
-
-_hg_cmd_qguard() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--list -l)'{-l,--list}'[list all patches and guards]' \
-  '(--none -n)'{-n,--none}'[drop all guards]' \
-  ':patch:_hg_qseries' \
-  '*:guards:_hg_qguards'
-}
-
-_hg_cmd_qheader() {
-  _arguments -s -w : $_hg_global_opts \
-  ':patch:_hg_qseries'
-}
-
-_hg_cmd_qimport() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--existing -e)'{-e,--existing}'[import file in patch dir]' \
-  '(--name -n 2)'{-n+,--name}'[patch file name]:name:' \
-  '(--force -f)'{-f,--force}'[overwrite existing files]' \
-  '*'{-r+,--rev}'[place existing revisions under mq control]:revision:_hg_revrange' \
-  '*:patch:_files'
-}
-
-_hg_cmd_qnew() {
-  _arguments -s -w : $_hg_global_opts $_hg_commit_opts \
-  '(--force -f)'{-f,--force}'[import uncommitted changes into patch]' \
-  ':patch:'
-}
-
-_hg_cmd_qnext() {
-  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
-}
-
-_hg_cmd_qpop() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--all -a :)'{-a,--all}'[pop all patches]' \
-  '(--name -n)'{-n+,--name}'[queue name to pop]:' \
-  '(--force -f)'{-f,--force}'[forget any local changes]' \
-  ':patch:_hg_qapplied'
-}
-
-_hg_cmd_qprev() {
-  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
-}
-
-_hg_cmd_qpush() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--all -a :)'{-a,--all}'[apply all patches]' \
-  '(--list -l)'{-l,--list}'[list patch name in commit text]' \
-  '(--merge -m)'{-m+,--merge}'[merge from another queue]:' \
-  '(--name -n)'{-n+,--name}'[merge queue name]:' \
-  '(--force -f)'{-f,--force}'[apply if the patch has rejects]' \
-  ':patch:_hg_qunapplied'
-}
-
-_hg_cmd_qrefresh() {
-  _arguments -s -w : $_hg_global_opts $_hg_pat_opts $_hg_commit_opts \
-  '(--git -g)'{-g,--git}'[use git extended diff format]' \
-  '(--short -s)'{-s,--short}'[short refresh]' \
-  '*:files:_hg_files'
-}
-
-_hg_cmd_qrename() {
-  _arguments -s -w : $_hg_global_opts \
-  ':patch:_hg_qseries' \
-  ':destination:'
-}
-
-_hg_cmd_qselect() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--none -n :)'{-n,--none}'[disable all guards]' \
-  '(--series -s :)'{-s,--series}'[list all guards in series file]' \
-  '--pop[pop to before first guarded applied patch]' \
-  '--reapply[pop and reapply patches]' \
-  '*:guards:_hg_qguards'
-}
-
-_hg_cmd_qseries() {
-  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts \
-  '(--missing -m)'{-m,--missing}'[print patches not in series]'
-}
-
-_hg_cmd_qunapplied() {
-  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
-}
-
-_hg_cmd_qtop() {
-  _arguments -s -w : $_hg_global_opts $_hg_qseries_opts
-}
-
-_hg_cmd_strip() {
-  _arguments -s -w : $_hg_global_opts \
-  '(--force -f)'{-f,--force}'[force multi-head removal]' \
-  '(--backup -b)'{-b,--backup}'[bundle unrelated changesets]' \
-  '(--nobackup -n)'{-n,--nobackup}'[no backups]' \
-  ':revision:_hg_tags'
-}
-
-_hg "$@"
diff -Nru zsh-4.3.10/Completion/Unix/Command/_module zsh-4.3.11/Completion/Unix/Command/_module
--- zsh-4.3.10/Completion/Unix/Command/_module	2008-09-01 14:05:56.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_module	2010-06-06 15:44:12.000000000 +0200
@@ -23,32 +23,32 @@
   local -a _module_cmds
 
   _module_cmds=(
-    "help:Print the usage of each sub-command"
-    "load:Load a module into the shell environment"
-    "add:Load a module into the shell environment"
-    "unload:Remove a module from the shell environment"
-    "rm:Remove a module from the shell environment"
-    "switch:Switch loaded a loaded module with another module"
-    "swap:Switch loaded a loaded module with another module"
-    "display:Display information about a module"
-    "show:Display information about a module"
-    "list:List loaded modules"
-    "avail:List all available modules"
-    "use:Add a directory to MODULEPATH"
-    "unuse:Remove a directory from MODULEPATH"
-    "update:Reload all loaded modules"
-    "clear:Clear loaded modules information"
-    "purge:Unload all loaded modules"
-    "refresh:Refresh all non-persistent components of loaded modules"
-    "whatis:Display module information"
-    "appropos:Search for a given keyword in modules"
-    "keyword:Search for a given keyword in modules"
-    "initadd:Add or append a module to the user's shell init file"
-    "initprepend:Add or prepend a module to the user's shell init files"
-    "initrm:Remove a module from the user's shell init file"
-    "initswitch:Switch modules in the user's shell init file"
-    "initlist:List all loaded modules in the user's shell init files"
-    "initclear:Clear all modules from the user's shell init files"
+    "help:print the usage of each sub-command"
+    "load:load a module into the shell environment"
+    "add:load a module into the shell environment"
+    "unload:remove a module from the shell environment"
+    "rm:remove a module from the shell environment"
+    "switch:switch loaded a loaded module with another module"
+    "swap:switch loaded a loaded module with another module"
+    "display:display information about a module"
+    "show:display information about a module"
+    "list:list loaded modules"
+    "avail:list all available modules"
+    "use:add a directory to MODULEPATH"
+    "unuse:remove a directory from MODULEPATH"
+    "update:reload all loaded modules"
+    "clear:clear loaded modules information"
+    "purge:unload all loaded modules"
+    "refresh:refresh all non-persistent components of loaded modules"
+    "whatis:display module information"
+    "appropos:search for a given keyword in modules"
+    "keyword:search for a given keyword in modules"
+    "initadd:add or append a module to the user's shell init file"
+    "initprepend:add or prepend a module to the user's shell init files"
+    "initrm:remove a module from the user's shell init file"
+    "initswitch:switch modules in the user's shell init file"
+    "initlist:list all loaded modules in the user's shell init files"
+    "initclear:clear all modules from the user's shell init files"
   )
 
   if (( CURRENT == 1 )); then
@@ -131,7 +131,7 @@
 (( $+functions[_module_use] )) || _module_use()
 {
   _arguments -s \
-    '(-a --append)'{--append,-a}'[Append the directories instead of prepending]' \
+    '(-a --append)'{--append,-a}'[append the directories instead of prepending]' \
     '*:directory:_files -/'    
 }
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_mount zsh-4.3.11/Completion/Unix/Command/_mount
--- zsh-4.3.10/Completion/Unix/Command/_mount	2008-01-22 11:13:35.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_mount	2009-08-28 17:10:39.000000000 +0200
@@ -41,10 +41,10 @@
 
 local curcontext="$curcontext" state line expl suf ret=1
 local args deffs=iso9660 tmp typeops=-t _nfs_access _fs_nfs _nfs_ufs \
-_fs_ufs _fs_efs _fs_iso9660 _fs_cachefs _fs_s5fs _fs_tmpfs _fs_pcfs _fs_hsfs \
-_fs_advfs _fs_cdfs _fs_affs _fs_ext2 _fs_fat _fs_ext3 _fs_msdos _fs_umsdos \
-_fs_vfat _fs_hpfs _fs_ntfs _fs_reiserfs _fs_smbfs _fs_xfs _fs_std _fs_devfs \
-_fs_fdesc _fs_kernfs _fs_linprocfs _fs_procfs
+_fs_ufs _fs_efs _fs_cd9660 _fs_iso9660 _fs_cachefs _fs_s5fs _fs_tmpfs _fs_pcfs \
+_fs_hsfs _fs_advfs _fs_cdfs _fs_affs _fs_ext2 _fs_fat _fs_ext3 _fs_msdos \
+_fs_msdosfs _fs_umsdos _fs_vfat _fs_hpfs _fs_ntfs _fs_reiserfs _fs_smbfs \
+_fs_xfs _fs_std _fs_devfs _fs_fdesc _fs_kernfs _fs_linprocfs _fs_procfs
 
 typeset -A opt_args
 
@@ -322,7 +322,7 @@
       '(nosuid)suid[use suid and sgid bits]'
       '(async)sync[do I/O synchronously]'
       'dirsync[perform directory updates synchronously]'
-      'loop[use loopback device]:loopback device:_files'
+      'loop[use loopback device]::loopback device:_files'
       'encryption[enable encryption]:cypher'
       'keybits[set number of bits in encryption key]:key size:(64 128 160 192 256)'
       'offset[specify data start for loopback mount]:offset (bytes)'
@@ -527,7 +527,7 @@
       'swidth[specify stripe width]:size'
     )
     ;;
-  *freebsd*|dragonfly*)
+  freebsd*|dragonfly*)
     _fs_any=(
       '(sync)async[do all I/O asynchronously]'
       'current[use current options on already mounted file system]'
@@ -548,12 +548,12 @@
       'update[change status of already mounted filesystem]'
       'union[cause the namespace at the mount point to appear as the union of the mounted filesystem and the existing directory]'
     )
-    _fs_iso9660=(
-      'extatt[enable use of extended attributes]'
-      "gens[don't strip version number on files]"
-      "joliet[don't use any Joliet extensions]"
-      "rrip[don't use any Rockridge extensions]"
-      'strictjoliet[relax checking for Supplementary Volume Descriptor Flags field which is set to a wrong value on some Joliet formatted disks]'
+    _fs_cd9660=(
+      'extatt[enable the use of extended attributes]'
+      'gens[do not strip version numbers on files]'
+      'nojoliet[do not use any Joliet extensions]'
+      'norrip[do not use any Rockridge extensions]'
+      'nostrictjoliet[relax checking for Supplementary Volume Descriptor Flags field]'
     )
     _fs_std=(
       "nodev[don't interpret devices]"
@@ -571,7 +571,13 @@
       'shortnames[]'
       'longnames[]'
       'nowin95[]'
+      'shortnames[force only the old MS-DOS 8.3 style filenames to be visible]'
+      'longnames[force Windows 95 long filenames to be visible]'
+      'nowin95[completely ignore Windows 95 extended file information]'
     )
+    if [[ "${OSTYPE}" =~ freebsd.* ]]; then
+	    _fs_msdosfs=( "$_fs_msdos[@]" )
+    fi
     ;;
   esac
 fi
@@ -682,7 +688,7 @@
     deffs=hsfs
     typeops=-F
     ;;
-  *freebsd*|dragonfly*)
+  freebsd*|dragonfly*)
     args=( -s
       '(:)-a[mount all filesystems in fstab]'
       '-d[cause everything to be done except for the actual system call]'      
@@ -757,7 +763,7 @@
 	'*:dev or dir:->udevordir'
       )
     ;;
-    *freebsd*|dragonfly*)
+    freebsd*|dragonfly*)
       args=(
 	'(*)-a[unmount all mounted file systems]'
 	'-A[unmount all mounted file systems except the root]'
@@ -819,7 +825,28 @@
   fi
 
   case "$OSTYPE" in
-  *freebsd*|dragonfly*)
+  dragonfly*)
+    while read mline; do 
+      case $mline[(w)1] in
+	\#* )
+	  ;;
+	proc)
+	  ;;
+	*)
+	  [[ $mline[(w)3] == swap ]] || \
+	    dev_tmp+=( $mline[(w)1] ) \
+	    mp_tmp+=( $mline[(w)2] )
+	  ;;
+      esac
+    done < /etc/fstab
+
+    _alternative \
+      'hosts:host:_hosts -S :' \
+      'devices:device:compadd -a dev_tmp' \
+      'directories:mount point:compadd -a mp_tmp' && ret=0
+      ;;
+  freebsd*)
+    local _glabel
     while read mline; do 
       case $mline[(w)1] in
 	\#* )
@@ -833,6 +860,16 @@
 	  ;;
       esac
     done < /etc/fstab
+    # 
+    /sbin/ggatel list | while read mline; do
+      dev_tmp+=(/dev/$mline)
+    done
+
+    # add glabel devices
+    _glabel=(${(M)${(f)"$(/sbin/glabel list)"}:#*Name:[[:space:]]*/*})
+    for mline ($_glabel);do
+	    dev_tmp+=( mline[(w)3] )
+    done
 
     _alternative \
       'hosts:host:_hosts -S :' \
@@ -859,6 +896,12 @@
     dev_tmp=( "${(@)${(@)tmp%% *}:#none}" )
     mp_tmp=( "${(@)${(@)tmp#* }%% *}" )
     ;;
+  freebsd*|dragonfly*)
+    /sbin/mount | while read mline; do
+      dev_tmp+=( $mline[(w)1] )
+      mp_tmp+=( $mline[(w)3] )
+    done
+  ;;
   *)
     /sbin/mount | while read mline; do
       mp_tmp+=( $mline[(w)1] )
diff -Nru zsh-4.3.10/Completion/Unix/Command/_mpc zsh-4.3.11/Completion/Unix/Command/_mpc
--- zsh-4.3.10/Completion/Unix/Command/_mpc	2007-01-05 14:57:46.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_mpc	2009-10-24 06:40:32.000000000 +0200
@@ -26,36 +26,43 @@
 
   mpc_cmds=(
     add:"add a song to the current playlist"
+    clear:"clear the current playlist"
     crop:"remove all songs except for the currently playing song"
+    current:"show the currently playing song"
+    crossfade:"set and display crossfade settings"
     del:"remove a song from the current playlist"
-    play:"start playing"
-    next:"play the next song in the current playlist"
-    prev:"play the previous song in the current playlist"
-    pause:"pause the currently playing song"
-    toggle:"toggles Play/Pause, plays if stopped"
-    stop:"stop the currently playing playlists"
-    seek:"seek to the position specified in percent"
-    clear:"clear the current playlist"
-    outputs:"show the current outputs"
-    enable:"enable a output"
     disable:"disable a output"
-    shuffle:"shuffle the current playlist"
-    move:"move song in playlist"
-    playlist:"print the current playlist"
+    enable:"enable a output"
+    idle:"wait until an event occurs"
+    idleloop:"loop waiting for events"
     listall:"list all songs in the music directory"
+    load:"load file as a playlist"
     ls:"list the contents of specified directory"
     lsplaylists:"list currently available playlists"
-    load:"load file as a playlist"
-    save:"save a playlist to file"
-    rm:"remove a playlist"
-    volume:"set volume"
-    repeat:"toggle repeat mode, or specify state"
+    move:"move song in playlist"
+    next:"play the next song in the current playlist"
+    outputs:"show the current outputs"
+    pause:"pause the currently playing song"
+    play:"start playing"
+    playlist:"print the current playlist"
+    prev:"play the previous song in the current playlist"
     random:"toggle random mode, or specify state"
+    repeat:"toggle repeat mode, or specify state"
+    single:"toggle single mode, or specify state"
+    consume:"toggle consume mode, or specify state"
+    rm:"remove a playlist"
+    save:"save a playlist to file"
     search:"search for a song"
-    crossfade:"set and display crossfade settings"
-    update:"scan music directory for updates"
+    find:"search for a song, exact match"
+    list:"list all tags of given type"
+    seek:"seek to the position specified in percent"
+    shuffle:"shuffle the current playlist"
     stats:"display statistics about MPD"
+    stop:"stop the currently playing playlists"
+    toggle:"toggles Play/Pause, plays if stopped"
+    update:"scan music directory for updates"
     version:"report version of MPD"
+    volume:"set volume"
     status:"display MPD status"
   )
 
@@ -234,9 +241,17 @@
   _mpc_helper_bool
 }
 
+_mpc_single() {
+  _mpc_helper_bool
+}
+
+_mpc_consume() {
+  _mpc_helper_bool
+}
+
 _mpc_search() {
   local list expl
-  list=(album artist title filename)
+  list=(album artist title track name genre date composer performer comment disc filename any)
 
   if [[ $#words -eq 2 ]]; then
     _wanted list expl table compadd $expl -a list
@@ -245,6 +260,14 @@
   fi
 }
 
+_mpc_find() {
+  _mpc_search "$@"
+}
+
+_mpc_list() {
+  _mpc_search "$@"
+}
+
 _mpc_update() {
   _mpc_helper_files
 }
diff -Nru zsh-4.3.10/Completion/Unix/Command/_osc zsh-4.3.11/Completion/Unix/Command/_osc
--- zsh-4.3.10/Completion/Unix/Command/_osc	1970-01-01 01:00:00.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_osc	2010-08-05 21:33:47.000000000 +0200
@@ -0,0 +1,149 @@
+#compdef osc
+#
+# Copyright (C) 2009,2010 Holger Macht 
+#
+# This file is released under the GPLv2.
+#
+# Based on the the zsh guide from http://zsh.dotsrc.org/Guide/zshguide06.html
+#
+# Toggle verbose completions: zstyle ':completion:*:osc:*' verbose no
+#                             zstyle ':completion:*:osc-subcommand:*' verbose no
+# 
+# Use the variables $ZSH_OSC_BUILD_TARGETS_EXTRA and $ZSH_OSC_PROJECTS_EXTRA to
+# extend the list of possible completions in your ~/.zshrc like that:
+#  export OSC_PROJECTS_EXTRA="Base:System Base:shells"
+#
+# version 0.2
+#
+
+OSC_BUILD_TARGETS="openSUSE_10.2 openSUSE_10.3 openSUSE_11.0 openSUSE_11.1 openSUSE_11.2 openSUSE_11.3 openSUSE_Factory"
+OSC_PROJECTS="openSUSE:Factory openSUSE:11.2 openSUSE:11.3 openSUSE:11.1 openSUSE:11.0 openSUSE:10.3"
+
+# user defined variables $OSC_BUILD_TARGETS_EXTRA and
+# $OSC_PROJECTS_EXTRA can add to the project/build target list
+OSC_BUILD_TARGETS="$OSC_BUILD_TARGETS $ZSH_OSC_BUILD_TARGETS_EXTRA"
+OSC_PROJECTS="$OSC_PROJECTS $ZSH_OSC_PROJECTS_EXTRA"
+
+# Main dispatcher
+
+_osc() {
+    if (( CURRENT > 2 )) && [[ ${words[2]} != "help" ]]; then
+        # Remember the subcommand name
+	local cmd=${words[2]}
+        # Set the context for the subcommand.
+	curcontext="${curcontext%:*:*}:osc-subcommand"
+        # Narrow the range of words we are looking at to exclude `osc'
+	(( CURRENT-- ))
+	shift words
+        # Run the completion for the subcommand
+	if [ "$cmd" = "submitreq" -o "$cmd" = "sr" ]; then
+	    _osc_cmd_submitreq
+	elif [ "$cmd" = "getbinaries" ]; then
+	    _osc_cmd_getbinaries
+	elif [ "$cmd" = "checkout" -o "$cmd" = "co" -o "$cmd" = "branch" ]; then
+	    _osc_cmd_checkout
+	elif [ "$cmd" = "buildlog" -o "$cmd" = "buildinfo" -o "$cmd" = "bl" ]; then
+	    _osc_cmd_buildlog
+	else
+	    _osc_cmd_do $cmd
+	fi
+    else
+	local hline
+	local -a cmdlist
+	local tag=0
+	_call_program help-commands osc help | while read -A hline; do
+	    # start parsing with "commands:"
+	    [[ $hline[1] = "commands:" ]] && tag=1
+	    # stop parsing at the line starting with "For"
+	    [[ $hline[1] = "For" ]] && tag=0
+	    [[ $tag = 0 ]] && continue
+	    # all commands have to start with lower case letters
+	    [[ $hline[1] =~ ^[A-Z] ]] && continue
+	    (( ${#hline} < 2 )) && continue
+
+    	    # ${hline[1]%,} truncates the last ','
+	    cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
+	done
+	_describe -t osc-commands 'osc command' cmdlist
+    fi
+}
+
+_osc_cmd_getbinaries() {
+    _arguments \
+	'1:PROJECT:( `echo $OSC_PROJECTS` )' \
+	'2:PACKAGE:(PACKAGE)' \
+	'3:REPOSITORY:( `echo $OSC_BUILD_TARGETS` )' \
+	'4:ARCHITECTURE:(i586 x86_64)'
+}
+
+_osc_cmd_checkout() {
+    _arguments \
+	'1:PROJECT:( `echo $OSC_PROJECTS` )' \
+	'2:PACKAGE:(PACKAGE)'
+}
+
+_osc_cmd_buildlog() {
+    _arguments \
+	'1:REPOSITORY:( `echo $OSC_BUILD_TARGETS` )' \
+	'2:ARCHITECTURE:(i586 x86_64)'
+}
+
+_osc_cmd_submitreq() {
+    local hline
+    local -a cmdlist
+    local tag=0
+    _call_program help-commands osc help $cmd | while read -A hline; do
+        # start parsing from "usage:"
+	[[ $hline[1] = "usage:" ]] && tag=1
+	[[ $tag = 0 ]] && continue
+
+	if [[ $hline[1] =~ ^osc ]]; then
+	    shift hline; shift hline
+	elif ! [[ $hline[1] =~ ^- ]]; then
+            # Option has to start with a '-' or 'osc submitrequest'
+	    continue
+	fi
+
+	(( ${#hline} < 2 )) && continue
+
+	cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
+
+    done
+    
+    _describe -t osc-commands 'osc command' cmdlist
+}
+
+
+_osc_cmd_do() {
+    local hline
+    local -a cmdlist
+    local tag=0
+    
+    # only start completion if theres some '-' on the line
+    if ! [ "$words[2]" = "-" ]; then
+	_complete
+	return
+    fi
+
+    _call_program help-commands osc help $cmd | while read -A hline; do
+	# start parsing from "Options:"
+	[[ $hline[1] = "Options:" ]] && tag=1
+	[[ $tag = 0 ]] && continue
+	# Option has to start with a '-'
+	[[ $hline[1] =~ ^- ]] || continue
+	(( ${#hline} < 2 )) && continue
+
+	cmdlist=($cmdlist "${hline[1]%,}:${hline[2,-1]}")
+    done
+
+    if [ -n "$cmdlist" ]; then
+	_describe -t osc-commands 'osc command' cmdlist
+    else
+	_complete
+    fi
+}
+
+# Code to make sure _osc is run when we load it
+_osc "$@"
+
+
diff -Nru zsh-4.3.10/Completion/Unix/Command/_patch zsh-4.3.11/Completion/Unix/Command/_patch
--- zsh-4.3.10/Completion/Unix/Command/_patch	2009-02-16 10:58:30.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_patch	2009-08-05 02:35:16.000000000 +0200
@@ -114,7 +114,7 @@
     '* --patch-root=DIR *' '--patch-root=[restrict paths]:patch root:_files -/'
 
     '* -U *' '(--unified-reject-files)-U[create unified reject files]'
-    '* --unified-reject-files *' '(-U)--unified-reject-files}[create unified reject files]'
+    '* --unified-reject-files *' '(-U)--unified-reject-files[create unified reject files]'
     '* --global-reject-file=file *' '--global-reject-file=[put all rejects into one file]:file:_files'
   )
   _patch_args=(
diff -Nru zsh-4.3.10/Completion/Unix/Command/_perforce zsh-4.3.11/Completion/Unix/Command/_perforce
--- zsh-4.3.10/Completion/Unix/Command/_perforce	2009-03-06 12:21:50.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_perforce	2010-08-23 11:07:10.000000000 +0200
@@ -414,6 +414,8 @@
       '-xi[switch server database to unicode mode and quit]' \
       '-xu[run database upgrade and quit]' \
       '-c[run command and exit]:command of some sort: ' \
+      '-Id[specify description]:description: ' \
+      '-In[specify unique name]:name: ' \
       '-jc[checkpoint, save and truncate journal]::optional prefix: ' \
       '-jd[checkpoint, not saving journal]::optional file:_files' \
       '-jj[save and truncate journal]::optional prefix: ' \
@@ -486,9 +488,12 @@
   # but let's at least check they're not already there.
   local -a unsup
   unsup=(
-    "attribute:Set attributes for open file (EXPERIMENTAL)"
-    "interchanges:Report changes not yet integrated between branches"
-    "spec:Allows limited changes to form specifications (admin)"
+    "attribute:set attributes for open file (EXPERIMENTAL)"
+    "dbschema:report meta database information"
+    "export:extract journal or checkpoint records"
+    "interchanges:report changes not yet integrated between branches"
+    "replicate:poll for journal changes and apply to another server"
+    "spec:allows limited changes to form specifications (admin)"
   )
   for line in $unsup; do
     if [[ ${_perforce_cmd_list[(r)${line%%:*}:*]} = '' ]]; then
@@ -560,6 +565,7 @@
     '-s[output script tags]' \
     '-u+[user]:user name:_perforce_users' \
     '-x+[filename or -]:file:_perforce_files_or_minus' \
+    '-z+[select output format]:output format:(tag)'
   )
 
   integer i
@@ -660,6 +666,12 @@
       ctype="local pending "
       ;;
 
+      # Changes that were shelved
+      (-tS)
+      cstatus=(-s shelved)
+      ctype="shelved "
+      ;;
+
       # Range allowed: append comma and supply rules for
       # removing and handling subsequent `#'.
       (-tR)
@@ -671,7 +683,9 @@
   # output.
   cl=(
 ${${${${(f)"$(_perforce_call_p4 changes changes $amax $xargs $cstatus \$file)"}##Change\ }//\ on\ /:}/\ by\ /\ }
-"default:change not yet numbered")
+  )
+  # "default" can't have shelved files in it...
+  [[ $ctype = shelved* ]] || cl+=("default:change not yet numbered")
   [[ $#cl -eq 1 && $cl[1] = '' ]] && cl=()
   _describe -t changes "${ctype}change" cl -V changes-unsorted $comma
 }
@@ -764,6 +778,16 @@
 }
 
 
+(( $+functions[_perforce_dbtables] )) ||
+_perforce_dbtables() {
+  local -a tables
+  tables=(archmap bodtext change changex counters depot domain have integ
+    integed ixtext label locks resolve rev revcx revdx revhx revsx trigger
+    user view working)
+  _describe -t db-table "DB table" tables
+}
+
+
 (( $+functions[_perforce_depots] )) ||
 _perforce_depots() {
   local dline match mbegin mend
@@ -1106,8 +1130,22 @@
     # no point trying to look for unmaintained files.  Assume
     # the user knows what they're doing.
     local -a altfiles
+    integer whole_path
 
-    if [[ $PREFIX = //[^/]# ]]; then
+    for type in $types; do
+      _perforce_whole_path $type && whole_path=1
+    done
+
+    # If we're doing whole-path completion, and the user starts
+    # a completion early, assume they want just those files,
+    # rather than a client spec.  This isn't necessarily the case,
+    # but there's an excellent chance it does fit the user's intention
+    # in a case where it's not really worth adding a special option.
+    # A client list can be huge and they're not actually used very
+    # often to refer to files.  In fact, this whole completion
+    # probably ought to be optional (you can do it with tags if
+    # you really want).
+    if [[ $PREFIX = //[^/]# && $whole_path -eq 0 ]]; then
       # Complete //clientname spec.  Don't complete non-directories...
       # I don't actually know if they are valid here.
       altfiles+=("clients:Perforce client:_perforce_clients")
@@ -1118,8 +1156,8 @@
 	  ! zstyle -t ":completion:${curcontext}:" all-files; then
 	  for type in $types; do
 	    altfiles+=("$type-files:$type file:_perforce_${type}_files")
-	    _perforce_whole_path $type && nodirs=1
 	  done
+	  (( whole_path )) && nodirs=1
 	else
 	  altfiles+=("depot-files:file in depot:_perforce_depot_files")
 	fi
@@ -1213,12 +1251,14 @@
       "w:always writeable on client"
       "x:set exec bit on client"
       "k:full RCS keyword expansion"
-      "k:RCS expansion only for Id, Header"
+      "ko:RCS expansion only for Id, Header"
       "l:exclusive open, disallow multiple opens"
       "C:server stores compress file per revision"
       "D:server stores deltas in RCS format"
       "F:server stores full file per revision"
-      "S:server stores only head revision")
+      "S:server stores only head revision"
+      "X:externally archived file"
+    )
     _describe -t file-modifiers 'Perforce file modifier' values
   else
     values=(
@@ -1232,6 +1272,28 @@
 }
 
 
+(( $+functions[_perforce_fstat_fields] )) ||
+_perforce_fstat_fields() {
+  local sep
+  if [[ $argv[-1] = -tv ]]; then
+    # jobview, space is separator
+    sep=' '
+  else
+    sep=','
+  fi
+  local -a values
+  # yes, "phew", sorry.
+  # output from "p4 help fstat" gives fields like
+  #    digest               -- MD5 digest (fingerprint)
+  # etc. etc.
+  values=(
+    ${${${${(M)${(f)"$(_perforce_call_p4 help-fstat help fstat)"}:#[[:blank:]]#[a-zA-Z]##(|\#)[[:blank:]]##--*}##[[:blank:]]#}:#fstat *}//[[:blank:]]##--[[:blank:]]##/:}
+  )
+  compset -P '*[,[:blank:]]'
+  _describe -t fstat-fields 'Perforce fstat fields' values -S, -q
+}
+
+
 (( $+functions[_perforce_groups] )) ||
 _perforce_groups() {
   local -a values
@@ -1529,6 +1591,7 @@
 _perforce_cmd_add() {
   _arguments -s : \
     '-c+[select by change]:change:_perforce_changes -tc' \
+    '-d[reopen removed file for add (downgrade)]' \
     '-f[allow filenames with wild cards]' \
     '-n[display operation without doing it]' \
     '-t+[set file type]:file type:_perforce_filetypes' \
@@ -1542,15 +1605,27 @@
     local -a adcmds
     adcmds=(
       "checkpoint:checkpoint, save copy of journal file"
+      "dbstat:db tables"
       "journal:save and truncate journal file"
+      "logstat:report sizes of log files"
       "stop:stop the server")
     _describe -t commands 'Perforce admin command' adcmds
-  elif [[ $words[2] == (checkpoint|journal) ]]; then
-    shift words
-    (( CURRENT-- ))
-    _arguments -s : \
-      '-z[gzip journal file]' \
-      '1::journal file prefix: '
+  else
+    case $words[2] in
+      (checkpoint|journal)
+      shift words
+      (( CURRENT-- ))
+      _arguments -s : \
+	'-z[gzip journal file]' \
+	'1::journal file prefix: '
+      ;;
+
+      (dbstat)
+      shift words
+      (( CURRENT -- ))
+      _arguments -s : \
+	'-s[show sizes]'
+    esac
   fi
 }
 
@@ -1599,6 +1674,7 @@
 (( $+functions[_perforce_cmd_branches] )) ||
 _perforce_cmd_branches() {
   _arguments -s : \
+    '-e[limit by wildcard]:wildcard on branches: ' \
     '-u+[select by user]:user:_perforce_users' \
     '-m+[set maximum to show]:max branches: '
 }
@@ -1643,7 +1719,7 @@
     '-L[long output, truncated change text]' \
     '-c+[select by client]:client:_perforce_clients' \
     '-m+[most recent N changes]:max changes: ' \
-    '-s+[select by status]:status:(pending submitted)' \
+    '-s+[select by status]:status:(pending shelved submitted)' \
     '-u+[select by user]:user:_perforce_users' \
     '*::file:_perforce_files -tR'
 }
@@ -1670,6 +1746,7 @@
 (( $+functions[_perforce_cmd_clients] )) ||
 _perforce_cmd_clients() {
   _arguments -s : \
+    '-e[limit by wildcard]:wildcard on clients: ' \
     '-u+[select by user]:user:_perforce_users' \
     '-m+[set maximum to show]:max clients: '
 }
@@ -1680,8 +1757,9 @@
   _arguments -s : \
     '-d[delete counter]' \
     '-f[force setting of internal counter]' \
+    '-i[increment by one atomically]' \
     '1:counter:_perforce_counters' \
-    '(-d)2::numeric value:_perforce_counter_values'
+    '(-d -i)2::numeric value:_perforce_counter_values'
 }
 
 
@@ -1692,6 +1770,33 @@
 }
 
 
+(( $+functions[_perforce_cmd_cstat] )) ||
+_perforce_cmd_cstat() {
+  _arguments -s : \
+  '*::file:_perforce_files'
+}
+
+
+(( $+functions[_perforce_cmd_dbschema] )) ||
+_perforce_cmd_dbschema() {
+  if [[ $PREFIX = *:* ]]; then
+    _message 'table version'
+  else
+    _perforce_dbtables
+  fi
+}
+
+
+(( $+functions[_perforce_cmd_dbstat] )) ||
+_perforce_cmd_dbstat() {
+  _arguments -s : \
+  '(-s)-h[histogram of leaf pages in DB table]' \
+  '(-s)-a[all tables]' \
+  '(-h -a)-s[report sizes of tables]' \
+  '(-s -a)*::DB table:_perforce_dbtable'
+}
+
+
 (( $+functions[_perforce_cmd_delete] )) ||
 _perforce_cmd_delete() {
   _arguments -s : \
@@ -1723,6 +1828,7 @@
   _arguments -s : \
     '-d-[select diff option]:diff option:((b\:ignore\ blanks c\:context n\:RCS s\:summary u\:unified w\:ignore\ all\ whitespace))' \
     '-s[short form]' \
+    '-S[show shelved changes]' \
     '*::change:_perforce_changes'
 }
 
@@ -1772,20 +1878,36 @@
 _perforce_cmd_edit() {
   _arguments -s : \
     '-c[set change for edit]:change:_perforce_changes -tc' \
+    '-k[no resync from server]' \
     '-n[show files to edit without opening them]' \
     '-t[set filetype]:filetype:_perforce_filetypes' \
     '*::file:_perforce_files'
 }
 
 
+(( $+functions[_perforce_cmd_export] )) ||
+_perforce_cmd_export() {
+  _arguments -s : \
+    '(-j)-c[specify checkpoint number (/ position)]:checkpoint number: ' \
+    '(-c)-j[specify journal number (/ position)]:journal number: ' \
+    '(-j)-f[reformat non-textual data types]' \
+    '(-j)-l[specify number of lines]:number of lines: ' \
+    '(-j)-F[specify filter]:filter pattern: ' \
+    '(-c)-r[raw format]' \
+    '-J[specify file prefix]:file prefix: '
+}
+
+
 (( $+functions[_perforce_cmd_filelog] )) ||
 _perforce_cmd_filelog() {
   _arguments -s : \
+    '-c[select by changelist]:change:_perforce_changes -ts' \
     '-h[follow branc/copy from records]' \
     '-i[follow branches]' \
     '-l[long output, full change text]' \
     '-L[long output, truncated change text]' \
     '-m[set maximum number of revisions to show]:max revisions: ' \
+    '-s[short output]' \
     '-t[include time with date]' \
     '*::file:_perforce_files'
 }
@@ -1858,19 +1980,45 @@
     '-c+[affected since change]:change:_perforce_changes -ts' \
     '-e+[affected by change]:change:_perforce_changes -ts' \
     '-C[select mapped files (-Rc)]' \
+    '-F[pick filter for files]:filter:_perforce_fstat_fields -tv' \
     '-H[select synced files (-Rh)]' \
     '-W[select opened files (-Ro)]' \
     '-l[include fileSize, possibly slow (-Ol)]' \
     '-m[set max files to show]:max files: ' \
     "-O-[select output type]:output type:((f\:all\ revisions l\:fileSize p\:client\ path\ format r\:pending\ integrations s\:exclude\ local\ path$Oattr))" \
     '-P[output clientFile in full Perforce syntax (deprecated: use -Op)]' \
-    '-R-[restrict selected files]:restriction:((c\:mapped\ in\ client h\:synced\ to\ client n\:not\ synced\ to\ head o\:opened r\:resolved u\:unresolved))' \
+    '-r[show in reverse order]' \
+    '-R-[restrict selected files]:restriction:((c\:mapped\ in\ client h\:synced\ to\ client n\:not\ synced\ to\ head o\:opened r\:resolved s\:shelved u\:unresolved))' \
     '-s[shorten, no client-related data (deprecated: use -Os)]' \
+    '-S-[changes sort order]:sort criterion:((t\:filetype d\:date r\:head\ revision h\:have\ revision s\:filesize))' \
+    '-T[select output fields]:output field:_perforce_fstat_fields' \
     $Aattr \
     '*::file:_perforce_files'
 }
 
 
+(( $+functions[_perforce_cmd_grep] )) ||
+_perforce_cmd_grep() {
+  _arguments -s : \
+    '-a[search all revisions]' \
+    '-i[case insensitive match]' \
+    '-n[display matching line]' \
+    '-v[display file name]' \
+    '-F[interpret as fixed string]' \
+    '-G[interpret as regexp (default)]' \
+    '-L[list non-matching file/revisions]' \
+    '-l[list matching file/revisions]' \
+    '-s[suppresses errors on long lines]' \
+    '-t[treat all files as text]' \
+    '-A[]:trailing context lines: ' \
+    '-V[]:leading context lines: ' \
+    '-C[]:context lines: ' \
+    '1:-e required before pattern:(-e)' \
+    '2:pattern: ' \
+    '*::file:_perforce_files'
+}
+
+
 (( $+functions[_perforce_cmd_group] )) ||
 _perforce_cmd_group() {
   _arguments -s : \
@@ -1912,7 +2060,7 @@
       fi
     done
     if [[ -z ${_perforce_help_list[(r)undoc:*]} ]]; then
-      _perforce_help_list+=("undoc:Help for otherwise undocumented features")
+      _perforce_help_list+=("undoc:help for otherwise undocumented features")
     fi
   fi
   _describe -t help-options 'Perforce help option' _perforce_help_list
@@ -1955,6 +2103,11 @@
 }
 
 
+(( $+functions[_perforce_cmd_integ] )) ||
+_perforce_cmd_integ() {
+  _perforce_cmd_integrate "$@"
+}
+
 (( $+functions[_perforce_cmd_integrated] )) ||
 _perforce_cmd_integrated() {
   _arguments -s : \
@@ -2041,7 +2194,9 @@
 (( $+functions[_perforce_cmd_labels] )) ||
 _perforce_cmd_labels() {
   _arguments -s : \
+    '-e[limit by wildcard]:label wildcard: ' \
     '-m+[set maximum to show]:max labels: ' \
+    '-t[output time as well as date]' \
     '-u+[select by user]:user:_perforce_users' \
     '1::file or revisions which must contain label:_perforce_files -tR'
 }
@@ -2074,6 +2229,12 @@
 }
 
 
+(( $+functions[_perforce_cmd_lockstat] )) ||
+_perforce_cmd_lockstat() {
+  _message 'no arguments'
+}
+
+
 (( $+functions[_perforce_cmd_logger] )) ||
 _perforce_cmd_logger() {
   _arguments -s : \
@@ -2100,6 +2261,21 @@
 }
 
 
+(( $+functions[_perforce_cmd_logstat] )) ||
+_perforce_cmd_logstat() {
+  _message 'no arguments'
+}
+
+
+(( $+functions[_perforce_cmd_logtail] )) ||
+_perforce_cmd_logtail() {
+  _arguments -s : \
+    '-b[specify block size, default 8192]:block size: ' \
+    '-s[specify start offset]:offset: ' \
+    '-m[specify max blocks]:max blocks: '
+}
+
+
 (( $+functions[_perforce_cmd_monitor] )) ||
 _perforce_cmd_monitor() {
   if (( CURRENT > 2 )); then
@@ -2132,6 +2308,19 @@
 }
 
 
+(( $+functions[_perforce_cmd_move] )) ||
+_perforce_cmd_move() {
+  _arguments -s : \
+    '-c[specify new change list]:change:_perforce_changes -tc' \
+    '-f[force move when already synced]' \
+    '-k[no resync from server]' \
+    '-t[specify new file type]:filetype:_perforce_filetypes' \
+    '-n[show files to move without moving them]' \
+    '1::source file, wildcards allowed:_perforce_files -to' \
+    '2::destination file, wildcards match source:_perforce_files'
+}
+
+
 (( $+functions[_perforce_cmd_obliterate] )) ||
 _perforce_cmd_obliterate() {
     if [[ ${words[(I)-y]} -gt 0 ]]; then
@@ -2156,6 +2345,7 @@
     '-c+[select by change]:change:_perforce_changes -tc' \
     '-C[select by client]:client:_perforce_clients' \
     '-m[max files to show]:max files: ' \
+    '-u[select by user]:user name:_perforce_users' \
     '*::file:_perforce_files -to'
 }
 
@@ -2208,6 +2398,20 @@
 }
 
 
+(( $+functions[_perforce_cmd_replicate] )) ||
+_perforce_cmd_replicate() {
+  _arguments -s : \
+    '-i[specify interval in seconds]:interval: ' \
+    '-j[specify journal number (/ position)]:journal number: ' \
+    '-J[specify file prefix]:file prefix: ' \
+    '-k[keep pipe open]' \
+    '-o[specify output file]:output file:_files' \
+    '-s[specify file to track state]:state file:_files' \
+    '-x[terminate when journal rotates]' \
+    '*::->_command'
+}
+
+
 (( $+functions[_perforce_cmd_resolve] )) ||
 _perforce_cmd_resolve() {
   _arguments -s : \
@@ -2267,12 +2471,25 @@
 }
 
 
+(( $+functions[_perforce_cmd_shelve] )) ||
+_perforce_cmd_shelve() {
+  _arguments -s : \
+    '(-i)-c[specify changlist if not default]:change:_perforce_changes -tc' \
+    '(-i -r)-d[delete shelved files]' \
+    '(-r)-f[force by admin user or force to overwrite]' \
+    '(-c)-i[read from standard input]' \
+    '(-d)-r[replace shelved files in changelist]' \
+    '(-i -r)*::file:_perforce_files -to'
+}
+
+
 (( $+functions[_perforce_cmd_sizes] )) ||
 _perforce_cmd_sizes() {
   _arguments -s : \
     '-a[show for all revisions]' \
     '-b[set blocksize]:blocksize in bytes: ' \
     '-s[sum the file sizes]' \
+    '-S[show sizes of shelved files]' \
     '*:file:_perforce_files -tR'
 }
 
@@ -2321,6 +2538,13 @@
 }
 
 
+(( $+functions[_perforce_cmd_tickets] )) ||
+_perforce_cmd_tickets() {
+  # No arguments.
+  _arguments -s :
+}
+
+
 (( $+functions[_perforce_cmd_triggers] )) ||
 _perforce_cmd_triggers() {
   _arguments -s : \
@@ -2329,13 +2553,6 @@
 }
 
 
-(( $+functions[_perforce_cmd_tickets] )) ||
-_perforce_cmd_tickets() {
-  # No arguments.
-  _arguments -s :
-}
-
-
 (( $+functions[_perforce_cmd_typemap] )) ||
 _perforce_cmd_typemap() {
   _arguments -s : \
@@ -2353,6 +2570,17 @@
 }
 
 
+(( $+functions[_perforce_cmd_unshelve] )) ||
+_perforce_cmd_unshelve() {
+  _arguments -s : \
+    '-s[specify shelving change]:change:_perforce_changes -tS' \
+    '-c[specify change for unshelve]:change:_perforce_changes -tc' \
+    '-f[force clobbering of writeable files]' \
+    '-n[preview unshelve]' \
+    '*::file, pattern allowed:_perforce_files'
+}
+
+
 (( $+functions[_perforce_cmd_user] )) ||
 _perforce_cmd_user() {
   _arguments -s : \
@@ -2379,6 +2607,7 @@
     '-q[operate quietly]' \
     '-u[compute and save digest if missing]' \
     '-v[compute and save all digets]' \
+    '-z[skip duplicates]' \
     '*::file:_perforce_files -tR'
 }
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_pkgadd zsh-4.3.11/Completion/Unix/Command/_pkgadd
--- zsh-4.3.10/Completion/Unix/Command/_pkgadd	2008-07-21 21:15:25.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_pkgadd	2010-06-06 15:44:12.000000000 +0200
@@ -2,30 +2,30 @@
 
 _pkgadd_pass() {
 	_values -S : 'password descriptor' \
-	'(file env console)pass[Literal password]:password:' \
-	'(pass file console)env[Environment variable]:environment:_parameters -g "*export*"' \
-	'(pass env console)file[File]:file:_files' \
-	'(pass env file)console[From /dev/tty]'
+	'(file env console)pass[literal password]:password:' \
+	'(pass file console)env[environment variable]:environment:_parameters -g "*export*"' \
+	'(pass env console)file[file]:file:_files' \
+	'(pass env file)console[from /dev/tty]'
 }
 
 _pkgadd() {
 	_arguments -s \
-	'-d[Device]:device file:_files' \
+	'-d[device]:device file:_files' \
 	'-x[HTTP(S) proxy]:HTTP proxy: ' \
-	'-k[Keystore]:keystore:_files' \
-	'-P[Password to decrypt keystore]:password:_pkgadd_pass' \
-	'-Y[Select packages by category]:category: ' \
+	'-k[keystore]:keystore:_files' \
+	'-P[password to decrypt keystore]:password:_pkgadd_pass' \
+	'-Y[select packages by category]:category: ' \
 	- set1 \
-	'-n[Non-interactive mode]' \
-	'-v[Trace all scripts]' \
-	'-a[Admin file]:admin file:_files' \
-	"-M[Don't use vfstab file]" \
-	'-R[Root path]:root path:_files -/' \
-	'-r[Response file]:response file:_files' \
-	'-V[Alternate vfstab file]:vfstab file:_files' \
+	'-n[non-interactive mode]' \
+	'-v[trace all scripts]' \
+	'-a[admin file]:admin file:_files' \
+	"-M[don't use vfstab file]" \
+	'-R[root path]:root path:_files -/' \
+	'-r[response file]:response file:_files' \
+	'-V[alternate vfstab file]:vfstab file:_files' \
 	'*:package instance:_pkg_instance --_opts uninstalled:-d' \
 	- set2 \
-	'-s[Spool package]:spool directory:_files -/' \
+	'-s[spool package]:spool directory:_files -/' \
 	'*:package instance:_pkg_instance --_opts uninstalled:-d'
 }
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_pkginfo zsh-4.3.11/Completion/Unix/Command/_pkginfo
--- zsh-4.3.10/Completion/Unix/Command/_pkginfo	2008-07-21 21:15:25.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_pkginfo	2010-06-06 15:44:12.000000000 +0200
@@ -2,20 +2,20 @@
 
 _pkginfo() {
 	_arguments -s \
-	'(-q -r -x)-l[Long listing]' \
-	'(-l -r -x)-q[Quiet mode]' \
-	'(-l -q -x)-r[Relocation base]' \
-	'(-l -q -r)-x[Extracted listing]' \
-	'-c[Category]:category: ' \
-	'-a[Architecture]:architecture: ' \
-	'-v[Version]:version: ' \
+	'(-q -r -x)-l[long listing]' \
+	'(-l -r -x)-q[quiet mode]' \
+	'(-l -q -x)-r[relocation base]' \
+	'(-l -q -r)-x[extracted listing]' \
+	'-c[category]:category: ' \
+	'-a[architecture]:architecture: ' \
+	'-v[version]:version: ' \
 	- set1 \
-	'(-p)-i[Select completely installed packages]' \
-	'(-i)-p[Select partially installed packages]' \
-	'-R[Root path]:root path:_files -/' \
+	'(-p)-i[select completely installed packages]' \
+	'(-i)-p[select partially installed packages]' \
+	'-R[root path]:root path:_files -/' \
 	'*:package instance:_pkg_instance --_opts installed:set1--R' \
 	- set2 \
-	'-d[Device]:device file:_files' \
+	'-d[device]:device file:_files' \
 	'*:package instance:_pkg_instance --_opts uninstalled:set2--d'
 }
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_pkgrm zsh-4.3.11/Completion/Unix/Command/_pkgrm
--- zsh-4.3.10/Completion/Unix/Command/_pkgrm	2008-07-21 21:15:25.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_pkgrm	2010-06-06 15:44:12.000000000 +0200
@@ -2,18 +2,18 @@
 
 _pkgrm() {
 	_arguments -s \
-	'-Y[Select packages by category]:category: ' \
+	'-Y[select packages by category]:category: ' \
 	- set1 \
-	'-n[Non-interactive mode]' \
-	'-v[Trace all scripts]' \
-	'-a[Admin file]:admin file:_files' \
-	"-A[Force removal of all files]" \
-	"-M[Don't use vfstab file]" \
-	'-R[Root path]:root path:_files -/' \
-	'-V[Alternate vfstab file]:vfstab file:_files' \
+	'-n[non-interactive mode]' \
+	'-v[trace all scripts]' \
+	'-a[admin file]:admin file:_files' \
+	"-A[force removal of all files]" \
+	"-M[don't use vfstab file]" \
+	'-R[root path]:root path:_files -/' \
+	'-V[alternate vfstab file]:vfstab file:_files' \
 	'*:package instance:_pkg_instance --_opts installed:set1--R' \
 	- set2 \
-	'-s[Spool package]:spool directory:_files -/' \
+	'-s[spool package]:spool directory:_files -/' \
 	'*:package instance:_pkg_instance --_opts spooled:set2--s'
 }
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_ri zsh-4.3.11/Completion/Unix/Command/_ri
--- zsh-4.3.10/Completion/Unix/Command/_ri	2006-11-01 03:58:08.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_ri	2009-11-11 17:26:00.000000000 +0100
@@ -6,19 +6,81 @@
 _arguments \
   '(- *)'{-h,--help}'[print help information and exit]' \
   '(- *)'{-v,--version}'[display the version of ri]' \
-  '(-c --classes)'{-c,--classes}'[display the names of classes and modules we know about]' \
-  '(-d --doc-dir)'{-d,--doc-dir}'[directory to search for documentation]:ri doc directory:_files -/' \
-  '(-f --format)'{-f,--format}'[format to use when displaying output]:output format:(ansi bs html plain simple)' \
-  '(-l --list-names)'{-l,--list-names}'[list all the names known to RDoc]' \
+  '*'{-d,--doc-dir}'[directory to search for documentation]:ri doc directory:_files -/' \
+  '(-f --fmt --format)'{-f,--fmt,--format}'[format to use when displaying output]:output format:(ansi bs html plain simple)' \
   '(-T --no-pager)'{-T,--no-pager}'[send output directly to stdout]' \
+  '(-i, --interactive)'{-i,--interactive}'[interactive mode]' \
+  '--list-doc-dirs[list the directories from which ri will source documentation]' \
   '(-w --width)'{-w,--width}'[set the width of the output]:output width:' \
+  '--no-standard-docs[do not include documentation from the Ruby standard library, site_lib, installed gems, or ~/.rdoc]' \
+  '(--no-use-cache --use-cache)--'{no-,}'use-cache[whether or not to use ri'\''s cache]' \
+  '(--no-system --system)--'{no-,}'system[include documentation from Ruby'\''s standard library]' \
+  '(--no-site --site)--'{no-,}'site[include documentation from libraries installed in site_lib]' \
+  '(--no-gems --gems)--'{no-,}'gems[include documentation from RubyGems]' \
+  '(--no-home --home)--'{no-,}'home[include documentation stored in ~/.rdoc]' \
   '*:ri name:->ri-name' && ret=0
 
 if [[ "$state" = ri-name ]]; then
-    local ri_names expl
+  local -a ri_dirs ri_names ri_wants ri_names
+  local class_dir esc_name dir curtag tag descr expl
 
-    ri_names=( ${(f)"$( _call_program ri-names "$words[1]" ${(v)opt_args[(I)(-d|--doc-dir)]:+-d "${(v)opt_args[(I)(-d|--doc-dir)]}"} -l -T )"} )
-    _wanted ri-names expl "ri name" compadd -a ri_names && ret=0
+  ret=1
+
+  if "ruby${words[1]#ri}" -rrdoc/ri/ri_options.rb -e 1 >/dev/null 2>&1; then
+    # Old-style Ruby 1.8.x RI
+    ri_dirs=( ${(f)"$(_call_program ri-names "ruby${words[1]#ri}" -rrdoc/ri/ri_options -e '"o = RI::Options.instance; o.parse(ARGV); o.path.each { |p| puts p }"' -- ${(kv)opt_args[(I)-d|--doc-dir|--(system|site|gems|home)]})"} )
+  else
+    # New-style Ruby 1.9+ RI
+    ri_dirs=( ${(f)"$(_call_program ri-names "$words[1]" ${(kv)opt_args[(I)-d|--doc-dir|--((no-|)(system|site|gems|home)|standard-docs)]} --list-doc-dirs -f plain -T)"} )
+  fi
+
+  if compset -P '?*(::|\#|.)'; then
+    class_dir=${IPREFIX//(::|\#|.)/\/}
+    #else
+    #	:
+  fi
+  esc_name=${${(Q)PREFIX}//(#b)([^A-Za-z0-9_])/$(printf %%%x ${(qq)match[1]})}
+
+  case "$IPREFIX" in
+    (*::) ri_wants=( 'classes:class names' 'class-methods:class methods' );;
+    (*\#) ri_wants=( 'instance-methods:instance methods' );;
+    (*.) ri_wants=( 'class-methods:class methods' 'instance-methods:instance methods' );;
+    (*) ri_wants=( 'classes:class names' )
+  esac
+
+  for curtag in $ri_wants; do
+    tag=${curtag%%:*}
+    descr=${curtag#*:}
+
+    _tags "$tag"
+    while _tags; do
+      while _next_label "$tag" expl "$descr"; do
+        ri_wants=()
+        case "$tag" in
+          (classes)
+          for dir in $ri_dirs[@]; do
+            ri_wants+=( $dir/$class_dir*(-/:t) )
+          done
+          ;;
+          (class-methods)
+          for dir in $ri_dirs[@]; do
+            fnames=( $dir/$class_dir*-c.yaml(-.:t) )
+            ri_wants+=( ${${fnames%-c.yaml}//(#b)%(??)/$(print "\\x$match[1]")} )
+          done
+          ;;
+          (instance-methods)
+          for dir in $ri_dirs[@]; do
+            fnames=( $dir/$class_dir*-i.yaml(-.:t) )
+            ri_wants+=( ${${fnames%-i.yaml}//(#b)%(??)/$(print "\\x$match[1]")} )
+          done
+          ;;
+        esac
+        ri_names=( ${(Q)ri_wants} )
+        compadd -S '' -d ri_names -a "$expl[@]" ri_wants && ret=0
+      done
+      (( ret )) || break
+    done
+  done
 fi
 
-return $ret
+return ret
diff -Nru zsh-4.3.10/Completion/Unix/Command/_rm zsh-4.3.11/Completion/Unix/Command/_rm
--- zsh-4.3.10/Completion/Unix/Command/_rm	2008-11-24 10:53:44.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_rm	2009-11-12 05:19:42.000000000 +0100
@@ -5,7 +5,7 @@
   '(-f --force)'{-f,--force}'[ignore nonexistent files, never prompt]'
   '(-I --interactive)-i[prompt before every removal]'
   '(-r -R --recursive)'{-r,-R,--recursive}'[remove directories and their contents recursively]'
-  '*:files:->file'
+  '*::files:->file'
 )
 if _pick_variant gnu=gnu unix --help; then
   opts+=(-S)
@@ -33,7 +33,11 @@
 case $state in
   (file)
     declare -a ignored
-    ignored=(${line//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
+    ignored=()
+    ((CURRENT > 1)) &&
+      ignored+=(${line[1,CURRENT-1]//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
+    ((CURRENT < $#line)) &&
+      ignored+=(${line[CURRENT+1,-1]//(#m)[\[\]()\\*?#<>~\^]/\\$MATCH})
     _files -F ignored && ret=0
     ;;
 esac
diff -Nru zsh-4.3.10/Completion/Unix/Command/_rsync zsh-4.3.11/Completion/Unix/Command/_rsync
--- zsh-4.3.10/Completion/Unix/Command/_rsync	2009-04-16 11:58:36.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_rsync	2009-12-13 19:22:56.000000000 +0100
@@ -207,7 +207,7 @@
   '--compress-level=[explicitly set compression level]:number' \
   '--skip-compress=[skip compressing files with a listed suffix]:suffixes' \
   '(-C --cvs-exclude)'{-C,--cvs-exclude}'[auto-ignore files the same way CVS does]' \
-  '*'{-f,--filter=}'[add a file-filtering rule]:rule' \
+  '*'{-f=,--filter=}'[add a file-filtering rule]:rule' \
   '*-F[same as --filter="dir-merge /.rsync-filter", repeated: --filter="- .rsync-filter"]' \
   '--exclude-from=[read exclude patterns from specified file]:file:_files' \
   '*--exclude=[exclude files matching pattern]:pattern' \
@@ -217,8 +217,7 @@
   '(-0 --from0)'{-0,--from0}'[all *-from file lists are delimited by nulls]' \
   '(-s --protect-args)'{-s,--protect-args}'[no space-splitting; only wildcard special-chars]' \
   '--version[print version number]' \
-  '(-h --human-readable --si)'{-h,--human-readable}'[output numbers in a human-readable format]' \
-  '(-h --human-readable)--si[like --human-readable, but use powers of 1000]' \
+  '*'{-h,--human-readable}'[output numbers in a human-readable format]' \
   '--blocking-io[use blocking I/O for the remote shell]' \
   '--no-blocking-io[turn off --blocking-io]' \
   '--stats[give some file-transfer stats]' \
diff -Nru zsh-4.3.10/Completion/Unix/Command/_rubber zsh-4.3.11/Completion/Unix/Command/_rubber
--- zsh-4.3.10/Completion/Unix/Command/_rubber	2005-07-25 11:29:12.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_rubber	2010-07-13 10:53:14.000000000 +0200
@@ -2,7 +2,7 @@
 
 local _rubber_version _rubber_path _rubber_modules _rubber_args
 
-eval $(rubber --version | sed 's/^.* \([^ ]*\): */_rubber_\1=/')
+eval $(rubber --version 2>/dev/null | sed 's/^.* \([^ ]*\): */_rubber_\1=/')
 if [[ ${_rubber_version#0} != $_rubber_version ]]; then
   _rubber_modules=(
     $_rubber_path/rubber/modules/[^_]*.py(N:r:t)
diff -Nru zsh-4.3.10/Completion/Unix/Command/_ruby zsh-4.3.11/Completion/Unix/Command/_ruby
--- zsh-4.3.10/Completion/Unix/Command/_ruby	2005-07-18 11:28:06.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_ruby	2009-12-01 20:34:04.000000000 +0100
@@ -8,7 +8,7 @@
 local -a args opts
 
 args=(
-  '(-)1:script file:_files -g "*.rb(-.)"'
+  '(-)1:script file:_files'
   '*::script argument: _normal'
 )
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_screen zsh-4.3.11/Completion/Unix/Command/_screen
--- zsh-4.3.10/Completion/Unix/Command/_screen	2009-04-16 12:01:00.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_screen	2010-10-19 14:57:00.000000000 +0200
@@ -81,7 +81,7 @@
   '-DR: :->any-sessions' \
   '-dR: :->any-sessions' \
   '-s[shell to execute rather than $SHELL]:shell name: _command_names -e' \
-  '-S[name this session .sockname instead of ..]:session name' \
+  '-S[name this session .sockname instead of ..]:session name:->any-sessions' \
   "-t[set title (window's name)]:title" \
   '-T[use term as $TERM for windows, rather than "screen"]:terminal type:_terminals' \
   '-U[tell screen to use UTF-8 encoding]' \
diff -Nru zsh-4.3.10/Completion/Unix/Command/_service zsh-4.3.11/Completion/Unix/Command/_service
--- zsh-4.3.10/Completion/Unix/Command/_service	1970-01-01 01:00:00.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_service	2010-04-20 10:59:32.000000000 +0200
@@ -0,0 +1,31 @@
+#compdef service
+
+# *:: for last argument looks more like a hack but it is
+# the simplest way known to me to reset $words and keep
+# _sub_command happy
+
+# we are interested in init service only
+local ctx="${curcontext}argument-1:"
+zstyle -T  ":completion:${ctx}" tag-order && \
+  zstyle ":completion:${ctx}" tag-order init
+
+
+if [[ $OSTYPE = freebsd* ]]; then
+  _arguments -s \
+    '(-)-e[show services that are enabled]' \
+    '(-)-l[list all scripts in /etc/rc.d and the local startup directory]' \
+    '(-)-r[show the results of boot time rcorder]' \
+    '(-)-v[verbose]' \
+    ':service name:_services' \
+    '*::service argument:_init_d'
+else
+  _arguments -s \
+    '(-d --debug)'{-d,--debug}'[turn debugging on]' \
+    '(- :)'{-h,--help}'[print usage]' \
+    '(- :)'{-v,--version}'[print version]' \
+    '(-)'{-f,--full-restart}'[restart service]' \
+    '(- :)'{-R,--full-restart-all}'[restart all services]' \
+    '(- :)'{-s,--status-all}'[print status of all services]' \
+    ':service name:_services' \
+    '*::service argument: _init_d'
+fi
diff -Nru zsh-4.3.10/Completion/Unix/Command/_setfacl zsh-4.3.11/Completion/Unix/Command/_setfacl
--- zsh-4.3.10/Completion/Unix/Command/_setfacl	2009-01-29 17:27:36.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_setfacl	2010-10-12 10:43:50.000000000 +0200
@@ -30,5 +30,6 @@
   '--restore=[restore ACLs]:file:_files' \
   '--test[test mode (ACLs are not modified)]' \
   '--version[print version and exit]' \
-  '--help[this help text]'
+  '--help[this help text]' \
+  '*: :_files'
 fi
diff -Nru zsh-4.3.10/Completion/Unix/Command/_sisu zsh-4.3.11/Completion/Unix/Command/_sisu
--- zsh-4.3.10/Completion/Unix/Command/_sisu	2006-08-21 19:08:27.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_sisu	2010-06-06 15:44:12.000000000 +0200
@@ -39,7 +39,7 @@
   '(--convert --to -C)-X[XML dom style]' \
   '(--convert --to -C)-x[XML sax style]' \
   '(--convert --to -C)-y[output summary page, manifest of existing generated output]' \
-  '(--convert --to -C)-Z[Zap delete/destroy output]' \
+  '(--convert --to -C)-Z[zap delete/destroy output]' \
   '--import[-\[Dd\] imports document to database]' \
   '--update[-\[Dd\] updates document in database]' \
   '--remove[-\[Dd\] removes document from database]' \
diff -Nru zsh-4.3.10/Completion/Unix/Command/_sqsh zsh-4.3.11/Completion/Unix/Command/_sqsh
--- zsh-4.3.10/Completion/Unix/Command/_sqsh	2007-04-13 11:19:48.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_sqsh	2010-06-06 15:44:12.000000000 +0200
@@ -15,37 +15,37 @@
 }
 
 _arguments : \
-    '-A[Adjust TDS packet size (512)]:packet size (bytes):(512 1024 1536 2048)' \
-    '-B[Turn off file buffering on startup]' \
-    '-C[Send sql statment to server]:sql' \
-    '-D[Change database context on startup]:database' \
-    '-E[Replace default editor (vi)]:editor' \
-    '-H[Set the client hostname]:reported hostname' \
-    '-I[Alternate interfaces file]:interface file:_files' \
-    '-J[Client character set]:charset' \
-    '*-L[Set the value of a given variable]:variable=value' \
+    '-A[adjust TDS packet size (512)]:packet size (bytes):(512 1024 1536 2048)' \
+    '-B[turn off file buffering on startup]' \
+    '-C[send sql statment to server]:sql' \
+    '-D[change database context on startup]:database' \
+    '-E[replace default editor (vi)]:editor' \
+    '-H[set the client hostname]:reported hostname' \
+    '-I[alternate interfaces file]:interface file:_files' \
+    '-J[client character set]:charset' \
+    '*-L[set the value of a given variable]:variable=value' \
     '-P[Sybase password (NULL)]:password' \
-    '-S[Name of Sybase server (\$DSQUERY)]:_sybase_server' \
-    '-U[Name of Sybase user]:username' \
-    '-X[Enable client password encryption]' \
-    '-a[Max. # of errors before abort]:number' \
-    '-b[Suppress banner message on startup]' \
-    '*-c[Alias for the ''go'' command]:go alias' \
-    '-d[Min. severity level to display]:severity level (0-22)' \
-    '-e[Echo batch prior to executing]' \
-    '-f[Min. severity level for failure]:failure severity' \
-    '-h[Disable headers and footers]' \
-    '-i[Read input from file]:_files' \
-    '-k[Specify alternate keywords file]:_files' \
-    '-l[Set debugging level]' \
-    '-m[Set display mode (normal)]:display style:(horiz vert bcp html meta pretty none)' \
-    '-n[Set chained transaction mode]:chained transaction mode:(on off)' \
-    '-o[Direct all output to file]:_files' \
-    '-p[Display performance stats]' \
-    '-r[Specify name of .sqshrc]:_files' \
-    '-s[Alternate column separator (\t)]:column separator' \
-    '-t[Filter batches through program]:filter program:_files -g "*(*)"' \
-    '-v[Display current version and exit]' \
-    '-w[Adjust result display width]:number' \
-    '-y[Override value of $SYBASE]:_directories' \
-    '-z[Alternate display language]:language'
+    '-S[name of Sybase server (\$DSQUERY)]:_sybase_server' \
+    '-U[name of Sybase user]:username' \
+    '-X[enable client password encryption]' \
+    '-a[max. # of errors before abort]:number' \
+    '-b[suppress banner message on startup]' \
+    '*-c[alias for the ''go'' command]:go alias' \
+    '-d[min. severity level to display]:severity level (0-22)' \
+    '-e[echo batch prior to executing]' \
+    '-f[min. severity level for failure]:failure severity' \
+    '-h[disable headers and footers]' \
+    '-i[read input from file]:_files' \
+    '-k[specify alternate keywords file]:_files' \
+    '-l[set debugging level]' \
+    '-m[set display mode (normal)]:display style:(horiz vert bcp html meta pretty none)' \
+    '-n[set chained transaction mode]:chained transaction mode:(on off)' \
+    '-o[direct all output to file]:_files' \
+    '-p[display performance stats]' \
+    '-r[specify name of .sqshrc]:_files' \
+    '-s[alternate column separator (\t)]:column separator' \
+    '-t[filter batches through program]:filter program:_files -g "*(*)"' \
+    '-v[display current version and exit]' \
+    '-w[adjust result display width]:number' \
+    '-y[override value of $SYBASE]:_directories' \
+    '-z[alternate display language]:language'
diff -Nru zsh-4.3.10/Completion/Unix/Command/_ssh zsh-4.3.11/Completion/Unix/Command/_ssh
--- zsh-4.3.10/Completion/Unix/Command/_ssh	2009-05-05 10:46:56.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_ssh	2010-01-07 15:02:59.000000000 +0100
@@ -77,7 +77,7 @@
       '(-x -Y)-X[enable (untrusted) X11 forwarding]' \
       '(-x -X)-Y[enable trusted X11 forwarding]' \
       '-M[master mode for connection sharing]' \
-      '-S:path to control socket:_files' \
+      '-S+:path to control socket:_files' \
       '-O:multiplex control command:(check exit)' \
       '*-L[specify local port forwarding]:local port forwarding:->forward' \
       '*-R[specify remote port forwarding]:remote port forwarding:->forward' \
diff -Nru zsh-4.3.10/Completion/Unix/Command/_stgit zsh-4.3.11/Completion/Unix/Command/_stgit
--- zsh-4.3.10/Completion/Unix/Command/_stgit	2009-05-26 11:41:14.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_stgit	2010-02-16 16:59:22.000000000 +0100
@@ -2,53 +2,7 @@
 
 typeset -a subcmds
 
-subcmds=(
-  'help:print the detailed command usage'
-  'version:display version information'
-  'copyright:display copyright information'
-  'clone:make a local clone of a remote repository'
-  'id:print the GIT hash value of a StGIT reference'
-  'applied:print the applied patches'
-  'branch:manage patch stacks'
-  'clean:delete the empty patches in the series'
-  'commit:permanently store the applied patches into stack base'
-  'float:push patches to the top, even if applied'
-  'goto:push or pop patches to the given one'
-  'hide:hide a patch in the series'
-  'init:initialise the current branch for use with StGIT'
-  'patches:show the applied patches modifying a file'
-  'pop:pop one or more patches from the stack'
-  'pull:pull the changes from the remote repository'
-  'push:push one or more patches onto of the stack'
-  'rebase:move the stack base to another point in history'
-  'repair:Fix StGit metadata if branch was modified with git commands'
-  'series:print the patch series'
-  'sink:send patches deeper down the stack'
-  'top:print the name of the top patch'
-  'unapplied:print the unapplied patches'
-  'uncommit:turn regular GIT commits into StGIT patches'
-  'unhide:unhide a hidden patch in the series'
-  'delete:delete patches'
-  'edit:edit a patch description or diff'
-  'export:exports patches to a directory'
-  'files:show the files modified by a patch (or the current patch)'
-  'fold:integrate a GNU diff patch into the current patch'
-  'import:import a GNU diff file as a new patch'
-  'log:display the patch changelog'
-  'mail:send a patch or series of patches by e-mail'
-  'new:create a new patch and make it the topmost one'
-  'pick:import a patch from a different branch or a commit object'
-  'refresh:generate a new commit for the current patch'
-  'rename:rename a patch in the series'
-  'show:show the commit corresponding to a patch (or the current patch)'
-  'sync:synchronise patches with a branch or a series'
-  'add:add files or directories to the repository'
-  'cp:copy files inside the repository'
-  'diff:show the tree diff'
-  'resolved:mark a file conflict as solved'
-  'rm:remove files from the repository'
-  'status:show the tree status'
-)
+subcmds=( ${${${(M)${(f)"$(stg help 2> /dev/null)"}## *}#  }/#(#b)([^[:space:]]##)[[:space:]]##(*)/$match[1]:$match[2]} )
 
 local curcontext="$curcontext"
 local subcmd
@@ -64,14 +18,19 @@
 
   case $subcmd in
     (push)
-      _wanted -V "unapplied patches" expl "patch" compadd $(stg unapplied) \
+      _wanted -V "unapplied patches" expl "patch" \
+       	compadd ${${(M)${(f)"$(stg series 2> /dev/null)"}##- *}#- } \
 		&& ret=0
     ;;
     (pop)
-      _wanted -V "applied patches" expl "patch" compadd $(stg applied) && ret=0
+      _wanted -V "applied patches" expl "patch" \
+	compadd ${${(M)${(f)"$(stg series 2> /dev/null)"}##[+>] *}#[+>] } \
+		&& ret=0
     ;;
     (edit|files|goto|rename|log|float|delete|sink|mail|sync|show|pick|hide)
-      _wanted -V "patches" expl "patch" compadd $(stg series --noprefix) && ret=0
+      _wanted -V "patches" expl "patch" \
+	compadd $(stg series --noprefix > /dev/null) \
+		&& ret=0
     ;;
     (*)
       _files
diff -Nru zsh-4.3.10/Completion/Unix/Command/_subversion zsh-4.3.11/Completion/Unix/Command/_subversion
--- zsh-4.3.10/Completion/Unix/Command/_subversion	2009-05-22 17:46:49.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_subversion	2009-12-17 10:48:12.000000000 +0100
@@ -2,6 +2,7 @@
 
 _svn () {
   local curcontext="$curcontext" state line expl ret=1
+  typeset -A opt_args
 
   _arguments -C \
     '(-)--help[print help information]' \
@@ -150,7 +151,7 @@
         args=(
           ${=${${${(M)${(f)"$(LC_ALL=C _call_program options svnadmin help $cmd)"#(*Valid options:|(#e))}:#* :*}%% #:*}/ (arg|ARG)/:arg:}/(#b)-([[:alpha:]]) \[--([a-z-]##)\](:arg:)#/(--$match[2])-$match[1]$match[3] (-$match[1])--$match[2]$match[3]}
         )
-        if [[ $_svnadmin_subcmd_usage == *REPOS_PATH* ]]; then
+        if [[ $usage == *REPOS_PATH* ]]; then
           args+=( ":path:_files -/" )
         elif [[ $cmd = help ]]; then
           args+=( "*:subcommand:_svnadmin_commands" )
@@ -205,32 +206,69 @@
   (( ${(M)#${(f)_cache_svn_status[$key]}:#(#s)${~pat}*$REPLY} ))
 }
 
+(( $+functions[_svn_remote_paths] )) ||
+_svn_remote_paths() {
+  local expl remfiles remdispf remdispd suf ret=1 pfx='\^/' sub='^/'
+
+  # prefix must match a valid repository path format, either standard style
+  # schema://host/path/.. or ^/path/.. specifying a path relative to the
+  # root of the working directory repository.  In the second form, allow the
+  # leading '^' be escaped in case the user has the extendedglob option set.
+  [[ -prefix *://*/ ]] ||
+  [[ -f .svn/entries && ( -prefix '^/' || -prefix '\^/' ) ]] ||
+  return 1
+
+  # return if remote access is not permitted
+  zstyle -T ":completion:${curcontext}:" remote-access || return 1
+
+  remfiles=( ${(f)"$(svn list $IPREFIX${${PREFIX%%[^/]#}/#$pfx/$sub} 2>/dev/null)"} )
+  (( $? == 0 )) || return 1
+
+  # you might consider trying to return early if $#remfiles is zero,
+  # but for whatever reason remfiles will always contain at least a
+  # single empty string; that case is handled correctly below.
+
+  compset -P '*/'
+  compset -S '/*' || suf=file
+  remdispf=(${remfiles:#*/})
+  remdispd=(${(M)remfiles:#*/})
+  _tags files
+  while _tags; do
+    while _next_label files expl ${suf:-directory}; do
+      # add files, unless there is a '/' immediately to the right
+      [[ -n $suf ]] &&
+      compadd -S ' ' -q "$@" "$expl[@]" -d remdispf $remdispf && ret=0
+      # add directories; use empty suffix if there is a '/' immediately to the right
+      compadd -S "${suf:+/}" -q "$@" "$expl[@]" -d remdispd ${remdispd%/} && ret=0
+    done
+    (( ret )) || return 0
+  done
+
+  return 1
+}
+
 (( $+functions[_svn_urls] )) ||
 _svn_urls() {
-  local expl remfiles remdispf remdispd suf ret=1
+  local urlsch expl ret=1
 
-  if [[ -prefix *: ]] && ! _urls &&
-      zstyle -T ":completion:${curcontext}:" remote-access
-  then
-    remfiles=( ${(f)"$(svn list $IPREFIX${PREFIX%%[^./][^/]#} 2>/dev/null)"} )
-    compset -P '*/'
-    compset -S '/*' || suf=file
-    remdispf=(${remfiles:#*/})
-    remdispd=(${(M)remfiles:#*/})
-    _tags files
-    while _tags; do
-      while _next_label files expl ${suf:-directory}; do
-        [[ -n $suf ]] && compadd -S ' ' -q "$@" "$expl[@]" -d remdispf $remdispf && ret=0
-        compadd -S "${suf:+/}" -q "$@" "$expl[@]" -d remdispd ${remdispd%/} && ret=0
-      done
-      (( ret )) || return 0
-    done
-  else
-    compset -S '[^:]*'
-    _wanted url-schemas expl 'URL schema' compadd -S '' - \
-        file:// http:// https:// svn:// svn+ssh:// && ret=0
+  # first try completing a remote path; if successful, we are all done..
+  _svn_remote_paths && return 0
+
+  # allow configuring svn repository locations using the 'urls' zstyle.
+  # always attempt completion of these because then matcher-list styles
+  # which do substring matching will work correctly.
+  _urls -S/ && ret=0
+
+  if [[ ! -prefix *://? ]] ; then
+    zstyle -a ":completion:${curcontext}:" url-schemas urlsch \
+     || urlsch=( file:// http:// https:// svn:// svn+ssh:// )
+    
+    if (( $#urlsch )) ; then
+      compset -S '[^:]*'
+      _wanted url-schemas expl 'URL schema' compadd -S '' - $urlsch[@] && ret=0
+    fi
   fi
-  
+
   return ret
 }
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_sudo zsh-4.3.11/Completion/Unix/Command/_sudo
--- zsh-4.3.10/Completion/Unix/Command/_sudo	2009-05-06 11:19:10.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_sudo	2010-03-15 20:40:04.000000000 +0100
@@ -25,21 +25,18 @@
        '-S[read password from stdin]'
 )
 
-if [[ $service = sudoedit || -n $words[(R)-e] ]]; then
-  args+=(
+if [[ $service = sudoedit ]]; then
+  _arguments $args \
     '*:file: _files'
-  )
 else
-  args+=(
-    '-b[run command in background]'
-    '-E[preserve environment]'
-    '-H[set HOME environment variable]'
-    '-P[preserve group vector]'
-    '(-i)-s[run SHELL]'
-    '(-s)-i[simulate login]'
-    '(-):command name: _command_names -e'
+  _arguments $args \
+    '(- :)-e[edit file]:*:file:_files' \
+    '(- :)-s[run SHELL]' \
+    '(- :)-i[simulate login]' \
+    '(-i -s -e)-b[run command in background]' \
+    '(-i -s -e)-E[preserve environment]' \
+    '(-i -s -e)-H[set HOME environment variable]' \
+    '(-i -s -e)-P[preserve group vector]' \
+    '(-):command: _command_names -e' \
     '*::arguments: _normal'
-  )
 fi
-
-_arguments $args
diff -Nru zsh-4.3.10/Completion/Unix/Command/_surfraw zsh-4.3.11/Completion/Unix/Command/_surfraw
--- zsh-4.3.10/Completion/Unix/Command/_surfraw	2006-04-24 11:36:12.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_surfraw	2010-06-06 15:44:12.000000000 +0200
@@ -65,13 +65,13 @@
       ;;
       ctan)
 	_arguments $args \
-	'-name[Search by filename]' \
-	'-desc[Search descriptions (default)]'\
-	'-doc[Search documentation]'
+	'-name[search by filename]' \
+	'-desc[search descriptions (default)]'\
+	'-doc[search documentation]'
       ;;
       currency)
         _arguments \
-          '-l[List all known currency symbols]' \
+          '-l[list all known currency symbols]' \
           '-from=-:currency symbol:(EUR USD GBP CAD AUD JPY INR NZD CHF ZAR)' \
           '-to=-:currency symbol:(EUR USD GBP CAD AUD JPY INR NZD CHF ZAR)' \
           '*:currency amount' && ret=0
@@ -155,8 +155,8 @@
       ;;
       debpackages)
         _arguments \
-          '-release=-:Search release:(all main non-US contrib non-free)' \
-          '-distro=-:Search distribution:(all stable testing unstable)' \
+          '-release=-:search release:(all main non-US contrib non-free)' \
+          '-distro=-:search distribution:(all stable testing unstable)' \
           '*:package:_deb_packages avail' && ret=0
       ;;
       debpts)
@@ -230,9 +230,9 @@
       ;;
       gutenberg)
 	_arguments $args \
-	  '-title[Search titles (default)]'
-	  '-author[Search authors]'
-	  '-num[Search etext numbers]'
+	  '-title[search titles (default)]'
+	  '-author[search authors]'
+	  '-num[search etext numbers]'
       ;;       
       imdb)
         _arguments $args \
@@ -256,11 +256,11 @@
         _arguments \
           '-tol=:special character tolerance:(off standard high)' \
           '-to=:language:(de en either)' \
-          '-lang=:Webpage is in this language:(en de)' \
-          '-link=:Link results:(on off)' \
-          '-head=:Display headlines:(on off)' \
-          '-grid=:Show results in grid:(on off)' \
-          '-spell=:Spelling tolerance:(off standard force)' \
+          '-lang=:webpage is in this language:(en de)' \
+          '-link=:link results:(on off)' \
+          '-head=:display headlines:(on off)' \
+          '-grid=:show results in grid:(on off)' \
+          '-spell=:spelling tolerance:(off standard force)' \
           '*:dictionary word:->dictword' && ret=0
 
         [[ "$state" = dictword ]] && _wanted words expl 'dictionary word' \
@@ -274,7 +274,7 @@
       pgpkeys)
         _arguments \
           '-s[display key signatures]' \
-          '*:KeyID or email' && ret=0
+          '*:key ID or email' && ret=0
       ;;
       pubmed)
         _arguments $args \
@@ -387,19 +387,19 @@
       ;;
       wayback)
 	_arguments $args \
-	  '-syear=-[Start search from this year]:year' \
-	  '-smonth=-:[Start search from this month]:month:(jan feb mar apr may jun jul aug sep oct nov dec)' \
-	  '-sday=-[Start search from this day]:number' \
-	  '-eyear=-[End search in this year]:year' \
-	  '-emonth=-[End search in this month]:month:(jan feb mar apr may jun jul aug sep oct nov dec)' \
-	  '-eday=-[End search in this day]:number' \
-	  '-list[List all pages that match search criteria]' \
-	  '-dups[Show dups]' \
-	  '-compare[Compare pages]' \
-	  '-pdf[Show as PDF]' \
-	  '-alias=-[How to handle site aliases]:alias:(merge show hide)' \
-	  '-redir=-[How to handle redirections]:redir:(hide flag show)' \
-	  '-type=-[File type to search for]:type:(image audio video binary text pdf)'
+	  '-syear=-[start search from this year]:year' \
+	  '-smonth=-:[start search from this month]:month:(jan feb mar apr may jun jul aug sep oct nov dec)' \
+	  '-sday=-[start search from this day]:number' \
+	  '-eyear=-[end search in this year]:year' \
+	  '-emonth=-[end search in this month]:month:(jan feb mar apr may jun jul aug sep oct nov dec)' \
+	  '-eday=-[end search in this day]:number' \
+	  '-list[list all pages that match search criteria]' \
+	  '-dups[show dups]' \
+	  '-compare[compare pages]' \
+	  '-pdf[show as PDF]' \
+	  '-alias=-[how to handle site aliases]:alias:(merge show hide)' \
+	  '-redir=-[how to handle redirections]:redir:(hide flag show)' \
+	  '-type=-[file type to search for]:type:(image audio video binary text pdf)'
       ;;
       wetandwild)
         _arguments \
diff -Nru zsh-4.3.10/Completion/Unix/Command/_tar zsh-4.3.11/Completion/Unix/Command/_tar
--- zsh-4.3.10/Completion/Unix/Command/_tar	2008-07-14 16:04:15.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_tar	2009-12-03 06:33:14.000000000 +0100
@@ -35,6 +35,8 @@
 
 (( $words[(I)--(un|)gzip] ))     && _tar_cmd="z$_tar_cmd"
 (( $words[(I)--(un|)compress] )) && _tar_cmd="Z$_tar_cmd"
+(( $words[(I)--bzip2] ))         && _tar_cmd="j$_tar_cmd"
+(( $words[(I)--xz] ))            && _tar_cmd="J$_tar_cmd"
 (( $words[(I)--list] ))          && _tar_cmd="t$_tar_cmd"
 (( $words[(I)--(extract|get)] )) && _tar_cmd="x$_tar_cmd"
 (( $words[(I)--create] ))        && _tar_cmd="c$_tar_cmd"
@@ -141,6 +143,8 @@
     largs=-tZf
   elif [[ $_tar_cmd = *I* ]]; then
     largs=-tIf
+  elif [[ $_tar_cmd = *J* ]]; then
+    largs=-tJf
   else
     # Some random compression program
     tmp="${words[(r)--use-comp*]}"
diff -Nru zsh-4.3.10/Completion/Unix/Command/_tcpdump zsh-4.3.11/Completion/Unix/Command/_tcpdump
--- zsh-4.3.10/Completion/Unix/Command/_tcpdump	2008-05-29 14:47:46.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_tcpdump	2010-06-06 15:44:12.000000000 +0200
@@ -46,47 +46,47 @@
 }
 
 _arguments \
-  '()-A[Print each packet in ASCII]' \
-  -c'[Exit after receiving specified number of packets]:number of packets' \
-  -C'[Specify output file size in MB (10e6 bytes)]:output file size' \
-  '(-ddd)-d[Dump the compiled packet-matching code in a human readable form]' \
-  '(-ddd)-dd[Dump packet-matching code as a C program fragment]' \
-  '(-d -dd)-ddd[Dump packet-matching code as decimal numbers (preceded with a count)]' \
-  '(-A -c -C -d -dd -ddd -e -E -f -F -i -l -L -m -M -n -N -O -p -q -R -r -S -s -T -t -tt -ttt -tttt -u -U -v -vv -vvv -w -W -x -xx -X -XX -y -Z *)'-D'[Print the list of the network interfaces available on the system]' \
-  -e'[Print the link-level header on each dump line]' \
-  -E"[Decrypting IPsec ESP packets]:spi@ipaddr::algo\:secret:_esp_secrets" \
-  -f"[Print 'foreign' IPv4 addresses numerically]" \
+  '()-A[print each packet in ASCII]' \
+  -c'[exit after receiving specified number of packets]:number of packets' \
+  -C'[specify output file size in MB (10e6 bytes)]:output file size' \
+  '(-ddd)-d[dump the compiled packet-matching code in a human readable form]' \
+  '(-ddd)-dd[dump packet-matching code as a C program fragment]' \
+  '(-d -dd)-ddd[dump packet-matching code as decimal numbers (preceded with a count)]' \
+  '(-A -c -C -d -dd -ddd -e -E -f -F -i -l -L -m -M -n -N -O -p -q -R -r -S -s -T -t -tt -ttt -tttt -u -U -v -vv -vvv -w -W -x -xx -X -XX -y -Z *)'-D'[print the list of the network interfaces available on the system]' \
+  -e'[print the link-level header on each dump line]' \
+  -E"[decrypting IPsec ESP packets]:spi@ipaddr::algo\:secret:_esp_secrets" \
+  -f"[print 'foreign' IPv4 addresses numerically]" \
   -F'[input file for the filter expression]:filter expression file:_files' \
-  -i'[Interface]:interface:_interfaces' \
-  -l'[Make stdout line buffered]' \
-  '(-A -c -C -d -dd -ddd -e -E -f -F -l -D -m -M -n -N -O -p -q -R -r -S -s -T -t -tt -ttt -tttt -u -U -v -vv -vvv -w -W -x -xx -X -XX -y -Z *)'-L'[List the known data link types for the interface]' \
-  '*-m[Load SMI MIB module definitions]:SMI MIB module definitions:_files' \
+  -i'[interface]:interface:_interfaces' \
+  -l'[make stdout line buffered]' \
+  '(-A -c -C -d -dd -ddd -e -E -f -F -l -D -m -M -n -N -O -p -q -R -r -S -s -T -t -tt -ttt -tttt -u -U -v -vv -vvv -w -W -x -xx -X -XX -y -Z *)'-L'[list the known data link types for the interface]' \
+  '*-m[load SMI MIB module definitions]:SMI MIB module definitions:_files' \
   -M'[shared secret for validating the digests in TCP segments with the TCP-MD5 option]:secret' \
-  -n"[Don't convert addresses to names]" \
-  -N"[Don't print domain name qualification of host names]" \
-  -O"[Don't run the packet-matching code optimizer]" \
-  -p"[Don't put the interface into promiscuous mode]" \
-  -q'[Quick (quiet?) output]' \
-  -R'[Assume ESP/AH packets to be based on old specification (RFC1825 to RFC1829)]' \
-  -r'[Read packets from file]:input file:_files' \
-  -S'[Print absolute TCP sequence numbers]' \
-  -s'[Specify number of bytes of data to snarf from each packet]:number of bytes to snap' \
-  -T'[Interpret captured packets as specified type]:packet type:_packet_types' \
-  "(-tttt)-t[Don't print a timestamp on each dump line]" \
-  '(-ttt -tttt)-tt[Print an unformatted timestamp on each dump line]' \
-  '(-tt -tttt)-ttt[Print a delta (in micro-seconds) between current and previous line on each dump line]' \
-  '(-t -tt -ttt)-tttt[Print a timestamp in default format proceeded by date on each dump line]' \
-  -u'[Print undecoded NFS handles]' \
-  -U'[Make output packet-buffered when saving to file (-w)]' \
+  -n"[don't convert addresses to names]" \
+  -N"[don't print domain name qualification of host names]" \
+  -O"[don't run the packet-matching code optimizer]" \
+  -p"[don't put the interface into promiscuous mode]" \
+  -q'[quick (quiet?) output]' \
+  -R'[assume ESP/AH packets to be based on old specification (RFC1825 to RFC1829)]' \
+  -r'[read packets from file]:input file:_files' \
+  -S'[print absolute TCP sequence numbers]' \
+  -s'[specify number of bytes of data to snarf from each packet]:number of bytes to snap' \
+  -T'[interpret captured packets as specified type]:packet type:_packet_types' \
+  "(-tttt)-t[don't print a timestamp on each dump line]" \
+  '(-ttt -tttt)-tt[print an unformatted timestamp on each dump line]' \
+  '(-tt -tttt)-ttt[print a delta (in micro-seconds) between current and previous line on each dump line]' \
+  '(-t -tt -ttt)-tttt[print a timestamp in default format proceeded by date on each dump line]' \
+  -u'[print undecoded NFS handles]' \
+  -U'[make output packet-buffered when saving to file (-w)]' \
   '(-vvv)-v[slightly more verbose output]' \
   '(-vvv)-vv[more verbose output]' \
   '(-v -vv)-vvv[most verbose output]' \
-  -w'[Write the raw packets to file]:output file:_files' \
-  -W'[Limit the number of created files (-C)]:number of files' \
-  -x'[Print each packet (minus its link level header) in hex]' \
-  '(-x)-xx[Print each packet, including its link level header, in hex]' \
-  -X'[Print each packet (minus its link level header) in hex and ASCII]' \
-  '(-X)-XX[Print each packet, including its link level header, in hex and ASCII]' \
-  -y'[Set the data link type to use while capturing packets]:data link type:_data_link_types' \
-  -Z'[Drops privileges (if root) and changes user ID (along with primary group)]:user:_users' \
+  -w'[write the raw packets to file]:output file:_files' \
+  -W'[limit the number of created files (-C)]:number of files' \
+  -x'[print each packet (minus its link level header) in hex]' \
+  '(-x)-xx[print each packet, including its link level header, in hex]' \
+  -X'[print each packet (minus its link level header) in hex and ASCII]' \
+  '(-X)-XX[print each packet, including its link level header, in hex and ASCII]' \
+  -y'[set the data link type to use while capturing packets]:data link type:_data_link_types' \
+  -Z'[drops privileges (if root) and changes user ID (along with primary group)]:user:_users' \
   '*:BPF filter:_bpf_filter'
diff -Nru zsh-4.3.10/Completion/Unix/Command/_tmux zsh-4.3.11/Completion/Unix/Command/_tmux
--- zsh-4.3.10/Completion/Unix/Command/_tmux	1970-01-01 01:00:00.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_tmux	2010-07-26 15:56:31.000000000 +0200
@@ -0,0 +1,1548 @@
+#compdef tmux
+
+# tmux  completion for zsh .
+#
+# Configuration:
+#
+# - On some OSs, the directory for tmux's server sockets may not be
+#   the default (which is /tmp/tmux-/), but say
+#   /var/run/tmux/tmux-, in which case the completion for
+#   'tmux -L ' will not be able to find the sockets in the default
+#   location (debian does this, for instance); tell _tmux the right place
+#   to look:
+#       % zstyle ':completion:*:*:tmux:*:sockets' socketdir "/var/run/tmux/tmux-${UID}"
+#
+# - tmux knows a *lot* of sub-commands, hence 'tmux ' returns a lot
+#   of possible completions. _tmux knows about all commands and their aliases.
+#   By default, both are offered. If you do not care about the aliases, do this:
+#       % zstyle ':completion:*:*:tmux:*:subcommands' mode 'commands'
+#
+#   The same can be done to only return aliases by setting the above style
+#   to 'aliases'. The default value is 'both' (but actually every value
+#   different from 'commands' and 'aliases' will have the same effect).
+#
+#   'lsw' is an alias for 'list-windows' for example; note that not all
+#   commands have aliases. So probably, either the default 'both' or
+#   'commands' makes most sense for this style.
+#
+# - For finer grained control over what is suggested as possible completions,
+#   the 'ignored-patterns' style may be used; suppose you think that only
+#   '*-window' or '*-windows' are worth being completed. You would get that
+#   behaviour like this:
+#       % zstyle ':completion:*:*:tmux:*:subcommands' ignored-patterns '^*-window(|s)'
+#
+#   Some tmux commands currently do not work if called from a shell prompt,
+#   so it would make sense to ignore them per default (at the time of writing,
+#   those commands are choose-{session,client,window}, confirm-before and
+#   find-window. This would ignore them:
+#       % zstyle ':completion:*:*:tmux:*:subcommands' ignored-patterns \
+#                'choose-*' 'confirm-before' 'find-window'
+#
+# The configuration for subcommand completions may be done in
+# this context: ':completion:*:*:tmux-:*:*'
+
+# Global variables; setup the first time _tmux is called.
+# For $_tmux_commands[] generation, see the very end of this file.
+typeset -ga _tmux_commands _tmux_aliases
+typeset -gA _tmux_aliasmap
+
+_tmux_aliasmap=(
+    # clients and sessions
+    attach      attach-session
+    detach      detach-client
+    has         has-session
+    lsc         list-clients
+    lscm        list-commands
+    ls          list-sessions
+    new         new-session
+    refresh     refresh-client
+    rename      rename-session
+    showmsgs    show-messages
+    source      source-file
+    start       start-server
+    suspendc    suspend-client
+    switchc     switch-client
+
+    # windows and panes
+    breakp      break-pane
+    capturep    capture-pane
+    displayp    display-panes
+    downp       down-pane
+    findw       find-window
+    joinp       join-pane
+    killp       kill-pane
+    killw       kill-window
+    last        last-window
+    linkw       link-window
+    lsp         list-panes
+    lsw         list-windows
+    movew       move-window
+    neww        new-window
+    nextl       next-layout
+    next        next-window
+    pipep       pipe-pane
+    prev        previous-window
+    renamew     rename-window
+    resizep     resize-pane
+    respawnw    respawn-window
+    rotatew     rotate-window
+    selectl     select-layout
+    selectp     select-pane
+    selectw     select-window
+    splitw      split-window
+    swapp       swap-pane
+    swapw       swap-window
+    unlinkw     unlink-window
+    upp         up-pane
+
+    # key bindings
+    bind        bind-key
+    lsk         list-keys
+    send        send-keys
+    unbind      unbind-key
+
+    # options
+    set         set-option
+    setw        set-window-option
+    show        show-options
+    showw       show-window-options
+
+    # environment
+    setenv      set-environment
+    showenv     show-environment
+
+    # status line
+    confirm     confirm-before
+    display     display-message
+
+    # buffers
+    clearhist   clear-history
+    copyb       copy-buffer
+    deleteb     delete-buffer
+    lsb         list-buffers
+    loadb       load-buffer
+    pasteb      paste-buffer
+    saveb       save-buffer
+    setb        set-buffer
+    showb       show-buffer
+
+    # miscellaneous
+    if          if-shell
+    lock        lock-server
+    run         run-shell
+    info        server-info
+)
+
+# --- Sub-command functions ---
+# These *must* be called _tmux-*(); The description generation relies on
+# them being names that way. *No* other functions may match that pattern.
+# Other utility functions should be named __tmux-*() (see below).
+#
+# Another thing, the description generation needs, is handling of
+# $tmux_describe: If that parameter is non-empty, the sub-command function
+# should only print a description of the sub-command it handles and return
+# immidiately after doing so.
+#
+# To add support for a new sub-command, you only have to add a new
+# _tmux-() function below (preferably alphabetically sorted), that
+# behaves like described above; and add a alias->command pair in the
+# _tmux_aliasmap associative array above (if the comand in fact has an
+# alias). The rest should just work[tm].
+
+function _tmux-attach-session() {
+    [[ -n ${tmux_describe} ]] && print "Attach or switch to a session" && return
+    local -a args
+
+    args=(
+        '-d[detach other clients attached to target session]'
+        '-r[put the client into read-only mode]'
+        '-t[choose a target session]:target session:__tmux-sessions'
+    )
+    _arguments ${args}
+}
+
+function _tmux-bind-key() {
+    [[ -n ${tmux_describe} ]] && print "Bind a key to a command" && return
+    local curcontext="${curcontext}" state
+    local -a args
+
+    args=(
+        '-c[bind to command mode instead of normal mode]'
+        '-n[make the binding work without the need for the prefix key]'
+        '-r[the key may repeat]'
+        '-t[choose a key table for the binding]:key tables:__tmux-key-tables'
+        '1: :->key'
+        '*:: :->command_and_args'
+    )
+    _arguments -C ${args} && return
+
+    if [[ ${state} == 'key' ]]; then
+        _message "key"
+    else
+        # quite cool, that this works. :-)
+        _tmux
+    fi
+}
+
+function _tmux-break-pane() {
+    [[ -n ${tmux_describe} ]] && print "Break a pane from an existing into a new window" && return
+    local -a args
+    args=(
+        '-d[do not make the new window become the active one]'
+        '-t[choose a target pane]:panes:__tmux-panes'
+    )
+    _arguments ${args}
+}
+
+function _tmux-capture-pane() {
+    [[ -n ${tmux_describe} ]] && print "Capture the contents of a pane to a buffer" && return
+    local -a args
+    args=(
+        '-b[choose target buffer]:target buffer:__tmux-buffers'
+        '-t[choose source pane]:source pane:__tmux-panes'
+    )
+    _arguments ${args}
+}
+
+function _tmux-choose-client() {
+    [[ -n ${tmux_describe} ]] && print "Put a window into client choice mode" && return
+    __tmux-choose-stuff
+}
+
+function _tmux-choose-session() {
+    [[ -n ${tmux_describe} ]] && print "Put a window into session choice mode" && return
+    __tmux-choose-stuff
+}
+
+function _tmux-choose-window() {
+    [[ -n ${tmux_describe} ]] && print "Put a window into window choice mode" && return
+    __tmux-choose-stuff
+}
+
+function _tmux-clear-history() {
+    [[ -n ${tmux_describe} ]] && print "Remove and clear history for a pane" && return
+    local -a args
+    args=('-t[choose a target pane]:panes:__tmux-panes')
+    _arguments ${args}
+}
+
+function _tmux-clock-mode() {
+    [[ -n ${tmux_describe} ]] && print "Enter clock mode" && return
+    local -a args
+    args=('-t[choose a target pane]:panes:__tmux-panes')
+    _arguments ${args}
+}
+
+function _tmux-command-prompt() {
+    [[ -n ${tmux_describe} ]] && print "Open the tmux command prompt in a client" && return
+    local state
+    local -a args
+    args=(
+        '-p[list of prompts]:prompts:->plist'
+        '-t[choose a target client]:clients:__tmux-clients'
+        '*:: :->tmpl'
+    )
+    _arguments -C ${args} && return
+    if [[ ${state} == 'plist' ]]; then
+        _message "comma seperated list of prompts"
+        return
+    fi
+    __tmux-lastarg ${state} 'tmpl' 1 "command template"
+}
+
+function _tmux-confirm-before() {
+    [[ -n ${tmux_describe} ]] && print "Run a command but ask for confirmation before" && return
+    local state
+    local -a args
+    args=(
+        '-t[choose a target client]:clients:__tmux-clients'
+        '*:: :->command_and_args'
+    )
+    _arguments -C ${args} && return
+    __tmux-lastarg ${state} 'command_and_args' 1 "command string"
+}
+
+function _tmux-copy-buffer() {
+    [[ -n ${tmux_describe} ]] && print "Copy session paste buffers" && return
+    local state session
+    local -a args
+    local -ax bopts
+
+    args=(
+        '-a[choose a source buffer index]:buffer:->srcbuf'
+        '-b[choose a destination buffer index]:buffer:->dstbuf'
+        '-s[choose a source session]:session:->srcsession'
+        '-t[choose a destination session]:session:->dstsession'
+    )
+    _arguments ${args}
+
+    case ${state} in
+        ((src|dst)session)
+            __tmux-sessions
+            return
+            ;;
+        (srcbuf)
+            session="$(__tmux-get-optarg -s "${words[@]}")"
+            ;;
+        (srcbuf)
+            session="$(__tmux-get-optarg -t "${words[@]}")"
+            ;;
+    esac
+    if [[ -n ${session} ]]; then
+        bopts=( -t ${session} )
+        __tmux-buffers
+        return
+    fi
+    bopts=()
+    __tmux-buffers
+}
+
+function _tmux-copy-mode() {
+    [[ -n ${tmux_describe} ]] && print "Enter copy mode" && return
+    local -a args
+    args=(
+        '-t[choose a target pane]:panes:__tmux-panes'
+        '-u[scroll up one page]'
+    )
+    _arguments ${args}
+}
+
+function _tmux-delete-buffer() {
+    [[ -n ${tmux_describe} ]] && print "Delete a paste buffer" && return
+    local state session
+    local -a args
+    local -ax bopts
+
+    args=(
+        '-b[choose a target buffer index]:panes:->buffer'
+        '-t[choose a target session]:panes:->session'
+    )
+    _arguments ${args}
+
+    case ${state} in
+        (session)
+            __tmux-sessions
+            return
+            ;;
+        (buffer)
+            session="$(__tmux-get-optarg -t "${words[@]}")"
+            ;;
+        (*) return ;;
+    esac
+    if [[ -n ${session} ]]; then
+        bopts=( -t ${session} )
+        __tmux-buffers
+        return
+    fi
+    bopts=()
+    __tmux-buffers
+}
+
+function _tmux-detach-client() {
+    [[ -n ${tmux_describe} ]] && print "Detach a client from the server" && return
+    local -a args
+    args=('-t[choose a target client]:clients:__tmux-clients')
+    _arguments ${args}
+}
+
+function _tmux-display-message() {
+    [[ -n ${tmux_describe} ]] && print "Display a message in the status line" && return
+    local -a args
+    args=(
+        '-p[print message to stdout]'
+        '-t[choose a target client]:clients:__tmux-clients'
+        '*:: :->msg'
+    )
+    _arguments ${args} && return
+    __tmux-lastarg ${state} 'msg' 1 "message"
+}
+
+function _tmux-display-panes() {
+    [[ -n ${tmux_describe} ]] && print "Display an indicator for each visible pane" && return
+    local -a args
+    args=('-t[choose a target client]:clients:__tmux-clients')
+    _arguments ${args}
+}
+
+function _tmux-down-pane() {
+    [[ -n ${tmux_describe} ]] && print "Move down a pane" && return
+    local -a args
+    args=('-t[choose a target pane]:panes:__tmux-panes')
+    _arguments ${args}
+}
+
+function _tmux-find-window() {
+    [[ -n ${tmux_describe} ]] && print "Search for a pattern in windows" && return
+    local curcontext="${curcontext}" state
+    local -a args
+    args=(
+        '-t[choose a target window]:windows:__tmux-windows'
+        '*:: :->pattern'
+    )
+    _arguments ${args} && return
+    __tmux-lastarg ${state} 'pattern' 1 "window search pattern"
+}
+
+function _tmux-has-session() {
+    [[ -n ${tmux_describe} ]] && print "Check and report if a session exists on the server" && return
+    local -a args
+    args=('-t[choose a target session]:sessions:__tmux-sessions')
+    _arguments ${args}
+}
+
+function _tmux-if-shell() {
+    [[ -n ${tmux_describe} ]] && print "Execute a tmux command if a shell-command succeeded" && return
+    local -a args
+    args=(
+        '1:shell command:'
+        '2:tmux command:'
+    )
+    _arguments ${args}
+}
+
+function _tmux-join-pane() {
+    [[ -n ${tmux_describe} ]] && print "Split a pane and move an existing one into the new space" && return
+    local -a args
+    args=(
+        '-d[do not make the new window become the active one]'
+        '-h[split horizontally]'
+        '-v[split vertically]'
+        '-l[define new pane'\''s size]: :_guard "[0-9]#" "numeric value"'
+        '-p[define new pane'\''s size in percent]: :_guard "[0-9]#" "numeric value"'
+        '-s[choose source pane]:window:__tmux-panes'
+        '-t[choose target pane]:window:__tmux-panes'
+    )
+    _arguments ${args} && return
+}
+
+function _tmux-kill-pane() {
+    [[ -n ${tmux_describe} ]] && print "Destroy a given pane" && return
+    local -a args
+    args=(
+        '-a[kill all panes, except current]'
+        '-t[choose a target pane]:panes:__tmux-panes'
+    )
+    _arguments ${args}
+}
+
+function _tmux-kill-server() {
+    [[ -n ${tmux_describe} ]] && print "Kill clients, sessions and server" && return
+    __tmux-nothing-else
+}
+
+function _tmux-kill-session() {
+    [[ -n ${tmux_describe} ]] && print "Destroy a given session" && return
+    local -a args
+    args=('-t[choose a target session]:sessions:__tmux-sessions')
+    _arguments ${args}
+}
+
+function _tmux-kill-window() {
+    [[ -n ${tmux_describe} ]] && print "Destroy a given window" && return
+    local -a args
+    args=('-t[choose a target window]:windows:__tmux-windows')
+    _arguments ${args}
+}
+
+function _tmux-last-window() {
+    [[ -n ${tmux_describe} ]] && print "Select the previously selected window" && return
+    local -a args
+    args=('-t[choose a session]:sessions:__tmux-sessions')
+    _arguments ${args} && return
+}
+
+function _tmux-link-window() {
+    [[ -n ${tmux_describe} ]] && print "Link a window to another" && return
+    local -a args
+    args=(
+        '-d[do not make the new window become the active one]'
+        '-k[kill the target window if it exists]'
+        '-s[choose source window]:window:__tmux-windows'
+        '-t[choose destination window]:window:__tmux-windows'
+    )
+    _arguments ${args}
+}
+
+function _tmux-list-buffers() {
+    [[ -n ${tmux_describe} ]] && print "List paste buffers of a session" && return
+    local -a args
+    args=('-t[choose a session]:sessions:__tmux-sessions')
+    _arguments ${args} && return
+}
+
+function _tmux-list-clients() {
+    [[ -n ${tmux_describe} ]] && print "List clients attached to server" && return
+    __tmux-nothing-else
+}
+
+function _tmux-list-commands() {
+    [[ -n ${tmux_describe} ]] && print "List supported sub-commands" && return
+    __tmux-nothing-else
+}
+
+function _tmux-list-keys() {
+    [[ -n ${tmux_describe} ]] && print "List all key-bindings" && return
+    local -a args
+    args=('-t[choose a key table]:key table:__tmux-key-tables')
+    _arguments ${args} && return
+}
+
+function _tmux-list-panes() {
+    [[ -n ${tmux_describe} ]] && print "List panes of a window" && return
+    local -a args
+    args=('-t[choose a window]:windows:__tmux-windows')
+    _arguments ${args} && return
+}
+
+function _tmux-list-sessions() {
+    [[ -n ${tmux_describe} ]] && print "List sessions managed by server" && return
+    __tmux-nothing-else
+}
+
+function _tmux-list-windows() {
+    [[ -n ${tmux_describe} ]] && print "List windows of a session" && return
+    local -a args
+    args=('-t[choose a session]:sessions:__tmux-sessions')
+    _arguments ${args} && return
+}
+
+function _tmux-load-buffer() {
+    [[ -n ${tmux_describe} ]] && print "Load a file into a paste buffer" && return
+    local state session
+    local -a args
+    local -ax bopts
+
+    args=(
+        '-b[choose a target buffer index]:panes:->buffer'
+        '-t[choose a target session]:panes:->session'
+        '1:file name:_files -g "*(-.)"'
+    )
+    _arguments ${args}
+
+    case ${state} in
+        (session)
+            __tmux-sessions
+            return
+            ;;
+        (buffer)
+            session="$(__tmux-get-optarg -t "${words[@]}")"
+            ;;
+        (*) return ;;
+    esac
+    if [[ -n ${session} ]]; then
+        bopts=( -t ${session} )
+        __tmux-buffers
+        return
+    fi
+    bopts=()
+    __tmux-buffers
+}
+
+function _tmux-lock-client() {
+    [[ -n ${tmux_describe} ]] && print "Lock a client" && return
+    local -a args
+    args=('-t[choose a client]:clients:__tmux-clients')
+    _arguments ${args} && return
+}
+
+function _tmux-lock-server() {
+    [[ -n ${tmux_describe} ]] && print "Lock all clients attached to the server" && return
+    __tmux-nothing-else
+}
+
+function _tmux-lock-session() {
+    [[ -n ${tmux_describe} ]] && print "Lock all clients attached to a session" && return
+    local -a args
+    args=('-t[choose a session]:sessions:__tmux-sessions')
+    _arguments ${args} && return
+}
+
+function _tmux-move-window() {
+    [[ -n ${tmux_describe} ]] && print "Move a window to another" && return
+    local -a args
+    args=(
+        '-d[do not make the new window become the active one]'
+        '-s[choose source window]:window:__tmux-windows'
+        '-t[choose destination window]:window:__tmux-windows'
+    )
+    _arguments ${args}
+}
+
+function _tmux-new-session() {
+    [[ -n ${tmux_describe} ]] && print "Create a new session" && return
+    local -a args
+    args=(
+        '-d[attach the new session the current terminal]'
+        '-n[name the initial window]:window name'
+        '-s[name the session]:session name'
+        '-t[specify target session]:sessions:__tmux-sessions'
+        '*:: :_command'
+    )
+    _arguments ${args}
+}
+
+function _tmux-new-window() {
+    [[ -n ${tmux_describe} ]] && print "Create a new window" && return
+    local -a args
+    args=(
+        '-d[do not make the new window become the active one]'
+        '-k[destroy it if the specified window exists]'
+        '-n[specify a window name]:window name:'
+        '-t[specify target window]:windows:__tmux-windows'
+        '*:: :_command'
+    )
+    _arguments ${args}
+}
+
+function _tmux-next-layout() {
+    [[ -n ${tmux_describe} ]] && print "Move a window to the next layout" && return
+    local -a args
+    args=('-t[choose target window]:window:__tmux-windows')
+    _arguments ${args}
+}
+
+function _tmux-next-window() {
+    [[ -n ${tmux_describe} ]] && print "Move to the next window in a session" && return
+    local -a args
+    args=(
+        '-a[move to the next window with activity]'
+        '-t[choose target session]:session:__tmux-sessions'
+    )
+    _arguments ${args}
+}
+
+function _tmux-paste-buffer() {
+    [[ -n ${tmux_describe} ]] && print "Insert a paste buffer into the window" && return
+    local -a args
+    args=(
+        '-d[remove buffer from stack after pasting]'
+        '-r[do not replace LF with CR when pasting]'
+        '-b[choose buffer]:source buffer:__tmux-buffers'
+        '-t[choose target window]:window:__tmux-windows'
+    )
+    _arguments ${args}
+}
+
+function _tmux-pipe-pane() {
+    [[ -n ${tmux_describe} ]] && print "Pipe output from a pane to a shell command" && return
+    local state
+    args=(
+        '-o[only open a pipe if none is currently opened]'
+        '-t[choose target pane]:pane:__tmux-panes'
+        '*:: :->cmd'
+    )
+    _arguments ${args} && return
+    __tmux-lastarg ${state} 'cmd' 1 "command string"
+}
+
+function _tmux-previous-layout() {
+    [[ -n ${tmux_describe} ]] && print "Move a window to the previous layout" && return
+    local -a args
+    args=('-t[choose target window]:window:__tmux-windows')
+    _arguments ${args}
+}
+
+function _tmux-previous-window() {
+    [[ -n ${tmux_describe} ]] && print "Move to the previous window in a session" && return
+    local -a args
+    args=(
+        '-a[move to the previous window with activity]'
+        '-t[choose target session]:session:__tmux-sessions'
+    )
+    _arguments ${args}
+}
+
+function _tmux-refresh-client() {
+    [[ -n ${tmux_describe} ]] && print "Refresh a client" && return
+    local -a args
+    args=('-t[choose target client]:client:__tmux-clients')
+    _arguments ${args}
+}
+
+function _tmux-rename-session() {
+    [[ -n ${tmux_describe} ]] && print "Rename a session" && return
+    local state
+    args=(
+        '-t[choose target session]:session:__tmux-sessions'
+        '*:: :->name'
+    )
+    _arguments ${args} && return
+    __tmux-lastarg ${state} 'name' 1 "new session name"
+}
+
+function _tmux-rename-window() {
+    [[ -n ${tmux_describe} ]] && print "Rename a window" && return
+    local state
+    args=(
+        '-t[choose target window]:window:__tmux-windows'
+        '*:: :->name'
+    )
+    _arguments ${args} && return
+    __tmux-lastarg ${state} 'name' 1 "new window name"
+}
+
+function _tmux-resize-pane() {
+    [[ -n ${tmux_describe} ]] && print "Resize a pane" && return
+    args=(
+        '-D[resize downward]'
+        '-L[resize to the left]'
+        '-R[resize to the right]'
+        '-U[resize upward]'
+        '-t[choose target pane]:pane:__tmux-panes'
+        '1::adjustment (defaults to one):_guard "[0-9]#" "numeric value"'
+    )
+    _arguments ${args}
+}
+
+function _tmux-respawn-window() {
+    [[ -n ${tmux_describe} ]] && print "Reuse a window in which a command has exited" && return
+    local -a args
+    args=(
+        '-k[kill window if it is in use]'
+        '-t[choose target window]:window:__tmux-windows'
+        '*::command:_command'
+    )
+    _arguments ${args}
+}
+
+function _tmux-rotate-window() {
+    [[ -n ${tmux_describe} ]] && print "Rotate positions of panes in a window" && return
+    local -a args
+    args=(
+        '-D[rotate downward]'
+        '-U[rotate upward]'
+        '-t[choose target window]:window:__tmux-windows'
+    )
+    _arguments ${args}
+}
+
+function _tmux-run-shell() {
+    [[ -n ${tmux_describe} ]] && print "Execute a command without creating a new window" && return
+    _command
+}
+
+function _tmux-save-buffer() {
+    [[ -n ${tmux_describe} ]] && print "Save a paste buffer to a file" && return
+    local state session
+    local -a args
+    local -ax bopts
+
+    args=(
+        '-b[choose a target buffer index]:buffer:->buffer'
+        '-t[choose a target session]:buffer:->session'
+    )
+    _arguments ${args}
+
+    case ${state} in
+        (session)
+            __tmux-sessions
+            return
+            ;;
+        (buffer)
+            session="$(__tmux-get-optarg -t "${words[@]}")"
+            ;;
+        (*) return ;;
+    esac
+    if [[ -n ${session} ]]; then
+        bopts=( -t ${session} )
+        __tmux-buffers
+        return
+    fi
+    bopts=()
+    __tmux-buffers
+}
+
+function _tmux-select-layout() {
+    [[ -n ${tmux_describe} ]] && print "Choose a layout for a window" && return
+    args=(
+        '-t[choose a target window]:target window:__tmux-windows'
+        '*::layout name:__tmux-layouts'
+    )
+    _arguments ${args}
+}
+
+function _tmux-select-pane() {
+    [[ -n ${tmux_describe} ]] && print "Make a pane the active one in the window" && return
+    local -a args
+    args=('-t[choose a target pane]:panes:__tmux-panes')
+    _arguments ${args} && return
+}
+
+function _tmux-select-prompt() {
+    [[ -n ${tmux_describe} ]] && print "Open a prompt to enter a window index" && return
+    local -a args
+    args=('-t[choose a target client]:clients:__tmux-clients')
+    _arguments ${args} && return
+}
+
+function _tmux-select-window() {
+    [[ -n ${tmux_describe} ]] && print "Select a window" && return
+    local -a args
+    args=('-t[choose a target window]:windows:__tmux-windows')
+    _arguments ${args} && return
+}
+
+function _tmux-send-keys() {
+    [[ -n ${tmux_describe} ]] && print "Send key(s) to a window" && return
+    local curcontext="${curcontext}" state
+    local -a args
+    args=(
+        '-t[choose a target pane]:panes:__tmux-panes'
+        '*:: :->key'
+    )
+    _arguments ${args} && return
+    __tmux-lastarg ${state} 'key' 1 "key"
+}
+
+function _tmux-send-prefix() {
+    [[ -n ${tmux_describe} ]] && print "Send the prefix key to a window" && return
+    local -a args
+    args=('-t[choose a target pane]:panes:__tmux-panes')
+    _arguments ${args}
+}
+
+function _tmux-server-info() {
+    [[ -n ${tmux_describe} ]] && print "Show server information" && return
+    __tmux-nothing-else
+}
+
+function _tmux-set-buffer() {
+    [[ -n ${tmux_describe} ]] && print "Set contents of a paster buffer" && return
+    local state session
+    local -a args
+    local -ax bopts
+
+    args=(
+        '-b[choose a target buffer index]:panes:->buffer'
+        '-t[choose a target session]:panes:->session'
+    )
+    _arguments ${args}
+
+    case ${state} in
+        (session)
+            __tmux-sessions
+            return
+            ;;
+        (buffer)
+            session="$(__tmux-get-optarg -t "${words[@]}")"
+            ;;
+        (*) return ;;
+    esac
+    if [[ -n ${session} ]]; then
+        bopts=( -t ${session} )
+        __tmux-buffers
+        return
+    fi
+    bopts=()
+    __tmux-buffers
+}
+
+function _tmux-set-environment() {
+    [[ -n ${tmux_describe} ]] && print "(Un)Set an environment variable" && return
+    local state
+    local -a args
+    args=(
+        '-g[modify global environment]'
+        '-r[remove variable before starting new processes]'
+        '-u[unset a variable]'
+        '-t[choose a target session]:target session:__tmux-sessions'
+        '*:: :->name_or_value'
+    )
+    _arguments -C ${args}
+
+    case ${state} in
+        name_or_value)
+            if (( CURRENT == 1 )); then
+                _message 'name'
+            elif (( CURRENT == 2 )); then
+                _message 'value'
+            else
+                __tmux-nothing-else
+            fi
+            ;;
+    esac
+}
+
+function _tmux-set-option() {
+    [[ -n ${tmux_describe} ]] && print "Set a session option" && return
+    local mode
+    local -a args
+    args=(
+        '-a[append to string options]'
+        '-g[set a global session option]'
+        '-u[unset a non-global option]'
+        '-w[change window (not session) options]'
+        '-s[change server (not session) options]'
+        '-t[choose a target session]:target session:__tmux-sessions'
+        '*:: :->name_or_value'
+    )
+    if __tmux-got-option-already -w; then
+        mode=window
+    elif __tmux-got-option-already -s; then
+        mode=server
+    else
+        mode=session
+    fi
+    _arguments -C ${args}
+    __tmux-options-complete ${mode} ${state}
+}
+
+function _tmux-set-window-option() {
+    [[ -n ${tmux_describe} ]] && print "Set a window option" && return
+    local -a args
+    args=(
+        '-a[append to string options]'
+        '-g[set a global window option]'
+        '-u[unset a non-global option]'
+        '-t[choose a target window]:target window:__tmux-windows'
+        '*:: :->name_or_value'
+    )
+    _arguments -C ${args}
+    __tmux-options-complete window ${state}
+}
+
+function _tmux-show-buffer() {
+    [[ -n ${tmux_describe} ]] && print "Display the contents of a paste buffer" && return
+    local state session
+    local -a args
+    local -ax bopts
+
+    args=(
+        '-b[choose a target buffer index]:panes:->buffer'
+        '-t[choose a target session]:panes:->session'
+    )
+    _arguments ${args}
+
+    case ${state} in
+        (session)
+            __tmux-sessions
+            return
+            ;;
+        (buffer)
+            session="$(__tmux-get-optarg -t "${words[@]}")"
+            ;;
+        (*) return ;;
+    esac
+    if [[ -n ${session} ]]; then
+        bopts=( -t ${session} )
+        __tmux-buffers
+        return
+    fi
+    bopts=()
+    __tmux-buffers
+}
+
+function _tmux-show-environment() {
+    [[ -n ${tmux_describe} ]] && print "Display the environment" && return
+    local -a args
+    args=(
+        '-g[show global environment]'
+        '-t[choose a target session]:target session:__tmux-sessions'
+    )
+    _arguments ${args}
+}
+
+function _tmux-show-messages() {
+    [[ -n ${tmux_describe} ]] && print "Show client"\'"s message log" && return
+    args=('-t[choose target client]:client:__tmux-clients')
+    _arguments ${args}
+}
+
+function _tmux-show-options() {
+    [[ -n ${tmux_describe} ]] && print "Show session options" && return
+    local -a args
+    args=(
+        '-g[show global options]'
+        '-t[choose a target session]:target session:__tmux-sessions'
+    )
+    _arguments ${args}
+}
+
+function _tmux-show-window-options() {
+    [[ -n ${tmux_describe} ]] && print "Show window options" && return
+    local -a args
+    args=(
+        '-g[show global options]'
+        '-t[choose a target window]:target window:__tmux-windows'
+    )
+    _arguments ${args}
+}
+
+function _tmux-source-file() {
+    [[ -n ${tmux_describe} ]] && print "Execute tmux commands from a file" && return
+    _files -g "*(-.)"
+}
+
+function _tmux-split-window() {
+    [[ -n ${tmux_describe} ]] && print "Splits a pane into two" && return
+    local -a args
+    args=(
+        '-d[do not make the new window become the active one]'
+        '-h[split horizontally]'
+        '-v[split vertically]'
+        '-l[define new pane'\''s size]: :_guard "[0-9]#" "numeric value"'
+        '-p[define new pane'\''s size in percent]: :_guard "[0-9]#" "numeric value"'
+        # Yes, __tmux_pane is correct here. The behaviour was changed
+        # in recent tmux versions and makes more sense. Except that
+        # changing the command's name might annoy users. So it stays like
+        # this.
+        '-t[choose target pane]:window:__tmux-panes'
+        '*:: :_command'
+    )
+    _arguments ${args} && return
+}
+
+function _tmux-start-server() {
+    [[ -n ${tmux_describe} ]] && print "Start a tmux server" && return
+    __tmux-nothing-else
+}
+
+function _tmux-suspend-client() {
+    [[ -n ${tmux_describe} ]] && print "Suspend a client" && return
+    local -a args
+    args=('-t[choose destination client]:client:__tmux-clients')
+    _arguments ${args}
+}
+
+function _tmux-swap-pane() {
+    [[ -n ${tmux_describe} ]] && print "Swap two panes" && return
+    local -a args
+    args=(
+        '-D[move pane down]'
+        '-U[move pane up]'
+        '-d[do not change the active pane]'
+        '-s[choose source pane]:pane:__tmux-panes'
+        '-t[choose destination pane]:pane:__tmux-panes'
+    )
+    _arguments ${args}
+}
+
+function _tmux-swap-window() {
+    [[ -n ${tmux_describe} ]] && print "Swap two windows" && return
+    local -a args
+    args=(
+        '-d[do not make the new window become the active one]'
+        '-s[choose source window]:window:__tmux-windows'
+        '-t[choose destination window]:window:__tmux-windows'
+    )
+    _arguments ${args}
+}
+
+function _tmux-switch-client() {
+    [[ -n ${tmux_describe} ]] && print "Switch the client to another session" && return
+    local -a args
+    args=(
+        '-c[choose a target client]:client:__tmux-clients'
+        '-t[choose a target window]:window:__tmux-windows'
+    )
+    _arguments ${args}
+}
+
+function _tmux-unbind-key() {
+    [[ -n ${tmux_describe} ]] && print "Unbind a key" && return
+    local state keytable
+    local -a args ow
+
+    ow=( "${words[@]}" )
+    args=(
+        '-c[kill the window if it is only in one session]'
+        '-n[remove a non-prefix binding]'
+        '-t[choose a key table]:key table:__tmux-key-tables'
+        '*:: :->boundkeys'
+    )
+    _arguments ${args} && return
+    [[ ${state} != 'boundkeys' ]] && return
+    keytable="$(__tmux-get-optarg -t "${ow[@]}")"
+    if [[ -n ${keytable} ]]; then
+        __tmux-bound-keys -t ${keytable}
+        return
+    fi
+    __tmux-bound-keys
+}
+
+function _tmux-unlink-window() {
+    [[ -n ${tmux_describe} ]] && print "Unlink a window" && return
+    local -a args
+    args=(
+        '-k[kill the window if it is only in one session]'
+        '-t[choose a target window]:target window:__tmux-windows'
+    )
+    _arguments ${args}
+}
+
+function _tmux-up-pane() {
+    [[ -n ${tmux_describe} ]] && print "Move up a pane" && return
+    local -a args
+    args=('-t[choose a target pane]:panes:__tmux-panes')
+    _arguments ${args}
+}
+
+# --- Utility functions ---
+# They should be called __tmux-*() and kept seperate from the
+# sub-command functions.
+
+function __tmux-attributes() {
+    local -a attr already
+    attr=( default bright bold dim underscore blink reverse hidden italics )
+    compset -P '*,'
+    already=(${(s<,>)IPREFIX})
+    _describe -t tmux-attribute 'tmux attribute' attr -S, -F already -q
+}
+
+function __tmux-buffers() {
+    local expl
+    local -a buffers
+
+    if [[ ${(t)bopts} != *array* ]]; then
+        local -a bopts; bopts=()
+    fi
+
+    buffers=( ${${(f)"$(command tmux list-buffers "${bopts[@]}")"}/:[ $'\t']##/:} )
+    _describe -t buffers 'buffers' buffers
+}
+
+function __tmux-bound-keys() {
+    local expl
+    local -a keys
+
+    keys=( ${${${${(f)"$(command tmux list-keys "$@")"}/:[ $'\t']##/:}/(#s)[ $'\t']##/}/(#s):/\\:} )
+    _describe -t keys 'keys' keys
+}
+
+function __tmux-choose-stuff() {
+    # choose-{client,session,window} accept exactly the same arguments, so...
+    local curcontext="${curcontext}" state
+    local -a args
+    args=(
+        '-t[choose a target pane]:panes:__tmux-panes'
+        '*:: :->tmpl'
+    )
+    _arguments ${args} && return
+    __tmux-lastarg ${state} 'tmpl' 1 "tmux command template"
+}
+
+function __tmux-clients() {
+    local expl
+    local -a clients
+    clients=( ${${(f)"$(command tmux list-clients)"}/:[ $'\t']##/:} )
+    _describe -t clients 'clients' clients
+}
+
+function __tmux-colours() {
+    local -a colnames
+    colnames=( default black red green yellow blue magenta cyan white colourN:"replace N by a number between 0 and 255" )
+    compset -P 'colour*'
+    if [[ -z ${IPREFIX} ]]; then
+        _describe -t tmux-colours 'colour' colnames
+    else
+        _message 'colour number 0..255'
+    fi
+}
+
+function __tmux-get-optarg() {
+    local opt="$1"
+    local -i i
+    shift
+
+    for (( i = 1; i <= $#; i++ )); do
+        if [[ ${argv[$i]} == ${opt} ]]; then
+            if [[ ${argv[$(( i + 1 ))]} != -* ]]; then
+                print -- ${argv[$(( i + 1 ))]}
+            fi
+            return
+        fi
+    done
+}
+
+function __tmux-got-option-already() {
+    [[ -n ${(M)words:#$1} ]] && return 0
+    return 1
+}
+
+function __tmux-key-tables() {
+    local expl
+    local -a tables
+    tables=( vi-edit emacs-edit vi-choice emacs-choice vi-copy emacs-copy )
+    _wanted keytable expl 'key tables' compadd ${expl} -- ${tables}
+}
+
+function __tmux-lastarg() {
+    local got_state="$1" want_state="$2" pos="$3" msg="$4"
+
+    if [[ ${want_state} == ${got_state} ]] && (( CURRENT == ${pos} )); then
+        _message ${msg}
+    else
+        __tmux-nothing-else
+    fi
+}
+
+function __tmux-layouts() {
+    local expl
+    local -a layouts
+    layouts=( even-horizontal even-vertical main-horizontal main-vertical )
+    _wanted layout expl 'layouts' compadd ${expl} -- ${layouts}
+}
+
+function __tmux-nothing-else() {
+    _message "no further arguments"
+}
+
+function __tmux-option-guard() {
+    local mode opt guard int_guard
+    mode="$1"
+    opt="$2"
+    shift; shift
+    local -a options desc
+    int_guard='_guard "[0-9]#" "'${opt}': numeric value"'
+    if [[ ${mode} == 'session' ]]; then
+        options=(
+            'base-index:'${int_guard}
+            'bell-action:DESC:any none current'
+            'buffer-limit:'${int_guard}
+            'default-command:MSG:command string'
+            'default-path:MSG:path name'
+            'default-shell:MSG:shell executable'
+            'default-terminal:MSG:terminal string'
+            'display-panes-colour:__tmux-colours'
+            'display-panes-active-colour:__tmux-colours'
+            'display-panes-time:'${int_guard}
+            'display-time:'${int_guard}
+            'history-limit:'${int_guard}
+            'lock-after-time:'${int_guard}
+            'lock-command:MSG:command string'
+            'lock-server:DESC:on off'
+            'message-attr:__tmux-attributes'
+            'message-bg:__tmux-colours'
+            'message-fg:__tmux-colours'
+            'message-limit:'${int_guard}
+            'mouse-select-pane:DESC:on off'
+            'pane-border-bg:__tmux-colours'
+            'pane-border-fg:__tmux-colours'
+            'pane-active-border-bg:__tmux-colours'
+            'pane-active-border-fg:__tmux-colours'
+            'prefix:MSG:comma-seperated key list'
+            'repeat-time:'${int_guard}
+            'set-remain-on-exit:DESC:on off'
+            'set-titles:DESC:on off'
+            'set-titles-string:MSG:title format string'
+            'status:DESC:on off'
+            'status-attr:__tmux-attributes'
+            'status-bg:__tmux-colours'
+            'status-fg:__tmux-colours'
+            'status-interval:'${int_guard}
+            'status-justify:DESC:left centre right'
+            'status-keys:DESC:vi emacs'
+            'status-left:MSG:format string'
+            'status-left-attr:__tmux-attributes'
+            'status-left-bg:__tmux-colours'
+            'status-left-fg:__tmux-colours'
+            'status-left-length:'${int_guard}
+            'status-right:MSG:format string'
+            'status-right-attr:__tmux-attributes'
+            'status-right-bg:__tmux-colours'
+            'status-right-fg:__tmux-colours'
+            'status-right-length:'${int_guard}
+            'status-utf8:DESC:on off'
+            'terminal-overrides:MSG:overrides string'
+            'update-environment:MSG:string listing env. variables'
+            'visual-activity:DESC:on off'
+            'visual-bell:DESC:on off'
+            'visual-content:DESC:on off'
+        )
+    elif [[ ${mode} == 'server' ]]; then
+        options=(
+            'escape-time:'${int_guard}
+            'quiet:DESC:on off'
+        )
+    else
+        options=(
+            'aggressive-resize:DESC:on off'
+            'alternate-screen:DESC:on off'
+            'automatic-rename:DESC:on off'
+            'clock-mode-colour:__tmux-colours'
+            'clock-mode-style:DESC:12 24'
+            'force-height:'${int_guard}
+            'force-width:'${int_guard}
+            'main-pane-height:'${int_guard}
+            'main-pane-width:'${int_guard}
+            'mode-attr:__tmux-attributes'
+            'mode-bg:__tmux-colours'
+            'mode-fg:__tmux-colours'
+            'mode-keys:DESC:vi emacs'
+            'mode-mouse:DESC:on off'
+            'monitor-activity:DESC:on off'
+            'monitor-content:MSG:fnmatch(3) pattern'
+            'remain-on-exit:DESC:on off'
+            'synchronize-panes:DESC:on off'
+            'utf8:DESC:on off'
+            'window-status-attr:__tmux-attributes'
+            'window-status-bg:__tmux-colours'
+            'window-status-current-attr:__tmux-attributes'
+            'window-status-current-bg:__tmux-colours'
+            'window-status-current-fg:__tmux-colours'
+            'window-status-current-format:MSG:status format string'
+            'window-status-fg:__tmux-colours'
+            'window-status-format:MSG:status format string'
+            'xterm-keys:DESC:on off'
+        )
+    fi
+
+    guard=${(M)options:#$opt:*}
+    if [[ -z ${guard} ]]; then
+        _message "unknown ${mode} option: ${opt}"
+        return
+    fi
+    _message "${mode} option value"
+    guard=${guard#*:}
+    case ${guard} in
+        ('') ;;
+        (MSG:*)
+            _message ${guard#*:}
+            ;;
+        (DESC:*)
+            eval "desc=( ${guard#*:} )"
+            _describe -t "tmux-${mode}-option-value" "${opt}" desc
+            ;;
+        (*)
+            eval ${guard}
+            ;;
+    esac
+}
+
+function __tmux-options() {
+    local -a tmux_options
+    tmux_options=(
+        'base-index:define where to start numbering'
+        'bell-action:set action on window bell'
+        'buffer-limit:number of buffers kept per session'
+        'default-command:default command for new windows'
+        'default-path:default working directory'
+        'default-shell:default shell executable'
+        'default-terminal:default terminal definition string'
+        'display-panes-colour:colour used for display-panes'
+        'display-panes-active-colour:colour for active pane in display-panes'
+        'display-panes-time:time (in msecs) of display-panes output'
+        'display-time:time (in msecs) messages are displayed'
+        'history-limit:number of copy-mode lines per window'
+        'lock-after-time:lock sessions after N seconds'
+        'lock-command:command to run for locking a client'
+        'lock-server:make lock-after-time lock the server instead of sessions'
+        'message-attr:set status line message attributes'
+        'message-bg:set status line message background colour'
+        'message-fg:set status line message foreground colour'
+        'message-limit:set size of message log per client'
+        'mouse-select-pane:make mouse clicks select window panes'
+        'pane-border-bg:set pane border foreground colour'
+        'pane-border-fg:set pane border background colour'
+        'pane-active-border-bg:set active pane border foreground colour'
+        'pane-active-border-fg:set active pane border background colour'
+        'prefix:comma seperated line of keys accepted as prefix key'
+        'repeat-time:time for multiple commands without prefix-key presses'
+        'set-remain-on-exit:set remain-on-exit window option'
+        'set-titles:try to set xterm window titles'
+        'set-titles-string:format used by set-titles'
+        'status:show or hide the status bar'
+        'status-attr:status bar attributes'
+        'status-bg:status bar background colour'
+        'status-fg:status bar foreground colour'
+        'status-interval:interval (in seconds) for status bar updates'
+        'status-justify:position of the window list in status bar'
+        'status-keys:mode to use in status bar modes (vi/emacs)'
+        'status-left:format to use left in status bar'
+        'status-left-attr:attribute for the left part of the status bar'
+        'status-left-bg:background colour of the left part of the status bar'
+        'status-left-fg:foreground colour of the left part of the status bar'
+        'status-left-length:maximum length of the left part of the status bar'
+        'status-right:format to use right in status bar'
+        'status-right-attr:attribute for the right part of the status bar'
+        'status-right-bg:background colour of the right part of the status bar'
+        'status-right-fg:foreground colour of the right part of the status bar'
+        'status-right-length:maximum length of the right part of the status bar'
+        'status-utf8:assume UTF-8 sequences to appear in status bar'
+        'terminal-overrides:override terminal descriptions'
+        'update-environment:list of variables to be copied to a session'\''s environment'
+        'visual-activity:display status line messages upon activity'
+        'visual-bell:use visual bell instead of audible'
+        'visual-content:display status line messages upon content changes'
+    )
+    _describe -t tmux-options 'tmux option' tmux_options
+}
+
+function __tmux-options-complete() {
+    local mode="$1" state="$2"
+
+    case ${state} in
+        name_or_value)
+            if (( CURRENT == 1 )) && [[ ${mode} == 'session' ]]; then
+                __tmux-options
+            elif (( CURRENT == 1 )) && [[ ${mode} == 'server' ]]; then
+                __tmux-server-options
+            elif (( CURRENT == 1 )) && [[ ${mode} == 'window' ]]; then
+                __tmux-window-options
+            elif (( CURRENT == 2 )); then
+                __tmux-option-guard ${mode} ${words[1]}
+            else
+                __tmux-nothing-else
+            fi
+            ;;
+    esac
+}
+
+function __tmux-panes() {
+    local expl line
+    local -i num
+    local -a panes opts
+
+    compset -P '*.'
+    if [[ -n ${IPREFIX} ]]; then
+        opts=( -t "${IPREFIX%.}" )
+    else
+        opts=( )
+    fi
+    num=0
+    command tmux list-panes "${opts[@]}" | while IFS= read -r line; do
+        panes+=( $(( num++ )):${line//:/} )
+    done
+    _describe -t panes 'panes' panes "$@"
+    if [[ ${IPREFIX} != *. ]]; then
+        _wanted windows expl 'windows' __tmux-windows -S.
+    fi
+}
+
+function __tmux-server-options() {
+    local -a tmux_server_options
+    tmux_server_options=(
+        'escape-time:set timeout to detect single escape characters (in msecs)'
+        'quiet:enable/disable the display of various informational messages'
+    )
+    _describe -t tmux-server-options 'tmux server option' tmux_server_options
+}
+
+function __tmux-sessions() {
+    local expl
+    local -a sessions
+    sessions=( ${${(f)"$(command tmux list-sessions)"}/:[ $'\t']##/:} )
+    _describe -t sessions 'sessions' sessions "$@"
+}
+
+function __tmux-socket-name() {
+    local expl sdir
+    local curcontext="${curcontext}"
+    local -a socks
+    zstyle -s ":completion:${curcontext}:sockets" socketdir sdir || sdir="/tmp/tmux-${UID}"
+    socks=(${sdir}/*(=:t))
+    _wanted socket expl 'socket name' compadd ${expl} -- ${socks}
+}
+
+function __tmux-window-options() {
+    local -a tmux_window_options
+    tmux_window_options=(
+        'aggressive-resize:aggressively resize windows'
+        'alternate-screen:allow alternate screen feature to be used'
+        'automatic-rename:attempt to automatically rename windows'
+        'clock-mode-colour:set clock colour'
+        'clock-mode-style:set clock hour format (12/24)'
+        'force-height:force a windows to a certain height'
+        'force-width:force a windows to a certain width'
+        'main-pane-height:set height for main-* layouts'
+        'main-pane-width:set width for main-* layouts'
+        'mode-attr:set window modes attributes'
+        'mode-bg:set window modes background colour'
+        'mode-fg:set window modes foreground colour'
+        'mode-keys:mode to use in copy and choice modes (vi/emacs)'
+        'mode-mouse:use mouse in modes'
+        'monitor-activity:monitor window activity'
+        'monitor-content:monitor window contents for a fnmatch(3) pattern'
+        'remain-on-exit:do not destroy windows after the program exits'
+        'synchronize-panes:send input to all panes of a window'
+        'utf8:assume UTF-8 sequences to appear in a window'
+        'window-status-attr:set status line attributes for a window'
+        'window-status-bg:set status line background for a window'
+        'window-status-current-attr:set status line attributes for active window'
+        'window-status-current-bg:set status line background for active window'
+        'window-status-current-fg:set status line foreground for active window'
+        'window-status-current-format:set status line format for active window'
+        'window-status-fg:set status line foreground for a window'
+        'window-status-format:set status line format for all but the active window'
+        'xterm-keys:generate xterm-style function key sequences'
+    )
+    _describe -t tmux-window-options 'tmux window option' tmux_window_options
+}
+
+function __tmux-windows() {
+    local expl
+    local -a wins opts
+
+    compset -P '*:'
+    if [[ -n ${IPREFIX} ]]; then
+        opts=( -t "${IPREFIX%:}" )
+    else
+        opts=( )
+    fi
+    wins=( ${${(M)${(f)"$(command tmux list-windows "${opts[@]}")"}:#<->*}/:[ $'\t']##/:} )
+    _describe -t windows 'windows' wins "$@"
+    if [[ ${IPREFIX} != *: ]]; then
+        _wanted sessions expl 'sessions' __tmux-sessions -S:
+    fi
+}
+
+# And here is the actual _tmux(), that puts it all together:
+function _tmux() {
+    local curcontext="${curcontext}"
+    local mode state ret
+    local -a args
+    local -x tmuxcommand
+    unset tmux_describe
+
+    args=(
+        '-2[force using 256 colours]'
+        '-8[force using 88 colours]'
+        '-c[execute a shell command]:command name:_command_names'
+        '-f[specify configuration file]:tmux config file:_files -g "*(-.)"'
+        '-l[behave like a login shell]'
+        '-L[specify socket name]:socket name:__tmux-socket-name'
+        '-q[do not send informational messages]'
+        '-S[specify socket path]:server socket:_path_files -g "*(=,/)"'
+        '-u[force using UTF-8]'
+        '-v[request verbose logging]'
+        '*:: :->subcommand_or_options'
+    )
+    _arguments -C -s -w ${args} && return
+
+    if [[ ${state} == "subcommand_or_options" ]]; then
+        if (( CURRENT == 1 )) ; then
+            zstyle -s ":completion:${curcontext}:subcommands" mode mode || mode='both'
+            if [[ ${mode} == 'commands' ]]; then
+                _describe -t subcommands 'tmux commands' _tmux_commands
+            elif [[ ${mode} == 'aliases' ]]; then
+                _describe -t subcommands 'tmux aliases' _tmux_aliases
+            else
+                _describe -t subcommands 'tmux commands and aliases' _tmux_commands -- _tmux_aliases
+            fi
+        else
+            tmuxcommand="${words[1]}"
+            if [[ -n ${_tmux_aliasmap[$tmuxcommand]} ]] ; then
+                tmuxcommand="${_tmux_aliasmap[$tmuxcommand]}"
+            fi
+            curcontext="${curcontext%:*:*}:tmux-${tmuxcommand}:"
+            _call_function ret _tmux-${tmuxcommand}
+        fi
+    fi
+}
+
+# description generation follows; only done on 1st _tmux call.
+local f desc
+local -A rev
+local -x tmux_describe
+tmux_describe='yes, please'
+for f in ${(k)_tmux_aliasmap} ; do
+    rev+=( ${_tmux_aliasmap[$f]} $f )
+done
+for f in ${(M)${(k)functions}:#_tmux-*} ; do
+    desc="$($f)"
+    _tmux_commands+=( "${f#_tmux-}${desc:+:$desc}" )
+    [[ -n ${rev[${f#_tmux-}]} ]] && _tmux_aliases+=( "${rev[${f#_tmux-}]}${desc:+:$desc}" )
+done
+unset desc f rev tmux_describe
+
+_tmux
diff -Nru zsh-4.3.10/Completion/Unix/Command/_todo.sh zsh-4.3.11/Completion/Unix/Command/_todo.sh
--- zsh-4.3.10/Completion/Unix/Command/_todo.sh	2007-01-16 11:32:02.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_todo.sh	2010-08-19 18:08:30.000000000 +0200
@@ -6,13 +6,13 @@
 #  - "replace" will complete the original text for editing
 #  - completing priorities will cycle through A to Z (even without
 #    menu completion)
-#  - list and listall will complete p: and @ from
+#  - list and listall will complete + and @ from
 #    values in existing entries
-#  - will complete after p: and @ if typed in message text
+#  - will complete after + and @ if typed in message text
 
 setopt localoptions braceccl
 
-local expl curcontext="$curcontext" state line pri nextstate
+local expl curcontext="$curcontext" state line pri nextstate item
 local -a cmdlist itemlist match mbegin mend
 integer NORMARG
 
@@ -29,32 +29,44 @@
 local projmsg="context or project"
 local txtmsg="text with contexts or projects"
 
+# Skip "command" as command prefix if words after
+if [[ $words[NORMARG] == command && NORMARG -lt CURRENT ]]; then
+  (( NORMARG++ ))
+fi
+
 case $state in
   (commands)
   cmdlist=(
-    "add:Add TODO ITEM to todo.txt."
-    "append:Adds to item on line NUMBER the text TEXT."
-    "archive:Moves done items from todo.txt to done.txt."
-    "del:Deletes the item on line NUMBER in todo.txt."
-    "do:Marks item on line NUMBER as done in todo.txt."
-    "list:Displays all todo items containing TERM(s), sorted by priority."
-    "listall:Displays items including done ones containing TERM(s)"
-    "listpri:Displays all items prioritized at PRIORITY."
-    "prepend:Adds to the beginning of the item on line NUMBER text TEXT."
-    "pri:Adds or replace in NUMBER the priority PRIORITY (upper case letter)."
-    "replace:Replace in NUMBER the TEXT."
-    "remdup:Remove exact duplicates from todo.txt."
-    "report:Adds the number of open and done items to report.txt."
+    "add:add TODO ITEM to todo.txt."
+    "addm:add TODO ITEMs, one per line, to todo.txt."
+    "addto:add text to file (not item)"
+    "append:adds to item on line NUMBER the text TEXT."
+    "archive:moves done items from todo.txt to done.txt."
+    "command:run internal commands only"
+    "del:deletes the item on line NUMBER in todo.txt."
+    "depri:remove prioritization from item"
+    "do:marks item on line NUMBER as done in todo.txt."
+    "help:display help"
+    "list:displays all todo items containing TERM(s), sorted by priority."
+    "listall:displays items including done ones containing TERM(s)"
+    "listcon:list all contexts"
+    "listfile:display all files in .todo directory"
+    "listpri:displays all items prioritized at PRIORITY."
+    "move:move item between files"
+    "prepend:adds to the beginning of the item on line NUMBER text TEXT."
+    "pri:adds or replace in NUMBER the priority PRIORITY (upper case letter)."
+    "replace:replace in NUMBER the TEXT."
+    "remdup:remove exact duplicates from todo.txt."
+    "report:adds the number of open and done items to report.txt."
   )
   _describe -t todo-commands 'todo.sh command' cmdlist
   ;;
 
   (arguments)
   case $words[NORMARG] in
-    (append|del|do|prepend|pri|replace)
+    (append|command|del|move|mv|prepend|pri|replace|rm)
     if (( NORMARG == CURRENT - 1 )); then
-      itemlist=(${${(M)${(f)"$(todo.sh -p list)"}##<-> *}/(#b)(<->) (*)/${match[1]}:${match[2]}})
-      _describe -t todo-items 'todo item' itemlist
+      nextstate=item
     else
       case $words[NORMARG] in
 	(pri)
@@ -63,18 +75,42 @@
 	(append|prepend)
 	nextstate=proj
 	;;
+	(move|mv)
+	nextstate=file
+	;;
 	(replace)
-	compadd -Q -- "${(qq)$(todo.sh -p list "^0*${words[CURRENT-1]} ")##<-> }"
+	item=${words[CURRENT-1]##0##}
+	compadd -Q -- "${(qq)$(todo.sh -p list "^[ 0]*$item " | sed '/^--/,$d')##<-> (\([A-Z]\) |)}"
 	;;
       esac
     fi
     ;;
 
-    (add|list|listall)
+    (depri|do|dp)
+    nextstate=item
+    ;;
+
+    (a|add|addm|list|ls|listall|lsa)
     nextstate=proj
     ;;
 
-    (listpri)
+    (addto)
+    if (( NORMARG == CURRENT - 1 )); then
+      nextstate=file
+    else
+      nexstate=proj
+    fi
+    ;;
+
+    (listfile|lf)
+    if (( NORMARG == CURRENT -1 )); then
+      nextstate=file
+    else
+      _message "Term to search file for"
+    fi
+    ;;
+
+    (listpri|lsp)
     nextstate=pri
     ;;
 
@@ -86,6 +122,15 @@
 esac
 
 case $nextstate in
+  (file)
+  _path_files -W ~/.todo
+  ;;
+
+  (item)
+  itemlist=(${${(M)${(f)"$(todo.sh -p list | sed '/^--/,$d')"}##<-> *}/(#b)(<->) (*)/${match[1]}:${match[2]}})
+  _describe -t todo-items 'todo item' itemlist
+  ;;
+
   (pri)
   if [[ $words[CURRENT] = (|[A-Z]) ]]; then
     if [[ $words[CURRENT] = (|Z) ]]; then
@@ -102,15 +147,15 @@
   ;;
 
   (proj)
-  # This completes stuff beginning with p: (projects) or @ (contexts);
+  # This completes stuff beginning with + (projects) or @ (contexts);
   # these are todo.sh conventions.
-  if [[ ! -prefix p: && ! -prefix @ ]]; then
+  if [[ ! -prefix + && ! -prefix @ ]]; then
     projmsg=$txtmsg
   fi
   # In case there are quotes, ignore anything up to whitespace before
-  # the p: or @ (which may not even be there yet).
+  # the + or @ (which may not even be there yet).
   compset -P '*[[:space:]]'
   _wanted search expl $projmsg \
-    compadd ${${=${${(M)${(f)"$(todo.sh -p list)"}##<-> *}##<-> }}:#^(p:*|@*)}
+    compadd $(todo.sh lsprj) $(todo.sh lsc)
   ;;
 esac
diff -Nru zsh-4.3.10/Completion/Unix/Command/_uzbl zsh-4.3.11/Completion/Unix/Command/_uzbl
--- zsh-4.3.10/Completion/Unix/Command/_uzbl	1970-01-01 01:00:00.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_uzbl	2010-03-30 20:37:38.000000000 +0200
@@ -0,0 +1,10 @@
+#compdef uzbl uzbl-browser uzbl-tabbed
+
+_arguments \
+  '(-u --uri)'{-u,--uri=}':uri to load:_urls' \
+  '(-v --verbose)'{-v,--verbose}'[verbose]' \
+  '(-n --name)'{-n,--name=}':instance name' \
+  '(-c --config)'{-c,--config=}':config file:_files' \
+  '--display=:X display:_x_display' \
+  '--help[help]'
+
diff -Nru zsh-4.3.10/Completion/Unix/Command/_vim zsh-4.3.11/Completion/Unix/Command/_vim
--- zsh-4.3.10/Completion/Unix/Command/_vim	2009-01-05 15:10:23.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_vim	2010-06-22 23:59:59.000000000 +0200
@@ -56,7 +56,7 @@
   '-p-[number of tabs to open (default: one for each file)]::tab count: '
   '-q-[quickfix file]:*:file:_vim_files'
   '*--cmd[execute given command before loading any RC files]:command: '
-  '-c[executed given command after loading the first file]:command: '
+  '-c[execute given command after loading the first file]:command: '
   '-S[source a session file after loading the first file]:session file:_files'
   '-s[read normal-mode commands from script file]:script file:_files'
   '-w[append all typed commands to given file]:output file:_files'
@@ -69,11 +69,15 @@
   '--remote-wait-silent[as --remote-wait but without complaining if not possible]:*:file:_vim_files'
   '--remote-send[send given keys to vim server if possible]:keys: '
   '--remote-tab[as --remote but open tab page for each file]:*:file:_vim_files'
+  '--remote-tab-silent[as --remote-silent but open tab page for each file]:*:file:_vim_files'
+  '--remote-tab-wait[as --remote-wait but open tab page for each file]:*:file:_vim_files'
+  '--remote-tab-wait-silent[as --remote-wait-silent but open tab page for each file]:*:file:_vim_files'
   '--remote-expr[evaluate given expression in a vim server and print result]:expression: '
   '--echo-wid[echo window ID on STDOUT, GUI version only]'
   '--literal[do not expand wildcards in arguments (this is useless with ZSH)]'
   '(- *)--serverlist[list available vim servers and exit]'
   '--servername[name of vim server to send to or name of server to become]:server name: '
+  '--startuptime[write startup timing messages to given file]:log file:_files'
   '--socketid[run GVIM in another window]'
   '-i[use given viminfo file instead of default .viminfo]:viminfo file:_files'
   '(- *)'{-h,--help}'[print help and exit]'
diff -Nru zsh-4.3.10/Completion/Unix/Command/_wget zsh-4.3.11/Completion/Unix/Command/_wget
--- zsh-4.3.10/Completion/Unix/Command/_wget	2006-10-05 15:27:58.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_wget	2010-06-06 15:44:12.000000000 +0200
@@ -79,7 +79,7 @@
   '(--user)--ftp-user=:user' \
   '(--password)--ftp-password=:password' \
   "--no-remove-listing[don't remove \`.listing' files]" \
-  '--no-glob[turn off FTP file name globbing.]' \
+  '--no-glob[turn off FTP file name globbing]' \
   '--no-passive-ftp' \
   '--retr-symlinks' \
   '--preserve-permissions[preserve remote file permissions with ftp]' \
diff -Nru zsh-4.3.10/Completion/Unix/Command/_xmlsoft zsh-4.3.11/Completion/Unix/Command/_xmlsoft
--- zsh-4.3.10/Completion/Unix/Command/_xmlsoft	2005-10-24 18:57:06.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Command/_xmlsoft	2010-07-15 16:05:08.000000000 +0200
@@ -1,7 +1,28 @@
 #compdef xsltproc xmllint -value-,XML_CATALOG_FILES,-default-
 
-# xmllint: using libxml version 20622
-# xsltproc: using libxslt version 10100
+# xmllint: using libxml version 20707
+# xsltproc: using libxml 20707, libxslt 10126 and libexslt 815
+
+local -a encoding
+
+encoding=(
+  UTF-8
+  UTF-16
+  ISO-10646-UCS-2
+  ISO-10646-UCS-4
+  ISO-8859-1
+  ISO-8859-2
+  ISO-8859-3
+  ISO-8859-4
+  ISO-8859-5
+  ISO-8859-6
+  ISO-8859-7
+  ISO-8859-8
+  ISO-8859-9
+  ISO-2022-JP
+  SHIFT_JIS
+  EUC-JP
+)
 
 case $service in
   xsltproc)
@@ -14,10 +35,12 @@
       '--debug[dump the tree of the result instead]' \
       '--dumpextensions[dump registered extension elements and functions]' \
       '--novalid[skip the DTD loading phase]' \
+      '--nodtdattr[do not default attributes from the DTD]' \
       '--noout[do not dump the result]' \
       '--maxdepth[increase the maximum depth]:depth' \
-      '--maxparsedepth[increase the maximum parser depth]:depth' \
+      '--maxparserdepth[increase the maximum parser depth]:depth' \
       '--html[input document is an HTML file]' \
+      '--encoding[the input document character encoding]:encoding:(${encoding[@]})' \
       '--param[pass a parameter,value pair]:name::value (xpath expression)' \
       '--stringparam[pass a parameter]:name::value' \
       '--path[provide a set of paths for resources]:paths:_files -/' \
@@ -27,33 +50,13 @@
       '--writesubtree[allow file write only with the path subtree]:path:_files -/' \
       '--catalogs[use SGML catalogs]' \
       '--xinclude[do XInclude processing on document input]' \
+      '--xincludestyle[do XInclude processing on stylesheets]' \
       '--load-trace[print trace of all external entites loaded]' \
       {--profile,--norman}'[dump profiling information]' \
       '1:stylesheet:_files -g "*.xsl(-.)"' \
       ':file:_files -g "*.xml(-.)"' && return
   ;;
   xmllint)
-    local -a encoding
-
-    encoding=(
-      UTF-8
-      UTF-16
-      ISO-10646-UCS-2
-      ISO-10646-UCS-4
-      ISO-8859-1
-      ISO-8859-2
-      ISO-8859-3
-      ISO-8859-4
-      ISO-8859-5
-      ISO-8859-6
-      ISO-8859-7
-      ISO-8859-8
-      ISO-8859-9
-      ISO-2022-JP
-      SHIFT_JIS
-      EUC-JP
-    )
-
     _arguments \
       '--version[display the version of the XML library used]' \
       '--debug[dump a debug tree of the in-memory document]' \
@@ -61,6 +64,7 @@
       '--debugent[debug the entities defined in the document]' \
       '--copy[used to test the internal copy implementation]' \
       '--recover[output what was parsable on broken XML documents]' \
+      '--huge[remove any internal arbitrary parser limits]' \
       '--noent[substitute entity references by their value]' \
       "(--output -o)--noout[don't output the result tree]" \
       '--path[provide a set of paths for resources]:paths:_files -/' \
@@ -90,6 +94,7 @@
       '--encode[output in the given encoding]:encoding:(${encoding[@]})' \
       '--dropdtd[remove the DOCTYPE of the input docs]' \
       '--c14n[save in W3C canonical format]' \
+      '--c14n11[save in W3C canonical format v1.1 (with comments)]' \
       '--exc-c14n[save in W3C exclusive canonical format]' \
       '--nsclean[remove redundant namespace declarations]' \
       '--testIO[test user I/O support]' \
@@ -99,6 +104,7 @@
       '(--noxincludenode)--xinclude[do XInclude processing]' \
       '(--xinclude)--noxincludenode[do XInclude processing but do not generate XInclude nodes]' \
       '--loaddtd[fetch external DTD]' \
+      '--nofixup-base-uris[do not fixup xml:base uris]' \
       '--dtdattr[loaddtd + populate the tree with inherited attributes]' \
       '--stream[use the streaming interface to process very large files]' \
       '--walker[create a reader and walk though the resulting doc]' \
@@ -109,6 +115,8 @@
       '(--dtdvalid --postvalid --relaxng)--schematron[do validation against specified schematron]:schema:_webbrowser' \
       '--sax1[use the old SAX1 interfaces for processing]' \
       '--sax[do not build a tree but work just at the SAX level]' \
+      '--oldxml10[use XML-1.0 parsing rules before the 5th edition]' \
+      '--xpath[evaluate the XPath expression, inply --noout]:XPath expression:' \
       '*:XML file:_webbrowser' && return
   ;;
   *XML_CATALOG_FILES*)
diff -Nru zsh-4.3.10/Completion/Unix/Command/_yafc zsh-4.3.11/Completion/Unix/Command/_yafc
--- zsh-4.3.10/Completion/Unix/Command/_yafc	2007-01-22 12:09:16.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_yafc	2010-06-06 15:44:12.000000000 +0200
@@ -3,22 +3,22 @@
 _yafc() {
     local arguments
     arguments=(
-    '(--anon -a)'{--anon,-a}'[Try an anonymous login]'
-    '(--debug -d)'{--debug,-d}'[Print all messages to/from server]'
-    '(--dump-rc -D)'{--dump-rc,-D}'[Print the default configuration file]'
+    '(--anon -a)'{--anon,-a}'[try an anonymous login]'
+    '(--debug -d)'{--debug,-d}'[print all messages to/from server]'
+    '(--dump-rc -D)'{--dump-rc,-D}'[print the default configuration file]'
     '(--mechanism -m)'{--mechanism=-,-m}'[specify a security mechanism]:security mechanism:(krb4, krb5, none)'
-    '(--norc -n)'{--norc,-n}'[Do not read the users configuration file]'
-    '(--noproxy -p)'{--noproxy,-p}'[Do not connect via the proxy]'
-    '(--quiet -q)'{--quiet,-q}'[Do not print the welcome message]'
-    '(--rcfile -r)'{--rcfile=-,-r}'[Specify a configuration file]:configuration file:_files'
-    '(--trace -t)'{--trace=-,-t-}'[Specify a trace file]:trace file:_files'
-    '(--noauto -u)'{--noauto,-u}'[Do not login automagically]'
-    '(--noalias -U)'{--noalias,-U}'[As --noauto, but bookmark aliases is disabled]'
+    '(--norc -n)'{--norc,-n}'[do not read the users configuration file]'
+    '(--noproxy -p)'{--noproxy,-p}'[do not connect via the proxy]'
+    '(--quiet -q)'{--quiet,-q}'[do not print the welcome message]'
+    '(--rcfile -r)'{--rcfile=-,-r}'[specify a configuration file]:configuration file:_files'
+    '(--trace -t)'{--trace=-,-t-}'[specify a trace file]:trace file:_files'
+    '(--noauto -u)'{--noauto,-u}'[do not login automagically]'
+    '(--noalias -U)'{--noalias,-U}'[as --noauto, but bookmark aliases is disabled]'
     '(--verbose -v)'{--verbose,-v}'[print all responses received]'
-    '(--wait -w)'{--wait,-w=}'[Specify a waiting time between connection attempts]:wait time: '
-    '(--workdir -W)'{--workdir=,-W+}'[Use a different working directory]:working directory:_directories'
-    '(--version -V)'{--version,-V}'[Print version information]'
-    '(--help -h)'{--help,-h}'[Print a short help description]'
+    '(--wait -w)'{--wait,-w=}'[specify a waiting time between connection attempts]:wait time: '
+    '(--workdir -W)'{--workdir=,-W+}'[use a different working directory]:working directory:_directories'
+    '(--version -V)'{--version,-V}'[print version information]'
+    '(--help -h)'{--help,-h}'[print a short help description]'
     '*:address:_yafc_address'
     )
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_zfs zsh-4.3.11/Completion/Unix/Command/_zfs
--- zsh-4.3.10/Completion/Unix/Command/_zfs	2009-02-16 10:58:31.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_zfs	2010-06-06 15:44:12.000000000 +0200
@@ -49,7 +49,7 @@
 
 	if [[ $service == "zfs" ]]; then
 		_arguments -C -A "-*" \
-			'-\?[Help]' \
+			'-\?[help]' \
 			'*::command:->subcmd' && return 0
 
 		if (( CURRENT == 1 )); then
@@ -63,43 +63,43 @@
 	case $service in
 	("create")
 		_arguments -A "-*" \
-			'-p[Create parent datasets]' \
-			'-o[Set initial properties]:property:_values -s , "property" $rw_properties' \
+			'-p[create parent datasets]' \
+			'-o[set initial properties]:property:_values -s , "property" $rw_properties' \
 			- set1 \
 			':filesystem:' \
 			- set2 \
-			'-s[Create sparse volume]' \
-			'-b[Set volblocksize]:blocksize:' \
-			'-V[Set size]:size:' \
+			'-s[create sparse volume]' \
+			'-b[set volblocksize]:blocksize:' \
+			'-V[set size]:size:' \
 			':volume:'
 		;;
 
 	("destroy")
 		_arguments -A "-*" \
-			'-r[Recursively destroy all children]' \
-			'-R[Recursively destroy all dependents]' \
-			'-f[Force unmounts]' \
+			'-r[recursively destroy all children]' \
+			'-R[recursively destroy all dependents]' \
+			'-f[force unmounts]' \
 			':filesystem/volume/snapshot:_zfs_dataset'
 		;;
 
 	("snapshot")
 		_arguments -A "-*" \
-			'-r[Recursively snapshot all descendant datasets]' \
+			'-r[recursively snapshot all descendant datasets]' \
 			':filesystem/volume:_zfs_dataset -t fs -t vol -S@'
 		;;
 
 	("rollback")
 		_arguments -A "-*" \
-			'-r[Recursively destroy more recent snapshots]' \
-			'-R[Recursively destroy more recent snapshots and clones]' \
-			'-f[Force unmounts]' \
+			'-r[recursively destroy more recent snapshots]' \
+			'-R[recursively destroy more recent snapshots and clones]' \
+			'-f[force unmounts]' \
 			':snapshot:_zfs_dataset -t snap'
 		;;
 
 	("clone")
 		# XXX needs to bail if there are no snapshots
 		_arguments -A "-*" \
-			'-p[Create parent datasets]' \
+			'-p[create parent datasets]' \
 			':snapshot:_zfs_dataset -t snap' \
 			':filesystem/volume:'
 		;;
@@ -113,23 +113,23 @@
 	("rename")
 		_arguments -A "-*" \
 			- set1 \
-			'-p[Create parent datasets]' \
+			'-p[create parent datasets]' \
 			':filesystem/volume/snapshot:_zfs_dataset' \
 			':filesystem/volume/snapshot:' \
 			- set2 \
-			'-r[Recursively rename snapshots of all descendent datasets]' \
+			'-r[recursively rename snapshots of all descendent datasets]' \
 			':snapshot:_zfs_dataset -t snap' \
 			':snapshot:'
 		;;
 
 	("list")
 		_arguments -A "-*" \
-			'-r[Recursively display children]' \
-			'-H[Scripting mode]' \
-			'-o[Properties to list]:property:_values -s , "property" $ro_properties $rw_propnames' \
-			'*-s[Sort key (ascending)]:property:_values "property" $ro_properties $rw_propnames' \
-			'*-S[Sort key (descending)]:property:_values "property" $ro_properties $rw_propnames' \
-			'-t[Dataset types to list]:dataset type:_values -s , "dataset type" filesystem snapshot volume' \
+			'-r[recursively display children]' \
+			'-H[scripting mode]' \
+			'-o[properties to list]:property:_values -s , "property" $ro_properties $rw_propnames' \
+			'*-s[sort key (ascending)]:property:_values "property" $ro_properties $rw_propnames' \
+			'*-S[sort key (descending)]:property:_values "property" $ro_properties $rw_propnames' \
+			'-t[dataset types to list]:dataset type:_values -s , "dataset type" filesystem snapshot volume' \
 			'*:filesystem/volume/snapshot:_zfs_dataset'
 		;;
 
@@ -141,46 +141,46 @@
 
 	("get")
 		_arguments -A "-*" \
-			"-r[Recursively display children's properties]" \
-			'-H[Scripting mode]' \
-			'-p[Display numbers exactly]' \
-			'-s[Specify sources]:source:_values -s , "source" local default inherited temporary none' \
-			'-o[Specify fields]:field:_values -s , "field" name property value source' \
+			"-r[recursively display children's properties]" \
+			'-H[scripting mode]' \
+			'-p[display numbers exactly]' \
+			'-s[specify sources]:source:_values -s , "source" local default inherited temporary none' \
+			'-o[specify fields]:field:_values -s , "field" name property value source' \
 			':property:_values -s , "property" $ro_properties $rw_propnames all' \
 			'*:filesystem/volume/snapshot:_zfs_dataset'
 		;;
 
 	("inherit")
 		_arguments -A "-*" \
-			'-r[Recursively inherit property for all children]' \
+			'-r[recursively inherit property for all children]' \
 			':property:_values -s , "property" $ro_properties $rw_properties' \
 			'*:filesystem/volume:_zfs_dataset -t fs -t vol'
 		;;
 
 	("mount")
 		_arguments -A "-*" \
-			'-o[Mount options]:mount options:_values -s , "option" {,no}{devices,exec,setuid} ro rw' \
-			'-O[Overlay mount]' \
-			'-v[Report mount progress]' \
+			'-o[mount options]:mount options:_values -s , "option" {,no}{devices,exec,setuid} ro rw' \
+			'-O[overlay mount]' \
+			'-v[report mount progress]' \
 			- set1 \
 			':filesystem:_zfs_dataset -t fs' \
 			- set2 \
-			'-a[Mount all available ZFS filesystems]'
+			'-a[mount all available ZFS filesystems]'
 		;;
 
 	("unmount")
 		_arguments -A "-*" \
 			- set1 \
-			'-f[Force unmount]' \
+			'-f[force unmount]' \
 			':filesystem:_zfs_dataset -t fs -t mtpt' \
 			- set2 \
-			'-a[Unmount all ZFS filesystems]'
+			'-a[unmount all ZFS filesystems]'
 		;;
 
 	("share")
 		_arguments -A "-*" \
 			- set1 \
-			'-a[Share all available ZFS filesystems]' \
+			'-a[share all available ZFS filesystems]' \
 			- set2 \
 			':filesystem:_zfs_dataset -t fs'
 		;;
@@ -188,27 +188,27 @@
 	("unshare")
 		_arguments -A "-*" \
 			- set1 \
-			'-a[Unshare all shared ZFS filesystems]' \
+			'-a[unshare all shared ZFS filesystems]' \
 			- set2 \
-			'-F[Force unshare]' \
+			'-F[force unshare]' \
 			':filesystem:_zfs_dataset -t fs -t mtpt'
 		;;
 
 	("send")
 		_arguments -A "-*" \
-			'-i[Generate an incremental stream]:snapshot:_zfs_dataset -t snap' \
+			'-i[generate an incremental stream]:snapshot:_zfs_dataset -t snap' \
 			':snapshot:_zfs_dataset -t snap'
 		;;
 
 	("receive")
 		_arguments -A "-*" \
-			'-v[Verbose]' \
-			'-n[Do not receive the stream]' \
-			'-F[Force a rollback if necessary]' \
+			'-v[verbose]' \
+			'-n[do not receive the stream]' \
+			'-F[force a rollback if necessary]' \
 			- set1 \
 			':filesystem/volume/snapshot:_zfs_dataset' \
 			- set2 \
-			'-d[Set path prefix]:filesystem:_zfs_dataset -t fs'
+			'-d[set path prefix]:filesystem:_zfs_dataset -t fs'
 		;;
 
 	("allow"|"unallow")
@@ -218,14 +218,14 @@
 	("upgrade")
 		_arguments -A "-*" \
 			- set1 \
-			'-v[Verbose]' \
+			'-v[verbose]' \
 			- set2 \
-			'-a[Upgrade all filesystems on all pools]' \
-			'-r[Upgrade descendent filesystems, too]' \
-			'-V[Upgrade to specified version]:version:(1 2)' \
+			'-a[upgrade all filesystems on all pools]' \
+			'-r[upgrade descendent filesystems, too]' \
+			'-V[upgrade to specified version]:version:(1 2)' \
 			- set3 \
-			'-r[Upgrade descendent filesystems, too]' \
-			'-V[Upgrade to specified version]:version:(1 2)' \
+			'-r[upgrade descendent filesystems, too]' \
+			'-V[upgrade to specified version]:version:(1 2)' \
 			':filesystem:_zfs_dataset -t fs' \
 		;;
 
diff -Nru zsh-4.3.10/Completion/Unix/Command/_zip zsh-4.3.11/Completion/Unix/Command/_zip
--- zsh-4.3.10/Completion/Unix/Command/_zip	2006-11-07 11:37:48.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_zip	2010-02-08 11:24:38.000000000 +0100
@@ -1,6 +1,6 @@
 #compdef zip unzip zipinfo
 
-local suffixes suf zipfile uzi
+local suffixes suf zipfile uzi testfile
 local expl curcontext="$curcontext" state line ret=1
 typeset -A opt_args
 
@@ -114,10 +114,18 @@
     if [[ $service = zip ]] && (( ! ${+opt_args[-d]} )); then
       _wanted files expl zfile _files -g '^(#i)*.(zip|xpi|[ejw]ar)(-.)' && return
     else
-      zipfile=( $~line[1](|.zip|.ZIP) )
-      [[ -z $zipfile[1] ]] && return 1
-      if [[ $zipfile[1] !=  $_zip_cache_list ]]; then
-	_zip_cache_name="$zipfile[1]"
+      testfile=${~${(Q)line[1]}}
+      if [[ -f $testfile ]]; then
+	zipfile=$testfile
+      elif [[ -f $testfile.zip ]]; then
+	zipfile=$testfile.zip
+      elif [[ -f $testfile.ZIP ]]; then
+	zipfile=$testfile.ZIP
+      else
+	return 1
+      fi
+      if [[ $zipfile !=  $_zip_cache_name ]]; then
+	_zip_cache_name="$zipfile"
 	_zip_cache_list=( ${(f)"$(zipinfo -1 $_zip_cache_name)"} )
       fi
      _wanted files expl 'file from archive' \
diff -Nru zsh-4.3.10/Completion/Unix/Command/_zpool zsh-4.3.11/Completion/Unix/Command/_zpool
--- zsh-4.3.10/Completion/Unix/Command/_zpool	2009-02-16 10:58:31.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Command/_zpool	2010-06-06 15:44:12.000000000 +0200
@@ -35,7 +35,7 @@
 
 	if [[ $service == "zpool" ]]; then
 		_arguments -C -A "-*" \
-			'-\?[Help]' \
+			'-\?[help]' \
 			'*::command:->subcmd' && return 0
 
 		if (( CURRENT == 1 )); then
@@ -56,38 +56,38 @@
 	(create)
 		# TODO: investigate better vdev handling
 		_arguments -A "-*" \
-			'-f[Force use of in-use devices]' \
-			'-n[Display configuration without creating pool]' \
-			'-R[Use alternate root]:alternate root:_files -/' \
-			'-m[Set mountpoint for root dataset]:mountpoint:' \
+			'-f[force use of in-use devices]' \
+			'-n[display configuration without creating pool]' \
+			'-R[use alternate root]:alternate root:_files -/' \
+			'-m[set mountpoint for root dataset]:mountpoint:' \
 			':pool name:' \
 			'*:virtual device:_files'
 		;;
 
 	(destroy)
 		_arguments -A "-*" \
-			'-f[Force active datasets to be unmounted]' \
+			'-f[force active datasets to be unmounted]' \
 			':pool name:_zfs_pool'
 		;;
 
 	(add)
 		_arguments -A "-*" \
-			'-f[Force use of in-use devices]' \
-			'-n[Display configuration without modifying pool]' \
+			'-f[force use of in-use devices]' \
+			'-n[display configuration without modifying pool]' \
 			':pool name:_zfs_pool' \
 			'*:virtual device:_files'
 		;;
 
 	(list)
 		_arguments \
-			'-H[Scripted mode]' \
-			'-o[Fields to list]:field:_values -s , "field" ${^fields/\:/[}\]' \
+			'-H[scripted mode]' \
+			'-o[fields to list]:field:_values -s , "field" ${^fields/\:/[}\]' \
 			'::pool name:_zfs_pool'
 		;;
 
 	(iostat)
 		_arguments -A "-*" \
-			'-v[Verbose statistics]' \
+			'-v[verbose statistics]' \
 			'*::pool name:_zfs_pool' \
 			'::interval:' \
 			'::count:'
@@ -95,14 +95,14 @@
 
 	(status)
 		_arguments -A "-*" \
-			'-v[Verbose information]' \
-			'-x[Show only unhealthy pools]' \
+			'-v[verbose information]' \
+			'-x[show only unhealthy pools]' \
 			'*::pool name:_zfs_pool'
 		;;
 
 	(offline)
 		_arguments -A "-*" \
-			'-t[Offline until next reboot]' \
+			'-t[offline until next reboot]' \
 			':pool name:_zfs_pool' \
 			'*:virtual device:_files'
 		;;
@@ -116,7 +116,7 @@
 	(attach)
 		# TODO: first device should choose first from existing.
 		_arguments \
-			'-f[Force attach, even if in use]' \
+			'-f[force attach, even if in use]' \
 			':pool name:_zfs_pool' \
 			':virtual device:_files' \
 			':virtual device:_files'
@@ -130,7 +130,7 @@
 
 	(replace)
 		_arguments -A "-*" \
-			'-f[Force attach, even if in use]' \
+			'-f[force attach, even if in use]' \
 			':pool name:_zfs_pool' \
 			':virtual device:_files' \
 			'::virtual device:_files'
@@ -138,30 +138,30 @@
 
 	(scrub)
 		_arguments -A "-*" \
-			'-s[Stop scrubbing]' \
+			'-s[stop scrubbing]' \
 			'*:pool name:_zfs_pool'
 		;;
 
 	(export)
 		_arguments -A "-*" \
-			'-f[Forcefully unmount all datasets]' \
+			'-f[forcefully unmount all datasets]' \
 			'*:pool name:_zfs_pool'
 		;;
 
 	(import)
 		# TODO: -o should complete options
 		_arguments -A "-*" \
-			'*-d[Search for devices or files in directory]:_files -/' \
-			'-D[Destroyed pools]' \
-			'-f[Force import]' \
+			'*-d[search for devices or files in directory]:_files -/' \
+			'-D[destroyed pools]' \
+			'-f[force import]' \
 			- set1 \
-			'-o[Mount options]' \
-			'-p[Set property]:property:_values -s , "property" $import_properties' \
-			'-R[Alternate root]:_files -/' \
+			'-o[mount options]' \
+			'-p[set property]:property:_values -s , "property" $import_properties' \
+			'-R[alternate root]:_files -/' \
 			'*:pool name or id:_zfs_pool' \
 			'::new pool name:' \
 			- set2 \
-			'-a[All pools]'
+			'-a[all pools]'
 		;;
 
 	(get)
@@ -179,16 +179,16 @@
 	(upgrade)
 		_arguments -A "-*" \
 			- set1 \
-			'-v[Display ZFS versions and descriptions]' \
+			'-v[display ZFS versions and descriptions]' \
 			- set2 \
-			'-a[Upgrade all pools]' \
+			'-a[upgrade all pools]' \
 			'*:pool name:_zfs_pool'
 		;;
 
 	(history)
 		_arguments -A "-*" \
-			'-i[Display internal events]' \
-			'-l[Long format]' \
+			'-i[display internal events]' \
+			'-l[long format]' \
 			'*:pool name:_zfs_pool'
 		;;
 
diff -Nru zsh-4.3.10/Completion/Unix/Type/_diff_options zsh-4.3.11/Completion/Unix/Type/_diff_options
--- zsh-4.3.10/Completion/Unix/Type/_diff_options	2004-09-30 11:28:18.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_diff_options	2009-10-18 21:47:31.000000000 +0200
@@ -47,7 +47,6 @@
     '(--ignore-file-name-case)--no-ignore-file-name-case[consider case when comparing file names]' \
     '(-E --ignore-tab-expansion)'{-E,--ignore-tab-expansion}'[ignore changes due to tab expansion]' \
     '(-b --ignore-space-change)'{-b,--ignore-space-change}'[ignore changes in the amount of white space]' \
-    '(--ignore-space-change)-b[ignore changes in the amount of white space]' \
     '(--ignore-all-space -w)'{--ignore-all-space,-w}'[ignore all white space]' \
     '(-B --ignore-blank-lines)'{-B,--ignore-blank-lines}'[ignore lines that are all blank]' \
     '(-I --ignore-matching-lines)'{-I+,--ignore-matching-lines=}'[ignore lines that match regex]:line exclusion regex:' \
diff -Nru zsh-4.3.10/Completion/Unix/Type/_files zsh-4.3.11/Completion/Unix/Type/_files
--- zsh-4.3.10/Completion/Unix/Type/_files	2008-08-22 17:41:05.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_files	2010-03-19 17:38:26.000000000 +0100
@@ -1,7 +1,7 @@
 #compdef -redirect-,-default-,-default-
 
 local opts tmp glob pat pats expl tag i def descr end ign ret=1 match tried
-local type sdef
+local type sdef ignvars ignvar
 
 zparseopts -a opts \
     '/=tmp' 'f=tmp' 'g+:-=tmp' q n 1 2 P: S: r: R: W: X+: M+: F: J+: V+:
@@ -18,14 +18,18 @@
 fi
 tmp=$opts[(I)-F]
 if (( tmp )); then
-  ign=( $=opts[tmp+1] )
-  if [[ $ign = _comp_ignore ]]; then
+  ignvars=($=opts[tmp+1])
+  if [[ $ignvars = _comp_ignore ]]; then
     ign=( $_comp_ignore )
   else
+    ign=()
+    for ignvar in $ignvars; do
+      ign+=(${(P)ignvar})
+    done
     opts[tmp+1]=_comp_ignore
   fi
 else
-  ign=
+  ign=()
 fi
 
 if zstyle -a ":completion:${curcontext}:" file-patterns tmp; then
@@ -86,7 +90,7 @@
 
 tried=()
 for def in "$pats[@]"; do
-  eval "def=( ${${def:gs/\\:/\\\\\\\\\\\\:}//(#b)([][()|*?^#~<>])/\\${match[1]}} )"
+  eval "def=( ${${def//\\:/\\\\\\:}//(#b)([][()|*?^#~<>])/\\${match[1]}} )"
 
   tmp="${(@M)def#*[^\\]:}"
   (( $tried[(I)${(q)tmp}] )) && continue
diff -Nru zsh-4.3.10/Completion/Unix/Type/_file_systems zsh-4.3.11/Completion/Unix/Type/_file_systems
--- zsh-4.3.10/Completion/Unix/Type/_file_systems	2007-09-27 14:00:03.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_file_systems	2009-06-04 14:53:41.000000000 +0200
@@ -16,10 +16,15 @@
   ;;
   osf*) fss=( advfs ufs nfs mfs cdfs ) ;;
   solaris*) fss=( ufs nfs hsfs s5fs pcfs cachefs tmpfs ) ;;
-  freebsd*|dragonfly*)
+  dragonfly*)
     fss=( cd9660 devfs ext2fs fdesc kernfs linprocfs mfs msdos nfs 
           ntfs null nwfs portal procfs std udf ufs umap union )
   ;;
+  freebsd*)
+    fss=( cd9660 devfs ext2fs fdesc kernfs linprocfs mfs msdosfs nfs
+    ntfs nullfs nwfs portal procfs smbfs std udf ufs umap unionfs 
+    reiserfs xfs)
+  ;;
   darwin*)
     fss=( afp cd9660 cddafs devfs fdesc hfs lfs msdos nfs
           ntfs smbfs synthfs udf ufs volfs webdav )
diff -Nru zsh-4.3.10/Completion/Unix/Type/_hosts zsh-4.3.11/Completion/Unix/Type/_hosts
--- zsh-4.3.10/Completion/Unix/Type/_hosts	2006-04-05 11:30:49.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_hosts	2010-02-28 22:48:24.000000000 +0100
@@ -41,9 +41,9 @@
 
     for khostfile in $khostfiles; do
       if [[ -r $khostfile ]]; then
-        khosts=(${(s:,:)${(j:,:)${(u)${(f)"$(<$khostfile)"}%%[ |#]*}}})
+        khosts=(${${(s:,:)${(j:,:)${(u)${(f)"$(<$khostfile)"}%%[ |#]*}}}:#*[\[\]]*})
         if [[ -z $useip ]]; then
-	  khosts=(${${khosts:#(#s)[0-9]##.[0-9]##.[0-9]##.[0-9]##(#e)}:#(#s)[0-9a-f:]##(#e)})
+	  khosts=(${${${khosts:#(#s)[0-9]##.[0-9]##.[0-9]##.[0-9]##(#e)}:#(#s)[0-9a-f:]##(#e)}:#*[\[\]]*})
         fi
         _cache_hosts+=($khosts)
       fi
diff -Nru zsh-4.3.10/Completion/Unix/Type/_java_class zsh-4.3.11/Completion/Unix/Type/_java_class
--- zsh-4.3.10/Completion/Unix/Type/_java_class	2005-06-15 13:04:52.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_java_class	2010-11-08 10:17:05.000000000 +0100
@@ -13,9 +13,10 @@
 : "$classpath[@]"
 
 for i in "${(s.:.)classpath}"; do
-  if [ -f $i ] && [[ "$i" == *.(jar|zip|war|ear) ]]; then
+  [[ -z $i ]] && i=.
+  if [[ -f $i ]] && [[ "$i" == *.(jar|zip|war|ear) ]]; then
     c+=( ${${${(M)$(_call_program jar_classes jar -tf $i)##*.class}%%.class}:gs#/#.#} )
-  elif [ -d $i ]; then
+  elif [[ -d $i ]]; then
     c+=( $i/**/*.class(.:r:s/.class//:s#$i/##:gs#/#.#) )
   fi
 done
diff -Nru zsh-4.3.10/Completion/Unix/Type/_path_files zsh-4.3.11/Completion/Unix/Type/_path_files
--- zsh-4.3.10/Completion/Unix/Type/_path_files	2009-03-10 18:42:02.000000000 +0100
+++ zsh-4.3.11/Completion/Unix/Type/_path_files	2010-08-06 17:29:58.000000000 +0200
@@ -32,6 +32,7 @@
 local pats haspats ignore pfx pfxsfx sopt gopt opt sdirs ignpar cfopt listsfx
 local nm=$compstate[nmatches] menu matcher mopts sort mid accex fake
 local listfiles listopts tmpdisp origtmp1 Uopt
+local accept_exact_dirs path_completion
 integer npathcheck
 local -a Mopts
 
@@ -160,7 +161,7 @@
       if _have_glob_qual "$tmp1" complete; then
 	# unbalanced parenthesis is correct: match[1] contains the start,
 	# match[5] doesn't contain the end.
-	tmp2+=( "${match[1]}${sort}${match[5]})" )
+	tmp2+=( "${match[1]}#q${sort})(${match[5]})" )
       else
         tmp2+=( "${tmp1}(${sort})" )
       fi
@@ -191,6 +192,11 @@
 
 zstyle -s ":completion:${curcontext}:" ignore-parents ignpar
 
+zstyle -t ":completion:${curcontext}:paths" accept-exact-dirs &&
+  accept_exact_dirs=1
+zstyle -T ":completion:${curcontext}:paths" path-completion &&
+  path_completion=1
+
 if [[ -n "$compstate[pattern_match]" ]]; then
   if { [[ -z "$SUFFIX" ]] && _have_glob_qual "$PREFIX" complete } ||
     _have_glob_qual "$SUFFIX" complete; then
@@ -247,7 +253,11 @@
   # meant as a partial path.
 
   linepath="${(M)pre##*\$[^/]##/}"
-  eval 'realpath=${(e)~linepath}' 2>/dev/null
+  function {
+    # do not treat an unset parameter expansion as the empty string
+    setopt localoptions nounset
+    eval 'realpath=${(e)~linepath}' 2>/dev/null
+  }
   [[ -z "$realpath" || "$realpath" = "$linepath" ]] && return 1
   pre="${pre#${linepath}}"
   i='[^/]'
@@ -346,17 +356,35 @@
   skipped=
   cpre=
 
-  if zstyle -t ":completion:${curcontext}:paths" accept-exact-dirs &&
-    [[ $pre = (#b)(*)/([^/]#) ]]; then
-    # We've been told that we can accept an exact directory
-    # prefix immediately.  Try this with the longest path prefix
-    # first:  this saves stats in the simple case and may get around
-    # automount behaviour if early components don't yet exist.
-    tmp1=$match[1]
-    tpre=$match[2]
+  if [[ ( -n $accept_exact_dirs || -z $path_completion ) && \
+        ${pre} = (#b)(*)/([^/]#) ]]; then
+    # We've been told either that we can accept an exact directory prefix
+    # immediately, or that path expansion is inhibited.  Try the longest
+    # path prefix first: in the first case, this saves stats in the simple
+    # case and may get around automount behaviour if early components don't
+    # yet exist, and in the second case this is the prefix we want to keep.
+    #
+    # Explanation of substitution: For tmp1 and tpre, which are used further
+    # on, we need to remove quotes from everything that's not a pattern
+    # character, because the code that does the file generation only
+    # strips quotes from pattern characters (you know better than
+    # to ask why).  Because we need to test for a real directory,
+    # however, for tmp2 we unquote everything.
+    tmp1=${match[1]}
+    tpre=${match[2]}
+    tmp2=${(Q)tmp1}
+    tmp1=${tmp1//(#b)\\(?)/$match[1]}
+    tpre=${tpre//(#b)\\([^\\\]\[\^\~\(\)\#\*\?])/$match[1]}
+    # Theory: donepath needs the quoting of special characters
+    # still in it.  However, we need it without at this point.
+    # (I think.)  Note this is different from the above where we're
+    # doing something a bit different.
+    tmp3=${donepath//(#b)\\(?)/$match[1]}
     while true; do
-      if [[ -d $donepath$tmp1 ]]; then
-	donepath=$donepath$tmp1/
+      if [[ -z $path_completion || -d $prepath$realpath$tmp3$tmp2 ]]; then
+	tmp3=$tmp3$tmp1/
+	# Now put donepath back the way it should be.  (I think.)
+	donepath=${tmp3//(#b)([\\\]\[\^\~\(\)\#\*\?])/\\$match[1]}
 	pre=$tpre
 	break
       elif [[ $tmp1 = (#b)(*)/([^/]#) ]]; then
@@ -370,7 +398,14 @@
 
   tpre="$pre"
   tsuf="$suf"
-  testpath="$donepath"
+  # Now we strip quoting from pattern characters, too, because
+  # testpath is used as a literal string.  I suppose we could
+  # alternatively use ${~testpath} later.
+  #
+  # I'm not sure if donepath itself should be entirely unquoted at
+  # some point but probably not here, since we need the quoted pattern
+  # characters in tmp1 below (I think).
+  testpath="${donepath//(#b)\\([\\\]\[\^\~\(\)\#\*\?])/$match[1]}"
 
   tmp2="${(M)tpre##${~skips}}"
   tpre="${tpre#$tmp2}"
diff -Nru zsh-4.3.10/Completion/Unix/Type/_printers zsh-4.3.11/Completion/Unix/Type/_printers
--- zsh-4.3.10/Completion/Unix/Type/_printers	2007-05-14 17:28:15.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_printers	2010-06-06 15:44:12.000000000 +0200
@@ -83,7 +83,7 @@
     _lp_cache+=( ${${${(S)${(f)tmp}/(#b):*((#e)|description=([^:]#):)*/:${match[2]}|}%%|*}:#_default*} ) # If you use YP
   fi
 
-  (( $#_lp_cache )) || _lp_cache=( 'lp0:Guessed default printer' )
+  (( $#_lp_cache )) || _lp_cache=( 'lp0:guessed default printer' )
   (( $#_lp_alias_cache )) || unset _lp_alias_cache
 fi
 
diff -Nru zsh-4.3.10/Completion/Unix/Type/_services zsh-4.3.11/Completion/Unix/Type/_services
--- zsh-4.3.10/Completion/Unix/Type/_services	2005-06-15 13:04:52.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_services	2010-04-20 10:59:32.000000000 +0200
@@ -3,7 +3,13 @@
 local -a inits xinetds alls
 local expl ret=1
 
-if chkconfig --list > /dev/null 2>&1; then
+if [[ $OSTYPE = freebsd* ]]; then
+  if [[ -x /usr/sbin/service ]]; then
+    alls=( $(service -l) ) && ret=0
+
+    _wanted services expl service compadd "$@" - $alls[@] && ret=0
+  fi
+elif chkconfig --list > /dev/null 2>&1; then
   alls=( ${(f)"$(LANGUAGE=C LANG=C LC_ALL=C chkconfig --list)"} )
   inits=( ${${${alls[1,(r)xinetd based*]}[1,-2]}/%[[:space:]]*/} )
   xinetds=( ${${${${alls[(r)xinetd based*,-1]}[2,-1]}/#[[:space:]]#}/%:*} )
@@ -12,7 +18,19 @@
     'init:init service:compadd -a inits' \
     'xinetd:xinetd service:compadd -a xinetds' && ret=0
 else
-  _wanted services expl service compadd "$@" - /etc/init.d/*(-*:t) && ret=0
+  local -a scriptpath
+  local dir
+  # Known locations of init scripts
+  # C.f. Unix/Commands/_init_d
+  scriptpath=(/etc/init.d /etc/rc.d /etc/rc.d/init.d)
+
+  for dir in $scriptpath; do
+    if [[ -d $dir ]]; then
+      break
+    fi
+  done
+  _wanted services expl service compadd "$@" - $dir/*(-*:t) &&
+  ret=0
 fi
 
 return ret
diff -Nru zsh-4.3.10/Completion/Unix/Type/_tar_archive zsh-4.3.11/Completion/Unix/Type/_tar_archive
--- zsh-4.3.10/Completion/Unix/Type/_tar_archive	2006-08-04 13:39:49.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_tar_archive	2009-12-05 18:29:12.000000000 +0100
@@ -18,8 +18,10 @@
     _files "$expl[@]" -g '*.((tar|TAR).(gz|GZ|Z)|tgz)(-.)'
   elif [[ "$1" = *[Ijy]* ]]; then
     _files "$expl[@]" -g '*.(tar|TAR).bz2(-.)'
+  elif [[ "$1" = *J* ]]; then
+    _files "$expl[@]" -g '*.(tar|TAR).(lzma|xz)(-.)'
   elif [[ "$_cmd_variant[$service]" == gnu ]]; then
-    _files "$expl[@]" -g '*.((tar|TAR)(.gz|.GZ|.Z|.bz2|)|tgz)(-.)'
+    _files "$expl[@]" -g '*.((tar|TAR)(.gz|.GZ|.Z|.bz2|.lzma|.xz|)|(tbz|tgz|txz))(-.)'
   else
     _files "$expl[@]" -g '*.(tar|TAR)(-.)'
   fi
diff -Nru zsh-4.3.10/Completion/Unix/Type/_tex zsh-4.3.11/Completion/Unix/Type/_tex
--- zsh-4.3.10/Completion/Unix/Type/_tex	2007-09-26 15:03:38.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_tex	2009-07-18 20:21:35.000000000 +0200
@@ -1,4 +1,4 @@
-#compdef tex latex slitex pdflatex jadetex pdfjadetex xetex=tex xelatex=latex
+#compdef tex latex slitex pdflatex jadetex pdfjadetex xetex=tex xelatex=latex latexmk
 
 local expl
 
diff -Nru zsh-4.3.10/Completion/Unix/Type/_urls zsh-4.3.11/Completion/Unix/Type/_urls
--- zsh-4.3.10/Completion/Unix/Type/_urls	2006-10-02 11:19:11.000000000 +0200
+++ zsh-4.3.11/Completion/Unix/Type/_urls	2009-11-15 18:52:02.000000000 +0100
@@ -48,7 +48,7 @@
 
 if [[ $#urls -gt 1 || ( $#urls -eq 1 && ! -d $urls[1] ) ]]; then
   [[ $#urls -eq 1 && -f $urls[1] ]] && urls=( $(< $urls[1]) )
-  _wanted urls expl 'URL' compadd -a urls && return 0
+  _wanted urls expl 'URL' compadd "$@" -a urls && return 0
   urls=()
 fi
 
@@ -82,7 +82,7 @@
     fi
   ;;
   file)
-    [[ -prefix //(127.0.0.1|localhost)/ ]] && compset -P //(127.0.0.1|localhost)
+    [[ -prefix //(127.0.0.1|localhost)/ ]] && compset -P '//(127.0.0.1|localhost)'
     [[ -prefix /// ]] && compset -P //
     if ! compset -P //; then
       _tags -C file files
diff -Nru zsh-4.3.10/Completion/X/Command/_acroread zsh-4.3.11/Completion/X/Command/_acroread
--- zsh-4.3.10/Completion/X/Command/_acroread	2008-02-11 13:32:34.000000000 +0100
+++ zsh-4.3.11/Completion/X/Command/_acroread	2010-10-08 12:20:46.000000000 +0200
@@ -26,12 +26,14 @@
   fi
 fi
 
-if [[ $_acroread_version == [78].* ]]; then
+if [[ $_acroread_version == [789].* ]]; then
   local -a extra_args
-  if [[ $_acroread_version == 8.* ]]; then
-    extra_args=(-man '-installCertificate:server ip::server port')
-  else
-    extra_args=()
+  extra_args=()
+  if [[ $_acroread_version == [89].* ]]; then
+    extra_args+=(-man '-installCertificate:server ip::server port')
+  fi
+  if [[ $_acroread_version == 9.* ]]; then
+    extra_args+=(-openInNewInstance)
   fi
   _arguments -C \
     "${extra_args[@]}" \
diff -Nru zsh-4.3.10/Completion/X/Command/_kfmclient zsh-4.3.11/Completion/X/Command/_kfmclient
--- zsh-4.3.10/Completion/X/Command/_kfmclient	2005-06-01 12:45:10.000000000 +0200
+++ zsh-4.3.11/Completion/X/Command/_kfmclient	2010-04-26 15:17:24.000000000 +0200
@@ -1,7 +1,10 @@
-#compdef kfmclient
+#compdef kfmclient kioclient
 
 # kfmclient is a command line interface for use with Konqueror,
 # the KDE file manager and web browser.
+#
+# In KDE4, kioclient has similar syntax but doesn't necessarily talk
+# to Konqueror ("kioclient exec ." by default starts Dolphin, for example).
 
 local expl
 local -a context state line
@@ -82,8 +85,8 @@
 
   (exec)
   if [[ $state = secondarg ]]; then
-    # TODO: could probe inside Desktop files.
-    _message "KDE binding"
+    # Look for a Desktop Action binding.
+    _wanted binding expl 'KDE binding' compadd -- ${${${(M)${(f)"$(<$file)"}:#"[Desktop Action "*"]"}%%\]}##"[Desktop Action "}
     return
   elif [[ $state = firstarg ]]; then
     _webbrowser
diff -Nru zsh-4.3.10/Completion/X/Command/_mplayer zsh-4.3.11/Completion/X/Command/_mplayer
--- zsh-4.3.10/Completion/X/Command/_mplayer	2009-03-02 11:10:23.000000000 +0100
+++ zsh-4.3.11/Completion/X/Command/_mplayer	2010-06-06 15:44:12.000000000 +0200
@@ -45,7 +45,7 @@
   {-h,-help,--help}'[display help info]' \
   -hardframedrop \-hr-mp3-seek \
   '-hue:video signal hue adjustment' \
-  '(-rootwin)-icelayer:icewm layer:((0\:Desktop 2\:Below 4\:Normal 6\:OnTop 8\:Dock 10\:AboveDock 12\:Menu))' \
+  '(-rootwin)-icelayer:icewm layer:((0\:desktop 2\:below 4\:normal 6\:ontop 8\:dock 10\:abovedock 12\:menu))' \
   '(-use-stdin)-idx[rebuild index of the avi]' \
   '-ifo:ifo file:_files' '-include:config-file:_files' \
   '-input:command:(conf ar-delay ar-rate keylist cmdlist js-dev file)' \
@@ -77,7 +77,7 @@
   '-sid[turn on DVD subtitles]:language id' \
   '-speed[set playback speed rate]:playback speed rate' \
   '-srate[specify frequency of audio playback]:frequency (Hz)' \
-  '-ss[seek to given time position]:position (hh:mm\[:ss\])' \
+  '-ss[seek to given time position]:position (hh:mm\[\:ss\])' \
   '-sstep[specify time between displayed frames]:time (seconds)' \
   -ssf:mode -stop_xscreensaver \
   '-stereo:mode:((0\:stereo 1\:left\ channel 2\:right\ channel))' \
diff -Nru zsh-4.3.10/Completion/X/Command/_setxkbmap zsh-4.3.11/Completion/X/Command/_setxkbmap
--- zsh-4.3.10/Completion/X/Command/_setxkbmap	2006-12-17 16:33:28.000000000 +0100
+++ zsh-4.3.11/Completion/X/Command/_setxkbmap	2010-06-06 15:44:12.000000000 +0200
@@ -30,10 +30,10 @@
         '(-)'-print'[print component names]'
         '-rules[rules file]:rules:_files'
         '-symbols[symbols components]:symbols:'
-        '(-)'{-help,-h}'[Display help message]'
+        '(-)'{-help,-h}'[display help message]'
         '-synch[force synchronization]'
         '-types[types components]:types:'
-        '(-verbose -v)'{-verbose,-v}'[Set verbosity level]:verbosity:(0 1 2 3 4 5 6 7 8 9)'
+        '(-verbose -v)'{-verbose,-v}'[set verbosity level]:verbosity:(0 1 2 3 4 5 6 7 8 9)'
         '*::keyboard:_setxkbmap_dispatcher'
     )
     _arguments $arguments
diff -Nru zsh-4.3.10/Completion/X/Utility/_x_arguments zsh-4.3.11/Completion/X/Utility/_x_arguments
--- zsh-4.3.10/Completion/X/Utility/_x_arguments	2001-04-26 14:13:37.000000000 +0200
+++ zsh-4.3.11/Completion/X/Utility/_x_arguments	2010-12-20 10:51:43.000000000 +0100
@@ -1,4 +1,4 @@
-#compdef -P */X11(|R[456])/*
+#compdef -P */X11(|R<4->)/*
 
 local ret long xargs opts rawret nm="$compstate[nmatches]"
 
diff -Nru zsh-4.3.10/Completion/Zsh/Command/_cd zsh-4.3.11/Completion/Zsh/Command/_cd
--- zsh-4.3.10/Completion/Zsh/Command/_cd	2008-03-28 15:28:56.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Command/_cd	2010-06-06 15:44:12.000000000 +0200
@@ -13,10 +13,10 @@
 
 _cd_options() {
   _arguments -s \
-  '-q[Quiet, no output or use of hooks]' \
-  '-s[Refuse to use paths with symlinks]' \
-  '(-P)-L[Retain symbolic links ignoring CHASE_LINKS]' \
-  '(-L)-P[Resolve symbolic links as CHASE_LINKS]'
+  '-q[quiet, no output or use of hooks]' \
+  '-s[refuse to use paths with symlinks]' \
+  '(-P)-L[retain symbolic links ignoring CHASE_LINKS]' \
+  '(-L)-P[resolve symbolic links as CHASE_LINKS]'
 }
 
 setopt localoptions nonomatch
diff -Nru zsh-4.3.10/Completion/Zsh/Command/.distfiles zsh-4.3.11/Completion/Zsh/Command/.distfiles
--- zsh-4.3.10/Completion/Zsh/Command/.distfiles	2009-03-03 15:51:53.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Command/.distfiles	2009-11-22 20:07:40.000000000 +0100
@@ -46,4 +46,5 @@
 _zmv
 _zpty
 _zstyle
+_ztodo
 '
diff -Nru zsh-4.3.10/Completion/Zsh/Command/_precommand zsh-4.3.11/Completion/Zsh/Command/_precommand
--- zsh-4.3.10/Completion/Zsh/Command/_precommand	2009-04-01 12:18:51.000000000 +0200
+++ zsh-4.3.11/Completion/Zsh/Command/_precommand	2009-12-05 18:34:39.000000000 +0100
@@ -1,4 +1,4 @@
-#compdef - nohup eval time rusage noglob nocorrect exec catchsegv aoss
+#compdef - nohup eval time rusage noglob nocorrect exec catchsegv aoss hilite
 
 # precommands is made local in _main_complete
 precommands+=($words[1])
diff -Nru zsh-4.3.10/Completion/Zsh/Command/_zattr zsh-4.3.11/Completion/Zsh/Command/_zattr
--- zsh-4.3.10/Completion/Zsh/Command/_zattr	2009-03-03 16:15:44.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Command/_zattr	2009-11-04 12:34:03.000000000 +0100
@@ -29,6 +29,6 @@
 esac
 
 if [[ $state = attrs ]]; then
-  zlistattr $~line[1] REPLY
-  _wanted attrs expl 'attribute' compadd ${(0)REPLY}
+  zlistattr $~line[1] REPLY 2> /dev/null
+  _wanted attrs expl 'attribute' compadd $REPLY
 fi
diff -Nru zsh-4.3.10/Completion/Zsh/Command/_zle zsh-4.3.11/Completion/Zsh/Command/_zle
--- zsh-4.3.10/Completion/Zsh/Command/_zle	2002-03-01 06:14:39.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Command/_zle	2010-09-13 10:49:23.000000000 +0200
@@ -36,38 +36,34 @@
     "(-L)-a[list all widgets]" \
     '*:widget name:->widget' && ret=0
 
-while (( $#state )); do
-  case "$state[1]" in
-    (args)
-      _arguments \
-        '(-N)-n[numeric prefix]:number:' \
-	'(-n)-N[reset numeric prefix]' \
-	'(-)*:widget arguments: ' && ret=0
-      ;;
-    (widget*)
-      _wanted -C "$context[1]" widgets expl widget compadd -k widgets && ret=0
-      ;&
-    (function)
-      [[ $state[1] != *function ]] ||	# Handle fall-through
-      _wanted -C "$context[1]" functions expl 'widget shell function' \
-	compadd -k functions && ret=0
-      ;;
-    (comp-widget)
-      _wanted -C "$context[1]" widgets expl 'completion widget' \
-	compadd -k "widgets[(R)(*:|)(.|)(${(j(|))compwids})(|:*)]" && ret=0
-      ;&
-    (builtin-comp-widget)
-      _wanted -C "$context[1]" widgets expl 'builtin completion widget' \
-	compadd -k "widgets[(I)(.|)(${(j(|))compwids})]" && ret=0
-      ;;
-    (redisplay)
-      _arguments -s -S '!-R' \
-	"-c[clear listing]" \
-	":status line" "*:strings to list" && ret=0
-      ;;
-  esac
-  shift 1 state
-  shift 1 context
-done
+case "$state[1]" in
+  (args)
+    _arguments \
+      '(-N)-n[numeric prefix]:number:' \
+      '(-n)-N[reset numeric prefix]' \
+      '(-)*:widget arguments: ' && ret=0
+    ;;
+  (widget*)
+    _wanted -C "$context[1]" widgets expl widget compadd -k widgets && ret=0
+    ;&
+  (function)
+    [[ $state[1] != *function ]] ||	# Handle fall-through
+    _wanted -C "$context[1]" functions expl 'widget shell function' \
+      compadd -k functions && ret=0
+    ;;
+  (comp-widget)
+    _wanted -C "$context[1]" widgets expl 'completion widget' \
+      compadd -k "widgets[(R)(*:|)(.|)(${(j(|))compwids})(|:*)]" && ret=0
+    ;&
+  (builtin-comp-widget)
+    _wanted -C "$context[1]" widgets expl 'builtin completion widget' \
+      compadd -k "widgets[(I)(.|)(${(j(|))compwids})]" && ret=0
+    ;;
+  (redisplay)
+    _arguments -s -S '!-R' \
+      "-c[clear listing]" \
+      ":status line" "*:strings to list" && ret=0
+    ;;
+esac
 
 return ret
diff -Nru zsh-4.3.10/Completion/Zsh/Command/_zmodload zsh-4.3.11/Completion/Zsh/Command/_zmodload
--- zsh-4.3.10/Completion/Zsh/Command/_zmodload	2007-08-14 19:58:28.000000000 +0200
+++ zsh-4.3.11/Completion/Zsh/Command/_zmodload	2010-11-25 18:27:12.000000000 +0100
@@ -62,7 +62,7 @@
     _requested loadedmodules expl 'loaded modules' \
       compadd -k 'modules[(R)loaded]' && ret=0
     _requested files expl 'module file' \
-      _files -W module_path -/g '*.(dll|s[ol])(:r)' && ret=0
+      _files -W module_path -/g '*.(dll|s[ol]|bundle)(:r)' && ret=0
     _requested aliases expl 'module alias' \
       compadd "$suf[@]" -k 'modules[(R)alias*]' && ret=0
   done
diff -Nru zsh-4.3.10/Completion/Zsh/Command/_zstyle zsh-4.3.11/Completion/Zsh/Command/_zstyle
--- zsh-4.3.10/Completion/Zsh/Command/_zstyle	2008-08-22 17:41:05.000000000 +0200
+++ zsh-4.3.11/Completion/Zsh/Command/_zstyle	2010-10-04 16:08:17.000000000 +0200
@@ -1,7 +1,7 @@
 #compdef zstyle
 
 local state context ostate line expl ctop suf
-local nm=$compstate[nmatches] taglist patterns pstyles
+local nm=$compstate[nmatches] taglist patterns pstyles contexts
 typeset -A opt_args styles
 
 (( $+functions[_completers] )) ||
@@ -9,7 +9,7 @@
   # option: -p - needs a `_' prefix
   local us
   local -a disp list expl
-  
+
   list=( complete approximate correct match expand list menu oldlist
          ignored prefix history )
   zparseopts -D -K -E 'p=us'
@@ -23,7 +23,9 @@
 # Assoc array of styles; the values give the possible top-level
 # contexts:
 #   c   completion
+#   d   chpwd
 #   e   line editor
+#   v   vcs_info
 #   z   zftp
 # or any combination of the above,
 # followed by a colon, followed by a state to enter, empty if none.
@@ -40,14 +42,21 @@
   cache-policy           c:_functions
   call-command           c:bool
   command                c:command
+  command-path		 c:_dir_list
   commands               c:
   complete               c:bool
+  complete-options	 c:bool
   completer		 c:completer
   condition		 c:bool
   cursor		 c:cursor
+  delimiters		 c:
   disabled               c:bool
   domains                c:
+  environ		 c:environ
   expand		 c:
+  extra-verbose		 c:bool
+  fake			 c:
+  fake-always            c:
   fake-files		 c:fake-files
   fake-parameters	 c:fake-params
   file-list              c:bool
@@ -93,29 +102,32 @@
   numbers		 c:bool
   old-list		 c:bool
   old-matches            c:oldmatches
-  old-menu		 c:bool 
+  old-menu		 c:bool
   original		 c:bool
   packageset		 c:packageset
   path			 c:_directories
   pager			 c:_command_names
+  path-completion	 c:bool
   pine-directory         c:_directories
   ports			 c:_ports
   prefix-hidden		 c:bool
   prefix-needed		 c:bool
   preserve-prefix        c:preserve-prefix
   range                  c:
+  recent-dirs-insert     c:recent-dirs-insert
   regular                c:bool
+  rehash		 c:bool
   remote-access		 c:bool
   remove-all-dups	 c:bool
   select-prompt          c:
   select-scroll          c:
   separate-sections      c:bool
+  show-completer	 c:bool
   single-ignored         c:single-ignored
   sort			 c:bool
   special-dirs		 c:sdirs
   squeeze-slashes	 c:bool
   stop			 c:stop
-  stop-keys		 c:
   strip-comments	 c:bool
   subst-globs-only       c:bool
   substitute		 c:bool
@@ -125,12 +137,20 @@
   urls                   c:_urls
   use-cache		 c:bool
   use-compctl		 c:urgh
+  use-ip		 c:bool
+  use-perl		 c:bool
   users			 c:_users
   users-hosts		 c:user-host
   users-hosts-ports	 c:user-host-port
   verbose		 ce:bool
   word			 c:bool
 
+  recent-dirs-default    d:bool
+  recent-dirs-file       d:_files
+  recent-dirs-max        d:
+  recent-dirs-prune      d:
+  recent-dirs-pushd      d:bool
+
   auto-previous          e:bool
   break-keys             e:
   cursor                 e:
@@ -152,6 +172,24 @@
   word-style             e:word-style
   word-context           e:
 
+  formats                v:vcs-format
+  actionformats          v:vcs-format
+  branchformat           v:branch-format
+  nvcsformats            v:
+  stgitformat            v:stg-format
+  max-exports            v:
+  enable                 v:vcs
+  disable                v:vcs
+  disable-patterns       v:
+  check-for-changes      v:bool
+  stagedstr              v:
+  unstagedstr            v:
+  command                v:_command_names
+  use-server             v:bool
+  use-simple             v:bool
+  get-revision           v:bool
+  use-prompt-escapes     v:bool
+
   chpwd			 z:bool
   progress		 z:progress
   remote-glob		 z:bool
@@ -185,14 +223,19 @@
   case "$state[1]" in
     (contexts)
       if [[ ! -prefix :*: ]]; then
-	_wanted contexts expl context compadd -P : -S : completion zftp
+	_wanted contexts expl context compadd -P : -qS : completion vcs_info zftp
       elif compset -P :completion:; then
-        for ostate in functions _completers cmdorcont argument tag; do
+        contexts=( functions _completers cmdorcont argument tag )
+      elif compset -P :vcs_info:; then
+        contexts=( vcs-string user-context repo-root-name )
+      fi
+      if (( $#contexts )); then
+        for ostate in $contexts; do
 	  compset -P '[^:]#:' || break
 	done
 	suf=()
 	compset -S ':*' || suf=( -qS: )
-	[[ $ostate = tag ]] && suf=()
+	[[ $ostate = $contexts[-1] ]] && suf=()
 	if compset -P '(|\\)\((*\||)'; then  # handle (x|y) patterns
 	  suf=()
 	  compset -S '(|\\)[)|]*' ||
@@ -214,21 +257,29 @@
 
     (styles)
       # Get the top-level context we're completing for, if any.
-      case $line[1] in
+      case ${(Q)line[1]} in
 	(:completion:*)
 	ctop=c
 	;;
 
+	(:chwpd:*)
+	ctop=d
+	;;
+
 	(:zftp:*)
 	ctop=z
 	;;
 
+        (:vcs_info:*)
+        ctop=v
+        ;;
+
 	(:zle:*)
 	ctop=e
 	;;
 
 	(*)
-        ctop=cez
+        ctop=cdez
 	;;
       esac
       _wanted styles expl style \
@@ -236,7 +287,7 @@
       ;;
 
     (style-arg)
-      state+=( "${styles[$line[2]]#*:}" )
+      state+=( "${styles[${(Q)line[2]}]#*:}" )
       ;;
 
     (argument)
@@ -266,6 +317,18 @@
       _wanted values expl completer _completers -p
       ;;
 
+    (environ)
+      if [[ "$PREFIX" = *\=* ]]; then
+	compstate[parameter]="${PREFIX%%\=*}"
+	compset -P 1 '*='
+	_value
+      else
+        suf=()
+	compset -S '=*' || suf=(-S '=')
+	_parameters -q $suf
+      fi
+      ;;
+
     (fsort)
       _wanted values expl 'how to sort files' \
 	compadd name size links time date modification access inode change reverse
@@ -422,6 +485,11 @@
       _message -e prefixes 'pattern matching prefix to keep'
       ;;
 
+    (recent-dirs-insert)
+      _wanted values expl 'inserting recent directories' \
+	compadd true false always fallback both
+      ;;
+
     (separator)
       _message -e separators 'separator string'
       ;;
@@ -438,6 +506,64 @@
       _wanted word-styles expl 'word style' compadd normal shell space
       ;;
 
+    (vcs-string)
+      _wanted vcs expl vcs compadd $suf - \
+          ${${(f)"$(_call_program vcs vcs_info_printsys 2>/dev/null)"}:#\#*}
+      ;;
+
+    (vcs)
+      _wanted vcs expl vcs compadd \
+          ${${(f)"$(_call_program vcs vcs_info_printsys 2>/dev/null)"}:#(\#|*-)*}
+      ;;
+
+    (user-context)
+      _wanted user-contexts expl 'user context' compadd $suf default command
+      ;;
+
+    (repo-root-name)
+      _message -e names 'repository root name'
+      ;;
+
+    (vcs-format)
+      if [[ $PREFIX = *% ]]; then
+        compset -P '*%'
+        _values -s '' 'format replacement' \
+          's[the vcs in use]' \
+          'b[the current branch]' \
+          'a[an identifier describing the action]' \
+          'i[current revision no/id]' \
+          'c[details of staged changes]' \
+          'u[details of unstaged changes]' \
+          'r[repository name]' \
+          'S[subdirectory within repository]' \
+          'm[misc replacement - backend specific]'
+      else
+        _message -e formats 'vcs format'
+      fi
+      ;;
+
+    (branch-format)
+      if [[ $PREFIX = *% ]]; then
+        compset -P '*%'
+        _values -s '' 'format replacement' \
+          'b[the current branch]' \
+          'r[current revision number]' \
+      else
+        _message -e formats 'vcs format'
+      fi
+      ;;
+
+    (stg-format)
+      if [[ $PREFIX = *% ]]; then
+        compset -P '*%'
+        _values -s '' 'format replacement' \
+          'p[patch currently on top of the stack]' \
+          'c[the number of unapplied patches]'
+      else
+        _message -e formats 'vcs format'
+      fi
+      ;;
+
     (_*)
       ${=state[1]} $suf
       ;;
diff -Nru zsh-4.3.10/Completion/Zsh/Command/_ztodo zsh-4.3.11/Completion/Zsh/Command/_ztodo
--- zsh-4.3.10/Completion/Zsh/Command/_ztodo	1970-01-01 01:00:00.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Command/_ztodo	2009-11-22 20:17:32.000000000 +0100
@@ -0,0 +1,30 @@
+#compdef ztodo
+
+_ztodo_entries() {
+  local -a entries
+
+  entries=(${${${${(f)"$(_call_program ztodo-entry ztodo list)"}#[[:space:]]##}/:[[:space:]]##/:}%:[[:space:]]#})
+  _describe -t ztodo-entry 'todo entry' entries "$@"
+}
+
+local -a args reply
+args=(
+  /$'[^\0]#\0'/
+)
+
+local -a todo_entry
+todo_entry=(
+  /$'[^\0]#\0'/ ':ztodo-entry:todo entry:_ztodo_entries'
+)
+
+_regex_words \
+  commands "ztodo command" \
+  'add:add entry' \
+  'del:delete entry:$todo_entry' \
+  'clear:clear todo list' \
+  'list:show todo list'
+args+=("$reply[@]")
+
+_regex_arguments _ztodo "${args[@]}"
+
+_ztodo "$@"
diff -Nru zsh-4.3.10/Completion/Zsh/Context/_dynamic_directory_name zsh-4.3.11/Completion/Zsh/Context/_dynamic_directory_name
--- zsh-4.3.10/Completion/Zsh/Context/_dynamic_directory_name	2008-09-29 19:21:15.000000000 +0200
+++ zsh-4.3.11/Completion/Zsh/Context/_dynamic_directory_name	2010-06-12 00:28:22.000000000 +0200
@@ -1,7 +1,7 @@
 #autoload
 
-# The core libraries don't check for dynamic directory name expansion;
-# this gets called from _subscript.  This is a placeholder for
-# people to overload.
-
-_message 'dynamic directory name: redefine _dynamic_directory_name to use'
+if [[ -n $functions[zsh_directory_name] ]]; then
+  zsh_directory_name c
+else
+  _message 'dynamic directory name: implemented as zsh_directory_name c'
+fi
diff -Nru zsh-4.3.10/Completion/Zsh/Context/_redirect zsh-4.3.11/Completion/Zsh/Context/_redirect
--- zsh-4.3.10/Completion/Zsh/Context/_redirect	2002-03-13 10:28:05.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Context/_redirect	2010-04-09 13:57:37.000000000 +0200
@@ -6,11 +6,13 @@
 
 strs=( -default- )
 
-if [[ -n "$_comp_command1" ]]; then
-  strs=( "${_comp_command1}" "$strs[@]" )
-  [[ -n "$_comp_command2" ]] &&
+if [[ "$CURRENT" != "1" ]]; then
+  strs=( "${_comp_command}" "$strs[@]" )
+  if [[ -n "$_comp_command1" ]]; then
+    strs=( "${_comp_command1}" "$strs[@]" )
+    [[ -n "$_comp_command2" ]] &&
       strs=( "${_comp_command2}" "$strs[@]" )
+  fi
 fi
 
-_dispatch -redirect-,${compstate[redirect]},${_comp_command} \
-          -redirect-,{${compstate[redirect]},-default-},${^strs}
+_dispatch -redirect-,{${compstate[redirect]},-default-},${^strs}
diff -Nru zsh-4.3.10/Completion/Zsh/Context/_subscript zsh-4.3.11/Completion/Zsh/Context/_subscript
--- zsh-4.3.10/Completion/Zsh/Context/_subscript	2009-04-07 10:42:11.000000000 +0200
+++ zsh-4.3.11/Completion/Zsh/Context/_subscript	2010-05-31 16:29:30.000000000 +0200
@@ -59,6 +59,7 @@
       '(r R k i I)K[all values where subscript matched by key as pattern]'
       '(r R k K I)i[any one key matched by subscript as pattern]'
       '(r R k K i)I[all keys matched by subscript as pattern]'
+      'e[interpret * or @ as a single key]'
     );;
     (|scalar*)) flags=(
       'w[make subscripting work on words of scalar]'
@@ -66,6 +67,7 @@
       'p[recognise escape sequences in subsequent s flag]'
     );&
     array*) flags=($flags
+      'e[interpret * or @ as a single key and use plain string matching]'
       'n[Nth lowest/highest index with i/I/r/R flag]'
       'b[begin with specified element]'
       '(r R k K i)I[highest index of value matched by subscript]'
diff -Nru zsh-4.3.10/Completion/Zsh/Function/.distfiles zsh-4.3.11/Completion/Zsh/Function/.distfiles
--- zsh-4.3.10/Completion/Zsh/Function/.distfiles	1970-01-01 01:00:00.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Function/.distfiles	2010-07-25 23:44:16.000000000 +0200
@@ -0,0 +1,4 @@
+DISTFILES_SRC='
+.distfiles
+_zsh-mime-handler
+'
diff -Nru zsh-4.3.10/Completion/Zsh/Function/_zsh-mime-handler zsh-4.3.11/Completion/Zsh/Function/_zsh-mime-handler
--- zsh-4.3.10/Completion/Zsh/Function/_zsh-mime-handler	1970-01-01 01:00:00.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Function/_zsh-mime-handler	2010-11-25 16:29:19.000000000 +0100
@@ -0,0 +1,19 @@
+#compdef zsh-mime-handler
+
+# Given that the handler is likely to change the start of the command
+# line, we'll try to maintain the position from the end of the words
+# array.  Hence for example CURRENT gets decremented by one if the
+# handler drops off the start.
+integer end_offset=$(( ${#words} - CURRENT ))
+
+# zsh-mime-handler -l is supposed to print out the command line
+# with quoting to turn it into a full executable line.  So
+# we need to use shell splitting to turn it into words and
+# then unquoting on those words.
+words=(${(z)"$(zsh-mime-handler -l "${(@)words[2,-1]}")"})
+# Careful unquoting: we need to keep a '' as a separate word.
+words=("${(@Q)words}")
+
+(( CURRENT = ${#words} - end_offset ))
+
+_normal
diff -Nru zsh-4.3.10/Completion/Zsh/Type/_globquals zsh-4.3.11/Completion/Zsh/Type/_globquals
--- zsh-4.3.10/Completion/Zsh/Type/_globquals	2008-11-11 19:25:32.000000000 +0100
+++ zsh-4.3.11/Completion/Zsh/Type/_globquals	2010-05-28 10:49:55.000000000 +0200
@@ -21,16 +21,28 @@
     (f)
     if ! compset -P "[-=+][0-7?]##"; then
       if [[ -z $PREFIX ]]; then
-	_delimiters qualifier-f
-	return
+        _delimiters qualifier-f
+        return
       elif ! _globqual_delims; then
-	# still completing mode spec
-	_message -e modes "mode spec"
-	return
+        # still completing mode spec
+        _message -e modes "mode spec"
+        return
       fi
     fi
     ;;
 
+    (P)
+    # skip delimited prefix
+    if [[ -z $PREFIX ]]; then
+      _delimiters qualifier-P
+      return
+    elif ! _globqual_delims; then
+      # can't suggest anything here
+      _message -e prefix prefix
+      return
+    fi
+    ;;
+
     (e)
     # complete/skip delimited command line
     if [[ -z $PREFIX ]]; then
@@ -74,12 +86,12 @@
     # complete/skip UID or delimited user
     if ! compset -P '[[:digit:]]##'; then
       if [[ -z $PREFIX ]]; then
-	_delimiters qualifier-u
-	return
+        _delimiters qualifier-u
+        return
       elif ! _globqual_delims; then
-	# still completing user
-	_users -S $delim
-	return
+        # still completing user
+        _users -S $delim
+        return
       fi
     fi
     ;;
@@ -88,12 +100,12 @@
     # complete/skip GID or delimited group
     if ! compset -P '[[:digit:]]##'; then
       if [[ -z $PREFIX ]]; then
-	_delimiter qualifier-g
-	return
+        _delimiters qualifier-g
+        return
       elif ! _globqual_delims; then
-	# still completing group
-	_groups -S $delim
-	return
+        # still completing group
+        _groups -S $delim
+        return
       fi
     fi
     ;;
@@ -103,12 +115,12 @@
       # complete/skip relative time spec
       alts=()
       if ! compset -P '[Mwhms]' && [[ -z $PREFIX ]]; then
-	alts+=(
-	  "time-specifiers:time specifier:\
+        alts+=(
+          "time-specifiers:time specifier:\
 ((M\:months w\:weeks h\:hours m:\minutes s\:seconds))")
       fi
       if ! compset -P '[-+]' && [[ -z $PREFIX ]]; then
-	alts+=("senses:sense:((-\:less\ than +\:more\ than))")
+        alts+=("senses:sense:((-\:less\ than +\:more\ than))")
       fi
       alts+=('digits:digit: ')
       _alternative $alts
@@ -122,12 +134,12 @@
       # complete/skip size spec
       alts=()
       if ! compset -P '[kKmMpP]' && [[ -z $PREFIX ]]; then
-	alts+=(
-	  "size-specifiers:size specifier:\
+        alts+=(
+          "size-specifiers:size specifier:\
 ((k\:kb m\:mb p\:512-byte\ blocks))")
       fi
       if ! compset -P '[-+]' && [[ -z $PREFIX ]]; then
-	alts+=("senses:sense:((-\:less\ than +\:more\ than))")
+        alts+=("senses:sense:((-\:less\ than +\:more\ than))")
       fi
       alts+=('digits:digit: ')
       _alternative $alts
@@ -139,16 +151,34 @@
     # complete/skip sort spec
     if ! compset -P "?"; then
       alts=(
-	"n:lexical order of name"
-	"L:size of file"
-	"l:number of hard links"
-	"a:last access time"
-	"m:last modification time"
-	"c:last inode change time"
-	"d:directory depth"
-	)
+        "n:lexical order of name"
+        "L:size of file"
+        "l:number of hard links"
+        "a:last access time"
+        "m:last modification time"
+        "c:last inode change time"
+        "d:directory depth"
+        "N:no sorting"
+        "e:execute code"
+        "+:+ command name"
+        )
       _describe -t sort-specifiers "sort specifier" alts -Q -S ''
       return
+    elif [[ $IPREFIX[-1] = e ]]; then
+      if [[ -z $PREFIX ]]; then
+        _delimiters qualifier-oe
+        return
+      elif ! _globqual_delims; then
+        compset -q
+        _normal
+        return
+      fi
+    elif [[ $IPREFIX[-1] = + ]]; then
+      if [[ $PREFIX = [[:IDENT:]]# ]]; then
+        # either nothing there yet, or still on name
+        _command_names
+        return
+      fi
     fi
     ;;
 
@@ -156,9 +186,9 @@
     # complete/skip range: check for closing bracket
     if ! compset -P "(-|)[[:digit:]]##(,(-|)[[:digit:]]##|)]"; then
       if compset -P "(-|)[[:digit:]]##,"; then
-	_message "end of range"
+        _message "end of range"
       else
-	_message "start of range"
+        _message "start of range"
       fi
       return
     fi
@@ -218,6 +248,7 @@
     "n:numeric glob sort"
     "o:+ sort order, up"
     "O:+ sort order, down"
+    "P:prepend word"
     "[:+ range of files"
     "):end of qualifiers"
     "\::modifier"
diff -Nru zsh-4.3.10/Config/installfns.sh zsh-4.3.11/Config/installfns.sh
--- zsh-4.3.10/Config/installfns.sh	2007-07-26 10:56:37.000000000 +0200
+++ zsh-4.3.11/Config/installfns.sh	2010-02-02 15:55:45.000000000 +0100
@@ -46,8 +46,11 @@
     fi
     test -d $instdir || /bin/sh $sdir_top/mkinstalldirs $instdir || exit 1
     $INSTALL_DATA $sdir_top/$file $instdir || exit 1
-    if test -x $sdir_top/$file; then
-	chmod +x $instdir/`echo $file | sed -e 's%^.*/%%'`
-    fi
+    read line < $sdir_top/$file
+    case "$line" in
+      '#!'*)
+      chmod +x $instdir/`echo $file | sed -e 's%^.*/%%'`
+      ;;
+    esac
   fi
 done
diff -Nru zsh-4.3.10/Config/version.mk zsh-4.3.11/Config/version.mk
--- zsh-4.3.10/Config/version.mk	2009-06-01 10:59:03.000000000 +0200
+++ zsh-4.3.11/Config/version.mk	2010-12-20 16:00:24.000000000 +0100
@@ -27,5 +27,5 @@
 # This must also serve as a shell script, so do not add spaces around the
 # `=' signs.
 
-VERSION=4.3.10
-VERSION_DATE='June 1, 2009'
+VERSION=4.3.11
+VERSION_DATE='December 20, 2010'
diff -Nru zsh-4.3.10/config.guess zsh-4.3.11/config.guess
--- zsh-4.3.10/config.guess	2006-11-14 13:11:33.000000000 +0100
+++ zsh-4.3.11/config.guess	2009-10-24 07:24:12.000000000 +0200
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 
-timestamp='2006-07-02'
+timestamp='2009-06-10'
 
 # 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
@@ -56,8 +56,8 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -161,6 +161,7 @@
 	    arm*) machine=arm-unknown ;;
 	    sh3el) machine=shl-unknown ;;
 	    sh3eb) machine=sh-unknown ;;
+	    sh5el) machine=sh5le-unknown ;;
 	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
 	esac
 	# The Operating System including object format, if it has switched
@@ -169,7 +170,7 @@
 	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
 		eval $set_cc_for_build
 		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep __ELF__ >/dev/null
+			| grep -q __ELF__
 		then
 		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
 		    # Return netbsd for either.  FIX?
@@ -323,14 +324,30 @@
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
@@ -531,7 +548,7 @@
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[45])
+    *:AIX:*:[456])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -639,7 +656,7 @@
 	    # => hppa64-hp-hpux11.23
 
 	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep __LP64__ >/dev/null
+		grep -q __LP64__
 	    then
 		HP_ARCH="hppa2.0w"
 	    else
@@ -780,7 +797,7 @@
     i*:CYGWIN*:*)
 	echo ${UNAME_MACHINE}-pc-cygwin
 	exit ;;
-    i*:MINGW*:*)
+    *:MINGW*:*)
 	echo ${UNAME_MACHINE}-pc-mingw32
 	exit ;;
     i*:windows32*:*)
@@ -790,15 +807,24 @@
     i*:PW*:*)
 	echo ${UNAME_MACHINE}-pc-pw32
 	exit ;;
-    x86:Interix*:[3456]*)
-	echo i586-pc-interix${UNAME_RELEASE}
-	exit ;;
-    EM64T:Interix*:[3456]*)
-	echo x86_64-unknown-interix${UNAME_RELEASE}
-	exit ;;
+    *:Interix*:[3456]*)
+    	case ${UNAME_MACHINE} in
+	    x86)
+		echo i586-pc-interix${UNAME_RELEASE}
+		exit ;;
+	    EM64T | authenticamd | genuineintel)
+		echo x86_64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
+	esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
 	exit ;;
+    8664:Windows_NT:*)
+	echo x86_64-pc-mks
+	exit ;;
     i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
 	# How do we know it's Interix rather than the generic POSIX subsystem?
 	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
@@ -829,7 +855,14 @@
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
 	exit ;;
     avr32*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -852,40 +885,17 @@
     m68*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
-    mips:Linux:*:*)
+    mips:Linux:*:* | mips64:Linux:*:*)
 	eval $set_cc_for_build
 	sed 's/^	//' << EOF >$dummy.c
 	#undef CPU
-	#undef mips
-	#undef mipsel
+	#undef ${UNAME_MACHINE}
+	#undef ${UNAME_MACHINE}el
 	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mipsel
+	CPU=${UNAME_MACHINE}el
 	#else
 	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n '
-	    /^CPU/{
-		s: ::g
-		p
-	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-	;;
-    mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef mips64
-	#undef mips64el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=mips64el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=mips64
+	CPU=${UNAME_MACHINE}
 	#else
 	CPU=
 	#endif
@@ -917,10 +927,13 @@
 	  EV67)  UNAME_MACHINE=alphaev67 ;;
 	  EV68*) UNAME_MACHINE=alphaev68 ;;
         esac
-	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+	objdump --private-headers /bin/sh | grep -q ld.so.1
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
 	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
 	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
+	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
@@ -950,6 +963,9 @@
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
 	exit ;;
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
 	# first see if it will tell us. cd to the root directory to prevent
@@ -965,17 +981,6 @@
 	  elf32-i386)
 		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
 		;;
-	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
-		exit ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
-		exit ;;
-	  "")
-		# Either a pre-BFD a.out linker (linux-gnuoldld) or
-		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
-		exit ;;
 	esac
 	# Determine whether the default compiler is a.out or elf
 	eval $set_cc_for_build
@@ -1041,7 +1046,7 @@
     i*86:syllable:*:*)
 	echo ${UNAME_MACHINE}-pc-syllable
 	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
 	echo i386-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     i*86:*DOS:*:*)
@@ -1085,8 +1090,11 @@
     pc:*:*:*)
 	# Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
         exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
@@ -1124,6 +1132,16 @@
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
@@ -1136,7 +1154,7 @@
     rs6000:LynxOS:2.*:*)
 	echo rs6000-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
 	echo powerpc-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
     SM[BE]S:UNIX_SV:*:*)
@@ -1199,6 +1217,9 @@
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
 	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1208,6 +1229,15 @@
     SX-6:SUPER-UX:*:*)
 	echo sx6-nec-superux${UNAME_RELEASE}
 	exit ;;
+    SX-7:SUPER-UX:*:*)
+	echo sx7-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8:SUPER-UX:*:*)
+	echo sx8-nec-superux${UNAME_RELEASE}
+	exit ;;
+    SX-8R:SUPER-UX:*:*)
+	echo sx8r-nec-superux${UNAME_RELEASE}
+	exit ;;
     Power*:Rhapsody:*:*)
 	echo powerpc-apple-rhapsody${UNAME_RELEASE}
 	exit ;;
@@ -1298,6 +1328,9 @@
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
 	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1458,9 +1491,9 @@
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff -Nru zsh-4.3.10/config.h.in zsh-4.3.11/config.h.in
--- zsh-4.3.10/config.h.in	2009-05-19 10:40:26.000000000 +0200
+++ zsh-4.3.11/config.h.in	2010-09-23 11:07:55.000000000 +0200
@@ -93,6 +93,9 @@
 /* Define to 1 if multiple modules defining the same symbol are OK. */
 #undef DYNAMIC_NAME_CLASH_OK
 
+/* Define to 1 if getcwd() calls malloc to allocate memory. */
+#undef GETCWD_CALLS_MALLOC
+
 /* Define to 1 if the `getpgrp' function requires zero arguments. */
 #undef GETPGRP_VOID
 
@@ -223,6 +226,9 @@
 /* Define to 1 if you have the `getcchar' function. */
 #undef HAVE_GETCCHAR
 
+/* Define to 1 if you have the `getcwd' function. */
+#undef HAVE_GETCWD
+
 /* Define to 1 if you have the `getenv' function. */
 #undef HAVE_GETENV
 
@@ -759,6 +765,9 @@
 /* Define to 1 if you have RFS superroot directory. */
 #undef HAVE_SUPERROOT
 
+/* Define to 1 if you have the `symlink' function. */
+#undef HAVE_SYMLINK
+
 /* Define to 1 if you have the `sysconf' function. */
 #undef HAVE_SYSCONF
 
diff -Nru zsh-4.3.10/config.sub zsh-4.3.11/config.sub
--- zsh-4.3.10/config.sub	2006-11-14 13:11:33.000000000 +0100
+++ zsh-4.3.11/config.sub	2009-10-24 07:24:12.000000000 +0200
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
+#   Free Software Foundation, Inc.
 
-timestamp='2006-07-02'
+timestamp='2009-06-11'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -72,8 +72,8 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -122,6 +122,7 @@
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -152,6 +153,9 @@
 		os=
 		basic_machine=$1
 		;;
+        -bluegene*)
+	        os=-cnk
+		;;
 	-sim | -cisco | -oki | -wec | -winbond)
 		os=
 		basic_machine=$1
@@ -245,17 +249,20 @@
 	| bfin \
 	| c4x | clipper \
 	| d10v | d30v | dlx | dsp16xx \
-	| fr30 | frv \
+	| fido | fr30 | frv \
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore \
+	| maxq | mb | microblaze | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
+	| mips64octeon | mips64octeonel \
 	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
@@ -268,6 +275,7 @@
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| moxie \
 	| mt \
 	| msp430 \
 	| nios | nios2 \
@@ -276,7 +284,8 @@
 	| pdp10 | pdp11 | pj | pjl \
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
-	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| score \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -284,8 +293,8 @@
 	| tahoe | thumb | tic4x | tic80 | tron \
 	| v850 | v850e \
 	| we32k \
-	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
-	| z8k)
+	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
+	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
 	m6811 | m68hc11 | m6812 | m68hc12)
@@ -323,19 +332,22 @@
 	| clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| elxsi-* \
-	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
 	| h8300-* | h8500-* \
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
+	| mips64octeon-* | mips64octeonel-* \
 	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
@@ -357,20 +369,24 @@
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 	| tron-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
-	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
+	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
+	| xstormy16-* | xtensa*-* \
 	| ymp-* \
-	| z8k-*)
+	| z8k-* | z80-*)
+		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
 		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
@@ -434,6 +450,10 @@
 		basic_machine=m68k-apollo
 		os=-bsd
 		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
 	aux)
 		basic_machine=m68k-apple
 		os=-aux
@@ -442,10 +462,26 @@
 		basic_machine=ns32k-sequent
 		os=-dynix
 		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
+	bluegene*)
+		basic_machine=powerpc-ibm
+		os=-cnk
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
 		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
 	convex-c1)
 		basic_machine=c1-convex
 		os=-bsd
@@ -474,8 +510,8 @@
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16c)
-		basic_machine=cr16c-unknown
+	cr16)
+		basic_machine=cr16-unknown
 		os=-elf
 		;;
 	crds | unos)
@@ -513,6 +549,10 @@
 		basic_machine=m88k-motorola
 		os=-sysv3
 		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
 	djgpp)
 		basic_machine=i586-pc
 		os=-msdosdjgpp
@@ -667,6 +707,14 @@
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	m88k-omron*)
 		basic_machine=m88k-omron
 		;;
@@ -682,6 +730,10 @@
 		basic_machine=i386-pc
 		os=-mingw32
 		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
 	miniframe)
 		basic_machine=m68000-convergent
 		;;
@@ -808,6 +860,14 @@
 		basic_machine=i860-intel
 		os=-osf
 		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	pbd)
 		basic_machine=sparc-tti
 		;;
@@ -909,6 +969,10 @@
 	sb1el)
 		basic_machine=mipsisa64sb1el-unknown
 		;;
+	sde)
+		basic_machine=mipsisa32-sde
+		os=-elf
+		;;
 	sei)
 		basic_machine=mips-sei
 		os=-seiux
@@ -920,6 +984,9 @@
 		basic_machine=sh-hitachi
 		os=-hms
 		;;
+	sh5el)
+		basic_machine=sh5le-unknown
+		;;
 	sh64)
 		basic_machine=sh64-unknown
 		;;
@@ -1009,6 +1076,10 @@
 		basic_machine=tic6x-unknown
 		os=-coff
 		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
 	tx39)
 		basic_machine=mipstx39-unknown
 		;;
@@ -1084,6 +1155,10 @@
 		basic_machine=z8k-unknown
 		os=-sim
 		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
 	none)
 		basic_machine=none-none
 		os=-none
@@ -1122,7 +1197,7 @@
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1192,10 +1267,11 @@
 	# Each alternative MUST END IN A *, to match a version number.
 	# -sysv* is not here because it comes later, after sysvr4.
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -kopensolaris* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
+	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1204,7 +1280,7 @@
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
@@ -1214,7 +1290,7 @@
 	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
 	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
 	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers*)
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
 	-qnx*)
@@ -1344,6 +1420,9 @@
 	-zvmoe)
 		os=-zvmoe
 		;;
+	-dicos*)
+		os=-dicos
+		;;
 	-none)
 		;;
 	*)
@@ -1366,6 +1445,9 @@
 # system, and we'll never get to this point.
 
 case $basic_machine in
+        score-*)
+		os=-elf
+		;;
         spu-*)
 		os=-elf
 		;;
@@ -1406,6 +1488,9 @@
 	m68*-cisco)
 		os=-aout
 		;;
+        mep-*)
+		os=-elf
+		;;
 	mips*-cisco)
 		os=-elf
 		;;
@@ -1535,7 +1620,7 @@
 			-sunos*)
 				vendor=sun
 				;;
-			-aix*)
+			-cnk*|-aix*)
 				vendor=ibm
 				;;
 			-beos*)
diff -Nru zsh-4.3.10/configure zsh-4.3.11/configure
--- zsh-4.3.10/configure	2009-06-01 11:04:37.000000000 +0200
+++ zsh-4.3.11/configure	2010-09-23 11:42:09.000000000 +0200
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61.
+# Generated by GNU Autoconf 2.63.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 ## --------------------- ##
@@ -15,7 +15,7 @@
 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
+  # 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
@@ -37,17 +37,45 @@
 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=';'
+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
+if (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
-    PATH_SEPARATOR=:
+    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
-  rm -f conf$$.sh
+  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
 
 # Support unset when possible.
@@ -63,8 +91,6 @@
 # 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.)
-as_nl='
-'
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
@@ -87,7 +113,7 @@
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   { (exit 1); exit 1; }
 fi
 
@@ -100,17 +126,10 @@
 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) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
 
 # Required to use basename.
 if expr a : '\(a\)' >/dev/null 2>&1 &&
@@ -132,7 +151,7 @@
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
+$as_echo X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -158,7 +177,7 @@
   as_have_required=no
 fi
 
-  if test $as_have_required = yes && 	 (eval ":
+  if test $as_have_required = yes &&	 (eval ":
 (as_func_return () {
   (exit \$1)
 }
@@ -240,7 +259,7 @@
 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
+  # 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
@@ -261,7 +280,7 @@
 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
+  # 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
@@ -341,10 +360,10 @@
 
       if test "x$CONFIG_SHELL" != x; then
   for as_var in BASH_ENV ENV
-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-        done
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+	done
+	export CONFIG_SHELL
+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 fi
 
 
@@ -413,9 +432,10 @@
 
 test \$exitcode = 0") || {
   echo No shell found that supports shell functions.
-  echo Please tell autoconf@gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
+  echo Please tell bug-autoconf@gnu.org about your system,
+  echo including any error possibly output before this message.
+  echo This can help us improve future autoconf versions.
+  echo Configuration will now proceed without shell functions.
 }
 
 
@@ -451,7 +471,7 @@
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+    { $as_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
@@ -479,7 +499,6 @@
 *)
   ECHO_N='-n';;
 esac
-
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -492,19 +511,22 @@
   rm -f conf$$.dir/conf$$.file
 else
   rm -f conf$$.dir
-  mkdir conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
 fi
-echo >conf$$.file
-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 ||
+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'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
+  fi
 else
   as_ln_s='cp -p'
 fi
@@ -529,10 +551,10 @@
   as_test_x='
     eval sh -c '\''
       if test -d "$1"; then
-        test -d "$1/.";
+	test -d "$1/.";
       else
 	case $1 in
-        -*)set "./$1";;
+	-*)set "./$1";;
 	esac;
 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 	???[sx]*):;;*)false;;esac;fi
@@ -613,118 +635,158 @@
 # 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
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-tzsh
-zshenv
-zshrc
-zprofile
-zlogin
-zlogout
-fndir
-sitefndir
-FUNCTIONS_SUBDIRS
-scriptdir
-sitescriptdir
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-EXELDFLAGS
-LIBLDFLAGS
-CPP
-GREP
-EGREP
-U
-ALLOCA
-SET_MAKE
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-AWK
-LN
-YODL
-PDFETEX
-TEXI2PDF
-TEXI2HTML
-ANSI2KNR
-PCRECONF
-SIGNAL_H
-ERRNO_H
-ZSH_CURSES_H
-CURSES_KEYS_H
-ZSH_TERM_H
-RLIMITS_INC_H
-SHORTBOOTNAMES
-INSTLIB
-UNINSTLIB
-D
-DL_EXT
-DLLD
-DLCFLAGS
-DLLDFLAGS
-E
-EXTRA_LDFLAGS
-EXPOPT
-IMPOPT
-L
-LINKMODS
-MOD_EXPORT
-MOD_IMPORT_VARIABLE
-MOD_IMPORT_FUNCTION
-EXTRAZSHOBJS
+ac_subst_vars='LTLIBOBJS
 LIBOBJS
-LTLIBOBJS'
+EXTRAZSHOBJS
+MOD_IMPORT_FUNCTION
+MOD_IMPORT_VARIABLE
+MOD_EXPORT
+LINKMODS
+L
+IMPOPT
+EXPOPT
+EXTRA_LDFLAGS
+E
+DLLDFLAGS
+DLCFLAGS
+DLLD
+DL_EXT
+D
+UNINSTLIB
+INSTLIB
+SHORTBOOTNAMES
+RLIMITS_INC_H
+ZSH_TERM_H
+CURSES_KEYS_H
+ZSH_CURSES_H
+ERRNO_H
+SIGNAL_H
+PCRECONF
+ANSI2KNR
+TEXI2HTML
+TEXI2PDF
+PDFETEX
+YODL
+LN
+AWK
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+SET_MAKE
+ALLOCA
+U
+EGREP
+GREP
+CPP
+LIBLDFLAGS
+EXELDFLAGS
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+sitescriptdir
+scriptdir
+FUNCTIONS_SUBDIRS
+sitefndir
+fndir
+zlogout
+zlogin
+zprofile
+zshrc
+zshenv
+tzsh
+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_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
 ac_subst_files='CLEAN_MK
 CONFIG_MK
 DEFS_MK
 VERSION_MK'
+ac_user_opts='
+enable_option_checking
+enable_cppflags
+enable_cflags
+enable_ldflags
+enable_libs
+enable_zsh_debug
+enable_zsh_mem
+enable_zsh_mem_debug
+enable_zsh_mem_warning
+enable_zsh_secure_free
+enable_zsh_hash_debug
+enable_etcdir
+enable_zshenv
+enable_zshrc
+enable_zprofile
+enable_zlogin
+enable_zlogout
+enable_dynamic
+enable_restricted_r
+enable_locale
+enable_ansi2knr
+enable_fndir
+enable_site_fndir
+enable_function_subdirs
+enable_scriptdir
+enable_site_scriptdir
+enable_custom_patchlevel
+enable_maildir_support
+enable_max_function_depth
+enable_readnullcmd
+enable_pcre
+enable_cap
+enable_gdbm
+enable_largefile
+with_term_lib
+with_tcsetpgrp
+enable_multibyte
+enable_dynamic_nss
+'
       ac_precious_vars='build_alias
 host_alias
 target_alias
@@ -739,6 +801,8 @@
 # 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
@@ -837,13 +901,21 @@
     datarootdir=$ac_optarg ;;
 
   -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    ac_useropt=`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
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=no ;;
+    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 ;;
@@ -856,13 +928,21 @@
     dvidir=$ac_optarg ;;
 
   -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    ac_useropt=`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
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=\$ac_optarg ;;
+    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- \
@@ -1053,22 +1133,38 @@
     ac_init_version=: ;;
 
   -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    ac_useropt=`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
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=\$ac_optarg ;;
+    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_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    ac_useropt=`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
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=no ;;
+    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.
@@ -1088,7 +1184,7 @@
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
+  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
 Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; }
     ;;
@@ -1097,16 +1193,16 @@
     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
+      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
    { (exit 1); exit 1; }; }
     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
+    $as_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
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
     : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
     ;;
 
@@ -1115,22 +1211,38 @@
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
+  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
    { (exit 1); exit 1; }; }
 fi
 
-# Be sure to have absolute directory names.
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+   { (exit 1); exit 1; }; } ;;
+    *)     $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
-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
    { (exit 1); exit 1; }; }
 done
 
@@ -1145,7 +1257,7 @@
 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.
+    $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
@@ -1161,10 +1273,10 @@
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { echo "$as_me: error: Working directory cannot be determined" >&2
+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
    { (exit 1); exit 1; }; }
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { echo "$as_me: error: pwd does not report name of working directory" >&2
+  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
    { (exit 1); exit 1; }; }
 
 
@@ -1172,12 +1284,12 @@
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
+  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
@@ -1204,12 +1316,12 @@
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
    { (exit 1); exit 1; }; }
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
+	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
    { (exit 1); exit 1; }; }
 	pwd)`
 # When building in place, set srcdir=.
@@ -1258,9 +1370,9 @@
 
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
+                          [$ac_default_prefix]
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
+                          [PREFIX]
 
 By default, \`make install' will install all the files in
 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
@@ -1270,25 +1382,25 @@
 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/PACKAGE]
-  --htmldir=DIR          html documentation [DOCDIR]
-  --dvidir=DIR           dvi documentation [DOCDIR]
-  --pdfdir=DIR           pdf documentation [DOCDIR]
-  --psdir=DIR            ps documentation [DOCDIR]
+  --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/PACKAGE]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
 _ACEOF
 
   cat <<\_ACEOF
@@ -1309,6 +1421,7 @@
   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-cppflags=...   specify C preprocessor flags
@@ -1384,15 +1497,17 @@
 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" || 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=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  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/ ;;
@@ -1428,7 +1543,7 @@
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1438,10 +1553,10 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.61
+generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1452,7 +1567,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
 
@@ -1488,7 +1603,7 @@
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
+  $as_echo "PATH: $as_dir"
 done
 IFS=$as_save_IFS
 
@@ -1523,7 +1638,7 @@
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
@@ -1575,11 +1690,12 @@
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$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= ;; #(
       *) $as_unset $ac_var ;;
       esac ;;
     esac
@@ -1609,9 +1725,9 @@
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      echo "$ac_var='\''$ac_val'\''"
+      $as_echo "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
@@ -1626,9 +1742,9 @@
       do
 	eval ac_val=\$$ac_var
 	case $ac_val in
-	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 	esac
-	echo "$ac_var='\''$ac_val'\''"
+	$as_echo "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
@@ -1644,8 +1760,8 @@
       echo
     fi
     test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
+      $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 &&
@@ -1687,21 +1803,24 @@
 
 
 # Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  set x "$CONFIG_SITE"
+  ac_site_file1=$CONFIG_SITE
 elif test "x$prefix" != xNONE; then
-  set x "$prefix/share/config.site" "$prefix/etc/config.site"
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
 else
-  set x "$ac_default_prefix/share/config.site" \
-	"$ac_default_prefix/etc/config.site"
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
 fi
-shift
-for ac_site_file
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
+  test "x$ac_site_file" = xNONE && continue
   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;}
+    { $as_echo "$as_me:$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"
   fi
@@ -1711,16 +1830,16 @@
   # 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;}
+    { $as_echo "$as_me:$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
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
+  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
@@ -1734,29 +1853,38 @@
   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;}
+      { $as_echo "$as_me:$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)
-      { 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;}
+      { $as_echo "$as_me:$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
-	{ 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=:
+	# 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:$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:$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:$LINENO:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:$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=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) 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
@@ -1766,10 +1894,12 @@
   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;}
+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:$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_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -1820,8 +1950,8 @@
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -1836,34 +1966,34 @@
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/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; }
+{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
 if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $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 &&
-  { { 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;}
+  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
    { (exit 1); exit 1; }; }
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_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; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-echo "$as_me: error: invalid value of canonical build" >&2;}
+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+$as_echo "$as_me: error: invalid value of canonical build" >&2;}
    { (exit 1); exit 1; }; };;
 esac
 build=$ac_cv_build
@@ -1880,27 +2010,27 @@
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
 if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $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` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-echo "$as_me: error: invalid value of canonical host" >&2;}
+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+$as_echo "$as_me: error: invalid value of canonical host" >&2;}
    { (exit 1); exit 1; }; };;
 esac
 host=$ac_cv_host
@@ -1938,13 +2068,10 @@
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
   program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.  echo might interpret backslashes.
+# Double any \ or $.
 # By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm -f conftest.sed
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
 # Un-double any \ or $ (doubled by AC_ARG_PROGRAM).
 cat <<\EOF_SED > conftestsed
@@ -2409,10 +2536,10 @@
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2425,7 +2552,7 @@
   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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2436,11 +2563,11 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2449,10 +2576,10 @@
   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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $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.
@@ -2465,7 +2592,7 @@
   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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2476,11 +2603,11 @@
 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; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -2488,12 +2615,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+{ $as_echo "$as_me:$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
@@ -2506,10 +2629,10 @@
           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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2522,7 +2645,7 @@
   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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2533,11 +2656,11 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2546,10 +2669,10 @@
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2567,7 +2690,7 @@
        continue
      fi
     ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2590,11 +2713,11 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2605,10 +2728,10 @@
   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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2621,7 +2744,7 @@
   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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2632,11 +2755,11 @@
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2649,10 +2772,10 @@
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $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.
@@ -2665,7 +2788,7 @@
   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"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2676,11 +2799,11 @@
 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; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2692,12 +2815,8 @@
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf@gnu.org." >&2;}
+{ $as_echo "$as_me:$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
@@ -2707,44 +2826,50 @@
 fi
 
 
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_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
+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (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`
+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
 cat >conftest.$ac_ext <<_ACEOF
@@ -2763,27 +2888,22 @@
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
+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.
-{ 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[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort.  b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions.  Remove them first so a
-# subsequent execution test works.
+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&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 | *.o | *.obj ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
     * ) ac_rmfiles="$ac_rmfiles $ac_file";;
   esac
 done
@@ -2794,10 +2914,11 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; 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'
@@ -2808,7 +2929,7 @@
 do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
+    *.$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
@@ -2835,25 +2956,27 @@
   ac_file=''
 fi
 
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
 if test -z "$ac_file"; then
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_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
+$as_echo "$as_me: error: C compiler cannot create executables
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
 fi
 
 ac_exeext=$ac_cv_exeext
 
 # Check that 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; }
+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&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
@@ -2862,49 +2985,53 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_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.
+	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_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.
+$as_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; }; }
+   { (exit 1); exit 1; }; }; }
     fi
   fi
 fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
 # Check that 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; }
+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
 
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_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
@@ -2913,31 +3040,33 @@
 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 | *.o | *.obj ) ;;
+    *.$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
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_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
+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (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; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
 if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -2960,40 +3089,43 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; 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 ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
 done
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_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
+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (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; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$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 test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3019,20 +3151,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -3042,15 +3175,19 @@
 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`
+{ $as_echo "$as_me:$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
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
 if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
@@ -3077,20 +3214,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	CFLAGS=""
@@ -3115,20 +3253,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_c_werror_flag=$ac_save_c_werror_flag
@@ -3154,20 +3293,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3182,8 +3322,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
+{ $as_echo "$as_me:$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
@@ -3199,10 +3339,10 @@
     CFLAGS=
   fi
 fi
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
 if test "${ac_cv_prog_cc_c89+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
@@ -3273,20 +3413,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_c89=$ac_arg
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3302,15 +3443,15 @@
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
   xno)
-    { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
 
 
@@ -3333,10 +3474,10 @@
 
 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; }
+  { $as_echo "$as_me:$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 test "${ac_cv_sys_largefile_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_cv_sys_largefile_CC=no
      if test "$GCC" != yes; then
@@ -3373,20 +3514,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   break
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3400,20 +3542,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_sys_largefile_CC=' -n32'; break
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3426,16 +3569,16 @@
        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; }
+{ $as_echo "$as_me:$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
 
-  { 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; }
+  { $as_echo "$as_me:$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 test "${ac_cv_sys_file_offset_bits+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   while :; do
   cat >conftest.$ac_ext <<_ACEOF
@@ -3467,20 +3610,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_sys_file_offset_bits=no; break
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3517,20 +3661,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_sys_file_offset_bits=64; break
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3541,8 +3686,8 @@
   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; }
+{ $as_echo "$as_me:$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) ;;
   *)
@@ -3551,12 +3696,12 @@
 _ACEOF
 ;;
 esac
-rm -f conftest*
+rm -rf conftest*
   if test $ac_cv_sys_file_offset_bits = unknown; then
-    { 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; }
+    { $as_echo "$as_me:$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 test "${ac_cv_sys_large_files+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   while :; do
   cat >conftest.$ac_ext <<_ACEOF
@@ -3588,20 +3733,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_sys_large_files=no; break
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3638,20 +3784,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_sys_large_files=1; break
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3662,8 +3809,8 @@
   break
 done
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
-echo "${ECHO_T}$ac_cv_sys_large_files" >&6; }
+{ $as_echo "$as_me:$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) ;;
   *)
@@ -3672,7 +3819,7 @@
 _ACEOF
 ;;
 esac
-rm -f conftest*
+rm -rf conftest*
   fi
 fi
 
@@ -3738,15 +3885,15 @@
 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; }
+{ $as_echo "$as_me:$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 test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $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"
@@ -3778,20 +3925,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -3815,13 +3963,14 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
@@ -3829,7 +3978,7 @@
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -3854,8 +4003,8 @@
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
@@ -3883,20 +4032,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -3920,13 +4070,14 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
@@ -3934,7 +4085,7 @@
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -3950,11 +4101,13 @@
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_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
+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 ac_ext=c
@@ -3963,42 +4116,37 @@
 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 grep that handles long lines and -e" >&5
-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$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 test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $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
+  # 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.
+    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
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  $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"
-    echo 'GREP' >> "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
     ac_count=`expr $ac_count + 1`
@@ -4013,74 +4161,60 @@
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-
-    $ac_path_GREP_found && break 3
+      $ac_path_GREP_found && break 3
+    done
   done
 done
-
-done
 IFS=$as_save_IFS
-
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+  if test -z "$ac_cv_path_GREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
    { (exit 1); exit 1; }; }
-fi
-
+  fi
 else
   ac_cv_path_GREP=$GREP
 fi
 
-
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
  GREP="$ac_cv_path_GREP"
 
 
-{ echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
 if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $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
-     # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-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
+  # 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.
+    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
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  $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"
-    echo 'EGREP' >> "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
     ac_count=`expr $ac_count + 1`
@@ -4095,41 +4229,32 @@
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-
-    $ac_path_EGREP_found && break 3
+      $ac_path_EGREP_found && break 3
+    done
   done
 done
-
-done
 IFS=$as_save_IFS
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+  if test -z "$ac_cv_path_EGREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
    { (exit 1); exit 1; }; }
-fi
-
+  fi
 else
   ac_cv_path_EGREP=$EGREP
 fi
 
-
    fi
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
 
 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; }
+    { $as_echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
+$as_echo_n "checking whether $CC needs -traditional... " >&6; }
 if test "${ac_cv_prog_gcc_traditional+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
     ac_pattern="Autoconf.*'x'"
   cat >conftest.$ac_ext <<_ACEOF
@@ -4168,16 +4293,16 @@
 
   fi
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5
-echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6; }
+{ $as_echo "$as_me:$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
-     { 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; }
+     { $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
 if test "${ac_cv_c_const+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4249,20 +4374,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_c_const=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_c_const=no
@@ -4270,24 +4396,24 @@
 
 rm -f core 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; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
+$as_echo "$ac_cv_c_const" >&6; }
 if test $ac_cv_c_const = no; then
 
 cat >>confdefs.h <<\_ACEOF
-#define const
+#define const /**/
 _ACEOF
 
 fi
 
 case "$host_os" in
-  darwin*) CPP="$CPP -traditional-cpp" ;;
+  darwin[0-9].*) CPP="$CPP -traditional-cpp" ;;
 esac
 
-{ echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5
-echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5
+$as_echo_n "checking for ${CC-cc} option to accept ANSI C... " >&6; }
 if test "${fp_cv_prog_cc_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   fp_cv_prog_cc_stdc=no
 ac_save_CFLAGS="$CFLAGS"
@@ -4329,20 +4455,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   fp_cv_prog_cc_stdc="$ac_arg"; break
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -4353,15 +4480,15 @@
 CFLAGS="$ac_save_CFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $fp_cv_prog_cc_stdc" >&5
-echo "${ECHO_T}$fp_cv_prog_cc_stdc" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $fp_cv_prog_cc_stdc" >&5
+$as_echo "$fp_cv_prog_cc_stdc" >&6; }
 case "x$fp_cv_prog_cc_stdc" in
   x|xno) ;;
   *) CC="$CC $fp_cv_prog_cc_stdc" ;;
 esac
 
-{ echo "$as_me:$LINENO: checking whether to use prototypes" >&5
-echo $ECHO_N "checking whether to use prototypes... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether to use prototypes" >&5
+$as_echo_n "checking whether to use prototypes... " >&6; }
 if test ."$ansi2knr" = .yes || test ."$ansi2knr" = .no; then
   msg="(overridden) "
 else
@@ -4375,12 +4502,12 @@
 
 
 if test "$ansi2knr" = yes; then
-  { echo "$as_me:$LINENO: result: ${msg}no" >&5
-echo "${ECHO_T}${msg}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: ${msg}no" >&5
+$as_echo "${msg}no" >&6; }
   U=_
 else
-  { echo "$as_me:$LINENO: result: ${msg}yes" >&5
-echo "${ECHO_T}${msg}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: ${msg}yes" >&5
+$as_echo "${msg}yes" >&6; }
   cat >>confdefs.h <<\_ACEOF
 #define PROTOTYPES 1
 _ACEOF
@@ -4389,10 +4516,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4419,20 +4546,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_header_stdc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_header_stdc=no
@@ -4524,37 +4652,40 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_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
+  $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
 
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* 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; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -4576,11 +4707,11 @@
 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; }
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4598,20 +4729,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_Header=no"
@@ -4619,12 +4751,15 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -4634,10 +4769,10 @@
 
 # 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; }
+{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5
+$as_echo_n "checking for working alloca.h... " >&6; }
 if test "${ac_cv_working_alloca_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4661,31 +4796,35 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_working_alloca_h=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_working_alloca_h=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       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; }
+{ $as_echo "$as_me:$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
 
 cat >>confdefs.h <<\_ACEOF
@@ -4694,10 +4833,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for alloca" >&5
-echo $ECHO_N "checking for alloca... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for alloca" >&5
+$as_echo_n "checking for alloca... " >&6; }
 if test "${ac_cv_func_alloca_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4741,31 +4880,35 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_func_alloca_works=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_func_alloca_works=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       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; }
+{ $as_echo "$as_me:$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
 
@@ -4786,10 +4929,10 @@
 _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; }
+{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
+$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
 if test "${ac_cv_os_cray+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4813,15 +4956,15 @@
 rm -f conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
-echo "${ECHO_T}$ac_cv_os_cray" >&6; }
+{ $as_echo "$as_me:$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=`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; }
+    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
 if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4874,33 +5017,40 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   eval "$as_ac_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_var=no"
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define CRAY_STACKSEG_END $ac_func
@@ -4912,10 +5062,10 @@
   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; }
+{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
+$as_echo_n "checking stack direction for C alloca... " >&6; }
 if test "${ac_cv_c_stack_direction+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   ac_cv_c_stack_direction=0
@@ -4953,36 +5103,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_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
+  $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
 
 ( exit $ac_status )
 ac_cv_c_stack_direction=-1
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* 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; }
+{ $as_echo "$as_me:$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
@@ -4991,10 +5144,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking if the compiler supports union initialisation" >&5
-echo $ECHO_N "checking if the compiler supports union initialisation... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if the compiler supports union initialisation" >&5
+$as_echo_n "checking if the compiler supports union initialisation... " >&6; }
 if test "${zsh_cv_c_have_union_init+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5017,20 +5170,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_c_have_union_init=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_c_have_union_init=no
@@ -5038,8 +5192,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_c_have_union_init" >&5
-echo "${ECHO_T}$zsh_cv_c_have_union_init" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_c_have_union_init" >&5
+$as_echo "$zsh_cv_c_have_union_init" >&6; }
 
 
 if test x$zsh_cv_c_have_union_init = xyes; then
@@ -5049,10 +5203,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking if signed to unsigned casting is broken" >&5
-echo $ECHO_N "checking if signed to unsigned casting is broken... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if signed to unsigned casting is broken" >&5
+$as_echo_n "checking if signed to unsigned casting is broken... " >&6; }
 if test "${zsh_cv_c_broken_signed_to_unsigned_casting+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_c_broken_signed_to_unsigned_casting=no
@@ -5071,36 +5225,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_c_broken_signed_to_unsigned_casting=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_c_broken_signed_to_unsigned_casting=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_c_broken_signed_to_unsigned_casting" >&5
-echo "${ECHO_T}$zsh_cv_c_broken_signed_to_unsigned_casting" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_c_broken_signed_to_unsigned_casting" >&5
+$as_echo "$zsh_cv_c_broken_signed_to_unsigned_casting" >&6; }
 
 
 if test x$zsh_cv_c_broken_signed_to_unsigned_casting = xyes; then
@@ -5110,10 +5267,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking if the compiler supports variable-length arrays" >&5
-echo $ECHO_N "checking if the compiler supports variable-length arrays... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if the compiler supports variable-length arrays" >&5
+$as_echo_n "checking if the compiler supports variable-length arrays... " >&6; }
 if test "${zsh_cv_c_variable_length_arrays+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5136,20 +5293,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_c_variable_length_arrays=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_c_variable_length_arrays=no
@@ -5157,8 +5315,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_c_variable_length_arrays" >&5
-echo "${ECHO_T}$zsh_cv_c_variable_length_arrays" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_c_variable_length_arrays" >&5
+$as_echo "$zsh_cv_c_variable_length_arrays" >&6; }
 
 
 if test x$zsh_cv_c_variable_length_arrays = xyes; then
@@ -5168,11 +5326,12 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
-set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+{ $as_echo "$as_me:$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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
 SHELL = /bin/sh
@@ -5189,12 +5348,12 @@
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
             # Find a good install program.  We prefer a C program (faster),
@@ -5210,11 +5369,12 @@
 # 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; }
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -5243,17 +5403,29 @@
 	    # 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
+	    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
@@ -5266,8 +5438,8 @@
     INSTALL=$ac_install_sh
   fi
 fi
-{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6; }
+{ $as_echo "$as_me:$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.
@@ -5280,10 +5452,10 @@
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_AWK+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
@@ -5296,7 +5468,7 @@
   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_AWK="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5307,20 +5479,20 @@
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
   test -n "$AWK" && break
 done
-                 { echo "$as_me:$LINENO: checking whether ln works" >&5
-echo $ECHO_N "checking whether ln works... $ECHO_C" >&6; }
+                 { $as_echo "$as_me:$LINENO: checking whether ln works" >&5
+$as_echo_n "checking whether ln works... " >&6; }
 if test "${ac_cv_prog_LN+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   rm -f conftestdata conftestlink
 echo > conftestdata
@@ -5335,51 +5507,46 @@
 fi
 LN="$ac_cv_prog_LN"
 if test "$ac_cv_prog_LN" = "ln"; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
-                  { echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+                  { $as_echo "$as_me:$LINENO: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
 if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $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
-     # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-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
+  # 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.
+    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
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  $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"
-    echo 'EGREP' >> "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
     ac_count=`expr $ac_count + 1`
@@ -5394,43 +5561,34 @@
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-
-    $ac_path_EGREP_found && break 3
+      $ac_path_EGREP_found && break 3
+    done
   done
 done
-
-done
 IFS=$as_save_IFS
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+  if test -z "$ac_cv_path_EGREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
    { (exit 1); exit 1; }; }
-fi
-
+  fi
 else
   ac_cv_path_EGREP=$EGREP
 fi
 
-
    fi
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
                for ac_prog in yodl
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_YODL+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$YODL"; then
   ac_cv_prog_YODL="$YODL" # Let the user override the test.
@@ -5443,7 +5601,7 @@
   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_YODL="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5454,11 +5612,11 @@
 fi
 YODL=$ac_cv_prog_YODL
 if test -n "$YODL"; then
-  { echo "$as_me:$LINENO: result: $YODL" >&5
-echo "${ECHO_T}$YODL" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $YODL" >&5
+$as_echo "$YODL" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5470,10 +5628,10 @@
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_PDFETEX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$PDFETEX"; then
   ac_cv_prog_PDFETEX="$PDFETEX" # Let the user override the test.
@@ -5486,7 +5644,7 @@
   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_PDFETEX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5497,11 +5655,11 @@
 fi
 PDFETEX=$ac_cv_prog_PDFETEX
 if test -n "$PDFETEX"; then
-  { echo "$as_me:$LINENO: result: $PDFETEX" >&5
-echo "${ECHO_T}$PDFETEX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $PDFETEX" >&5
+$as_echo "$PDFETEX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5513,10 +5671,10 @@
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_TEXI2PDF+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$TEXI2PDF"; then
   ac_cv_prog_TEXI2PDF="$TEXI2PDF" # Let the user override the test.
@@ -5529,7 +5687,7 @@
   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_TEXI2PDF="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5540,11 +5698,11 @@
 fi
 TEXI2PDF=$ac_cv_prog_TEXI2PDF
 if test -n "$TEXI2PDF"; then
-  { echo "$as_me:$LINENO: result: $TEXI2PDF" >&5
-echo "${ECHO_T}$TEXI2PDF" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $TEXI2PDF" >&5
+$as_echo "$TEXI2PDF" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5555,10 +5713,10 @@
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_TEXI2HTML+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$TEXI2HTML"; then
   ac_cv_prog_TEXI2HTML="$TEXI2HTML" # Let the user override the test.
@@ -5571,7 +5729,7 @@
   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_TEXI2HTML="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5582,11 +5740,11 @@
 fi
 TEXI2HTML=$ac_cv_prog_TEXI2HTML
 if test -n "$TEXI2HTML"; then
-  { echo "$as_me:$LINENO: result: $TEXI2HTML" >&5
-echo "${ECHO_T}$TEXI2HTML" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $TEXI2HTML" >&5
+$as_echo "$TEXI2HTML" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5597,10 +5755,10 @@
 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; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ANSI2KNR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ANSI2KNR"; then
   ac_cv_prog_ANSI2KNR="$ANSI2KNR" # Let the user override the test.
@@ -5613,7 +5771,7 @@
   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_ANSI2KNR="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5624,11 +5782,11 @@
 fi
 ANSI2KNR=$ac_cv_prog_ANSI2KNR
 if test -n "$ANSI2KNR"; then
-  { echo "$as_me:$LINENO: result: $ANSI2KNR" >&5
-echo "${ECHO_T}$ANSI2KNR" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ANSI2KNR" >&5
+$as_echo "$ANSI2KNR" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5654,11 +5812,11 @@
 
 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; }
+  as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5684,20 +5842,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_Header=no"
@@ -5705,12 +5864,15 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
 _ACEOF
 
 ac_header_dirent=$ac_hdr; break
@@ -5719,10 +5881,10 @@
 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; }
+  { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
 if test "${ac_cv_search_opendir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -5760,26 +5922,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_opendir=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_opendir+set}" = set; then
@@ -5794,8 +5960,8 @@
 rm conftest.$ac_ext
 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; }
+{ $as_echo "$as_me:$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"
@@ -5803,10 +5969,10 @@
 fi
 
 else
-  { echo "$as_me:$LINENO: checking for library containing opendir" >&5
-echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
+$as_echo_n "checking for library containing opendir... " >&6; }
 if test "${ac_cv_search_opendir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -5844,26 +6010,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_opendir=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_opendir+set}" = set; then
@@ -5878,8 +6048,8 @@
 rm conftest.$ac_ext
 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; }
+{ $as_echo "$as_me:$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"
@@ -5888,10 +6058,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5918,20 +6088,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_header_stdc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_header_stdc=no
@@ -6023,37 +6194,40 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_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
+  $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
 
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* 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; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -6062,10 +6236,10 @@
 
 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; }
+{ $as_echo "$as_me:$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 test "${ac_cv_header_time+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -6092,20 +6266,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_header_time=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_header_time=no
@@ -6113,8 +6288,8 @@
 
 rm -f core 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; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
+$as_echo "$ac_cv_header_time" >&6; }
 if test $ac_cv_header_time = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -6123,10 +6298,10 @@
 
 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; }
+{ $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
+$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
 if test "${ac_cv_header_stat_broken+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -6160,20 +6335,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_header_stat_broken=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_header_stat_broken=yes
@@ -6181,8 +6357,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
-echo "${ECHO_T}$ac_cv_header_stat_broken" >&6; }
+{ $as_echo "$as_me:$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
 
 cat >>confdefs.h <<\_ACEOF
@@ -6191,10 +6367,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
-echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
+$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
 if test "${ac_cv_header_sys_wait_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -6227,20 +6403,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_header_sys_wait_h=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_header_sys_wait_h=no
@@ -6248,8 +6425,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
-echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
+$as_echo "$ac_cv_header_sys_wait_h" >&6; }
 if test $ac_cv_header_sys_wait_h = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -6263,10 +6440,10 @@
 if test x$enable_pcre = xyes; then
 # Extract the first word of "pcre-config", so it can be a program name with args.
 set dummy pcre-config; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_PCRECONF+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$PCRECONF"; then
   ac_cv_prog_PCRECONF="$PCRECONF" # Let the user override the test.
@@ -6279,7 +6456,7 @@
   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_PCRECONF="pcre-config"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6290,11 +6467,11 @@
 fi
 PCRECONF=$ac_cv_prog_PCRECONF
 if test -n "$PCRECONF"; then
-  { echo "$as_me:$LINENO: result: $PCRECONF" >&5
-echo "${ECHO_T}$PCRECONF" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $PCRECONF" >&5
+$as_echo "$PCRECONF" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6353,20 +6530,21 @@
 		 sys/stropts.h iconv.h ncurses.h ncursesw/ncurses.h \
 		 ncurses/ncurses.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -6382,32 +6560,33 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -6421,69 +6600,73 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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; }
+{ $as_echo "$as_me:$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: )
-    { 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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -6494,20 +6677,21 @@
 
 for ac_header in dlfcn.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -6523,32 +6707,33 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -6562,69 +6747,73 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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; }
+{ $as_echo "$as_me:$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: )
-    { 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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -6634,20 +6823,21 @@
 
 for ac_header in dl.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -6663,32 +6853,33 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -6702,69 +6893,73 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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; }
+{ $as_echo "$as_me:$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: )
-    { 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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -6776,10 +6971,10 @@
 
 
 if test x$ac_cv_header_sys_time_h = xyes && test x$ac_cv_header_sys_select_h = xyes; then
-  { echo "$as_me:$LINENO: checking for conflicts in sys/time.h and sys/select.h" >&5
-echo $ECHO_N "checking for conflicts in sys/time.h and sys/select.h... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for conflicts in sys/time.h and sys/select.h" >&5
+$as_echo_n "checking for conflicts in sys/time.h and sys/select.h... " >&6; }
 if test "${zsh_cv_header_time_h_select_h_conflicts+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -6803,20 +6998,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_header_time_h_select_h_conflicts=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_time_h_select_h_conflicts=yes
@@ -6824,8 +7020,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_time_h_select_h_conflicts" >&5
-echo "${ECHO_T}$zsh_cv_header_time_h_select_h_conflicts" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_time_h_select_h_conflicts" >&5
+$as_echo "$zsh_cv_header_time_h_select_h_conflicts" >&6; }
   if test x$zsh_cv_header_time_h_select_h_conflicts = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define TIME_H_SELECT_H_CONFLICTS 1
@@ -6837,10 +7033,10 @@
 
 
 if test x$ac_cv_header_termios_h = xyes; then
-  { echo "$as_me:$LINENO: checking TIOCGWINSZ in termios.h" >&5
-echo $ECHO_N "checking TIOCGWINSZ in termios.h... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking TIOCGWINSZ in termios.h" >&5
+$as_echo_n "checking TIOCGWINSZ in termios.h... " >&6; }
 if test "${zsh_cv_header_termios_h_tiocgwinsz+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -6867,39 +7063,43 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   zsh_cv_header_termios_h_tiocgwinsz=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_termios_h_tiocgwinsz=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_termios_h_tiocgwinsz" >&5
-echo "${ECHO_T}$zsh_cv_header_termios_h_tiocgwinsz" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_termios_h_tiocgwinsz" >&5
+$as_echo "$zsh_cv_header_termios_h_tiocgwinsz" >&6; }
 else
   zsh_cv_header_termios_h_tiocgwinsz=no
 fi
 if test x$zsh_cv_header_termios_h_tiocgwinsz = xno; then
-  { echo "$as_me:$LINENO: checking TIOCGWINSZ in sys/ioctl.h" >&5
-echo $ECHO_N "checking TIOCGWINSZ in sys/ioctl.h... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking TIOCGWINSZ in sys/ioctl.h" >&5
+$as_echo_n "checking TIOCGWINSZ in sys/ioctl.h... " >&6; }
 if test "${zsh_cv_header_sys_ioctl_h_tiocgwinsz+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -6926,31 +7126,35 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   zsh_cv_header_sys_ioctl_h_tiocgwinsz=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_sys_ioctl_h_tiocgwinsz=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_sys_ioctl_h_tiocgwinsz" >&5
-echo "${ECHO_T}$zsh_cv_header_sys_ioctl_h_tiocgwinsz" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_sys_ioctl_h_tiocgwinsz" >&5
+$as_echo "$zsh_cv_header_sys_ioctl_h_tiocgwinsz" >&6; }
   if test x$zsh_cv_header_sys_ioctl_h_tiocgwinsz = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define GWINSZ_IN_SYS_IOCTL 1
@@ -6961,10 +7165,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking for streams headers including struct winsize" >&5
-echo $ECHO_N "checking for streams headers including struct winsize... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for streams headers including struct winsize" >&5
+$as_echo_n "checking for streams headers including struct winsize... " >&6; }
 if test "${ac_cv_winsize_in_ptem+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -6988,20 +7192,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_winsize_in_ptem=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_winsize_in_ptem=no
@@ -7009,8 +7214,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_winsize_in_ptem" >&5
-echo "${ECHO_T}$ac_cv_winsize_in_ptem" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_winsize_in_ptem" >&5
+$as_echo "$ac_cv_winsize_in_ptem" >&6; }
 if test x$ac_cv_winsize_in_ptem = xyes; then
   cat >>confdefs.h <<\_ACEOF
 #define WINSIZE_IN_PTEM 1
@@ -7019,10 +7224,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for printf in -lc" >&5
-echo $ECHO_N "checking for printf in -lc... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for printf in -lc" >&5
+$as_echo_n "checking for printf in -lc... " >&6; }
 if test "${ac_cv_lib_c_printf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lc  $LIBS"
@@ -7054,42 +7259,46 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_c_printf=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_c_printf=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_printf" >&5
-echo "${ECHO_T}$ac_cv_lib_c_printf" >&6; }
-if test $ac_cv_lib_c_printf = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_c_printf" >&5
+$as_echo "$ac_cv_lib_c_printf" >&6; }
+if test "x$ac_cv_lib_c_printf" = x""yes; then
   LIBS="$LIBS -lc"
 fi
 
 
 
-{ echo "$as_me:$LINENO: checking for pow in -lm" >&5
-echo $ECHO_N "checking for pow in -lm... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for pow in -lm" >&5
+$as_echo_n "checking for pow in -lm... " >&6; }
 if test "${ac_cv_lib_m_pow+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lm  $LIBS"
@@ -7121,33 +7330,37 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_m_pow=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_m_pow=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5
-echo "${ECHO_T}$ac_cv_lib_m_pow" >&6; }
-if test $ac_cv_lib_m_pow = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5
+$as_echo "$ac_cv_lib_m_pow" >&6; }
+if test "x$ac_cv_lib_m_pow" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBM 1
 _ACEOF
@@ -7170,10 +7383,10 @@
 if test "${with_term_lib+set}" = set; then
   withval=$with_term_lib; if test "x$withval" != xno && test "x$withval" != x ; then
   termcap_curses_order="$withval"
-  { echo "$as_me:$LINENO: checking for library containing tigetstr" >&5
-echo $ECHO_N "checking for library containing tigetstr... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for library containing tigetstr" >&5
+$as_echo_n "checking for library containing tigetstr... " >&6; }
 if test "${ac_cv_search_tigetstr+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -7211,26 +7424,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_tigetstr=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_tigetstr+set}" = set; then
@@ -7245,8 +7462,8 @@
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_tigetstr" >&5
-echo "${ECHO_T}$ac_cv_search_tigetstr" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_tigetstr" >&5
+$as_echo "$ac_cv_search_tigetstr" >&6; }
 ac_res=$ac_cv_search_tigetstr
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
@@ -7270,10 +7487,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking if _XOPEN_SOURCE_EXTENDED should not be defined" >&5
-echo $ECHO_N "checking if _XOPEN_SOURCE_EXTENDED should not be defined... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if _XOPEN_SOURCE_EXTENDED should not be defined" >&5
+$as_echo_n "checking if _XOPEN_SOURCE_EXTENDED should not be defined... " >&6; }
 if test "${zsh_cv_no_xopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case "$host_os" in
   *openbsd*|*freebsd5*|*freebsd6.[012]*|*aix*)
@@ -7284,8 +7501,8 @@
   ;;
 esac
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_no_xopen" >&5
-echo "${ECHO_T}$zsh_cv_no_xopen" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_no_xopen" >&5
+$as_echo "$zsh_cv_no_xopen" >&6; }
 if test x$zsh_cv_no_xopen = xyes; then
   cat >>confdefs.h <<\_ACEOF
 #define ZSH_NO_XOPEN 1
@@ -7293,10 +7510,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for library containing tigetflag" >&5
-echo $ECHO_N "checking for library containing tigetflag... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for library containing tigetflag" >&5
+$as_echo_n "checking for library containing tigetflag... " >&6; }
 if test "${ac_cv_search_tigetflag+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -7334,26 +7551,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_tigetflag=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_tigetflag+set}" = set; then
@@ -7368,18 +7589,18 @@
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_tigetflag" >&5
-echo "${ECHO_T}$ac_cv_search_tigetflag" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_tigetflag" >&5
+$as_echo "$ac_cv_search_tigetflag" >&6; }
 ac_res=$ac_cv_search_tigetflag
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
-{ echo "$as_me:$LINENO: checking for library containing tgetent" >&5
-echo $ECHO_N "checking for library containing tgetent... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for library containing tgetent" >&5
+$as_echo_n "checking for library containing tgetent... " >&6; }
 if test "${ac_cv_search_tgetent+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -7417,26 +7638,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_tgetent=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_tgetent+set}" = set; then
@@ -7451,43 +7676,46 @@
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_tgetent" >&5
-echo "${ECHO_T}$ac_cv_search_tgetent" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_tgetent" >&5
+$as_echo "$ac_cv_search_tgetent" >&6; }
 ac_res=$ac_cv_search_tgetent
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
   true
 else
-  { { echo "$as_me:$LINENO: error: \"No terminal handling library was found on your system.
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: \"No terminal handling library was found on your system.
 This is probably a library called 'curses' or 'ncurses'.  You may
 need to install a package called 'curses-devel' or 'ncurses-devel' on your
 system.\"
 See \`config.log' for more details." >&5
-echo "$as_me: error: \"No terminal handling library was found on your system.
+$as_echo "$as_me: error: \"No terminal handling library was found on your system.
 This is probably a library called 'curses' or 'ncurses'.  You may
 need to install a package called 'curses-devel' or 'ncurses-devel' on your
 system.\"
 See \`config.log' for more details." >&2;}
-   { (exit 255); exit 255; }; }
+   { (exit 255); exit 255; }; }; }
 fi
 
 
 for ac_header in curses.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7503,32 +7731,33 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -7542,76 +7771,80 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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; }
+{ $as_echo "$as_me:$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: )
-    { 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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 else
-  { echo "$as_me:$LINENO: checking for Solaris 8 curses.h mistake" >&5
-echo $ECHO_N "checking for Solaris 8 curses.h mistake... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for Solaris 8 curses.h mistake" >&5
+$as_echo_n "checking for Solaris 8 curses.h mistake... " >&6; }
 if test "${ac_cv_header_curses_solaris+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -7634,13 +7867,14 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
@@ -7648,7 +7882,7 @@
   ac_cv_header_curses_h=yes
 ac_cv_header_curses_solaris=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_header_curses_h=no
@@ -7657,8 +7891,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_curses_solaris" >&5
-echo "${ECHO_T}$ac_cv_header_curses_solaris" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_curses_solaris" >&5
+$as_echo "$ac_cv_header_curses_solaris" >&6; }
 if test x$ac_cv_header_curses_solaris = xyes; then
 cat >>confdefs.h <<\_ACEOF
 #define HAVE_CURSES_H 1
@@ -7670,10 +7904,10 @@
 done
 
 
-{ echo "$as_me:$LINENO: checking if we need to ignore ncurses" >&5
-echo $ECHO_N "checking if we need to ignore ncurses... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if we need to ignore ncurses" >&5
+$as_echo_n "checking if we need to ignore ncurses... " >&6; }
 if test "${zsh_cv_ignore_ncurses+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case $LIBS in
   *-lncurses*)
@@ -7684,13 +7918,13 @@
   ;;
 esac
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_ignore_ncurses" >&5
-echo "${ECHO_T}$zsh_cv_ignore_ncurses" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_ignore_ncurses" >&5
+$as_echo "$zsh_cv_ignore_ncurses" >&6; }
 
-{ echo "$as_me:$LINENO: checking for library containing getpwnam" >&5
-echo $ECHO_N "checking for library containing getpwnam... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for library containing getpwnam" >&5
+$as_echo_n "checking for library containing getpwnam... " >&6; }
 if test "${ac_cv_search_getpwnam+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -7728,26 +7962,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_getpwnam=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_getpwnam+set}" = set; then
@@ -7762,8 +8000,8 @@
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_getpwnam" >&5
-echo "${ECHO_T}$ac_cv_search_getpwnam" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_getpwnam" >&5
+$as_echo "$ac_cv_search_getpwnam" >&6; }
 ac_res=$ac_cv_search_getpwnam
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
@@ -7777,10 +8015,10 @@
 
 if test "x$dynamic" = xyes; then
 
-{ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
@@ -7812,33 +8050,37 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dl_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dl_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       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
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBDL 1
 _ACEOF
@@ -7851,10 +8093,10 @@
 
 if test x$enable_cap = xyes; then
 
-{ echo "$as_me:$LINENO: checking for cap_get_proc in -lcap" >&5
-echo $ECHO_N "checking for cap_get_proc in -lcap... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for cap_get_proc in -lcap" >&5
+$as_echo_n "checking for cap_get_proc in -lcap... " >&6; }
 if test "${ac_cv_lib_cap_cap_get_proc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lcap  $LIBS"
@@ -7886,33 +8128,37 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_cap_cap_get_proc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_cap_cap_get_proc=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_cap_cap_get_proc" >&5
-echo "${ECHO_T}$ac_cv_lib_cap_cap_get_proc" >&6; }
-if test $ac_cv_lib_cap_cap_get_proc = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cap_cap_get_proc" >&5
+$as_echo "$ac_cv_lib_cap_cap_get_proc" >&6; }
+if test "x$ac_cv_lib_cap_cap_get_proc" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBCAP 1
 _ACEOF
@@ -7924,10 +8170,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
+$as_echo_n "checking for socket in -lsocket... " >&6; }
 if test "${ac_cv_lib_socket_socket+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsocket  $LIBS"
@@ -7959,33 +8205,37 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_socket_socket=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_socket_socket=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6; }
-if test $ac_cv_lib_socket_socket = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
+$as_echo "$ac_cv_lib_socket_socket" >&6; }
+if test "x$ac_cv_lib_socket_socket" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBSOCKET 1
 _ACEOF
@@ -7994,10 +8244,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for library containing gethostbyname2" >&5
-echo $ECHO_N "checking for library containing gethostbyname2... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for library containing gethostbyname2" >&5
+$as_echo_n "checking for library containing gethostbyname2... " >&6; }
 if test "${ac_cv_search_gethostbyname2+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -8035,26 +8285,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_gethostbyname2=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_gethostbyname2+set}" = set; then
@@ -8069,8 +8323,8 @@
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname2" >&5
-echo "${ECHO_T}$ac_cv_search_gethostbyname2" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname2" >&5
+$as_echo "$ac_cv_search_gethostbyname2" >&6; }
 ac_res=$ac_cv_search_gethostbyname2
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
@@ -8083,20 +8337,21 @@
 
 for ac_header in bind/netdb.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8112,32 +8367,33 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8151,69 +8407,73 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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; }
+{ $as_echo "$as_me:$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: )
-    { 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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -8225,10 +8485,10 @@
 
 
 if test "x$ac_cv_header_iconv_h" = "xyes"; then
-  { echo "$as_me:$LINENO: checking for iconv" >&5
-echo $ECHO_N "checking for iconv... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for iconv" >&5
+$as_echo_n "checking for iconv... " >&6; }
 if test "${ac_cv_func_iconv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -8281,42 +8541,46 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_func_iconv=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_func_iconv=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_iconv" >&5
-echo "${ECHO_T}$ac_cv_func_iconv" >&6; }
-if test $ac_cv_func_iconv = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_iconv" >&5
+$as_echo "$ac_cv_func_iconv" >&6; }
+if test "x$ac_cv_func_iconv" = x""yes; then
   ac_found_iconv=yes
 else
   ac_found_iconv=no
 fi
 
   if test "x$ac_found_iconv" = "xno"; then
-    { echo "$as_me:$LINENO: checking for iconv in -liconv" >&5
-echo $ECHO_N "checking for iconv in -liconv... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for iconv in -liconv" >&5
+$as_echo_n "checking for iconv in -liconv... " >&6; }
 if test "${ac_cv_lib_iconv_iconv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-liconv  $LIBS"
@@ -8348,41 +8612,45 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_iconv_iconv=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_iconv_iconv=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5
-echo "${ECHO_T}$ac_cv_lib_iconv_iconv" >&6; }
-if test $ac_cv_lib_iconv_iconv = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5
+$as_echo "$ac_cv_lib_iconv_iconv" >&6; }
+if test "x$ac_cv_lib_iconv_iconv" = x""yes; then
   ac_found_iconv=yes
 fi
 
     if test "x$ac_found_iconv" = "xno"; then
-      { echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
-echo $ECHO_N "checking for libiconv in -liconv... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
+$as_echo_n "checking for libiconv in -liconv... " >&6; }
 if test "${ac_cv_lib_iconv_libiconv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-liconv  $LIBS"
@@ -8414,33 +8682,37 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_iconv_libiconv=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_iconv_libiconv=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_libiconv" >&5
-echo "${ECHO_T}$ac_cv_lib_iconv_libiconv" >&6; }
-if test $ac_cv_lib_iconv_libiconv = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_libiconv" >&5
+$as_echo "$ac_cv_lib_iconv_libiconv" >&6; }
+if test "x$ac_cv_lib_iconv_libiconv" = x""yes; then
   ac_found_iconv=yes
 fi
 
@@ -8449,10 +8721,10 @@
       LIBS="-liconv $LIBS"
     fi
   else
-        { echo "$as_me:$LINENO: checking whether _libiconv_version is declared" >&5
-echo $ECHO_N "checking whether _libiconv_version is declared... $ECHO_C" >&6; }
+        { $as_echo "$as_me:$LINENO: checking whether _libiconv_version is declared" >&5
+$as_echo_n "checking whether _libiconv_version is declared... " >&6; }
 if test "${ac_cv_have_decl__libiconv_version+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -8479,20 +8751,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_have_decl__libiconv_version=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_have_decl__libiconv_version=no
@@ -8500,13 +8773,13 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_decl__libiconv_version" >&5
-echo "${ECHO_T}$ac_cv_have_decl__libiconv_version" >&6; }
-if test $ac_cv_have_decl__libiconv_version = yes; then
-   { echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
-echo $ECHO_N "checking for libiconv in -liconv... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl__libiconv_version" >&5
+$as_echo "$ac_cv_have_decl__libiconv_version" >&6; }
+if test "x$ac_cv_have_decl__libiconv_version" = x""yes; then
+   { $as_echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
+$as_echo_n "checking for libiconv in -liconv... " >&6; }
 if test "${ac_cv_lib_iconv_libiconv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-liconv  $LIBS"
@@ -8538,33 +8811,37 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_iconv_libiconv=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_iconv_libiconv=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_libiconv" >&5
-echo "${ECHO_T}$ac_cv_lib_iconv_libiconv" >&6; }
-if test $ac_cv_lib_iconv_libiconv = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_libiconv" >&5
+$as_echo "$ac_cv_lib_iconv_libiconv" >&6; }
+if test "x$ac_cv_lib_iconv_libiconv" = x""yes; then
   LIBS="-liconv $LIBS"
 fi
 
@@ -8601,38 +8878,42 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   cat >>confdefs.h <<\_ACEOF
 #define ICONV_FROM_LIBICONV 1
 _ACEOF
 
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
 
 if test "x$ac_found_iconv" = "xyes"; then
-  { echo "$as_me:$LINENO: checking for iconv declaration" >&5
-echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for iconv declaration" >&5
+$as_echo_n "checking for iconv declaration... " >&6; }
 if test "${ac_cv_iconv_const+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -8663,20 +8944,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_iconv_const=
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_iconv_const=const
@@ -8684,8 +8966,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_iconv_const" >&5
-echo "${ECHO_T}$ac_cv_iconv_const" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_iconv_const" >&5
+$as_echo "$ac_cv_iconv_const" >&6; }
 
 cat >>confdefs.h <<_ACEOF
 #define ICONV_CONST $ac_cv_iconv_const
@@ -8697,10 +8979,10 @@
   LIBS="`pcre-config --libs` $LIBS"
 fi
 
-{ echo "$as_me:$LINENO: checking if an include file defines ospeed" >&5
-echo $ECHO_N "checking if an include file defines ospeed... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if an include file defines ospeed" >&5
+$as_echo_n "checking if an include file defines ospeed... " >&6; }
 if test "${zsh_cv_decl_ospeed_include_defines+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -8729,37 +9011,41 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   zsh_cv_decl_ospeed_include_defines=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_decl_ospeed_include_defines=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_decl_ospeed_include_defines" >&5
-echo "${ECHO_T}$zsh_cv_decl_ospeed_include_defines" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_decl_ospeed_include_defines" >&5
+$as_echo "$zsh_cv_decl_ospeed_include_defines" >&6; }
 
 if test x$zsh_cv_decl_ospeed_include_defines = xno; then
-  { echo "$as_me:$LINENO: checking if you must define ospeed" >&5
-echo $ECHO_N "checking if you must define ospeed... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if you must define ospeed" >&5
+$as_echo_n "checking if you must define ospeed... " >&6; }
 if test "${zsh_cv_decl_ospeed_must_define+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -8782,31 +9068,35 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   zsh_cv_decl_ospeed_must_define=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_decl_ospeed_must_define=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_decl_ospeed_must_define" >&5
-echo "${ECHO_T}$zsh_cv_decl_ospeed_must_define" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_decl_ospeed_must_define" >&5
+$as_echo "$zsh_cv_decl_ospeed_must_define" >&6; }
 fi
 
 
@@ -8833,20 +9123,21 @@
 
 for ac_header in gdbm.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8862,32 +9153,33 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -8901,69 +9193,73 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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; }
+{ $as_echo "$as_me:$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: )
-    { 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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -8971,10 +9267,10 @@
 done
 
 
-{ echo "$as_me:$LINENO: checking for gdbm_open in -lgdbm" >&5
-echo $ECHO_N "checking for gdbm_open in -lgdbm... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for gdbm_open in -lgdbm" >&5
+$as_echo_n "checking for gdbm_open in -lgdbm... " >&6; }
 if test "${ac_cv_lib_gdbm_gdbm_open+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgdbm  $LIBS"
@@ -9006,33 +9302,37 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_gdbm_gdbm_open=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_gdbm_gdbm_open=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_gdbm_gdbm_open" >&5
-echo "${ECHO_T}$ac_cv_lib_gdbm_gdbm_open" >&6; }
-if test $ac_cv_lib_gdbm_gdbm_open = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gdbm_gdbm_open" >&5
+$as_echo "$ac_cv_lib_gdbm_gdbm_open" >&6; }
+if test "x$ac_cv_lib_gdbm_gdbm_open" = x""yes; then
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBGDBM 1
 _ACEOF
@@ -9046,20 +9346,21 @@
 
 for ac_header in sys/xattr.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -9075,32 +9376,33 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -9114,69 +9416,73 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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; }
+{ $as_echo "$as_me:$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: )
-    { 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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -9185,10 +9491,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5
+$as_echo_n "checking return type of signal handlers... " >&6; }
 if test "${ac_cv_type_signal+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -9213,20 +9519,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_type_signal=int
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_type_signal=void
@@ -9234,34 +9541,66 @@
 
 rm -f core 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; }
+{ $as_echo "$as_me:$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
 
 
-{ echo "$as_me:$LINENO: checking for pid_t" >&5
-echo $ECHO_N "checking for pid_t... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for pid_t" >&5
+$as_echo_n "checking for pid_t... " >&6; }
 if test "${ac_cv_type_pid_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_cv_type_pid_t=no
+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
-typedef pid_t ac__type_new_;
 int
 main ()
 {
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
+if (sizeof (pid_t))
+       return 0;
+  ;
   return 0;
+}
+_ACEOF
+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:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  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 (sizeof ((pid_t)))
+	  return 0;
   ;
   return 0;
 }
@@ -9272,30 +9611,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_type_pid_t=yes
+  :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_type_pid_t=no
+	ac_cv_type_pid_t=yes
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
 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
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
+$as_echo "$ac_cv_type_pid_t" >&6; }
+if test "x$ac_cv_type_pid_t" = x""yes; then
   :
 else
 
@@ -9305,26 +9653,58 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for off_t" >&5
-echo $ECHO_N "checking for off_t... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for off_t" >&5
+$as_echo_n "checking for off_t... " >&6; }
 if test "${ac_cv_type_off_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_cv_type_off_t=no
+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
-typedef off_t ac__type_new_;
 int
 main ()
 {
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
+if (sizeof (off_t))
+       return 0;
+  ;
   return 0;
+}
+_ACEOF
+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:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  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 (sizeof ((off_t)))
+	  return 0;
   ;
   return 0;
 }
@@ -9335,30 +9715,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_type_off_t=yes
+  :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_type_off_t=no
+	ac_cv_type_off_t=yes
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
 fi
 
 rm -f core 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
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
+$as_echo "$ac_cv_type_off_t" >&6; }
+if test "x$ac_cv_type_off_t" = x""yes; then
   :
 else
 
@@ -9368,26 +9757,58 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for ino_t" >&5
-echo $ECHO_N "checking for ino_t... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ino_t" >&5
+$as_echo_n "checking for ino_t... " >&6; }
 if test "${ac_cv_type_ino_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_cv_type_ino_t=no
+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
-typedef ino_t ac__type_new_;
 int
 main ()
 {
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
+if (sizeof (ino_t))
+       return 0;
+  ;
   return 0;
+}
+_ACEOF
+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:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  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 (sizeof ((ino_t)))
+	  return 0;
   ;
   return 0;
 }
@@ -9398,30 +9819,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_type_ino_t=yes
+  :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_type_ino_t=no
+	ac_cv_type_ino_t=yes
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5
-echo "${ECHO_T}$ac_cv_type_ino_t" >&6; }
-if test $ac_cv_type_ino_t = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5
+$as_echo "$ac_cv_type_ino_t" >&6; }
+if test "x$ac_cv_type_ino_t" = x""yes; then
   :
 else
 
@@ -9431,11 +9861,46 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for mode_t" >&5
-echo $ECHO_N "checking for mode_t... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for mode_t" >&5
+$as_echo_n "checking for mode_t... " >&6; }
 if test "${ac_cv_type_mode_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
+  ac_cv_type_mode_t=no
+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 (sizeof (mode_t))
+       return 0;
+  ;
+  return 0;
+}
+_ACEOF
+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:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -9443,14 +9908,11 @@
 cat >>conftest.$ac_ext <<_ACEOF
 /* end confdefs.h.  */
 $ac_includes_default
-typedef mode_t ac__type_new_;
 int
 main ()
 {
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
-  return 0;
+if (sizeof ((mode_t)))
+	  return 0;
   ;
   return 0;
 }
@@ -9461,30 +9923,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_type_mode_t=yes
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_type_mode_t=yes
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_type_mode_t=no
+
 fi
 
 rm -f core 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
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
+$as_echo "$ac_cv_type_mode_t" >&6; }
+if test "x$ac_cv_type_mode_t" = x""yes; then
   :
 else
 
@@ -9494,10 +9965,10 @@
 
 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; }
+{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
 if test "${ac_cv_type_uid_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -9517,8 +9988,8 @@
 rm -f conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_type_uid_t" >&5
-echo "${ECHO_T}$ac_cv_type_uid_t" >&6; }
+{ $as_echo "$as_me:$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
 
 cat >>confdefs.h <<\_ACEOF
@@ -9532,26 +10003,58 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for size_t" >&5
-echo $ECHO_N "checking for size_t... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for size_t" >&5
+$as_echo_n "checking for size_t... " >&6; }
 if test "${ac_cv_type_size_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
+  ac_cv_type_size_t=no
+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
-typedef size_t ac__type_new_;
 int
 main ()
 {
-if ((ac__type_new_ *) 0)
-  return 0;
-if (sizeof (ac__type_new_))
+if (sizeof (size_t))
+       return 0;
+  ;
   return 0;
+}
+_ACEOF
+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:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_compile") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then
+  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 (sizeof ((size_t)))
+	  return 0;
   ;
   return 0;
 }
@@ -9562,30 +10065,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
-  ac_cv_type_size_t=yes
+  :
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_cv_type_size_t=yes
+fi
+
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_cv_type_size_t=no
+
 fi
 
 rm -f core 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
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
+$as_echo "$ac_cv_type_size_t" >&6; }
+if test "x$ac_cv_type_size_t" = x""yes; then
   :
 else
 
@@ -9596,10 +10108,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking if long is 64 bits" >&5
-echo $ECHO_N "checking if long is 64 bits... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if long is 64 bits" >&5
+$as_echo_n "checking if long is 64 bits... " >&6; }
 if test "${zsh_cv_long_is_64_bit+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_long_is_64_bit=no
@@ -9618,36 +10130,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_long_is_64_bit=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_long_is_64_bit=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_long_is_64_bit" >&5
-echo "${ECHO_T}$zsh_cv_long_is_64_bit" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_long_is_64_bit" >&5
+$as_echo "$zsh_cv_long_is_64_bit" >&6; }
 
 
 
@@ -9667,10 +10182,10 @@
 _ACEOF
 
 else
-  { echo "$as_me:$LINENO: checking if off_t is 64 bit" >&5
-echo $ECHO_N "checking if off_t is 64 bit... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if off_t is 64 bit" >&5
+$as_echo_n "checking if off_t is 64 bit... " >&6; }
 if test "${zsh_cv_off_t_is_64_bit+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_off_t_is_64_bit=no
@@ -9693,36 +10208,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_off_t_is_64_bit=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_off_t_is_64_bit=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_off_t_is_64_bit" >&5
-echo "${ECHO_T}$zsh_cv_off_t_is_64_bit" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_off_t_is_64_bit" >&5
+$as_echo "$zsh_cv_off_t_is_64_bit" >&6; }
   if test x$zsh_cv_off_t_is_64_bit = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define OFF_T_IS_64_BIT 1
@@ -9730,10 +10248,10 @@
 
   fi
 
-  { echo "$as_me:$LINENO: checking if ino_t is 64 bit" >&5
-echo $ECHO_N "checking if ino_t is 64 bit... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if ino_t is 64 bit" >&5
+$as_echo_n "checking if ino_t is 64 bit... " >&6; }
 if test "${zsh_cv_ino_t_is_64_bit+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_ino_t_is_64_bit=no
@@ -9756,36 +10274,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_ino_t_is_64_bit=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_ino_t_is_64_bit=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_ino_t_is_64_bit" >&5
-echo "${ECHO_T}$zsh_cv_ino_t_is_64_bit" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_ino_t_is_64_bit" >&5
+$as_echo "$zsh_cv_ino_t_is_64_bit" >&6; }
   if test x$zsh_cv_ino_t_is_64_bit = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define INO_T_IS_64_BIT 1
@@ -9795,10 +10316,10 @@
 
   if test x$enable_largefile != xno -o x$zsh_cv_off_t_is_64_bit = xyes \
   -o $zsh_cv_ino_t_is_64_bit = yes; then
-    { echo "$as_me:$LINENO: checking if compiler has a 64 bit type" >&5
-echo $ECHO_N "checking if compiler has a 64 bit type... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking if compiler has a 64 bit type" >&5
+$as_echo_n "checking if compiler has a 64 bit type... " >&6; }
 if test "${zsh_cv_64_bit_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   if test x != x ; then
@@ -9832,29 +10353,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_64_bit_type="long long"
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_64_bit_type=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -9893,29 +10417,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_64_bit_type="quad_t"
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_64_bit_type=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -9955,29 +10482,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_64_bit_type="__int64_t"
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_64_bit_type=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -10018,29 +10548,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_64_bit_type="off_t"
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_64_bit_type=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -10048,18 +10581,18 @@
 
      fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_64_bit_type" >&5
-echo "${ECHO_T}$zsh_cv_64_bit_type" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_64_bit_type" >&5
+$as_echo "$zsh_cv_64_bit_type" >&6; }
     if test "$zsh_cv_64_bit_type" != no; then
       cat >>confdefs.h <<_ACEOF
 #define ZSH_64_BIT_TYPE $zsh_cv_64_bit_type
 _ACEOF
 
 
-                  { echo "$as_me:$LINENO: checking for a corresponding unsigned 64 bit type" >&5
-echo $ECHO_N "checking for a corresponding unsigned 64 bit type... $ECHO_C" >&6; }
+                  { $as_echo "$as_me:$LINENO: checking for a corresponding unsigned 64 bit type" >&5
+$as_echo_n "checking for a corresponding unsigned 64 bit type... " >&6; }
 if test "${zsh_cv_64_bit_utype+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   if test xforce != x ; then
@@ -10093,29 +10626,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_64_bit_utype="unsigned $zsh_cv_64_bit_type"
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_64_bit_utype=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -10154,29 +10690,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_64_bit_utype="__uint64_t"
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_64_bit_utype=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -10184,8 +10723,8 @@
 
        fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_64_bit_utype" >&5
-echo "${ECHO_T}$zsh_cv_64_bit_utype" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_64_bit_utype" >&5
+$as_echo "$zsh_cv_64_bit_utype" >&6; }
       if test "$zsh_cv_64_bit_utype" != no; then
         cat >>confdefs.h <<_ACEOF
 #define ZSH_64_BIT_UTYPE $zsh_cv_64_bit_utype
@@ -10196,10 +10735,10 @@
   fi
 fi
 
-{ echo "$as_me:$LINENO: checking for sigset_t" >&5
-echo $ECHO_N "checking for sigset_t... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for sigset_t" >&5
+$as_echo_n "checking for sigset_t... " >&6; }
 if test "${zsh_cv_type_sigset_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10223,20 +10762,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_type_sigset_t=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_type_sigset_t=no
@@ -10244,8 +10784,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_type_sigset_t" >&5
-echo "${ECHO_T}$zsh_cv_type_sigset_t" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_sigset_t" >&5
+$as_echo "$zsh_cv_type_sigset_t" >&6; }
 
 
 if test x$zsh_cv_type_sigset_t = xno; then
@@ -10255,10 +10795,10 @@
 
 fi
 
-{ 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; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atim.tv_nsec" >&5
+$as_echo_n "checking for struct stat.st_atim.tv_nsec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_atim_tv_nsec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10283,20 +10823,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_atim_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -10322,20 +10863,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_atim_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_atim_tv_nsec=no
@@ -10346,9 +10888,9 @@
 
 rm -f core 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
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_tv_nsec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_atim_tv_nsec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
@@ -10356,10 +10898,10 @@
 
 
 fi
-{ 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; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atimespec.tv_nsec" >&5
+$as_echo_n "checking for struct stat.st_atimespec.tv_nsec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_atimespec_tv_nsec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10384,20 +10926,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -10423,20 +10966,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_atimespec_tv_nsec=no
@@ -10447,9 +10991,9 @@
 
 rm -f core 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
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
@@ -10457,10 +11001,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5
-echo $ECHO_N "checking for struct stat.st_atimensec... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5
+$as_echo_n "checking for struct stat.st_atimensec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_atimensec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10485,20 +11029,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_atimensec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -10524,20 +11069,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_atimensec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_atimensec=no
@@ -10548,9 +11094,9 @@
 
 rm -f core 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
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimensec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_atimensec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_atimensec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
@@ -10558,10 +11104,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct stat.st_mtim.tv_nsec" >&5
-echo $ECHO_N "checking for struct stat.st_mtim.tv_nsec... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtim.tv_nsec" >&5
+$as_echo_n "checking for struct stat.st_mtim.tv_nsec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_mtim_tv_nsec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10586,20 +11132,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_mtim_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -10625,20 +11172,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_mtim_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_mtim_tv_nsec=no
@@ -10649,9 +11197,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtim_tv_nsec" >&5
-echo "${ECHO_T}$ac_cv_member_struct_stat_st_mtim_tv_nsec" >&6; }
-if test $ac_cv_member_struct_stat_st_mtim_tv_nsec = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtim_tv_nsec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_mtim_tv_nsec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_mtim_tv_nsec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
@@ -10659,10 +11207,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct stat.st_mtimespec.tv_nsec" >&5
-echo $ECHO_N "checking for struct stat.st_mtimespec.tv_nsec... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtimespec.tv_nsec" >&5
+$as_echo_n "checking for struct stat.st_mtimespec.tv_nsec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_mtimespec_tv_nsec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10687,20 +11235,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_mtimespec_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -10726,20 +11275,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_mtimespec_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_mtimespec_tv_nsec=no
@@ -10750,9 +11300,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&5
-echo "${ECHO_T}$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&6; }
-if test $ac_cv_member_struct_stat_st_mtimespec_tv_nsec = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1
@@ -10760,10 +11310,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct stat.st_mtimensec" >&5
-echo $ECHO_N "checking for struct stat.st_mtimensec... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtimensec" >&5
+$as_echo_n "checking for struct stat.st_mtimensec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_mtimensec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10788,20 +11338,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_mtimensec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -10827,20 +11378,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_mtimensec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_mtimensec=no
@@ -10851,9 +11403,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimensec" >&5
-echo "${ECHO_T}$ac_cv_member_struct_stat_st_mtimensec" >&6; }
-if test $ac_cv_member_struct_stat_st_mtimensec = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimensec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_mtimensec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_mtimensec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_MTIMENSEC 1
@@ -10861,10 +11413,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct stat.st_ctim.tv_nsec" >&5
-echo $ECHO_N "checking for struct stat.st_ctim.tv_nsec... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_ctim.tv_nsec" >&5
+$as_echo_n "checking for struct stat.st_ctim.tv_nsec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_ctim_tv_nsec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10889,20 +11441,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_ctim_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -10928,20 +11481,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_ctim_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_ctim_tv_nsec=no
@@ -10952,9 +11506,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctim_tv_nsec" >&5
-echo "${ECHO_T}$ac_cv_member_struct_stat_st_ctim_tv_nsec" >&6; }
-if test $ac_cv_member_struct_stat_st_ctim_tv_nsec = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctim_tv_nsec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_ctim_tv_nsec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_ctim_tv_nsec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_CTIM_TV_NSEC 1
@@ -10962,10 +11516,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct stat.st_ctimespec.tv_nsec" >&5
-echo $ECHO_N "checking for struct stat.st_ctimespec.tv_nsec... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_ctimespec.tv_nsec" >&5
+$as_echo_n "checking for struct stat.st_ctimespec.tv_nsec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_ctimespec_tv_nsec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10990,20 +11544,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_ctimespec_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -11029,20 +11584,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_ctimespec_tv_nsec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_ctimespec_tv_nsec=no
@@ -11053,9 +11609,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctimespec_tv_nsec" >&5
-echo "${ECHO_T}$ac_cv_member_struct_stat_st_ctimespec_tv_nsec" >&6; }
-if test $ac_cv_member_struct_stat_st_ctimespec_tv_nsec = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctimespec_tv_nsec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_ctimespec_tv_nsec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_ctimespec_tv_nsec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_CTIMESPEC_TV_NSEC 1
@@ -11063,10 +11619,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct stat.st_ctimensec" >&5
-echo $ECHO_N "checking for struct stat.st_ctimensec... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_ctimensec" >&5
+$as_echo_n "checking for struct stat.st_ctimensec... " >&6; }
 if test "${ac_cv_member_struct_stat_st_ctimensec+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11091,20 +11647,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_ctimensec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -11130,20 +11687,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_stat_st_ctimensec=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_stat_st_ctimensec=no
@@ -11154,9 +11712,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctimensec" >&5
-echo "${ECHO_T}$ac_cv_member_struct_stat_st_ctimensec" >&6; }
-if test $ac_cv_member_struct_stat_st_ctimensec = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctimensec" >&5
+$as_echo "$ac_cv_member_struct_stat_st_ctimensec" >&6; }
+if test "x$ac_cv_member_struct_stat_st_ctimensec" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT_ST_CTIMENSEC 1
@@ -11166,10 +11724,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for struct timezone" >&5
-echo $ECHO_N "checking for struct timezone... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct timezone" >&5
+$as_echo_n "checking for struct timezone... " >&6; }
 if test "${zsh_cv_type_exists_struct_timezone+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11196,20 +11754,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_type_exists_struct_timezone=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_type_exists_struct_timezone=no
@@ -11218,8 +11777,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_timezone" >&5
-echo "${ECHO_T}$zsh_cv_type_exists_struct_timezone" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_timezone" >&5
+$as_echo "$zsh_cv_type_exists_struct_timezone" >&6; }
 
 
 if test $zsh_cv_type_exists_struct_timezone = yes; then
@@ -11230,10 +11789,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for struct utmp" >&5
-echo $ECHO_N "checking for struct utmp... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct utmp" >&5
+$as_echo_n "checking for struct utmp... " >&6; }
 if test "${zsh_cv_type_exists_struct_utmp+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11263,20 +11822,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_type_exists_struct_utmp=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_type_exists_struct_utmp=no
@@ -11285,8 +11845,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_utmp" >&5
-echo "${ECHO_T}$zsh_cv_type_exists_struct_utmp" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_utmp" >&5
+$as_echo "$zsh_cv_type_exists_struct_utmp" >&6; }
 
 
 if test $zsh_cv_type_exists_struct_utmp = yes; then
@@ -11296,10 +11856,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for struct utmpx" >&5
-echo $ECHO_N "checking for struct utmpx... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct utmpx" >&5
+$as_echo_n "checking for struct utmpx... " >&6; }
 if test "${zsh_cv_type_exists_struct_utmpx+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11329,20 +11889,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_type_exists_struct_utmpx=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_type_exists_struct_utmpx=no
@@ -11351,8 +11912,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_utmpx" >&5
-echo "${ECHO_T}$zsh_cv_type_exists_struct_utmpx" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_utmpx" >&5
+$as_echo "$zsh_cv_type_exists_struct_utmpx" >&6; }
 
 
 if test $zsh_cv_type_exists_struct_utmpx = yes; then
@@ -11363,10 +11924,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for ut_host in struct utmp" >&5
-echo $ECHO_N "checking for ut_host in struct utmp... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ut_host in struct utmp" >&5
+$as_echo_n "checking for ut_host in struct utmp... " >&6; }
 if test "${zsh_cv_struct_member_struct_utmp_ut_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11396,20 +11957,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_utmp_ut_host=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_utmp_ut_host=no
@@ -11418,8 +11980,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmp_ut_host" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_utmp_ut_host" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmp_ut_host" >&5
+$as_echo "$zsh_cv_struct_member_struct_utmp_ut_host" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_utmp_ut_host = yes; then
@@ -11429,10 +11991,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for ut_host in struct utmpx" >&5
-echo $ECHO_N "checking for ut_host in struct utmpx... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ut_host in struct utmpx" >&5
+$as_echo_n "checking for ut_host in struct utmpx... " >&6; }
 if test "${zsh_cv_struct_member_struct_utmpx_ut_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11462,20 +12024,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_utmpx_ut_host=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_utmpx_ut_host=no
@@ -11484,8 +12047,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_host" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_utmpx_ut_host" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_host" >&5
+$as_echo "$zsh_cv_struct_member_struct_utmpx_ut_host" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_utmpx_ut_host = yes; then
@@ -11495,10 +12058,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for ut_xtime in struct utmpx" >&5
-echo $ECHO_N "checking for ut_xtime in struct utmpx... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ut_xtime in struct utmpx" >&5
+$as_echo_n "checking for ut_xtime in struct utmpx... " >&6; }
 if test "${zsh_cv_struct_member_struct_utmpx_ut_xtime+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11528,20 +12091,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_utmpx_ut_xtime=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_utmpx_ut_xtime=no
@@ -11550,8 +12114,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_xtime" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_utmpx_ut_xtime" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_xtime" >&5
+$as_echo "$zsh_cv_struct_member_struct_utmpx_ut_xtime" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_utmpx_ut_xtime = yes; then
@@ -11561,10 +12125,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for ut_tv in struct utmpx" >&5
-echo $ECHO_N "checking for ut_tv in struct utmpx... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ut_tv in struct utmpx" >&5
+$as_echo_n "checking for ut_tv in struct utmpx... " >&6; }
 if test "${zsh_cv_struct_member_struct_utmpx_ut_tv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11594,20 +12158,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_utmpx_ut_tv=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_utmpx_ut_tv=no
@@ -11616,8 +12181,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_tv" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_utmpx_ut_tv" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_tv" >&5
+$as_echo "$zsh_cv_struct_member_struct_utmpx_ut_tv" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_utmpx_ut_tv = yes; then
@@ -11628,10 +12193,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for d_ino in struct dirent" >&5
-echo $ECHO_N "checking for d_ino in struct dirent... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for d_ino in struct dirent" >&5
+$as_echo_n "checking for d_ino in struct dirent... " >&6; }
 if test "${zsh_cv_struct_member_struct_dirent_d_ino+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11661,20 +12226,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_dirent_d_ino=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_dirent_d_ino=no
@@ -11683,8 +12249,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_dirent_d_ino" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_dirent_d_ino" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_dirent_d_ino" >&5
+$as_echo "$zsh_cv_struct_member_struct_dirent_d_ino" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_dirent_d_ino = yes; then
@@ -11694,10 +12260,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for d_stat in struct dirent" >&5
-echo $ECHO_N "checking for d_stat in struct dirent... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for d_stat in struct dirent" >&5
+$as_echo_n "checking for d_stat in struct dirent... " >&6; }
 if test "${zsh_cv_struct_member_struct_dirent_d_stat+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11727,20 +12293,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_dirent_d_stat=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_dirent_d_stat=no
@@ -11749,8 +12316,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_dirent_d_stat" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_dirent_d_stat" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_dirent_d_stat" >&5
+$as_echo "$zsh_cv_struct_member_struct_dirent_d_stat" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_dirent_d_stat = yes; then
@@ -11760,10 +12327,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for d_ino in struct direct" >&5
-echo $ECHO_N "checking for d_ino in struct direct... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for d_ino in struct direct" >&5
+$as_echo_n "checking for d_ino in struct direct... " >&6; }
 if test "${zsh_cv_struct_member_struct_direct_d_ino+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11799,20 +12366,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_direct_d_ino=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_direct_d_ino=no
@@ -11821,8 +12389,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_direct_d_ino" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_direct_d_ino" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_direct_d_ino" >&5
+$as_echo "$zsh_cv_struct_member_struct_direct_d_ino" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_direct_d_ino = yes; then
@@ -11832,10 +12400,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for d_stat in struct direct" >&5
-echo $ECHO_N "checking for d_stat in struct direct... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for d_stat in struct direct" >&5
+$as_echo_n "checking for d_stat in struct direct... " >&6; }
 if test "${zsh_cv_struct_member_struct_direct_d_stat+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11871,20 +12439,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_direct_d_stat=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_direct_d_stat=no
@@ -11893,8 +12462,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_direct_d_stat" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_direct_d_stat" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_direct_d_stat" >&5
+$as_echo "$zsh_cv_struct_member_struct_direct_d_stat" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_direct_d_stat = yes; then
@@ -11905,10 +12474,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for sin6_scope_id in struct sockaddr_in6" >&5
-echo $ECHO_N "checking for sin6_scope_id in struct sockaddr_in6... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for sin6_scope_id in struct sockaddr_in6" >&5
+$as_echo_n "checking for sin6_scope_id in struct sockaddr_in6... " >&6; }
 if test "${zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11936,20 +12505,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id=no
@@ -11958,8 +12528,8 @@
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id" >&5
-echo "${ECHO_T}$zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id" >&5
+$as_echo "$zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id" >&6; }
 
 
 if test $zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id = yes; then
@@ -11972,10 +12542,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking if we need our own h_errno" >&5
-echo $ECHO_N "checking if we need our own h_errno... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if we need our own h_errno" >&5
+$as_echo_n "checking if we need our own h_errno... " >&6; }
 if test "${zsh_cv_decl_h_errno_use_local+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -11998,31 +12568,35 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   zsh_cv_decl_h_errno_use_local=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_decl_h_errno_use_local=yes
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_decl_h_errno_use_local" >&5
-echo "${ECHO_T}$zsh_cv_decl_h_errno_use_local" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_decl_h_errno_use_local" >&5
+$as_echo "$zsh_cv_decl_h_errno_use_local" >&6; }
 
 if test x$zsh_cv_decl_h_errno_use_local = xyes; then
   cat >>confdefs.h <<\_ACEOF
@@ -12140,6 +12714,8 @@
 
 
 
+
+
 for ac_func in strftime strptime mktime timelocal \
 	       difftime gettimeofday \
 	       select poll \
@@ -12173,13 +12749,14 @@
 	       htons ntohs \
 	       regcomp regexec regerror regfree \
 	       gdbm_open getxattr \
-	       realpath canonicalize_file_name
+	       realpath canonicalize_file_name \
+	       symlink getcwd
 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; }
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
 if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -12232,44 +12809,51 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   eval "$as_ac_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_var=no"
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
 done
 
-{ echo "$as_me:$LINENO: checking for working strcoll" >&5
-echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for working strcoll" >&5
+$as_echo_n "checking for working strcoll... " >&6; }
 if test "${ac_cv_func_strcoll_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   ac_cv_func_strcoll_works=no
@@ -12297,36 +12881,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_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
+  $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
 
 ( exit $ac_status )
 ac_cv_func_strcoll_works=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* 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; }
+{ $as_echo "$as_me:$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
 
 cat >>confdefs.h <<\_ACEOF
@@ -12340,11 +12927,11 @@
 
 for ac_func in cap_get_proc
 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; }
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
 if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -12397,35 +12984,42 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   eval "$as_ac_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_var=no"
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -12435,10 +13029,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking if tgetent accepts NULL" >&5
-echo $ECHO_N "checking if tgetent accepts NULL... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if tgetent accepts NULL" >&5
+$as_echo_n "checking if tgetent accepts NULL... " >&6; }
 if test "${zsh_cv_func_tgetent_accepts_null+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_func_tgetent_accepts_null=no
@@ -12471,19 +13065,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   if test -f conftest.tgetent; then
     zsh_cv_func_tgetent_accepts_null=yes
@@ -12491,30 +13087,31 @@
     zsh_cv_func_tgetent_accepts_null=no
   fi
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_func_tgetent_accepts_null=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_func_tgetent_accepts_null" >&5
-echo "${ECHO_T}$zsh_cv_func_tgetent_accepts_null" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_func_tgetent_accepts_null" >&5
+$as_echo "$zsh_cv_func_tgetent_accepts_null" >&6; }
 if test x$zsh_cv_func_tgetent_accepts_null = xyes; then
   cat >>confdefs.h <<\_ACEOF
 #define TGETENT_ACCEPTS_NULL 1
 _ACEOF
 
 fi
-{ echo "$as_me:$LINENO: checking if tgetent returns 0 on success" >&5
-echo $ECHO_N "checking if tgetent returns 0 on success... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if tgetent returns 0 on success" >&5
+$as_echo_n "checking if tgetent returns 0 on success... " >&6; }
 if test "${zsh_cv_func_tgetent_zero_success+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_func_tgetent_zero_success=no
@@ -12547,19 +13144,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   if test -f conftest.tgetent0; then
     zsh_cv_func_tgetent_zero_success=yes
@@ -12567,20 +13166,21 @@
     zsh_cv_func_tgetent_zero_success=no
   fi
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_func_tgetent_zero_success=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_func_tgetent_zero_success" >&5
-echo "${ECHO_T}$zsh_cv_func_tgetent_zero_success" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_func_tgetent_zero_success" >&5
+$as_echo "$zsh_cv_func_tgetent_zero_success" >&6; }
 
 
 if test x$zsh_cv_func_tgetent_zero_success = xyes; then
@@ -12599,20 +13199,21 @@
 
 for ac_header in stdlib.h unistd.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -12628,32 +13229,33 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$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; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -12667,69 +13269,73 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_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; }
+{ $as_echo "$as_me:$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: )
-    { 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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_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;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -12739,11 +13345,11 @@
 
 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; }
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
 if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -12796,44 +13402,51 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   eval "$as_ac_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_var=no"
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `$as_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; }
+{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5
+$as_echo_n "checking for working mmap... " >&6; }
 if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   ac_cv_func_mmap_fixed_mapped=no
@@ -12977,36 +13590,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_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
+  $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
 
 ( exit $ac_status )
 ac_cv_func_mmap_fixed_mapped=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* 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; }
+{ $as_echo "$as_me:$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
 
 cat >>confdefs.h <<\_ACEOF
@@ -13021,11 +13637,11 @@
 
 for ac_func in munmap msync
 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; }
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
 if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -13078,35 +13694,42 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   eval "$as_ac_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_var=no"
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -13115,10 +13738,10 @@
 fi
 
 if test x$ac_cv_func_setpgrp = xyes; then
-  { echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
-echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
+$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; }
 if test "${ac_cv_func_getpgrp_void+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   # Use it with a single arg.
 cat >conftest.$ac_ext <<_ACEOF
@@ -13142,20 +13765,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_func_getpgrp_void=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_func_getpgrp_void=yes
@@ -13164,8 +13788,8 @@
 rm -f core 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; }
+{ $as_echo "$as_me:$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
 
 cat >>confdefs.h <<\_ACEOF
@@ -13197,11 +13821,11 @@
 for ac_func in dlopen dlerror dlsym dlclose load loadquery loadbind unload \
 		shl_load shl_unload shl_findsym
 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; }
+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
+$as_echo_n "checking for $ac_func... " >&6; }
 if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -13254,35 +13878,42 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   eval "$as_ac_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_var=no"
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -13294,10 +13925,10 @@
 
 if test x$ac_cv_func_getxattr = xyes && test x$ac_cv_header_sys_xattr_h = xyes
 then
-  { echo "$as_me:$LINENO: checking if getxattr etc. are Linux-like" >&5
-echo $ECHO_N "checking if getxattr etc. are Linux-like... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if getxattr etc. are Linux-like" >&5
+$as_echo_n "checking if getxattr etc. are Linux-like... " >&6; }
 if test "${zsh_cv_getxattr_linux+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -13326,20 +13957,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_getxattr_linux=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_getxattr_linux=no
@@ -13347,14 +13979,14 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_getxattr_linux" >&5
-echo "${ECHO_T}$zsh_cv_getxattr_linux" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_getxattr_linux" >&5
+$as_echo "$zsh_cv_getxattr_linux" >&6; }
 
   if test x$zsh_cv_getxattr_linux != xyes; then
-    { echo "$as_me:$LINENO: checking if getxattr etc. are MAC-like" >&5
-echo $ECHO_N "checking if getxattr etc. are MAC-like... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking if getxattr etc. are MAC-like" >&5
+$as_echo_n "checking if getxattr etc. are MAC-like... " >&6; }
 if test "${zsh_cv_getxattr_mac+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -13381,20 +14013,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_getxattr_mac=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_getxattr_mac=no
@@ -13402,8 +14035,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_getxattr_mac" >&5
-echo "${ECHO_T}$zsh_cv_getxattr_mac" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_getxattr_mac" >&5
+$as_echo "$zsh_cv_getxattr_mac" >&6; }
 
     if test x$zsh_cv_getxattr_mac = xyes; then
       cat >>confdefs.h <<\_ACEOF
@@ -13414,10 +14047,10 @@
   fi
 fi
 
-{ echo "$as_me:$LINENO: checking if getxattr etc. are usable" >&5
-echo $ECHO_N "checking if getxattr etc. are usable... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if getxattr etc. are usable" >&5
+$as_echo_n "checking if getxattr etc. are usable... " >&6; }
 if test "${zsh_cv_use_xattr+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test x$zsh_cv_getxattr_linux = xyes || test x$zsh_cv_getxattr_mac = xyes
 then
@@ -13426,8 +14059,8 @@
 zsh_cv_use_xattr=no
 fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_use_xattr" >&5
-echo "${ECHO_T}$zsh_cv_use_xattr" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_use_xattr" >&5
+$as_echo "$zsh_cv_use_xattr" >&6; }
 
 
 
@@ -13437,8 +14070,8 @@
 
 
 
-{ echo "$as_me:$LINENO: checking what style of signals to use" >&5
-echo $ECHO_N "checking what style of signals to use... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking what style of signals to use" >&5
+$as_echo_n "checking what style of signals to use... " >&6; }
 if test x$ac_cv_func_sigaction = xyes && test x$ac_cv_func_sigprocmask = xyes; then
   signals_style=POSIX_SIGNALS
   cat >>confdefs.h <<\_ACEOF
@@ -13468,16 +14101,16 @@
 #define $signals_style 1
 _ACEOF
 
-{ echo "$as_me:$LINENO: result: $signals_style" >&5
-echo "${ECHO_T}$signals_style" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $signals_style" >&5
+$as_echo "$signals_style" >&6; }
 
-{ echo "$as_me:$LINENO: checking where signal.h is located" >&5
-echo $ECHO_N "checking where signal.h is located... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking where signal.h is located" >&5
+$as_echo_n "checking where signal.h is located... " >&6; }
 if test "${zsh_cv_path_signal_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   echo "#include " > nametmp.c
-sigfile_list="`$CPP nametmp.c |
+sigfile_list="`$CPP $CPPFLAGS nametmp.c |
 sed -n -e 's/^#line[ 	].*\"\(.*\)\"/\1/p' \
        -e 's/^#[ 	].*\"\(.*\)\"/\1/p' |
 sed 's/\\\\\\\\/\//g' |
@@ -13503,24 +14136,24 @@
   test "x$nsigs" != x && test "$nsigs" -ge 7 && break
 done
 if test x$SIGNAL_H = x"/dev/null"; then
-  { { echo "$as_me:$LINENO: error: SIGNAL MACROS NOT FOUND:  please report to developers" >&5
-echo "$as_me: error: SIGNAL MACROS NOT FOUND:  please report to developers" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: SIGNAL MACROS NOT FOUND:  please report to developers" >&5
+$as_echo "$as_me: error: SIGNAL MACROS NOT FOUND:  please report to developers" >&2;}
    { (exit 1); exit 1; }; }
 fi
 zsh_cv_path_signal_h=$SIGNAL_H
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_signal_h" >&5
-echo "${ECHO_T}$zsh_cv_path_signal_h" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_signal_h" >&5
+$as_echo "$zsh_cv_path_signal_h" >&6; }
 SIGNAL_H=$zsh_cv_path_signal_h
 
-{ echo "$as_me:$LINENO: checking where error names are located" >&5
-echo $ECHO_N "checking where error names are located... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking where error names are located" >&5
+$as_echo_n "checking where error names are located... " >&6; }
 if test "${zsh_cv_path_errno_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   echo "#include " > nametmp.c
-errfile_list="`$CPP nametmp.c |
+errfile_list="`$CPP $CPPFLAGS nametmp.c |
 sed -n -e 's/^#line[ 	].*\"\(.*\)\"/\1/p' \
        -e 's/^#[ 	0-9].*\"\(.*\)\"/\1/p' |
 sed 's/\\\\\\\\/\//g' |
@@ -13538,21 +14171,21 @@
   fi
 done
 if test x"$ERRNO_H" = x; then
-  { { echo "$as_me:$LINENO: error: ERROR MACROS NOT FOUND:  please report to developers" >&5
-echo "$as_me: error: ERROR MACROS NOT FOUND:  please report to developers" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: ERROR MACROS NOT FOUND:  please report to developers" >&5
+$as_echo "$as_me: error: ERROR MACROS NOT FOUND:  please report to developers" >&2;}
    { (exit 1); exit 1; }; }
 fi
 zsh_cv_path_errno_h="$ERRNO_H"
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_errno_h" >&5
-echo "${ECHO_T}$zsh_cv_path_errno_h" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_errno_h" >&5
+$as_echo "$zsh_cv_path_errno_h" >&6; }
 ERRNO_H="$zsh_cv_path_errno_h"
 
-{ echo "$as_me:$LINENO: checking location of curses header" >&5
-echo $ECHO_N "checking location of curses header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking location of curses header" >&5
+$as_echo_n "checking location of curses header... " >&6; }
 if test "${zsh_cv_path_curses_header+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test x$zsh_cv_ignore_ncurses = xyes; then
   if test x$ac_cv_header_curses_h = xyes; then
@@ -13572,8 +14205,8 @@
   zsh_cv_path_curses_header=none
 fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_curses_header" >&5
-echo "${ECHO_T}$zsh_cv_path_curses_header" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_curses_header" >&5
+$as_echo "$zsh_cv_path_curses_header" >&6; }
 
 
 if test x$zsh_cv_path_curses_header != xnone; then
@@ -13587,10 +14220,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking where curses key definitions are located" >&5
-echo $ECHO_N "checking where curses key definitions are located... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking where curses key definitions are located" >&5
+$as_echo_n "checking where curses key definitions are located... " >&6; }
 if test "${zsh_cv_path_curses_keys_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test x$zsh_cv_path_curses_header = xnone; then
   echo >nametmp.c
@@ -13598,7 +14231,7 @@
   echo "#include <$zsh_cv_path_curses_header>" >nametmp.c
 fi
 
-curses_list="`$CPP nametmp.c |
+curses_list="`$CPP $CPPFLAGS nametmp.c |
 sed -n -e 's/^#line[ 	].*\"\(.*\)\"/\1/p' \
        -e 's/^#[ 	0-9].*\"\(.*\)\"/\1/p' |
 sed 's/\\\\\\\\/\//g' |
@@ -13619,18 +14252,18 @@
 zsh_cv_path_curses_keys_h="$CURSES_KEYS_H"
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_curses_keys_h" >&5
-echo "${ECHO_T}$zsh_cv_path_curses_keys_h" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_curses_keys_h" >&5
+$as_echo "$zsh_cv_path_curses_keys_h" >&6; }
 CURSES_KEYS_H="$zsh_cv_path_curses_keys_h"
 
 
 for ac_header in ncursesw/term.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; }
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -13648,20 +14281,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_Header=no"
@@ -13669,12 +14303,15 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
  true
 else
@@ -13686,11 +14323,11 @@
 
 for ac_header in ncurses/term.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; }
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -13708,20 +14345,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_Header=no"
@@ -13729,12 +14367,15 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
  true
 else
@@ -13746,11 +14387,11 @@
 
 for ac_header in term.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; }
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -13768,20 +14409,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_Header=no"
@@ -13789,12 +14431,15 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
  true
 else
@@ -13804,10 +14449,10 @@
 done
 
 
-{ echo "$as_me:$LINENO: checking where term.h is located" >&5
-echo $ECHO_N "checking where term.h is located... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking where term.h is located" >&5
+$as_echo_n "checking where term.h is located... " >&6; }
 if test "${zsh_cv_path_term_header+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case x$zsh_cv_path_curses_header in
   xncursesw/*)
@@ -13829,8 +14474,8 @@
   fi
 fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_term_header" >&5
-echo "${ECHO_T}$zsh_cv_path_term_header" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_term_header" >&5
+$as_echo "$zsh_cv_path_term_header" >&6; }
 
 
 
@@ -13860,8 +14505,8 @@
     term_includes="#include <$zsh_cv_path_term_header>"
   fi
 
-  { echo "$as_me:$LINENO: checking if boolcodes is available" >&5
-echo $ECHO_N "checking if boolcodes is available... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if boolcodes is available" >&5
+$as_echo_n "checking if boolcodes is available... " >&6; }
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -13883,35 +14528,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_BOOLCODES 1
 _ACEOF
  boolcodes=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	boolcodes=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
-  { echo "$as_me:$LINENO: result: $boolcodes" >&5
-echo "${ECHO_T}$boolcodes" >&6; }
-  { echo "$as_me:$LINENO: checking if numcodes is available" >&5
-echo $ECHO_N "checking if numcodes is available... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $boolcodes" >&5
+$as_echo "$boolcodes" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if numcodes is available" >&5
+$as_echo_n "checking if numcodes is available... " >&6; }
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -13933,35 +14582,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_NUMCODES 1
 _ACEOF
  numcodes=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	numcodes=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
-  { echo "$as_me:$LINENO: result: $numcodes" >&5
-echo "${ECHO_T}$numcodes" >&6; }
-  { echo "$as_me:$LINENO: checking if strcodes is available" >&5
-echo $ECHO_N "checking if strcodes is available... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $numcodes" >&5
+$as_echo "$numcodes" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if strcodes is available" >&5
+$as_echo_n "checking if strcodes is available... " >&6; }
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -13983,35 +14636,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_STRCODES 1
 _ACEOF
  strcodes=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	strcodes=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
-  { echo "$as_me:$LINENO: result: $strcodes" >&5
-echo "${ECHO_T}$strcodes" >&6; }
-  { echo "$as_me:$LINENO: checking if boolnames is available" >&5
-echo $ECHO_N "checking if boolnames is available... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $strcodes" >&5
+$as_echo "$strcodes" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if boolnames is available" >&5
+$as_echo_n "checking if boolnames is available... " >&6; }
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -14033,35 +14690,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_BOOLNAMES 1
 _ACEOF
  boolnames=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	boolnames=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
-  { echo "$as_me:$LINENO: result: $boolnames" >&5
-echo "${ECHO_T}$boolnames" >&6; }
-  { echo "$as_me:$LINENO: checking if numnames is available" >&5
-echo $ECHO_N "checking if numnames is available... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $boolnames" >&5
+$as_echo "$boolnames" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if numnames is available" >&5
+$as_echo_n "checking if numnames is available... " >&6; }
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -14083,35 +14744,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_NUMNAMES 1
 _ACEOF
  numnames=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	numnames=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
-  { echo "$as_me:$LINENO: result: $numnames" >&5
-echo "${ECHO_T}$numnames" >&6; }
-  { echo "$as_me:$LINENO: checking if strnames is available" >&5
-echo $ECHO_N "checking if strnames is available... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $numnames" >&5
+$as_echo "$numnames" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if strnames is available" >&5
+$as_echo_n "checking if strnames is available... " >&6; }
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -14133,46 +14798,50 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_STRNAMES 1
 _ACEOF
  strnames=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	strnames=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
-  { echo "$as_me:$LINENO: result: $strnames" >&5
-echo "${ECHO_T}$strnames" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $strnames" >&5
+$as_echo "$strnames" >&6; }
 else
   ZSH_TERM_H=
 fi
 
 
 
-{ echo "$as_me:$LINENO: checking where the RLIMIT macros are located" >&5
-echo $ECHO_N "checking where the RLIMIT macros are located... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking where the RLIMIT macros are located" >&5
+$as_echo_n "checking where the RLIMIT macros are located... " >&6; }
 if test "${zsh_cv_path_rlimit_h+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   echo "#include " >restmp.c
-resourcefile_list="`$CPP restmp.c |
+resourcefile_list="`$CPP $CPPFLAGS restmp.c |
 sed -n -e 's/^#line[ 	].*\"\(.*\)\"/\1/p' \
        -e 's/^#[ 	].*\"\(.*\)\"/\1/p' |
 sed 's/\\\\\\\\/\//g' |
@@ -14195,12 +14864,12 @@
 done
 zsh_cv_path_rlimit_h=$RESOURCE_H
 if test x$RESOURCE_H = x"/dev/null" && test x$ac_cv_func_getrlimit = xyes; then
-  { echo "$as_me:$LINENO: WARNING: RLIMIT MACROS NOT FOUND:  please report to developers" >&5
-echo "$as_me: WARNING: RLIMIT MACROS NOT FOUND:  please report to developers" >&2;}
+  { $as_echo "$as_me:$LINENO: WARNING: RLIMIT MACROS NOT FOUND:  please report to developers" >&5
+$as_echo "$as_me: WARNING: RLIMIT MACROS NOT FOUND:  please report to developers" >&2;}
 fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_rlimit_h" >&5
-echo "${ECHO_T}$zsh_cv_path_rlimit_h" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_rlimit_h" >&5
+$as_echo "$zsh_cv_path_rlimit_h" >&6; }
 RLIMITS_INC_H=$zsh_cv_path_rlimit_h
 if test "$RLIMITS_INC_H" = "/dev/null"; then
   RLIMITS_INC_H=''
@@ -14215,10 +14884,10 @@
 
 
 DEFAULT_RLIM_T=long
-{ echo "$as_me:$LINENO: checking if rlim_t is longer than a long" >&5
-echo $ECHO_N "checking if rlim_t is longer than a long... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if rlim_t is longer than a long" >&5
+$as_echo_n "checking if rlim_t is longer than a long... " >&6; }
 if test "${zsh_cv_rlim_t_is_longer+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_rlim_t_is_longer=yes
@@ -14242,41 +14911,44 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_rlim_t_is_longer=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_rlim_t_is_longer=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_rlim_t_is_longer" >&5
-echo "${ECHO_T}$zsh_cv_rlim_t_is_longer" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlim_t_is_longer" >&5
+$as_echo "$zsh_cv_rlim_t_is_longer" >&6; }
 if test x$zsh_cv_rlim_t_is_longer = xyes; then
-  { echo "$as_me:$LINENO: checking if rlim_t is a quad" >&5
-echo $ECHO_N "checking if rlim_t is a quad... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if rlim_t is a quad" >&5
+$as_echo_n "checking if rlim_t is a quad... " >&6; }
 if test "${zsh_cv_rlim_t_is_quad_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_rlim_t_is_quad_t=no
@@ -14307,36 +14979,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_rlim_t_is_quad_t=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_rlim_t_is_quad_t=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_rlim_t_is_quad_t" >&5
-echo "${ECHO_T}$zsh_cv_rlim_t_is_quad_t" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlim_t_is_quad_t" >&5
+$as_echo "$zsh_cv_rlim_t_is_quad_t" >&6; }
   if test x$zsh_cv_rlim_t_is_quad_t = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define RLIM_T_IS_QUAD_T 1
@@ -14351,10 +15026,10 @@
     DEFAULT_RLIM_T='long long'
   fi
 else
-  { echo "$as_me:$LINENO: checking if the rlim_t is unsigned" >&5
-echo $ECHO_N "checking if the rlim_t is unsigned... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if the rlim_t is unsigned" >&5
+$as_echo_n "checking if the rlim_t is unsigned... " >&6; }
 if test "${zsh_cv_type_rlim_t_is_unsigned+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_type_rlim_t_is_unsigned=no
@@ -14378,36 +15053,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_type_rlim_t_is_unsigned=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_type_rlim_t_is_unsigned=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_type_rlim_t_is_unsigned" >&5
-echo "${ECHO_T}$zsh_cv_type_rlim_t_is_unsigned" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_rlim_t_is_unsigned" >&5
+$as_echo "$zsh_cv_type_rlim_t_is_unsigned" >&6; }
   if test x$zsh_cv_type_rlim_t_is_unsigned = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define RLIM_T_IS_UNSIGNED 1
@@ -14417,10 +15095,10 @@
   fi
 fi
 
-{ echo "$as_me:$LINENO: checking for rlim_t" >&5
-echo $ECHO_N "checking for rlim_t... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for rlim_t" >&5
+$as_echo_n "checking for rlim_t... " >&6; }
 if test "${zsh_cv_type_rlim_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14448,20 +15126,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_type_rlim_t=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_type_rlim_t=no
@@ -14469,8 +15148,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_type_rlim_t" >&5
-echo "${ECHO_T}$zsh_cv_type_rlim_t" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_rlim_t" >&5
+$as_echo "$zsh_cv_type_rlim_t" >&6; }
 if test x$zsh_cv_type_rlim_t = xno; then
   cat >>confdefs.h <<_ACEOF
 #define rlim_t $DEFAULT_RLIM_T
@@ -14482,10 +15161,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_AIO_MEM" >&5
-echo $ECHO_N "checking for limit RLIMIT_AIO_MEM... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_AIO_MEM" >&5
+$as_echo_n "checking for limit RLIMIT_AIO_MEM... " >&6; }
 if test "${zsh_cv_have_RLIMIT_AIO_MEM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14513,20 +15192,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_AIO_MEM=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_AIO_MEM=no
@@ -14534,8 +15214,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AIO_MEM" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_AIO_MEM" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AIO_MEM" >&5
+$as_echo "$zsh_cv_have_RLIMIT_AIO_MEM" >&6; }
 
 if test $zsh_cv_have_RLIMIT_AIO_MEM = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -14545,10 +15225,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_AIO_OPS" >&5
-echo $ECHO_N "checking for limit RLIMIT_AIO_OPS... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_AIO_OPS" >&5
+$as_echo_n "checking for limit RLIMIT_AIO_OPS... " >&6; }
 if test "${zsh_cv_have_RLIMIT_AIO_OPS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14576,20 +15256,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_AIO_OPS=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_AIO_OPS=no
@@ -14597,8 +15278,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AIO_OPS" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_AIO_OPS" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AIO_OPS" >&5
+$as_echo "$zsh_cv_have_RLIMIT_AIO_OPS" >&6; }
 
 if test $zsh_cv_have_RLIMIT_AIO_OPS = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -14608,10 +15289,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_AS" >&5
-echo $ECHO_N "checking for limit RLIMIT_AS... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_AS" >&5
+$as_echo_n "checking for limit RLIMIT_AS... " >&6; }
 if test "${zsh_cv_have_RLIMIT_AS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14639,20 +15320,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_AS=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_AS=no
@@ -14660,8 +15342,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AS" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_AS" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AS" >&5
+$as_echo "$zsh_cv_have_RLIMIT_AS" >&6; }
 
 if test $zsh_cv_have_RLIMIT_AS = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -14671,10 +15353,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_LOCKS" >&5
-echo $ECHO_N "checking for limit RLIMIT_LOCKS... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_LOCKS" >&5
+$as_echo_n "checking for limit RLIMIT_LOCKS... " >&6; }
 if test "${zsh_cv_have_RLIMIT_LOCKS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14702,20 +15384,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_LOCKS=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_LOCKS=no
@@ -14723,8 +15406,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_LOCKS" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_LOCKS" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_LOCKS" >&5
+$as_echo "$zsh_cv_have_RLIMIT_LOCKS" >&6; }
 
 if test $zsh_cv_have_RLIMIT_LOCKS = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -14734,10 +15417,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_MEMLOCK" >&5
-echo $ECHO_N "checking for limit RLIMIT_MEMLOCK... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_MEMLOCK" >&5
+$as_echo_n "checking for limit RLIMIT_MEMLOCK... " >&6; }
 if test "${zsh_cv_have_RLIMIT_MEMLOCK+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14765,20 +15448,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_MEMLOCK=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_MEMLOCK=no
@@ -14786,8 +15470,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_MEMLOCK" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_MEMLOCK" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_MEMLOCK" >&5
+$as_echo "$zsh_cv_have_RLIMIT_MEMLOCK" >&6; }
 
 if test $zsh_cv_have_RLIMIT_MEMLOCK = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -14797,10 +15481,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_NPROC" >&5
-echo $ECHO_N "checking for limit RLIMIT_NPROC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_NPROC" >&5
+$as_echo_n "checking for limit RLIMIT_NPROC... " >&6; }
 if test "${zsh_cv_have_RLIMIT_NPROC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14828,20 +15512,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_NPROC=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_NPROC=no
@@ -14849,8 +15534,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NPROC" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_NPROC" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NPROC" >&5
+$as_echo "$zsh_cv_have_RLIMIT_NPROC" >&6; }
 
 if test $zsh_cv_have_RLIMIT_NPROC = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -14860,10 +15545,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_NOFILE" >&5
-echo $ECHO_N "checking for limit RLIMIT_NOFILE... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_NOFILE" >&5
+$as_echo_n "checking for limit RLIMIT_NOFILE... " >&6; }
 if test "${zsh_cv_have_RLIMIT_NOFILE+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14891,20 +15576,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_NOFILE=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_NOFILE=no
@@ -14912,8 +15598,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NOFILE" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_NOFILE" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NOFILE" >&5
+$as_echo "$zsh_cv_have_RLIMIT_NOFILE" >&6; }
 
 if test $zsh_cv_have_RLIMIT_NOFILE = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -14923,10 +15609,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_PTHREAD" >&5
-echo $ECHO_N "checking for limit RLIMIT_PTHREAD... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_PTHREAD" >&5
+$as_echo_n "checking for limit RLIMIT_PTHREAD... " >&6; }
 if test "${zsh_cv_have_RLIMIT_PTHREAD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -14954,20 +15640,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_PTHREAD=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_PTHREAD=no
@@ -14975,8 +15662,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_PTHREAD" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_PTHREAD" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_PTHREAD" >&5
+$as_echo "$zsh_cv_have_RLIMIT_PTHREAD" >&6; }
 
 if test $zsh_cv_have_RLIMIT_PTHREAD = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -14986,10 +15673,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_RSS" >&5
-echo $ECHO_N "checking for limit RLIMIT_RSS... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_RSS" >&5
+$as_echo_n "checking for limit RLIMIT_RSS... " >&6; }
 if test "${zsh_cv_have_RLIMIT_RSS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15017,20 +15704,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_RSS=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_RSS=no
@@ -15038,8 +15726,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_RSS" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_RSS" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_RSS" >&5
+$as_echo "$zsh_cv_have_RLIMIT_RSS" >&6; }
 
 if test $zsh_cv_have_RLIMIT_RSS = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15049,10 +15737,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_SBSIZE" >&5
-echo $ECHO_N "checking for limit RLIMIT_SBSIZE... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_SBSIZE" >&5
+$as_echo_n "checking for limit RLIMIT_SBSIZE... " >&6; }
 if test "${zsh_cv_have_RLIMIT_SBSIZE+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15080,20 +15768,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_SBSIZE=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_SBSIZE=no
@@ -15101,8 +15790,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_SBSIZE" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_SBSIZE" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_SBSIZE" >&5
+$as_echo "$zsh_cv_have_RLIMIT_SBSIZE" >&6; }
 
 if test $zsh_cv_have_RLIMIT_SBSIZE = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15112,10 +15801,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_TCACHE" >&5
-echo $ECHO_N "checking for limit RLIMIT_TCACHE... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_TCACHE" >&5
+$as_echo_n "checking for limit RLIMIT_TCACHE... " >&6; }
 if test "${zsh_cv_have_RLIMIT_TCACHE+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15143,20 +15832,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_TCACHE=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_TCACHE=no
@@ -15164,8 +15854,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_TCACHE" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_TCACHE" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_TCACHE" >&5
+$as_echo "$zsh_cv_have_RLIMIT_TCACHE" >&6; }
 
 if test $zsh_cv_have_RLIMIT_TCACHE = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15175,10 +15865,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_VMEM" >&5
-echo $ECHO_N "checking for limit RLIMIT_VMEM... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_VMEM" >&5
+$as_echo_n "checking for limit RLIMIT_VMEM... " >&6; }
 if test "${zsh_cv_have_RLIMIT_VMEM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15206,20 +15896,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_VMEM=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_VMEM=no
@@ -15227,8 +15918,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_VMEM" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_VMEM" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_VMEM" >&5
+$as_echo "$zsh_cv_have_RLIMIT_VMEM" >&6; }
 
 if test $zsh_cv_have_RLIMIT_VMEM = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15238,10 +15929,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_SIGPENDING" >&5
-echo $ECHO_N "checking for limit RLIMIT_SIGPENDING... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_SIGPENDING" >&5
+$as_echo_n "checking for limit RLIMIT_SIGPENDING... " >&6; }
 if test "${zsh_cv_have_RLIMIT_SIGPENDING+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15269,20 +15960,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_SIGPENDING=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_SIGPENDING=no
@@ -15290,8 +15982,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_SIGPENDING" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_SIGPENDING" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_SIGPENDING" >&5
+$as_echo "$zsh_cv_have_RLIMIT_SIGPENDING" >&6; }
 
 if test $zsh_cv_have_RLIMIT_SIGPENDING = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15301,10 +15993,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_MSGQUEUE" >&5
-echo $ECHO_N "checking for limit RLIMIT_MSGQUEUE... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_MSGQUEUE" >&5
+$as_echo_n "checking for limit RLIMIT_MSGQUEUE... " >&6; }
 if test "${zsh_cv_have_RLIMIT_MSGQUEUE+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15332,20 +16024,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_MSGQUEUE=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_MSGQUEUE=no
@@ -15353,8 +16046,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_MSGQUEUE" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_MSGQUEUE" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_MSGQUEUE" >&5
+$as_echo "$zsh_cv_have_RLIMIT_MSGQUEUE" >&6; }
 
 if test $zsh_cv_have_RLIMIT_MSGQUEUE = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15364,10 +16057,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_NICE" >&5
-echo $ECHO_N "checking for limit RLIMIT_NICE... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_NICE" >&5
+$as_echo_n "checking for limit RLIMIT_NICE... " >&6; }
 if test "${zsh_cv_have_RLIMIT_NICE+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15395,20 +16088,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_NICE=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_NICE=no
@@ -15416,8 +16110,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NICE" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_NICE" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NICE" >&5
+$as_echo "$zsh_cv_have_RLIMIT_NICE" >&6; }
 
 if test $zsh_cv_have_RLIMIT_NICE = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15427,10 +16121,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for limit RLIMIT_RTPRIO" >&5
-echo $ECHO_N "checking for limit RLIMIT_RTPRIO... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_RTPRIO" >&5
+$as_echo_n "checking for limit RLIMIT_RTPRIO... " >&6; }
 if test "${zsh_cv_have_RLIMIT_RTPRIO+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15458,20 +16152,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_have_RLIMIT_RTPRIO=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_have_RLIMIT_RTPRIO=no
@@ -15479,8 +16174,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_RTPRIO" >&5
-echo "${ECHO_T}$zsh_cv_have_RLIMIT_RTPRIO" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_RTPRIO" >&5
+$as_echo "$zsh_cv_have_RLIMIT_RTPRIO" >&6; }
 
 if test $zsh_cv_have_RLIMIT_RTPRIO = yes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15491,10 +16186,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking if RLIMIT_VMEM and RLIMIT_RSS are the same" >&5
-echo $ECHO_N "checking if RLIMIT_VMEM and RLIMIT_RSS are the same... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if RLIMIT_VMEM and RLIMIT_RSS are the same" >&5
+$as_echo_n "checking if RLIMIT_VMEM and RLIMIT_RSS are the same... " >&6; }
 if test "${zsh_cv_rlimit_vmem_is_rss+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_rlimit_vmem_is_rss=no
@@ -15526,36 +16221,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_rlimit_vmem_is_rss=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_rlimit_vmem_is_rss=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_rlimit_vmem_is_rss" >&5
-echo "${ECHO_T}$zsh_cv_rlimit_vmem_is_rss" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlimit_vmem_is_rss" >&5
+$as_echo "$zsh_cv_rlimit_vmem_is_rss" >&6; }
 
 if test x$zsh_cv_rlimit_vmem_is_rss = xyes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15567,10 +16265,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking if RLIMIT_VMEM and RLIMIT_AS are the same" >&5
-echo $ECHO_N "checking if RLIMIT_VMEM and RLIMIT_AS are the same... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if RLIMIT_VMEM and RLIMIT_AS are the same" >&5
+$as_echo_n "checking if RLIMIT_VMEM and RLIMIT_AS are the same... " >&6; }
 if test "${zsh_cv_rlimit_vmem_is_as+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_rlimit_vmem_is_as=no
@@ -15602,36 +16300,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_rlimit_vmem_is_as=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_rlimit_vmem_is_as=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_rlimit_vmem_is_as" >&5
-echo "${ECHO_T}$zsh_cv_rlimit_vmem_is_as" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlimit_vmem_is_as" >&5
+$as_echo "$zsh_cv_rlimit_vmem_is_as" >&6; }
 
 if test x$zsh_cv_rlimit_vmem_is_as = xyes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15643,10 +16344,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking if RLIMIT_RSS and RLIMIT_AS are the same" >&5
-echo $ECHO_N "checking if RLIMIT_RSS and RLIMIT_AS are the same... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if RLIMIT_RSS and RLIMIT_AS are the same" >&5
+$as_echo_n "checking if RLIMIT_RSS and RLIMIT_AS are the same... " >&6; }
 if test "${zsh_cv_rlimit_rss_is_as+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_rlimit_rss_is_as=no
@@ -15678,36 +16379,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_rlimit_rss_is_as=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_rlimit_rss_is_as=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_rlimit_rss_is_as" >&5
-echo "${ECHO_T}$zsh_cv_rlimit_rss_is_as" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlimit_rss_is_as" >&5
+$as_echo "$zsh_cv_rlimit_rss_is_as" >&6; }
 
 if test x$zsh_cv_rlimit_rss_is_as = xyes; then
   cat >>confdefs.h <<\_ACEOF
@@ -15718,10 +16422,10 @@
 
 
 if test x$ac_cv_func_getrusage = xyes; then
-  { echo "$as_me:$LINENO: checking for struct rusage.ru_maxrss" >&5
-echo $ECHO_N "checking for struct rusage.ru_maxrss... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for struct rusage.ru_maxrss" >&5
+$as_echo_n "checking for struct rusage.ru_maxrss... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_maxrss+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15751,20 +16455,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_maxrss=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -15795,20 +16500,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_maxrss=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_maxrss=no
@@ -15819,9 +16525,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_maxrss" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_maxrss" >&6; }
-if test $ac_cv_member_struct_rusage_ru_maxrss = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_maxrss" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_maxrss" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_maxrss" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
@@ -15829,10 +16535,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_ixrss" >&5
-echo $ECHO_N "checking for struct rusage.ru_ixrss... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_ixrss" >&5
+$as_echo_n "checking for struct rusage.ru_ixrss... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_ixrss+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15862,20 +16568,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_ixrss=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -15906,20 +16613,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_ixrss=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_ixrss=no
@@ -15930,9 +16638,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_ixrss" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_ixrss" >&6; }
-if test $ac_cv_member_struct_rusage_ru_ixrss = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_ixrss" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_ixrss" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_ixrss" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_IXRSS 1
@@ -15940,10 +16648,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_idrss" >&5
-echo $ECHO_N "checking for struct rusage.ru_idrss... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_idrss" >&5
+$as_echo_n "checking for struct rusage.ru_idrss... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_idrss+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -15973,20 +16681,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_idrss=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16017,20 +16726,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_idrss=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_idrss=no
@@ -16041,9 +16751,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_idrss" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_idrss" >&6; }
-if test $ac_cv_member_struct_rusage_ru_idrss = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_idrss" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_idrss" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_idrss" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_IDRSS 1
@@ -16051,10 +16761,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_isrss" >&5
-echo $ECHO_N "checking for struct rusage.ru_isrss... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_isrss" >&5
+$as_echo_n "checking for struct rusage.ru_isrss... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_isrss+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16084,20 +16794,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_isrss=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16128,20 +16839,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_isrss=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_isrss=no
@@ -16152,9 +16864,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_isrss" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_isrss" >&6; }
-if test $ac_cv_member_struct_rusage_ru_isrss = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_isrss" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_isrss" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_isrss" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_ISRSS 1
@@ -16162,10 +16874,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_minflt" >&5
-echo $ECHO_N "checking for struct rusage.ru_minflt... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_minflt" >&5
+$as_echo_n "checking for struct rusage.ru_minflt... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_minflt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16195,20 +16907,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_minflt=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16239,20 +16952,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_minflt=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_minflt=no
@@ -16263,9 +16977,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_minflt" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_minflt" >&6; }
-if test $ac_cv_member_struct_rusage_ru_minflt = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_minflt" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_minflt" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_minflt" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_MINFLT 1
@@ -16273,10 +16987,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_majflt" >&5
-echo $ECHO_N "checking for struct rusage.ru_majflt... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_majflt" >&5
+$as_echo_n "checking for struct rusage.ru_majflt... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_majflt+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16306,20 +17020,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_majflt=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16350,20 +17065,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_majflt=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_majflt=no
@@ -16374,9 +17090,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_majflt" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_majflt" >&6; }
-if test $ac_cv_member_struct_rusage_ru_majflt = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_majflt" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_majflt" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_majflt" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_MAJFLT 1
@@ -16384,10 +17100,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_nswap" >&5
-echo $ECHO_N "checking for struct rusage.ru_nswap... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_nswap" >&5
+$as_echo_n "checking for struct rusage.ru_nswap... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_nswap+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16417,20 +17133,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_nswap=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16461,20 +17178,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_nswap=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_nswap=no
@@ -16485,9 +17203,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nswap" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_nswap" >&6; }
-if test $ac_cv_member_struct_rusage_ru_nswap = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nswap" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_nswap" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_nswap" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_NSWAP 1
@@ -16495,10 +17213,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_inblock" >&5
-echo $ECHO_N "checking for struct rusage.ru_inblock... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_inblock" >&5
+$as_echo_n "checking for struct rusage.ru_inblock... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_inblock+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16528,20 +17246,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_inblock=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16572,20 +17291,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_inblock=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_inblock=no
@@ -16596,9 +17316,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_inblock" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_inblock" >&6; }
-if test $ac_cv_member_struct_rusage_ru_inblock = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_inblock" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_inblock" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_inblock" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_INBLOCK 1
@@ -16606,10 +17326,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_oublock" >&5
-echo $ECHO_N "checking for struct rusage.ru_oublock... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_oublock" >&5
+$as_echo_n "checking for struct rusage.ru_oublock... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_oublock+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16639,20 +17359,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_oublock=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16683,20 +17404,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_oublock=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_oublock=no
@@ -16707,9 +17429,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_oublock" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_oublock" >&6; }
-if test $ac_cv_member_struct_rusage_ru_oublock = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_oublock" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_oublock" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_oublock" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_OUBLOCK 1
@@ -16717,10 +17439,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_msgsnd" >&5
-echo $ECHO_N "checking for struct rusage.ru_msgsnd... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_msgsnd" >&5
+$as_echo_n "checking for struct rusage.ru_msgsnd... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_msgsnd+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16750,20 +17472,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_msgsnd=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16794,20 +17517,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_msgsnd=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_msgsnd=no
@@ -16818,9 +17542,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_msgsnd" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_msgsnd" >&6; }
-if test $ac_cv_member_struct_rusage_ru_msgsnd = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_msgsnd" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_msgsnd" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_msgsnd" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_MSGSND 1
@@ -16828,10 +17552,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_msgrcv" >&5
-echo $ECHO_N "checking for struct rusage.ru_msgrcv... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_msgrcv" >&5
+$as_echo_n "checking for struct rusage.ru_msgrcv... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_msgrcv+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16861,20 +17585,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_msgrcv=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -16905,20 +17630,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_msgrcv=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_msgrcv=no
@@ -16929,9 +17655,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_msgrcv" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_msgrcv" >&6; }
-if test $ac_cv_member_struct_rusage_ru_msgrcv = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_msgrcv" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_msgrcv" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_msgrcv" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_MSGRCV 1
@@ -16939,10 +17665,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_nsignals" >&5
-echo $ECHO_N "checking for struct rusage.ru_nsignals... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_nsignals" >&5
+$as_echo_n "checking for struct rusage.ru_nsignals... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_nsignals+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -16972,20 +17698,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_nsignals=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -17016,20 +17743,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_nsignals=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_nsignals=no
@@ -17040,9 +17768,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nsignals" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_nsignals" >&6; }
-if test $ac_cv_member_struct_rusage_ru_nsignals = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nsignals" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_nsignals" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_nsignals" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_NSIGNALS 1
@@ -17050,10 +17778,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_nvcsw" >&5
-echo $ECHO_N "checking for struct rusage.ru_nvcsw... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_nvcsw" >&5
+$as_echo_n "checking for struct rusage.ru_nvcsw... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_nvcsw+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -17083,20 +17811,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_nvcsw=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -17127,20 +17856,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_nvcsw=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_nvcsw=no
@@ -17151,9 +17881,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nvcsw" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_nvcsw" >&6; }
-if test $ac_cv_member_struct_rusage_ru_nvcsw = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nvcsw" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_nvcsw" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_nvcsw" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_NVCSW 1
@@ -17161,10 +17891,10 @@
 
 
 fi
-{ echo "$as_me:$LINENO: checking for struct rusage.ru_nivcsw" >&5
-echo $ECHO_N "checking for struct rusage.ru_nivcsw... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_nivcsw" >&5
+$as_echo_n "checking for struct rusage.ru_nivcsw... " >&6; }
 if test "${ac_cv_member_struct_rusage_ru_nivcsw+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -17194,20 +17924,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_nivcsw=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	cat >conftest.$ac_ext <<_ACEOF
@@ -17238,20 +17969,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_member_struct_rusage_ru_nivcsw=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_member_struct_rusage_ru_nivcsw=no
@@ -17262,9 +17994,9 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nivcsw" >&5
-echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_nivcsw" >&6; }
-if test $ac_cv_member_struct_rusage_ru_nivcsw = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nivcsw" >&5
+$as_echo "$ac_cv_member_struct_rusage_ru_nivcsw" >&6; }
+if test "x$ac_cv_member_struct_rusage_ru_nivcsw" = x""yes; then
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_RUSAGE_RU_NIVCSW 1
@@ -17277,7 +18009,7 @@
 
 
 if test "${zsh_cv_cs_path+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if getconf _CS_PATH >/dev/null 2>&1; then
   zsh_cv_cs_path=`getconf _CS_PATH`
@@ -17297,10 +18029,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking for /dev/fd filesystem" >&5
-echo $ECHO_N "checking for /dev/fd filesystem... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for /dev/fd filesystem" >&5
+$as_echo_n "checking for /dev/fd filesystem... " >&6; }
 if test "${zsh_cv_sys_path_dev_fd+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$host_os" = cygwin; then
 zsh_cv_sys_path_dev_fd=no
@@ -17310,8 +18042,8 @@
  done
 fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_path_dev_fd" >&5
-echo "${ECHO_T}$zsh_cv_sys_path_dev_fd" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_path_dev_fd" >&5
+$as_echo "$zsh_cv_sys_path_dev_fd" >&6; }
 if test x$zsh_cv_sys_path_dev_fd != xno; then
   cat >>confdefs.h <<_ACEOF
 #define PATH_DEV_FD "$zsh_cv_sys_path_dev_fd"
@@ -17319,15 +18051,15 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for RFS superroot directory" >&5
-echo $ECHO_N "checking for RFS superroot directory... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for RFS superroot directory" >&5
+$as_echo_n "checking for RFS superroot directory... " >&6; }
 if test "${zsh_cv_sys_superroot+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   test -d /../.LOCALROOT && zsh_cv_sys_superroot=yes || zsh_cv_sys_superroot=no
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_superroot" >&5
-echo "${ECHO_T}$zsh_cv_sys_superroot" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_superroot" >&5
+$as_echo "$zsh_cv_sys_superroot" >&6; }
 
 
 if test x$zsh_cv_sys_superroot = xyes; then
@@ -17337,18 +18069,18 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking whether we should use the native getcwd" >&5
-echo $ECHO_N "checking whether we should use the native getcwd... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we should use the native getcwd" >&5
+$as_echo_n "checking whether we should use the native getcwd... " >&6; }
 if test "${zsh_cv_use_getcwd+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case "${host_cpu}-${host_vendor}-${host_os}" in
     *QNX*) zsh_cv_use_getcwd=yes ;;
     *) zsh_cv_use_getcwd=no ;;
  esac
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_use_getcwd" >&5
-echo "${ECHO_T}$zsh_cv_use_getcwd" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_use_getcwd" >&5
+$as_echo "$zsh_cv_use_getcwd" >&6; }
 
 
 if test x$zsh_cv_use_getcwd = xyes; then
@@ -17360,10 +18092,88 @@
 
 
 
-{ echo "$as_me:$LINENO: checking for setproctitle" >&5
-echo $ECHO_N "checking for setproctitle... $ECHO_C" >&6; }
+if test x$ac_cv_func_getcwd = xyes; then
+  { $as_echo "$as_me:$LINENO: checking whether getcwd calls malloc to allocate memory" >&5
+$as_echo_n "checking whether getcwd calls malloc to allocate memory... " >&6; }
+if test "${zsh_cv_getcwd_malloc+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test "$cross_compiling" = yes; then
+  zsh_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 
+#include 
+int main() {
+    char buf[1024], *ptr1, *ptr2;
+    ptr1 = getcwd(buf, 1024);
+    ptr2 = getcwd(NULL, 0);
+    if (ptr1 && ptr2 && !strcmp(ptr1, ptr2)) {
+      return 0;
+    }
+    return 1;
+}
+
+_ACEOF
+rm -f 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:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && { 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:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  zsh_cv_getcwd_malloc=yes
+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
+
+( exit $ac_status )
+zsh_cv_getcwd_malloc=no
+fi
+rm -rf conftest.dSYM
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+fi
+
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_getcwd_malloc" >&5
+$as_echo "$zsh_cv_getcwd_malloc" >&6; }
+  if test x$zsh_cv_getcwd_malloc = xyes; then
+    cat >>confdefs.h <<\_ACEOF
+#define GETCWD_CALLS_MALLOC 1
+_ACEOF
+
+  fi
+fi
+
+
+
+{ $as_echo "$as_me:$LINENO: checking for setproctitle" >&5
+$as_echo_n "checking for setproctitle... " >&6; }
 if test "${ac_cv_func_setproctitle+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -17416,41 +18226,45 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_func_setproctitle=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_func_setproctitle=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_setproctitle" >&5
-echo "${ECHO_T}$ac_cv_func_setproctitle" >&6; }
-if test $ac_cv_func_setproctitle = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_setproctitle" >&5
+$as_echo "$ac_cv_func_setproctitle" >&6; }
+if test "x$ac_cv_func_setproctitle" = x""yes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_SETPROCTITLE 1
 _ACEOF
 
 else
-  { echo "$as_me:$LINENO: checking for library containing setproctitle" >&5
-echo $ECHO_N "checking for library containing setproctitle... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for library containing setproctitle" >&5
+$as_echo_n "checking for library containing setproctitle... " >&6; }
 if test "${ac_cv_search_setproctitle+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -17488,26 +18302,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_setproctitle=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_setproctitle+set}" = set; then
@@ -17522,8 +18340,8 @@
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_setproctitle" >&5
-echo "${ECHO_T}$ac_cv_search_setproctitle" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_setproctitle" >&5
+$as_echo "$ac_cv_search_setproctitle" >&6; }
 ac_res=$ac_cv_search_setproctitle
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
@@ -17538,25 +18356,25 @@
 
 
 
-{ echo "$as_me:$LINENO: checking for NIS" >&5
-echo $ECHO_N "checking for NIS... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for NIS" >&5
+$as_echo_n "checking for NIS... " >&6; }
 if test "${zsh_cv_sys_nis+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   test -f /usr/bin/ypcat && /usr/bin/ypcat passwd.byname > /dev/null 2>&1 && \
 zsh_cv_sys_nis=yes || zsh_cv_sys_nis=no
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_nis" >&5
-echo "${ECHO_T}$zsh_cv_sys_nis" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_nis" >&5
+$as_echo "$zsh_cv_sys_nis" >&6; }
 if test x$zsh_cv_sys_nis = xyes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_NIS 1
 _ACEOF
 
-  { echo "$as_me:$LINENO: checking for library containing yp_all" >&5
-echo $ECHO_N "checking for library containing yp_all... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for library containing yp_all" >&5
+$as_echo_n "checking for library containing yp_all... " >&6; }
 if test "${ac_cv_search_yp_all+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
 cat >conftest.$ac_ext <<_ACEOF
@@ -17594,26 +18412,30 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_search_yp_all=$ac_res
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext
   if test "${ac_cv_search_yp_all+set}" = set; then
@@ -17628,8 +18450,8 @@
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_search_yp_all" >&5
-echo "${ECHO_T}$ac_cv_search_yp_all" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_yp_all" >&5
+$as_echo "$ac_cv_search_yp_all" >&6; }
 ac_res=$ac_cv_search_yp_all
 if test "$ac_res" != no; then
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
@@ -17640,17 +18462,17 @@
 
 
 
-{ echo "$as_me:$LINENO: checking for NIS+" >&5
-echo $ECHO_N "checking for NIS+... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for NIS+" >&5
+$as_echo_n "checking for NIS+... " >&6; }
 if test "${zsh_cv_sys_nis_plus+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   test x$ac_cv_func_nis_list = xyes && test -f /usr/bin/nisls && \
  /usr/bin/nisls > /dev/null 2>&1 && \
 zsh_cv_sys_nis_plus=yes || zsh_cv_sys_nis_plus=no
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_nis_plus" >&5
-echo "${ECHO_T}$zsh_cv_sys_nis_plus" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_nis_plus" >&5
+$as_echo "$zsh_cv_sys_nis_plus" >&6; }
 if test x$zsh_cv_sys_nis_plus = xyes; then
   cat >>confdefs.h <<\_ACEOF
 #define HAVE_NIS_PLUS 1
@@ -17658,10 +18480,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for utmp file" >&5
-echo $ECHO_N "checking for utmp file... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for utmp file" >&5
+$as_echo_n "checking for utmp file... " >&6; }
 if test "${zsh_cv_path_utmp+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   for dir in /etc /usr/etc /var/adm /usr/adm /var/run /var/log ./conftest; do
   zsh_cv_path_utmp=${dir}/utmp
@@ -17670,8 +18492,8 @@
 done
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_utmp" >&5
-echo "${ECHO_T}$zsh_cv_path_utmp" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_utmp" >&5
+$as_echo "$zsh_cv_path_utmp" >&6; }
 
 
 if test $zsh_cv_path_utmp != no; then
@@ -17681,10 +18503,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for wtmp file" >&5
-echo $ECHO_N "checking for wtmp file... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for wtmp file" >&5
+$as_echo_n "checking for wtmp file... " >&6; }
 if test "${zsh_cv_path_wtmp+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   for dir in /etc /usr/etc /var/adm /usr/adm /var/run /var/log ./conftest; do
   zsh_cv_path_wtmp=${dir}/wtmp
@@ -17693,8 +18515,8 @@
 done
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_wtmp" >&5
-echo "${ECHO_T}$zsh_cv_path_wtmp" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_wtmp" >&5
+$as_echo "$zsh_cv_path_wtmp" >&6; }
 
 
 if test $zsh_cv_path_wtmp != no; then
@@ -17704,10 +18526,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for utmpx file" >&5
-echo $ECHO_N "checking for utmpx file... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for utmpx file" >&5
+$as_echo_n "checking for utmpx file... " >&6; }
 if test "${zsh_cv_path_utmpx+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   for dir in /etc /usr/etc /var/adm /usr/adm /var/run /var/log ./conftest; do
   zsh_cv_path_utmpx=${dir}/utmpx
@@ -17716,8 +18538,8 @@
 done
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_utmpx" >&5
-echo "${ECHO_T}$zsh_cv_path_utmpx" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_utmpx" >&5
+$as_echo "$zsh_cv_path_utmpx" >&6; }
 
 
 if test $zsh_cv_path_utmpx != no; then
@@ -17727,10 +18549,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for wtmpx file" >&5
-echo $ECHO_N "checking for wtmpx file... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for wtmpx file" >&5
+$as_echo_n "checking for wtmpx file... " >&6; }
 if test "${zsh_cv_path_wtmpx+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   for dir in /etc /usr/etc /var/adm /usr/adm /var/run /var/log ./conftest; do
   zsh_cv_path_wtmpx=${dir}/wtmpx
@@ -17739,8 +18561,8 @@
 done
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_path_wtmpx" >&5
-echo "${ECHO_T}$zsh_cv_path_wtmpx" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_wtmpx" >&5
+$as_echo "$zsh_cv_path_wtmpx" >&6; }
 
 
 if test $zsh_cv_path_wtmpx != no; then
@@ -17751,10 +18573,10 @@
 fi
 
 
-{ echo "$as_me:$LINENO: checking for brk() prototype in " >&5
-echo $ECHO_N "checking for brk() prototype in ... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for brk() prototype in " >&5
+$as_echo_n "checking for brk() prototype in ... " >&6; }
 if test "${zsh_cv_header_unistd_h_brk_proto+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -17778,20 +18600,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_header_unistd_h_brk_proto=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_unistd_h_brk_proto=yes
@@ -17799,8 +18622,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_brk_proto" >&5
-echo "${ECHO_T}$zsh_cv_header_unistd_h_brk_proto" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_brk_proto" >&5
+$as_echo "$zsh_cv_header_unistd_h_brk_proto" >&6; }
 
 
 if test x$zsh_cv_header_unistd_h_brk_proto = xyes; then
@@ -17810,10 +18633,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking for sbrk() prototype in " >&5
-echo $ECHO_N "checking for sbrk() prototype in ... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for sbrk() prototype in " >&5
+$as_echo_n "checking for sbrk() prototype in ... " >&6; }
 if test "${zsh_cv_header_unistd_h_sbrk_proto+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -17837,20 +18660,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_header_unistd_h_sbrk_proto=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_unistd_h_sbrk_proto=yes
@@ -17858,8 +18682,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_sbrk_proto" >&5
-echo "${ECHO_T}$zsh_cv_header_unistd_h_sbrk_proto" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_sbrk_proto" >&5
+$as_echo "$zsh_cv_header_unistd_h_sbrk_proto" >&6; }
 
 
 if test x$zsh_cv_header_unistd_h_sbrk_proto = xyes; then
@@ -17872,10 +18696,10 @@
 
 
 if test "$ac_cv_prog_cc_stdc" != no; then
-  { echo "$as_me:$LINENO: checking for mknod prototype in " >&5
-echo $ECHO_N "checking for mknod prototype in ... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for mknod prototype in " >&5
+$as_echo_n "checking for mknod prototype in ... " >&6; }
 if test "${zsh_cv_header_sys_stat_h_mknod_proto+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -17899,20 +18723,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_header_sys_stat_h_mknod_proto=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_sys_stat_h_mknod_proto=yes
@@ -17920,8 +18745,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_sys_stat_h_mknod_proto" >&5
-echo "${ECHO_T}$zsh_cv_header_sys_stat_h_mknod_proto" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_sys_stat_h_mknod_proto" >&5
+$as_echo "$zsh_cv_header_sys_stat_h_mknod_proto" >&6; }
   if test x$zsh_cv_header_sys_stat_h_mknod_proto = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define HAVE_MKNOD_PROTO 1
@@ -17930,10 +18755,10 @@
   fi
 fi
 
-{ echo "$as_me:$LINENO: checking for ioctl prototype in  or " >&5
-echo $ECHO_N "checking for ioctl prototype in  or ... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ioctl prototype in  or " >&5
+$as_echo_n "checking for ioctl prototype in  or ... " >&6; }
 if test "${zsh_cv_header_unistd_h_termios_h_ioctl_proto+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -17963,20 +18788,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_header_unistd_h_termios_h_ioctl_proto=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_unistd_h_termios_h_ioctl_proto=yes
@@ -17984,14 +18810,14 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_termios_h_ioctl_proto" >&5
-echo "${ECHO_T}$zsh_cv_header_unistd_h_termios_h_ioctl_proto" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_termios_h_ioctl_proto" >&5
+$as_echo "$zsh_cv_header_unistd_h_termios_h_ioctl_proto" >&6; }
 
 if test x$zsh_cv_header_unistd_h_termios_h_ioctl_proto = xno; then
-  { echo "$as_me:$LINENO: checking for ioctl prototype in " >&5
-echo $ECHO_N "checking for ioctl prototype in ... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for ioctl prototype in " >&5
+$as_echo_n "checking for ioctl prototype in ... " >&6; }
 if test "${zsh_cv_header_sys_ioctl_h_ioctl_proto+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -18015,20 +18841,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_header_sys_ioctl_h_ioctl_proto=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_sys_ioctl_h_ioctl_proto=yes
@@ -18036,8 +18863,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_sys_ioctl_h_ioctl_proto" >&5
-echo "${ECHO_T}$zsh_cv_header_sys_ioctl_h_ioctl_proto" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_sys_ioctl_h_ioctl_proto" >&5
+$as_echo "$zsh_cv_header_sys_ioctl_h_ioctl_proto" >&6; }
 else
   zsh_cv_header_sys_ioctl_h_ioctl_proto=no
 fi
@@ -18063,10 +18890,10 @@
 
 
 if test x$ac_cv_header_sys_select_h != xyes; then
-  { echo "$as_me:$LINENO: checking for select() in " >&5
-echo $ECHO_N "checking for select() in ... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for select() in " >&5
+$as_echo_n "checking for select() in ... " >&6; }
 if test "${zsh_cv_header_socket_h_select_proto+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -18089,20 +18916,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_header_socket_h_select_proto=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cv_header_socket_h_select_proto=no
@@ -18110,8 +18938,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_header_socket_h_select_proto" >&5
-echo "${ECHO_T}$zsh_cv_header_socket_h_select_proto" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_socket_h_select_proto" >&5
+$as_echo "$zsh_cv_header_socket_h_select_proto" >&6; }
   if test x$zsh_cv_header_socket_h_select_proto = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define SELECT_IN_SYS_SOCKET_H 1
@@ -18120,10 +18948,10 @@
   fi
 fi
 
-{ echo "$as_me:$LINENO: checking if named FIFOs work" >&5
-echo $ECHO_N "checking if named FIFOs work... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if named FIFOs work" >&5
+$as_echo_n "checking if named FIFOs work... " >&6; }
 if test "${zsh_cv_sys_fifo+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$host_os" = cygwin; then
 zsh_cv_sys_fifo=yes
@@ -18172,37 +19000,40 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_fifo=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_fifo=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_fifo" >&5
-echo "${ECHO_T}$zsh_cv_sys_fifo" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_fifo" >&5
+$as_echo "$zsh_cv_sys_fifo" >&6; }
 
 
 if test x$zsh_cv_sys_fifo = xyes; then
@@ -18211,10 +19042,10 @@
 _ACEOF
 
 fi
-{ echo "$as_me:$LINENO: checking if echo in /bin/sh interprets escape sequences" >&5
-echo $ECHO_N "checking if echo in /bin/sh interprets escape sequences... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if echo in /bin/sh interprets escape sequences" >&5
+$as_echo_n "checking if echo in /bin/sh interprets escape sequences... " >&6; }
 if test "${zsh_cv_prog_sh_echo_escape+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "`/bin/sh -c \"echo '\\n'\"`" = "\\n"; then
   zsh_cv_prog_sh_echo_escape=no
@@ -18222,8 +19053,8 @@
   zsh_cv_prog_sh_echo_escape=yes
 fi
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_prog_sh_echo_escape" >&5
-echo "${ECHO_T}$zsh_cv_prog_sh_echo_escape" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_prog_sh_echo_escape" >&5
+$as_echo "$zsh_cv_prog_sh_echo_escape" >&6; }
 
 
 if test x$zsh_cv_prog_sh_echo_escape = xno; then
@@ -18233,10 +19064,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking if link() works" >&5
-echo $ECHO_N "checking if link() works... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if link() works" >&5
+$as_echo_n "checking if link() works... " >&6; }
 if test "${zsh_cv_sys_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_sys_link=yes
@@ -18273,36 +19104,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_link=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_link=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_link" >&5
-echo "${ECHO_T}$zsh_cv_sys_link" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_link" >&5
+$as_echo "$zsh_cv_sys_link" >&6; }
 
 
 if test x$zsh_cv_sys_link = xyes; then
@@ -18312,10 +19146,10 @@
 
 fi
 
-{ echo "$as_me:$LINENO: checking if kill(pid, 0) returns ESRCH correctly" >&5
-echo $ECHO_N "checking if kill(pid, 0) returns ESRCH correctly... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if kill(pid, 0) returns ESRCH correctly" >&5
+$as_echo_n "checking if kill(pid, 0) returns ESRCH correctly... " >&6; }
 if test "${zsh_cv_sys_killesrch+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_sys_killesrch=yes
@@ -18344,36 +19178,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_killesrch=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_killesrch=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_killesrch" >&5
-echo "${ECHO_T}$zsh_cv_sys_killesrch" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_killesrch" >&5
+$as_echo "$zsh_cv_sys_killesrch" >&6; }
 
 
 if test x$zsh_cv_sys_killesrch = xno; then
@@ -18386,10 +19223,10 @@
 
 
 if test x$signals_style = xPOSIX_SIGNALS; then
-    { echo "$as_me:$LINENO: checking if POSIX sigsuspend() works" >&5
-echo $ECHO_N "checking if POSIX sigsuspend() works... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking if POSIX sigsuspend() works" >&5
+$as_echo_n "checking if POSIX sigsuspend() works... " >&6; }
 if test "${zsh_cv_sys_sigsuspend+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_sys_sigsuspend=yes
@@ -18433,36 +19270,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_sigsuspend=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_sigsuspend=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_sigsuspend" >&5
-echo "${ECHO_T}$zsh_cv_sys_sigsuspend" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_sigsuspend" >&5
+$as_echo "$zsh_cv_sys_sigsuspend" >&6; }
     if test x$zsh_cv_sys_sigsuspend = xno; then
       cat >>confdefs.h <<\_ACEOF
 #define BROKEN_POSIX_SIGSUSPEND 1
@@ -18480,8 +19320,8 @@
 case "x$withval" in
     xyes) zsh_working_tcsetpgrp=yes;;
     xno)  zsh_working_tcsetpgrp=no;;
-    *)    { { echo "$as_me:$LINENO: error: please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no" >&5
-echo "$as_me: error: please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no" >&2;}
+    *)    { { $as_echo "$as_me:$LINENO: error: please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no" >&5
+$as_echo "$as_me: error: please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no" >&2;}
    { (exit 1); exit 1; }; };;
 esac
 else
@@ -18492,10 +19332,10 @@
 case "x$zsh_working_tcsetpgrp" in
   xcheck)
     trap "" TTOU > /dev/null 2>&1 || :
-    { echo "$as_me:$LINENO: checking if tcsetpgrp() actually works" >&5
-echo $ECHO_N "checking if tcsetpgrp() actually works... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking if tcsetpgrp() actually works" >&5
+$as_echo_n "checking if tcsetpgrp() actually works... " >&6; }
 if test "${zsh_cv_sys_tcsetpgrp+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_sys_tcsetpgrp=yes
@@ -18527,24 +19367,26 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_tcsetpgrp=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
@@ -18556,26 +19398,27 @@
 esac
 
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_tcsetpgrp" >&5
-echo "${ECHO_T}$zsh_cv_sys_tcsetpgrp" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_tcsetpgrp" >&5
+$as_echo "$zsh_cv_sys_tcsetpgrp" >&6; }
     case "x$zsh_cv_sys_tcsetpgrp" in
       xno)    cat >>confdefs.h <<\_ACEOF
 #define BROKEN_TCSETPGRP 1
 _ACEOF
 ;;
       xyes)   :;;
-      xnotty) { { echo "$as_me:$LINENO: error: no controlling tty
+      xnotty) { { $as_echo "$as_me:$LINENO: error: no controlling tty
 Try running configure with --with-tcsetpgrp or --without-tcsetpgrp" >&5
-echo "$as_me: error: no controlling tty
+$as_echo "$as_me: error: no controlling tty
 Try running configure with --with-tcsetpgrp or --without-tcsetpgrp" >&2;}
    { (exit 1); exit 1; }; };;
-      *)      { { echo "$as_me:$LINENO: error: unexpected return status" >&5
-echo "$as_me: error: unexpected return status" >&2;}
+      *)      { { $as_echo "$as_me:$LINENO: error: unexpected return status" >&5
+$as_echo "$as_me: error: unexpected return status" >&2;}
    { (exit 1); exit 1; }; };;
     esac
     trap - TTOU > /dev/null 2>&1 || :
@@ -18585,8 +19428,8 @@
 #define BROKEN_TCSETPGRP 1
 _ACEOF
 ;;
-  *)    { { echo "$as_me:$LINENO: error: unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp" >&5
-echo "$as_me: error: unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp" >&2;}
+  *)    { { $as_echo "$as_me:$LINENO: error: unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp" >&5
+$as_echo "$as_me: error: unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp" >&2;}
    { (exit 1); exit 1; }; };;
 esac
 fi
@@ -18594,10 +19437,10 @@
 
 
 if test x$ac_cv_func_getpwnam = xyes; then
-    { echo "$as_me:$LINENO: checking if getpwnam() is faked" >&5
-echo $ECHO_N "checking if getpwnam() is faked... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking if getpwnam() is faked" >&5
+$as_echo_n "checking if getpwnam() is faked... " >&6; }
 if test "${zsh_cv_sys_getpwnam_faked+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_sys_getpwnam_faked=no
@@ -18628,36 +19471,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_getpwnam_faked=no
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_getpwnam_faked=yes
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_getpwnam_faked" >&5
-echo "${ECHO_T}$zsh_cv_sys_getpwnam_faked" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_getpwnam_faked" >&5
+$as_echo "$zsh_cv_sys_getpwnam_faked" >&6; }
     if test x$zsh_cv_sys_getpwnam_faked = xyes; then
       cat >>confdefs.h <<\_ACEOF
 #define GETPWNAM_FAKED 1
@@ -18669,10 +19515,10 @@
 
 
 
-  { echo "$as_me:$LINENO: checking base type of the third argument to accept" >&5
-echo $ECHO_N "checking base type of the third argument to accept... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking base type of the third argument to accept" >&5
+$as_echo_n "checking base type of the third argument to accept... " >&6; }
 if test "${zsh_cv_type_socklen_t+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   zsh_cv_type_socklen_t=
     for zsh_type in socklen_t int "unsigned long" size_t ; do
@@ -18698,20 +19544,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   zsh_cv_type_socklen_t="$zsh_type"; break
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -18725,8 +19572,8 @@
     fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_type_socklen_t" >&5
-echo "${ECHO_T}$zsh_cv_type_socklen_t" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_socklen_t" >&5
+$as_echo "$zsh_cv_type_socklen_t" >&6; }
 
 cat >>confdefs.h <<_ACEOF
 #define ZSOCKLEN_T $zsh_cv_type_socklen_t
@@ -18734,10 +19581,10 @@
 
 
 
-{ echo "$as_me:$LINENO: checking if your system has /dev/ptmx" >&5
-echo $ECHO_N "checking if your system has /dev/ptmx... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if your system has /dev/ptmx" >&5
+$as_echo_n "checking if your system has /dev/ptmx... " >&6; }
 if test "${ac_cv_have_dev_ptmx+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -w /dev/ptmx; then
   ac_cv_have_dev_ptmx=yes
@@ -18745,8 +19592,8 @@
   ac_cv_have_dev_ptmx=no
 fi
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_have_dev_ptmx" >&5
-echo "${ECHO_T}$ac_cv_have_dev_ptmx" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_dev_ptmx" >&5
+$as_echo "$ac_cv_have_dev_ptmx" >&6; }
 
 
 
@@ -18754,10 +19601,10 @@
    test x$ac_cv_func_grantpt = xyes && \
    test x$ac_cv_func_unlockpt = xyes && \
    test x$ac_cv_func_ptsname = xyes; then
-   { echo "$as_me:$LINENO: checking if /dev/ptmx is usable" >&5
-echo $ECHO_N "checking if /dev/ptmx is usable... $ECHO_C" >&6; }
+   { $as_echo "$as_me:$LINENO: checking if /dev/ptmx is usable" >&5
+$as_echo_n "checking if /dev/ptmx is usable... " >&6; }
 if test "${ac_cv_use_dev_ptmx+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -18784,20 +19631,21 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_use_dev_ptmx=no
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_use_dev_ptmx=yes
@@ -18805,8 +19653,8 @@
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_use_dev_ptmx" >&5
-echo "${ECHO_T}$ac_cv_use_dev_ptmx" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_use_dev_ptmx" >&5
+$as_echo "$ac_cv_use_dev_ptmx" >&6; }
    if test x$ac_cv_use_dev_ptmx = xyes; then
      cat >>confdefs.h <<\_ACEOF
 #define USE_DEV_PTMX 1
@@ -18820,20 +19668,20 @@
   enableval=$enable_multibyte; zsh_cv_c_unicode_support=$enableval
 else
   if test "${zsh_cv_c_unicode_support+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
-  { echo "$as_me:$LINENO: checking for functions supporting multibyte characters" >&5
-echo "$as_me: checking for functions supporting multibyte characters" >&6;}
+  { $as_echo "$as_me:$LINENO: checking for functions supporting multibyte characters" >&5
+$as_echo "$as_me: checking for functions supporting multibyte characters" >&6;}
   zfuncs_absent=
    for zfunc in iswalnum iswcntrl iswdigit iswgraph iswlower iswprint \
 iswpunct iswspace iswupper iswxdigit mbrlen mbrtowc towupper towlower \
 wcschr wcscpy wcslen wcsncmp wcsncpy wcrtomb wcwidth wmemchr wmemcmp \
 wmemcpy wmemmove wmemset; do
-     as_ac_var=`echo "ac_cv_func_$zfunc" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $zfunc" >&5
-echo $ECHO_N "checking for $zfunc... $ECHO_C" >&6; }
+     as_ac_var=`$as_echo "ac_cv_func_$zfunc" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $zfunc" >&5
+$as_echo_n "checking for $zfunc... " >&6; }
 if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -18886,33 +19734,40 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   eval "$as_ac_var=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_var=no"
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_var'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_var'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_var'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   :
 else
   zfuncs_absent="$zfuncs_absent $zfunc"
@@ -18920,12 +19775,12 @@
 
     done
     if test x"$zfuncs_absent" = x; then
-      { echo "$as_me:$LINENO: all functions found, multibyte support enabled" >&5
-echo "$as_me: all functions found, multibyte support enabled" >&6;}
+      { $as_echo "$as_me:$LINENO: all functions found, multibyte support enabled" >&5
+$as_echo "$as_me: all functions found, multibyte support enabled" >&6;}
       zsh_cv_c_unicode_support=yes
     else
-      { echo "$as_me:$LINENO: missing functions, multibyte support disabled" >&5
-echo "$as_me: missing functions, multibyte support disabled" >&6;}
+      { $as_echo "$as_me:$LINENO: missing functions, multibyte support disabled" >&5
+$as_echo "$as_me: missing functions, multibyte support disabled" >&6;}
       zsh_cv_c_unicode_support=no
     fi
 
@@ -18972,10 +19827,10 @@
   }
   "
 
-  { echo "$as_me:$LINENO: checking if the wcwidth() function is broken" >&5
-echo $ECHO_N "checking if the wcwidth() function is broken... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if the wcwidth() function is broken" >&5
+$as_echo_n "checking if the wcwidth() function is broken... " >&6; }
 if test "${zsh_cv_c_broken_wcwidth+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_c_broken_wcwidth=no
@@ -18994,36 +19849,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_c_broken_wcwidth=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_c_broken_wcwidth=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_c_broken_wcwidth" >&5
-echo "${ECHO_T}$zsh_cv_c_broken_wcwidth" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_c_broken_wcwidth" >&5
+$as_echo "$zsh_cv_c_broken_wcwidth" >&6; }
   if test x$zsh_cv_c_broken_wcwidth = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define BROKEN_WCWIDTH 1
@@ -19129,10 +19987,10 @@
   MOD_IMPORT_VARIABLE="__attribute__((__dllimport__))"
   MOD_IMPORT_FUNCTION=
 elif test "x$dynamic" = xyes; then
-  { echo "$as_me:$LINENO: checking if your system uses ELF binaries" >&5
-echo $ECHO_N "checking if your system uses ELF binaries... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if your system uses ELF binaries" >&5
+$as_echo_n "checking if your system uses ELF binaries... " >&6; }
 if test "${zsh_cv_sys_elf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$cross_compiling" = yes; then
   zsh_cv_sys_elf=yes
@@ -19166,36 +20024,39 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_elf=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_elf=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_elf" >&5
-echo "${ECHO_T}$zsh_cv_sys_elf" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_elf" >&5
+$as_echo "$zsh_cv_sys_elf" >&6; }
 
   # We use [0-9]* in case statements, so need to change quoting
 
@@ -19317,10 +20178,10 @@
   # Done with our shell code, so restore autotools quoting
 
 
-{ echo "$as_me:$LINENO: checking if we can use -rdynamic" >&5
-echo $ECHO_N "checking if we can use -rdynamic... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if we can use -rdynamic" >&5
+$as_echo_n "checking if we can use -rdynamic... " >&6; }
 if test "${zsh_cv_rdynamic_available+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   old_LDFLAGS="$LDFLAGS"
 LDFLAGS="$LDFLAGS -rdynamic"
@@ -19345,37 +20206,41 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&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
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   zsh_cv_rdynamic_available=yes
 EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-rdynamic}"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	zsh_cvs_rdynamic_available=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LDFLAGS="$old_LDFLAGS"
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_rdynamic_available" >&5
-echo "${ECHO_T}$zsh_cv_rdynamic_available" >&6; }
-  { echo "$as_me:$LINENO: checking if your dlsym() needs a leading underscore" >&5
-echo $ECHO_N "checking if your dlsym() needs a leading underscore... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rdynamic_available" >&5
+$as_echo "$zsh_cv_rdynamic_available" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if your dlsym() needs a leading underscore" >&5
+$as_echo_n "checking if your dlsym() needs a leading underscore... " >&6; }
 if test "${zsh_cv_func_dlsym_needs_underscore+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   echo failed >conftestval && cat >conftest.c <&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
     { ac_try='$DLLD $LDFLAGS $DLLDFLAGS -o conftest.$DL_EXT conftest.o 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
     if test "$cross_compiling" = yes; then
   zsh_cv_func_dlsym_needs_underscore=no
@@ -19461,37 +20326,40 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_func_dlsym_needs_underscore=`cat conftestval`
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_func_dlsym_needs_underscore=failed
     dynamic=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_func_dlsym_needs_underscore" >&5
-echo "${ECHO_T}$zsh_cv_func_dlsym_needs_underscore" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_func_dlsym_needs_underscore" >&5
+$as_echo "$zsh_cv_func_dlsym_needs_underscore" >&6; }
   if test "x$zsh_cv_func_dlsym_needs_underscore" = xyes; then
     cat >>confdefs.h <<\_ACEOF
 #define DLSYM_NEEDS_UNDERSCORE 1
@@ -19503,10 +20371,10 @@
 fi
 
 if test "x$dynamic" = xyes; then
-  { echo "$as_me:$LINENO: checking if environ is available in shared libraries" >&5
-echo $ECHO_N "checking if environ is available in shared libraries... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if environ is available in shared libraries" >&5
+$as_echo_n "checking if environ is available in shared libraries... " >&6; }
 if test "${zsh_cv_shared_environ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
     us=_
@@ -19528,25 +20396,25 @@
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     if test "$cross_compiling" = yes; then
   zsh_cv_shared_environ=no
@@ -19618,29 +20486,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_shared_environ=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_shared_environ=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -19650,15 +20521,15 @@
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_shared_environ" >&5
-echo "${ECHO_T}$zsh_cv_shared_environ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_shared_environ" >&5
+$as_echo "$zsh_cv_shared_environ" >&6; }
 
   test "$zsh_cv_shared_environ" = yes || dynamic=no
   if test "$ac_cv_func_tgetent" = yes; then
-    { echo "$as_me:$LINENO: checking if tgetent is available in shared libraries" >&5
-echo $ECHO_N "checking if tgetent is available in shared libraries... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking if tgetent is available in shared libraries" >&5
+$as_echo_n "checking if tgetent is available in shared libraries... " >&6; }
 if test "${zsh_cv_shared_tgetent+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
     us=_
@@ -19680,25 +20551,25 @@
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     if test "$cross_compiling" = yes; then
   zsh_cv_shared_tgetent=no
@@ -19770,29 +20641,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_shared_tgetent=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_shared_tgetent=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -19802,15 +20676,15 @@
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_shared_tgetent" >&5
-echo "${ECHO_T}$zsh_cv_shared_tgetent" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_shared_tgetent" >&5
+$as_echo "$zsh_cv_shared_tgetent" >&6; }
 
   fi
   if test "$ac_cv_func_tigetstr" = yes; then
-    { echo "$as_me:$LINENO: checking if tigetstr is available in shared libraries" >&5
-echo $ECHO_N "checking if tigetstr is available in shared libraries... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking if tigetstr is available in shared libraries" >&5
+$as_echo_n "checking if tigetstr is available in shared libraries... " >&6; }
 if test "${zsh_cv_shared_tigetstr+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
     us=_
@@ -19832,25 +20706,25 @@
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     if test "$cross_compiling" = yes; then
   zsh_cv_shared_tigetstr=no
@@ -19922,29 +20796,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_shared_tigetstr=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_shared_tigetstr=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -19954,17 +20831,17 @@
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_shared_tigetstr" >&5
-echo "${ECHO_T}$zsh_cv_shared_tigetstr" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_shared_tigetstr" >&5
+$as_echo "$zsh_cv_shared_tigetstr" >&6; }
 
   fi
 fi
 
 if test "x$dynamic" = xyes; then
-  { echo "$as_me:$LINENO: checking if name clashes in shared objects are OK" >&5
-echo $ECHO_N "checking if name clashes in shared objects are OK... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if name clashes in shared objects are OK" >&5
+$as_echo_n "checking if name clashes in shared objects are OK... " >&6; }
 if test "${zsh_cv_sys_dynamic_clash_ok+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
     us=_
@@ -19977,25 +20854,25 @@
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     if test "$cross_compiling" = yes; then
   zsh_cv_sys_dynamic_clash_ok=no
@@ -20057,29 +20934,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_dynamic_clash_ok=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_dynamic_clash_ok=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -20089,8 +20969,8 @@
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_clash_ok" >&5
-echo "${ECHO_T}$zsh_cv_sys_dynamic_clash_ok" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_clash_ok" >&5
+$as_echo "$zsh_cv_sys_dynamic_clash_ok" >&6; }
 if test "$zsh_cv_sys_dynamic_clash_ok" = yes; then
     cat >>confdefs.h <<\_ACEOF
 #define DYNAMIC_NAME_CLASH_OK 1
@@ -20098,10 +20978,10 @@
 
 fi
 
-  { echo "$as_me:$LINENO: checking for working RTLD_GLOBAL" >&5
-echo $ECHO_N "checking for working RTLD_GLOBAL... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for working RTLD_GLOBAL" >&5
+$as_echo_n "checking for working RTLD_GLOBAL... " >&6; }
 if test "${zsh_cv_sys_dynamic_rtld_global+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
     us=_
@@ -20114,25 +20994,25 @@
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     if test "$cross_compiling" = yes; then
   zsh_cv_sys_dynamic_rtld_global=no
@@ -20192,29 +21072,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_dynamic_rtld_global=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_dynamic_rtld_global=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -20224,14 +21107,14 @@
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_rtld_global" >&5
-echo "${ECHO_T}$zsh_cv_sys_dynamic_rtld_global" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_rtld_global" >&5
+$as_echo "$zsh_cv_sys_dynamic_rtld_global" >&6; }
 
   RTLD_GLOBAL_OK=$zsh_cv_sys_dynamic_rtld_global
-  { echo "$as_me:$LINENO: checking whether symbols in the executable are available" >&5
-echo $ECHO_N "checking whether symbols in the executable are available... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether symbols in the executable are available" >&5
+$as_echo_n "checking whether symbols in the executable are available... " >&6; }
 if test "${zsh_cv_sys_dynamic_execsyms+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
     us=_
@@ -20243,13 +21126,13 @@
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     save_ldflags=$LDFLAGS
     LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
@@ -20311,29 +21194,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_dynamic_execsyms=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_dynamic_execsyms=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -20344,17 +21230,17 @@
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_execsyms" >&5
-echo "${ECHO_T}$zsh_cv_sys_dynamic_execsyms" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_execsyms" >&5
+$as_echo "$zsh_cv_sys_dynamic_execsyms" >&6; }
 
   if test "$zsh_cv_sys_dynamic_execsyms" != yes; then
     L=L
   fi
 
-{ echo "$as_me:$LINENO: checking whether executables can be stripped" >&5
-echo $ECHO_N "checking whether executables can be stripped... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether executables can be stripped" >&5
+$as_echo_n "checking whether executables can be stripped... " >&6; }
 if test "${zsh_cv_sys_dynamic_strip_exe+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$zsh_cv_sys_dynamic_execsyms" != yes; then
     zsh_cv_sys_dynamic_strip_exe=yes
@@ -20369,13 +21255,13 @@
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
     { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     save_ldflags=$LDFLAGS
     LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS -s"
@@ -20437,29 +21323,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_dynamic_strip_exe=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_dynamic_strip_exe=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -20470,13 +21359,13 @@
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_strip_exe" >&5
-echo "${ECHO_T}$zsh_cv_sys_dynamic_strip_exe" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_strip_exe" >&5
+$as_echo "$zsh_cv_sys_dynamic_strip_exe" >&6; }
 
-  { echo "$as_me:$LINENO: checking whether libraries can be stripped" >&5
-echo $ECHO_N "checking whether libraries can be stripped... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether libraries can be stripped" >&5
+$as_echo_n "checking whether libraries can be stripped... " >&6; }
 if test "${zsh_cv_sys_dynamic_strip_lib+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
     us=_
@@ -20488,13 +21377,13 @@
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; } &&
 { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS -s conftest1.o $LIBS 1>&5'
   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
   (eval $ac_try) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     if test "$cross_compiling" = yes; then
   zsh_cv_sys_dynamic_strip_lib=no
@@ -20552,29 +21441,32 @@
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   zsh_cv_sys_dynamic_strip_lib=yes
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $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
 
 ( exit $ac_status )
 zsh_cv_sys_dynamic_strip_lib=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -20584,8 +21476,8 @@
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_strip_lib" >&5
-echo "${ECHO_T}$zsh_cv_sys_dynamic_strip_lib" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_strip_lib" >&5
+$as_echo "$zsh_cv_sys_dynamic_strip_lib" >&6; }
 
   if $strip_exeldflags && test "$zsh_cv_sys_dynamic_strip_exe" = yes; then
     EXELDFLAGS="$EXELDFLAGS -s"
@@ -20792,11 +21684,12 @@
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$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= ;; #(
       *) $as_unset $ac_var ;;
       esac ;;
     esac
@@ -20829,12 +21722,12 @@
 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 "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
+      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -20850,7 +21743,7 @@
 for ac_i in : $LIBOBJS; 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=`echo "$ac_i" | sed "$ac_script"`
+  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.
   ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -20863,11 +21756,12 @@
 
 
 : ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
 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
+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -20880,7 +21774,7 @@
 SHELL=\${CONFIG_SHELL-$SHELL}
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
@@ -20890,7 +21784,7 @@
 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
+  # 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
@@ -20912,17 +21806,45 @@
 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=';'
+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
+if (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
-    PATH_SEPARATOR=:
+    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
-  rm -f conf$$.sh
+  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
 
 # Support unset when possible.
@@ -20938,8 +21860,6 @@
 # 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.)
-as_nl='
-'
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
@@ -20962,7 +21882,7 @@
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   { (exit 1); exit 1; }
 fi
 
@@ -20975,17 +21895,10 @@
 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) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
 
 # Required to use basename.
 if expr a : '\(a\)' >/dev/null 2>&1 &&
@@ -21007,7 +21920,7 @@
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
+$as_echo X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -21058,7 +21971,7 @@
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+    { $as_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
@@ -21086,7 +21999,6 @@
 *)
   ECHO_N='-n';;
 esac
-
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -21099,19 +22011,22 @@
   rm -f conf$$.dir/conf$$.file
 else
   rm -f conf$$.dir
-  mkdir conf$$.dir
+  mkdir conf$$.dir 2>/dev/null
 fi
-echo >conf$$.file
-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 ||
+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'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
+  fi
 else
   as_ln_s='cp -p'
 fi
@@ -21136,10 +22051,10 @@
   as_test_x='
     eval sh -c '\''
       if test -d "$1"; then
-        test -d "$1/.";
+	test -d "$1/.";
       else
 	case $1 in
-        -*)set "./$1";;
+	-*)set "./$1";;
 	esac;
 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 	???[sx]*):;;*)false;;esac;fi
@@ -21162,7 +22077,7 @@
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -21175,7 +22090,16 @@
 
 _ACEOF
 
-cat >>$CONFIG_STATUS <<_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"
@@ -21183,22 +22107,23 @@
 
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
 current configuration.
 
-Usage: $0 [OPTIONS] [FILE]...
+Usage: $0 [OPTION]... [FILE]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
+  -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
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
 
 Configuration files:
 $config_files
@@ -21212,24 +22137,25 @@
 Report bugs to ."
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.61,
-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+configured by $0, generated by GNU Autoconf 2.63,
+  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2006 Free Software Foundation, Inc.
+Copyright (C) 2008 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'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
 _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.
+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
@@ -21251,30 +22177,36 @@
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    echo "$ac_cs_version"; exit ;;
+    $as_echo "$ac_cs_version"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    { echo "$as_me: error: ambiguous option: $1
+    { $as_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 ;;
+    $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.
-  -*) { echo "$as_me: error: unrecognized option: $1
+  -*) { $as_echo "$as_me: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; } ;;
 
@@ -21293,30 +22225,32 @@
 fi
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  CONFIG_SHELL=$SHELL
+  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 $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  exec "\$@"
 fi
 
 _ACEOF
-cat >>$CONFIG_STATUS <<\_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
-  echo "$ac_log"
+  $as_echo "$ac_log"
 } >&5
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 
 # Handling of arguments.
 for ac_config_target in $ac_config_targets
@@ -21332,8 +22266,8 @@
     "config.modules") CONFIG_COMMANDS="$CONFIG_COMMANDS config.modules" ;;
     "stamp-h") CONFIG_COMMANDS="$CONFIG_COMMANDS stamp-h" ;;
 
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
 done
@@ -21374,235 +22308,180 @@
   (umask 077 && mkdir "$tmp")
 } ||
 {
-   echo "$me: cannot create a temporary directory in ." >&2
+   $as_echo "$as_me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
+# 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
 
-_ACEOF
-
-# Create sed commands to just substitute file output variables.
-
-# Remaining file output variables are in a fragment that also has non-file
-# output varibles.
-
-
+if $AWK 'BEGIN { getline <"/dev/null" }' /dev/null; then
+  ac_cs_awk_getline=:
+  ac_cs_awk_pipe_init=
+  ac_cs_awk_read_file='
+      while ((getline aline < (F[key])) > 0)
+	print(aline)
+      close(F[key])'
+  ac_cs_awk_pipe_fini=
+else
+  ac_cs_awk_getline=false
+  ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\""
+  ac_cs_awk_read_file='
+      print "|#_!!_#|"
+      print "cat " F[key] " &&"
+      '$ac_cs_awk_pipe_init
+  # The final `:' finishes the AND list.
+  ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }'
+fi
+ac_cr='
'
+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 {' >"$tmp/subs1.awk" &&
+_ACEOF
+
+# Create commands to substitute file output variables.
+{
+  echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
+  echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' &&
+  echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
+  echo "_ACAWK" &&
+  echo "_ACEOF"
+} >conf$$files.sh &&
+. ./conf$$files.sh ||
+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+rm -f conf$$files.sh
 
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-tzsh!$tzsh$ac_delim
-zshenv!$zshenv$ac_delim
-zshrc!$zshrc$ac_delim
-zprofile!$zprofile$ac_delim
-zlogin!$zlogin$ac_delim
-zlogout!$zlogout$ac_delim
-fndir!$fndir$ac_delim
-sitefndir!$sitefndir$ac_delim
-FUNCTIONS_SUBDIRS!$FUNCTIONS_SUBDIRS$ac_delim
-scriptdir!$scriptdir$ac_delim
-sitescriptdir!$sitescriptdir$ac_delim
-CC!$CC$ac_delim
-CFLAGS!$CFLAGS$ac_delim
-LDFLAGS!$LDFLAGS$ac_delim
-CPPFLAGS!$CPPFLAGS$ac_delim
-ac_ct_CC!$ac_ct_CC$ac_delim
-EXEEXT!$EXEEXT$ac_delim
-OBJEXT!$OBJEXT$ac_delim
-EXELDFLAGS!$EXELDFLAGS$ac_delim
-LIBLDFLAGS!$LIBLDFLAGS$ac_delim
-CPP!$CPP$ac_delim
-GREP!$GREP$ac_delim
-EGREP!$EGREP$ac_delim
-U!$U$ac_delim
-ALLOCA!$ALLOCA$ac_delim
-SET_MAKE!$SET_MAKE$ac_delim
-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-INSTALL_DATA!$INSTALL_DATA$ac_delim
-AWK!$AWK$ac_delim
-LN!$LN$ac_delim
-YODL!$YODL$ac_delim
-PDFETEX!$PDFETEX$ac_delim
-TEXI2PDF!$TEXI2PDF$ac_delim
-TEXI2HTML!$TEXI2HTML$ac_delim
-ANSI2KNR!$ANSI2KNR$ac_delim
-PCRECONF!$PCRECONF$ac_delim
-SIGNAL_H!$SIGNAL_H$ac_delim
-ERRNO_H!$ERRNO_H$ac_delim
-ZSH_CURSES_H!$ZSH_CURSES_H$ac_delim
-_ACEOF
+  . ./conf$$subs.sh ||
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 85; then
+  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
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
    { (exit 1); exit 1; }; }
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
 done
+rm -f conf$$subs.sh
 
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-/^[	 ]*@CLEAN_MK@[	 ]*$/{
-r $CLEAN_MK
-d
-}
-/^[	 ]*@CONFIG_MK@[	 ]*$/{
-r $CONFIG_MK
-d
-}
-/^[	 ]*@DEFS_MK@[	 ]*$/{
-r $DEFS_MK
-d
-}
-/^[	 ]*@VERSION_MK@[	 ]*$/{
-r $VERSION_MK
-d
-}
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF
-CEOF$ac_eof
-_ACEOF
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-CURSES_KEYS_H!$CURSES_KEYS_H$ac_delim
-ZSH_TERM_H!$ZSH_TERM_H$ac_delim
-RLIMITS_INC_H!$RLIMITS_INC_H$ac_delim
-SHORTBOOTNAMES!$SHORTBOOTNAMES$ac_delim
-INSTLIB!$INSTLIB$ac_delim
-UNINSTLIB!$UNINSTLIB$ac_delim
-D!$D$ac_delim
-DL_EXT!$DL_EXT$ac_delim
-DLLD!$DLLD$ac_delim
-DLCFLAGS!$DLCFLAGS$ac_delim
-DLLDFLAGS!$DLLDFLAGS$ac_delim
-E!$E$ac_delim
-EXTRA_LDFLAGS!$EXTRA_LDFLAGS$ac_delim
-EXPOPT!$EXPOPT$ac_delim
-IMPOPT!$IMPOPT$ac_delim
-L!$L$ac_delim
-LINKMODS!$LINKMODS$ac_delim
-MOD_EXPORT!$MOD_EXPORT$ac_delim
-MOD_IMPORT_VARIABLE!$MOD_IMPORT_VARIABLE$ac_delim
-MOD_IMPORT_FUNCTION!$MOD_IMPORT_FUNCTION$ac_delim
-EXTRAZSHOBJS!$EXTRAZSHOBJS$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
+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 >>"\$tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+  \$ac_cs_awk_pipe_init
+}
+{
+  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
+  }
+  if (nfields == 3 && !substed) {
+    key = field[2]
+    if (F[key] != "" && line ~ /^[	 ]*@.*@[	 ]*$/) {
+      \$ac_cs_awk_read_file
+      next
+    }
+  }
+  print line
+}
+\$ac_cs_awk_pipe_fini
+_ACAWK
 _ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 23; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+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 < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+$as_echo "$as_me: error: could not setup config files machinery" >&2;}
    { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
-
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
 _ACEOF
 
-
 # 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
@@ -21618,19 +22497,133 @@
 }'
 fi
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+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 >"$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_t=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_t"; then
+    break
+  elif $ac_last_try; then
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
+   { (exit 1); exit 1; }; }
+  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_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
+$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
+   { (exit 1); exit 1; }; }
+fi # test -n "$CONFIG_HEADERS"
+
 
-for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
+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*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
    { (exit 1); exit 1; }; };;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
@@ -21659,26 +22652,38 @@
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
    { (exit 1); exit 1; }; };;
       esac
-      ac_file_inputs="$ac_file_inputs $ac_f"
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      ac_file_inputs="$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 "`IFS=:
-	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+    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"
-      { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
+      { $as_echo "$as_me:$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 >"$tmp/stdin";;
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; } ;;
     esac
     ;;
   esac
@@ -21688,7 +22693,7 @@
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$ac_file" |
+$as_echo X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -21714,7 +22719,7 @@
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -21723,7 +22728,7 @@
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
+$as_echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -21744,17 +22749,17 @@
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
   ac_builddir=.
 
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  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/ ;;
@@ -21794,12 +22799,13 @@
   esac
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_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=
 
-case `sed -n '/datarootdir/ {
+ac_sed_dataroot='
+/datarootdir/ {
   p
   q
 }
@@ -21808,13 +22814,14 @@
 /@infodir@/p
 /@localedir@/p
 /@mandir@/p
-' $ac_file_inputs` in
+'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { $as_echo "$as_me:$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
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
   s&@datadir@&$datadir&g
   s&@docdir@&$docdir&g
@@ -21828,15 +22835,16 @@
 # 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
-  sed "$ac_vpsub
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
 $extrasub
 _ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 :t
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
+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
@@ -21846,123 +22854,67 @@
 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 s&@INSTALL@&$ac_INSTALL&;t t
 $ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
+if $ac_cs_awk_getline; then
+  $AWK -f "$tmp/subs.awk"
+else
+  $AWK -f "$tmp/subs.awk" | $SHELL
+fi >$tmp/out \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+$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 "$tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out"; rm -f "$tmp/out";;
-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
-  esac
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  esac \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
  ;;
   :H)
   #
   # CONFIG_HEADER
   #
-_ACEOF
-
-# Transform confdefs.h into a sed script `conftest.defines', that
-# substitutes the proper values into config.h.in to produce config.h.
-rm -f conftest.defines conftest.tail
-# First, append a space to every undef/define line, to ease matching.
-echo 's/$/ /' >conftest.defines
-# Then, protect against being on the right side of a sed subst, or in
-# an unquoted here document, in config.status.  If some macros were
-# called several times there might be several #defines for the same
-# symbol, which is useless.  But do not sort them, since the last
-# AC_DEFINE must be honored.
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-# NAME is the cpp macro being defined, VALUE is the value it is being given.
-# PARAMS is the parameter list in the macro definition--in most cases, it's
-# just an empty string.
-ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
-ac_dB='\\)[	 (].*,\\1define\\2'
-ac_dC=' '
-ac_dD=' ,'
-
-uniq confdefs.h |
-  sed -n '
-	t rset
-	:rset
-	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
-	t ok
-	d
-	:ok
-	s/[\\&,]/\\&/g
-	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
-	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
-  ' >>conftest.defines
-
-# Remove the space that was appended to ease matching.
-# Then 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.
-# (The regexp can be short, since the line contains either #define or #undef.)
-echo 's/ $//
-s,^[	 #]*u.*,/* & */,' >>conftest.defines
-
-# Break up conftest.defines:
-ac_max_sed_lines=50
-
-# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-# et cetera.
-ac_in='$ac_file_inputs'
-ac_out='"$tmp/out1"'
-ac_nxt='"$tmp/out2"'
-
-while :
-do
-  # Write a here document:
-    cat >>$CONFIG_STATUS <<_ACEOF
-    # First, check the format of the line:
-    cat >"\$tmp/defines.sed" <<\\CEOF
-/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
-/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
-b
-:def
-_ACEOF
-  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
-  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
-  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
-  grep . conftest.tail >/dev/null || break
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines conftest.tail
-
-echo "ac_result=$ac_in" >>$CONFIG_STATUS
-cat >>$CONFIG_STATUS <<\_ACEOF
   if test x"$ac_file" != x-; then
-    echo "/* $configure_input  */" >"$tmp/config.h"
-    cat "$ac_result" >>"$tmp/config.h"
-    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;}
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+    } >"$tmp/config.h" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
-      rm -f $ac_file
-      mv "$tmp/config.h" $ac_file
+      rm -f "$ac_file"
+      mv "$tmp/config.h" "$ac_file" \
+	|| { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
     fi
   else
-    echo "/* $configure_input  */"
-    cat "$ac_result"
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
+$as_echo "$as_me: error: could not create -" >&2;}
+   { (exit 1); exit 1; }; }
   fi
-  rm -f "$tmp/out12"
  ;;
 
-  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
-echo "$as_me: executing $ac_file commands" >&6;}
+  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
 
@@ -21980,6 +22932,11 @@
 chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
+test $ac_write_fail = 0 ||
+  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
 
 # configure is writing to config.log, and then calls config.status.
 # config.status does its own redirection, appending to config.log.
@@ -22001,6 +22958,10 @@
   # would make configure fail if this is the last instruction.
   $ac_cs_success || { (exit 1); exit 1; }
 fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
 
 
 eval "zshbin1=${bindir}"
diff -Nru zsh-4.3.10/configure.ac zsh-4.3.11/configure.ac
--- zsh-4.3.10/configure.ac	2009-06-01 11:03:35.000000000 +0200
+++ zsh-4.3.11/configure.ac	2010-09-23 11:42:05.000000000 +0200
@@ -462,8 +462,9 @@
 AC_C_CONST                  dnl Does compiler support `const'.
 
 dnl Default preprocessing on Mac OS X produces warnings
+dnl Mac OS X 10.6 (darwin10.x.x) does not need this.
 case "$host_os" in
-  darwin*) CPP="$CPP -traditional-cpp" ;;
+  darwin[[0-9]].*) CPP="$CPP -traditional-cpp" ;;
 esac
 
 fp_PROG_CC_STDC
@@ -1168,7 +1169,8 @@
 	       htons ntohs \
 	       regcomp regexec regerror regfree \
 	       gdbm_open getxattr \
-	       realpath canonicalize_file_name)
+	       realpath canonicalize_file_name \
+	       symlink getcwd)
 AC_FUNC_STRCOLL
 
 if test x$enable_cap = xyes; then
@@ -1345,7 +1347,7 @@
 dnl The backslash substitution is to persuade cygwin to cough up
 dnl slashes rather than doubled backslashes in the path.
 echo "#include " > nametmp.c
-sigfile_list="`$CPP nametmp.c |
+sigfile_list="`$CPP $CPPFLAGS nametmp.c |
 sed -n -e 's/^#line[ 	].*\"\(.*\)\"/\1/p' \
        -e 's/^#[ 	].*\"\(.*\)\"/\1/p' |
 sed 's/\\\\\\\\/\//g' |
@@ -1393,7 +1395,7 @@
 dnl The backslash substitution is to persuade cygwin to cough up
 dnl slashes rather than doubled backslashes in the path.
 echo "#include " > nametmp.c
-errfile_list="`$CPP nametmp.c |
+errfile_list="`$CPP $CPPFLAGS nametmp.c |
 sed -n -e 's/^#line[ 	].*\"\(.*\)\"/\1/p' \
        -e 's/^#[ 	0-9].*\"\(.*\)\"/\1/p' |
 sed 's/\\\\\\\\/\//g' |
@@ -1462,7 +1464,7 @@
   echo "#include <$zsh_cv_path_curses_header>" >nametmp.c
 fi
 
-curses_list="`$CPP nametmp.c |
+curses_list="`$CPP $CPPFLAGS nametmp.c |
 sed -n -e 's/^#line[ 	].*\"\(.*\)\"/\1/p' \
        -e 's/^#[ 	0-9].*\"\(.*\)\"/\1/p' |
 sed 's/\\\\\\\\/\//g' |
@@ -1584,7 +1586,7 @@
 [dnl Look at the output from the preprocessor.
 dnl Copied from the search for the signal names above.
 echo "#include " >restmp.c
-resourcefile_list="`$CPP restmp.c |
+resourcefile_list="`$CPP $CPPFLAGS restmp.c |
 sed -n -e 's/^#line[ 	].*\"\(.*\)\"/\1/p' \
        -e 's/^#[ 	].*\"\(.*\)\"/\1/p' |
 sed 's/\\\\\\\\/\//g' |
@@ -1896,6 +1898,34 @@
   AC_DEFINE(USE_GETCWD)
 fi
 
+dnl GNU getcwd() can allocate as much space as necessary for a
+dnl directory name, preventing guessing games.
+AH_TEMPLATE([GETCWD_CALLS_MALLOC],
+[Define to 1 if getcwd() calls malloc to allocate memory.])
+if test x$ac_cv_func_getcwd = xyes; then
+  AC_CACHE_CHECK(whether getcwd calls malloc to allocate memory,
+  zsh_cv_getcwd_malloc,
+  [AC_TRY_RUN([
+#include 
+#include 
+int main() {
+    char buf[1024], *ptr1, *ptr2;
+    ptr1 = getcwd(buf, 1024);
+    ptr2 = getcwd(NULL, 0);
+    if (ptr1 && ptr2 && !strcmp(ptr1, ptr2)) {
+      return 0;
+    }
+    return 1;
+}
+],
+  zsh_cv_getcwd_malloc=yes,
+  zsh_cv_getcwd_malloc=no,
+  zsh_cv_getcwd_malloc=no)])
+  if test x$zsh_cv_getcwd_malloc = xyes; then
+    AC_DEFINE(GETCWD_CALLS_MALLOC)
+  fi
+fi
+
 dnl CHECK FOR setproctitle() FOR jobs -Z / ARGV0
 AH_TEMPLATE([HAVE_SETPROCTITLE],
 [Define to 1 if the system supports `setproctitle' to change process name])
diff -Nru zsh-4.3.10/debian/changelog zsh-4.3.11/debian/changelog
--- zsh-4.3.10/debian/changelog	2010-11-04 07:56:29.000000000 +0100
+++ zsh-4.3.11/debian/changelog	2011-01-09 16:45:58.000000000 +0100
@@ -1,3 +1,33 @@
+zsh (4.3.11-1ubuntu1) natty; urgency=low
+
+  * Merge from debian unstable. (LP: #700695) Remaining changes:
+    - debian/zshrc: Enable completions by default, unless
+      skip_global_compinit is set
+
+ -- Angel Abad   Sun, 09 Jan 2011 16:40:44 +0100
+
+zsh (4.3.11-1) unstable; urgency=low
+
+  * New upstream release.
+
+ -- Clint Adams   Sat, 25 Dec 2010 09:36:19 -0500
+
+zsh (4.3.10-17) unstable; urgency=low
+
+  * Various git completion fixes.
+  * Complete filenames instead of packages for reportbug if the word
+    begins with a slash.  closes: #538090.
+
+ -- Clint Adams   Sun, 14 Nov 2010 15:39:46 -0500
+
+zsh (4.3.10-16) unstable; urgency=low
+
+  * Add git-buildpackage completion from Felipe Sateler.
+    closes: #602962.
+  * setopt histignorealldups in the recommended user .zshrc.
+
+ -- Clint Adams   Thu, 11 Nov 2010 14:16:01 -0500
+
 zsh (4.3.10-15ubuntu1) natty; urgency=low
 
   * Merge from debian unstable(LP: #669470). Remaining changes:
@@ -3551,4 +3581,3 @@
   * Added Joey Hess's compctl example for dpkg to /usr/doc/zsh/examples
 
  -- Clint Adams   Thu, 24 Jul 1997 13:42:49 -0400
-
diff -Nru zsh-4.3.10/debian/control zsh-4.3.11/debian/control
--- zsh-4.3.10/debian/control	2010-11-04 07:56:29.000000000 +0100
+++ zsh-4.3.11/debian/control	2011-01-09 16:42:01.000000000 +0100
@@ -1,9 +1,9 @@
 Source: zsh
 Section: shells
 Priority: optional
-Maintainer: Ubuntu Developers 
-XSBC-Original-Maintainer: Clint Adams 
 Build-Depends: texinfo, groff-base, libncursesw5-dev, texi2html (>= 1.76-3), libcap-dev [!hurd-i386 !kfreebsd-i386 !kfreebsd-amd64], bsdmainutils, libpcre3-dev, texlive-latex-base
+Maintainer: Ubuntu Developers 
+XSBC-Original-Maintainer: Clint Adams 
 Standards-Version: 3.9.1
 Homepage: http://www.zsh.org/
 Vcs-Git: git://git.debian.org/git/private/schizo/zsh.git
diff -Nru zsh-4.3.10/debian/newuser.zshrc.recommended zsh-4.3.11/debian/newuser.zshrc.recommended
--- zsh-4.3.10/debian/newuser.zshrc.recommended	2010-08-10 20:59:29.000000000 +0200
+++ zsh-4.3.11/debian/newuser.zshrc.recommended	2010-12-26 00:59:11.000000000 +0100
@@ -4,6 +4,8 @@
 promptinit
 prompt walters
 
+setopt histignorealldups
+
 # Use emacs keybindings even if our EDITOR is set to vi
 bindkey -e
 
diff -Nru zsh-4.3.10/debian/patches/debian-changes-4.3.10-15 zsh-4.3.11/debian/patches/debian-changes-4.3.10-15
--- zsh-4.3.10/debian/patches/debian-changes-4.3.10-15	2010-08-10 21:02:04.000000000 +0200
+++ zsh-4.3.11/debian/patches/debian-changes-4.3.10-15	1970-01-01 01:00:00.000000000 +0100
@@ -1,18002 +0,0 @@
-Description: Upstream changes introduced in version 4.3.10-15
- This patch has been created by dpkg-source during the package build.
- Here's the last changelog entry, hopefully it gives details on why
- those changes were made:
- .
- zsh (4.3.10-15) unstable; urgency=low
- .
-   * Update carstenh.zshrc example.
-   * Patch from Александр Новиченко to fix recexact segfault in
-     completion.  closes: #590736.
-   * Bump to Standards-Version 3.9.1.
-   * Fix zsh-newuser-install newline placement.  closes: #591144.
- .
- The person named in the Author field signed this changelog entry.
-Author: Clint Adams 
-Bug-Debian: http://bugs.debian.org/590736
-Bug-Debian: http://bugs.debian.org/591144
-
----
-The information above should follow the Patch Tagging Guidelines, please
-checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
-are templates for supplementary fields that you might want to add:
-
-Origin: , 
-Bug: 
-Bug-Debian: http://bugs.debian.org/
-Bug-Ubuntu: https://launchpad.net/bugs/
-Forwarded: 
-Reviewed-By: 
-Last-Update: 
-
---- zsh-4.3.10.orig/configure
-+++ zsh-4.3.10/configure
-@@ -1,9 +1,9 @@
- #! /bin/sh
- # Guess values for system-dependent variables and create Makefiles.
--# Generated by GNU Autoconf 2.61.
-+# Generated by GNU Autoconf 2.63.
- #
- # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
--# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
- # This configure script is free software; the Free Software Foundation
- # gives unlimited permission to copy, distribute and modify it.
- ## --------------------- ##
-@@ -15,7 +15,7 @@ DUALCASE=1; export DUALCASE # for MKS sh
- 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
-+  # 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
-@@ -37,17 +37,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTE
- 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=';'
-+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
-+if (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
--    PATH_SEPARATOR=:
-+    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
--  rm -f conf$$.sh
-+  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
- 
- # Support unset when possible.
-@@ -63,8 +91,6 @@ fi
- # 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.)
--as_nl='
--'
- IFS=" ""	$as_nl"
- 
- # Find who we are.  Look in the path if we contain no directory separator.
-@@ -87,7 +113,7 @@ if test "x$as_myself" = x; then
-   as_myself=$0
- fi
- if test ! -f "$as_myself"; then
--  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-   { (exit 1); exit 1; }
- fi
- 
-@@ -100,17 +126,10 @@ 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) >/dev/null 2>&1 && $as_unset $as_var
--  fi
--done
-+LC_ALL=C
-+export LC_ALL
-+LANGUAGE=C
-+export LANGUAGE
- 
- # Required to use basename.
- if expr a : '\(a\)' >/dev/null 2>&1 &&
-@@ -132,7 +151,7 @@ as_me=`$as_basename -- "$0" ||
- $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- 	 X"$0" : 'X\(//\)$' \| \
- 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
--echo X/"$0" |
-+$as_echo X/"$0" |
-     sed '/^.*\/\([^/][^/]*\)\/*$/{
- 	    s//\1/
- 	    q
-@@ -158,7 +177,7 @@ else
-   as_have_required=no
- fi
- 
--  if test $as_have_required = yes && 	 (eval ":
-+  if test $as_have_required = yes &&	 (eval ":
- (as_func_return () {
-   (exit \$1)
- }
-@@ -240,7 +259,7 @@ IFS=$as_save_IFS
- 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
-+  # 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
-@@ -261,7 +280,7 @@ _ASEOF
- 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
-+  # 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
-@@ -341,10 +360,10 @@ fi
- 
-       if test "x$CONFIG_SHELL" != x; then
-   for as_var in BASH_ENV ENV
--        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
--        done
--        export CONFIG_SHELL
--        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
-+	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-+	done
-+	export CONFIG_SHELL
-+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
- fi
- 
- 
-@@ -413,9 +432,10 @@ fi
- 
- test \$exitcode = 0") || {
-   echo No shell found that supports shell functions.
--  echo Please tell autoconf@gnu.org about your system,
--  echo including any error possibly output before this
--  echo message
-+  echo Please tell bug-autoconf@gnu.org about your system,
-+  echo including any error possibly output before this message.
-+  echo This can help us improve future autoconf versions.
-+  echo Configuration will now proceed without shell functions.
- }
- 
- 
-@@ -451,7 +471,7 @@ test \$exitcode = 0") || {
-       s/-\n.*//
-     ' >$as_me.lineno &&
-   chmod +x "$as_me.lineno" ||
--    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-+    { $as_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
-@@ -479,7 +499,6 @@ case `echo -n x` in
- *)
-   ECHO_N='-n';;
- esac
--
- if expr a : '\(a\)' >/dev/null 2>&1 &&
-    test "X`expr 00001 : '.*\(...\)'`" = X001; then
-   as_expr=expr
-@@ -492,19 +511,22 @@ if test -d conf$$.dir; then
-   rm -f conf$$.dir/conf$$.file
- else
-   rm -f conf$$.dir
--  mkdir conf$$.dir
-+  mkdir conf$$.dir 2>/dev/null
- fi
--echo >conf$$.file
--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 ||
-+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'
--elif ln conf$$.file conf$$ 2>/dev/null; then
--  as_ln_s=ln
-+  fi
- else
-   as_ln_s='cp -p'
- fi
-@@ -529,10 +551,10 @@ else
-   as_test_x='
-     eval sh -c '\''
-       if test -d "$1"; then
--        test -d "$1/.";
-+	test -d "$1/.";
-       else
- 	case $1 in
--        -*)set "./$1";;
-+	-*)set "./$1";;
- 	esac;
- 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- 	???[sx]*):;;*)false;;esac;fi
-@@ -613,118 +635,158 @@ ac_includes_default="\
- # 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
--datarootdir
--datadir
--sysconfdir
--sharedstatedir
--localstatedir
--includedir
--oldincludedir
--docdir
--infodir
--htmldir
--dvidir
--pdfdir
--psdir
--libdir
--localedir
--mandir
--DEFS
--ECHO_C
--ECHO_N
--ECHO_T
--LIBS
--build_alias
--host_alias
--target_alias
--build
--build_cpu
--build_vendor
--build_os
--host
--host_cpu
--host_vendor
--host_os
--tzsh
--zshenv
--zshrc
--zprofile
--zlogin
--zlogout
--fndir
--sitefndir
--FUNCTIONS_SUBDIRS
--scriptdir
--sitescriptdir
--CC
--CFLAGS
--LDFLAGS
--CPPFLAGS
--ac_ct_CC
--EXEEXT
--OBJEXT
--EXELDFLAGS
--LIBLDFLAGS
--CPP
--GREP
--EGREP
--U
--ALLOCA
--SET_MAKE
--INSTALL_PROGRAM
--INSTALL_SCRIPT
--INSTALL_DATA
--AWK
--LN
--YODL
--PDFETEX
--TEXI2PDF
--TEXI2HTML
--ANSI2KNR
--PCRECONF
--SIGNAL_H
--ERRNO_H
--ZSH_CURSES_H
--CURSES_KEYS_H
--ZSH_TERM_H
--RLIMITS_INC_H
--SHORTBOOTNAMES
--INSTLIB
--UNINSTLIB
--D
--DL_EXT
--DLLD
--DLCFLAGS
--DLLDFLAGS
--E
--EXTRA_LDFLAGS
--EXPOPT
--IMPOPT
--L
--LINKMODS
--MOD_EXPORT
--MOD_IMPORT_VARIABLE
--MOD_IMPORT_FUNCTION
--EXTRAZSHOBJS
-+ac_subst_vars='LTLIBOBJS
- LIBOBJS
--LTLIBOBJS'
-+EXTRAZSHOBJS
-+MOD_IMPORT_FUNCTION
-+MOD_IMPORT_VARIABLE
-+MOD_EXPORT
-+LINKMODS
-+L
-+IMPOPT
-+EXPOPT
-+EXTRA_LDFLAGS
-+E
-+DLLDFLAGS
-+DLCFLAGS
-+DLLD
-+DL_EXT
-+D
-+UNINSTLIB
-+INSTLIB
-+SHORTBOOTNAMES
-+RLIMITS_INC_H
-+ZSH_TERM_H
-+CURSES_KEYS_H
-+ZSH_CURSES_H
-+ERRNO_H
-+SIGNAL_H
-+PCRECONF
-+ANSI2KNR
-+TEXI2HTML
-+TEXI2PDF
-+PDFETEX
-+YODL
-+LN
-+AWK
-+INSTALL_DATA
-+INSTALL_SCRIPT
-+INSTALL_PROGRAM
-+SET_MAKE
-+ALLOCA
-+U
-+EGREP
-+GREP
-+CPP
-+LIBLDFLAGS
-+EXELDFLAGS
-+OBJEXT
-+EXEEXT
-+ac_ct_CC
-+CPPFLAGS
-+LDFLAGS
-+CFLAGS
-+CC
-+sitescriptdir
-+scriptdir
-+FUNCTIONS_SUBDIRS
-+sitefndir
-+fndir
-+zlogout
-+zlogin
-+zprofile
-+zshrc
-+zshenv
-+tzsh
-+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_BUGREPORT
-+PACKAGE_STRING
-+PACKAGE_VERSION
-+PACKAGE_TARNAME
-+PACKAGE_NAME
-+PATH_SEPARATOR
-+SHELL'
- ac_subst_files='CLEAN_MK
- CONFIG_MK
- DEFS_MK
- VERSION_MK'
-+ac_user_opts='
-+enable_option_checking
-+enable_cppflags
-+enable_cflags
-+enable_ldflags
-+enable_libs
-+enable_zsh_debug
-+enable_zsh_mem
-+enable_zsh_mem_debug
-+enable_zsh_mem_warning
-+enable_zsh_secure_free
-+enable_zsh_hash_debug
-+enable_etcdir
-+enable_zshenv
-+enable_zshrc
-+enable_zprofile
-+enable_zlogin
-+enable_zlogout
-+enable_dynamic
-+enable_restricted_r
-+enable_locale
-+enable_ansi2knr
-+enable_fndir
-+enable_site_fndir
-+enable_function_subdirs
-+enable_scriptdir
-+enable_site_scriptdir
-+enable_custom_patchlevel
-+enable_maildir_support
-+enable_max_function_depth
-+enable_readnullcmd
-+enable_pcre
-+enable_cap
-+enable_gdbm
-+enable_largefile
-+with_term_lib
-+with_tcsetpgrp
-+enable_multibyte
-+enable_dynamic_nss
-+'
-       ac_precious_vars='build_alias
- host_alias
- target_alias
-@@ -739,6 +801,8 @@ CPP'
- # 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
-@@ -837,13 +901,21 @@ do
-     datarootdir=$ac_optarg ;;
- 
-   -disable-* | --disable-*)
--    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-+    ac_useropt=`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
-+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-    { (exit 1); exit 1; }; }
--    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
--    eval enable_$ac_feature=no ;;
-+    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 ;;
-@@ -856,13 +928,21 @@ do
-     dvidir=$ac_optarg ;;
- 
-   -enable-* | --enable-*)
--    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-+    ac_useropt=`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
-+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-    { (exit 1); exit 1; }; }
--    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
--    eval enable_$ac_feature=\$ac_optarg ;;
-+    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- \
-@@ -1053,22 +1133,38 @@ do
-     ac_init_version=: ;;
- 
-   -with-* | --with-*)
--    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-+    ac_useropt=`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
-+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-    { (exit 1); exit 1; }; }
--    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
--    eval with_$ac_package=\$ac_optarg ;;
-+    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_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-+    ac_useropt=`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
-+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-    { (exit 1); exit 1; }; }
--    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
--    eval with_$ac_package=no ;;
-+    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.
-@@ -1088,7 +1184,7 @@ do
-   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-     x_libraries=$ac_optarg ;;
- 
--  -*) { echo "$as_me: error: unrecognized option: $ac_option
-+  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
- Try \`$0 --help' for more information." >&2
-    { (exit 1); exit 1; }; }
-     ;;
-@@ -1097,16 +1193,16 @@ Try \`$0 --help' for more information."
-     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
-+      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-    { (exit 1); exit 1; }; }
-     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
-+    $as_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
-+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-     : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
-     ;;
- 
-@@ -1115,22 +1211,38 @@ 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
-+  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
-    { (exit 1); exit 1; }; }
- fi
- 
--# Be sure to have absolute directory names.
-+if test -n "$ac_unrecognized_opts"; then
-+  case $enable_option_checking in
-+    no) ;;
-+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
-+   { (exit 1); exit 1; }; } ;;
-+    *)     $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
--  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-+  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-    { (exit 1); exit 1; }; }
- done
- 
-@@ -1145,7 +1257,7 @@ target=$target_alias
- 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.
-+    $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
-@@ -1161,10 +1273,10 @@ 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 .` ||
--  { echo "$as_me: error: Working directory cannot be determined" >&2
-+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
-    { (exit 1); exit 1; }; }
- test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
--  { echo "$as_me: error: pwd does not report name of working directory" >&2
-+  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
-    { (exit 1); exit 1; }; }
- 
- 
-@@ -1172,12 +1284,12 @@ test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
- if test -z "$srcdir"; then
-   ac_srcdir_defaulted=yes
-   # Try the directory containing this script, then the parent directory.
--  ac_confdir=`$as_dirname -- "$0" ||
--$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
--	 X"$0" : 'X\(//\)[^/]' \| \
--	 X"$0" : 'X\(//\)$' \| \
--	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
--echo X"$0" |
-+  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
-@@ -1204,12 +1316,12 @@ else
- fi
- if test ! -r "$srcdir/$ac_unique_file"; then
-   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
--  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-+  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-    { (exit 1); exit 1; }; }
- fi
- ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
- ac_abs_confdir=`(
--	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
-+	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
-    { (exit 1); exit 1; }; }
- 	pwd)`
- # When building in place, set srcdir=.
-@@ -1258,9 +1370,9 @@ Configuration:
- 
- Installation directories:
-   --prefix=PREFIX         install architecture-independent files in PREFIX
--			  [$ac_default_prefix]
-+                          [$ac_default_prefix]
-   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
--			  [PREFIX]
-+                          [PREFIX]
- 
- By default, \`make install' will install all the files in
- \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-@@ -1270,25 +1382,25 @@ 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/PACKAGE]
--  --htmldir=DIR          html documentation [DOCDIR]
--  --dvidir=DIR           dvi documentation [DOCDIR]
--  --pdfdir=DIR           pdf documentation [DOCDIR]
--  --psdir=DIR            ps documentation [DOCDIR]
-+  --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/PACKAGE]
-+  --htmldir=DIR           html documentation [DOCDIR]
-+  --dvidir=DIR            dvi documentation [DOCDIR]
-+  --pdfdir=DIR            pdf documentation [DOCDIR]
-+  --psdir=DIR             ps documentation [DOCDIR]
- _ACEOF
- 
-   cat <<\_ACEOF
-@@ -1309,6 +1421,7 @@ if test -n "$ac_init_help"; then
-   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-cppflags=...   specify C preprocessor flags
-@@ -1384,15 +1497,17 @@ 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" || 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=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-   # A ".." for each directory in $ac_dir_suffix.
--  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-+  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/ ;;
-@@ -1428,7 +1543,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_
-       echo &&
-       $SHELL "$ac_srcdir/configure" --help=recursive
-     else
--      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-     fi || ac_status=$?
-     cd "$ac_pwd" || { ac_status=$?; break; }
-   done
-@@ -1438,10 +1553,10 @@ test -n "$ac_init_help" && exit $ac_stat
- if $ac_init_version; then
-   cat <<\_ACEOF
- configure
--generated by GNU Autoconf 2.61
-+generated by GNU Autoconf 2.63
- 
- Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
--2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
-+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
- This configure script is free software; the Free Software Foundation
- gives unlimited permission to copy, distribute and modify it.
- _ACEOF
-@@ -1452,7 +1567,7 @@ This file contains any messages produced
- running configure, to aid debugging if configure makes a mistake.
- 
- It was created by $as_me, which was
--generated by GNU Autoconf 2.61.  Invocation command line was
-+generated by GNU Autoconf 2.63.  Invocation command line was
- 
-   $ $0 $@
- 
-@@ -1488,7 +1603,7 @@ for as_dir in $PATH
- do
-   IFS=$as_save_IFS
-   test -z "$as_dir" && as_dir=.
--  echo "PATH: $as_dir"
-+  $as_echo "PATH: $as_dir"
- done
- IFS=$as_save_IFS
- 
-@@ -1523,7 +1638,7 @@ do
-     | -silent | --silent | --silen | --sile | --sil)
-       continue ;;
-     *\'*)
--      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-     esac
-     case $ac_pass in
-     1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
-@@ -1575,11 +1690,12 @@ _ASBOX
-     case $ac_val in #(
-     *${as_nl}*)
-       case $ac_var in #(
--      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
--echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-+      *_cv_*) { $as_echo "$as_me:$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= ;; #(
-       *) $as_unset $ac_var ;;
-       esac ;;
-     esac
-@@ -1609,9 +1725,9 @@ _ASBOX
-     do
-       eval ac_val=\$$ac_var
-       case $ac_val in
--      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-       esac
--      echo "$ac_var='\''$ac_val'\''"
-+      $as_echo "$ac_var='\''$ac_val'\''"
-     done | sort
-     echo
- 
-@@ -1626,9 +1742,9 @@ _ASBOX
-       do
- 	eval ac_val=\$$ac_var
- 	case $ac_val in
--	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
- 	esac
--	echo "$ac_var='\''$ac_val'\''"
-+	$as_echo "$ac_var='\''$ac_val'\''"
-       done | sort
-       echo
-     fi
-@@ -1644,8 +1760,8 @@ _ASBOX
-       echo
-     fi
-     test "$ac_signal" != 0 &&
--      echo "$as_me: caught signal $ac_signal"
--    echo "$as_me: exit $exit_status"
-+      $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 &&
-@@ -1687,21 +1803,24 @@ _ACEOF
- 
- 
- # Let the site file select an alternate cache file if it wants to.
--# Prefer explicitly selected file to automatically selected ones.
-+# Prefer an explicitly selected file to automatically selected ones.
-+ac_site_file1=NONE
-+ac_site_file2=NONE
- if test -n "$CONFIG_SITE"; then
--  set x "$CONFIG_SITE"
-+  ac_site_file1=$CONFIG_SITE
- elif test "x$prefix" != xNONE; then
--  set x "$prefix/share/config.site" "$prefix/etc/config.site"
-+  ac_site_file1=$prefix/share/config.site
-+  ac_site_file2=$prefix/etc/config.site
- else
--  set x "$ac_default_prefix/share/config.site" \
--	"$ac_default_prefix/etc/config.site"
-+  ac_site_file1=$ac_default_prefix/share/config.site
-+  ac_site_file2=$ac_default_prefix/etc/config.site
- fi
--shift
--for ac_site_file
-+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
- do
-+  test "x$ac_site_file" = xNONE && continue
-   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;}
-+    { $as_echo "$as_me:$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"
-   fi
-@@ -1711,16 +1830,16 @@ 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;}
-+    { $as_echo "$as_me:$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
--  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
--echo "$as_me: creating cache $cache_file" >&6;}
-+  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
-+$as_echo "$as_me: creating cache $cache_file" >&6;}
-   >$cache_file
- fi
- 
-@@ -1734,29 +1853,38 @@ for ac_var in $ac_precious_vars; do
-   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;}
-+      { $as_echo "$as_me:$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)
--      { 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;}
-+      { $as_echo "$as_me:$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
--	{ 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=:
-+	# 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:$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:$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:$LINENO:   former value:  \`$ac_old_val'" >&5
-+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-+	{ $as_echo "$as_me:$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=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-+    *\'*) 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
-@@ -1766,10 +1894,12 @@ echo "$as_me:   current value: $ac_new_v
-   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;}
-+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+  { $as_echo "$as_me:$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_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-    { (exit 1); exit 1; }; }
- fi
- 
-@@ -1820,8 +1950,8 @@ for ac_dir in "$srcdir" "$srcdir/.." "$s
-   fi
- done
- if test -z "$ac_aux_dir"; then
--  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
--echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-+  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-    { (exit 1); exit 1; }; }
- fi
- 
-@@ -1836,34 +1966,34 @@ ac_configure="$SHELL $ac_aux_dir/configu
- 
- # Make sure we can run config.sub.
- $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
--  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
--echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-+  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-+$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/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; }
-+{ $as_echo "$as_me:$LINENO: checking build system type" >&5
-+$as_echo_n "checking build system type... " >&6; }
- if test "${ac_cv_build+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $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 &&
--  { { 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;}
-+  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-+$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-    { (exit 1); exit 1; }; }
- ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
--  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
--echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-+  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_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; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-+$as_echo "$ac_cv_build" >&6; }
- case $ac_cv_build in
- *-*-*) ;;
--*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
--echo "$as_me: error: invalid value of canonical build" >&2;}
-+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-+$as_echo "$as_me: error: invalid value of canonical build" >&2;}
-    { (exit 1); exit 1; }; };;
- esac
- build=$ac_cv_build
-@@ -1880,27 +2010,27 @@ IFS=$ac_save_IFS
- case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
- 
- 
--{ echo "$as_me:$LINENO: checking host system type" >&5
--echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking host system type" >&5
-+$as_echo_n "checking host system type... " >&6; }
- if test "${ac_cv_host+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $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` ||
--    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
--echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-+    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-    { (exit 1); exit 1; }; }
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
--echo "${ECHO_T}$ac_cv_host" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-+$as_echo "$ac_cv_host" >&6; }
- case $ac_cv_host in
- *-*-*) ;;
--*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
--echo "$as_me: error: invalid value of canonical host" >&2;}
-+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-+$as_echo "$as_me: error: invalid value of canonical host" >&2;}
-    { (exit 1); exit 1; }; };;
- esac
- host=$ac_cv_host
-@@ -1938,13 +2068,10 @@ test "$program_prefix" != NONE &&
- # Use a double $ so make ignores it.
- test "$program_suffix" != NONE &&
-   program_transform_name="s&\$&$program_suffix&;$program_transform_name"
--# Double any \ or $.  echo might interpret backslashes.
-+# Double any \ or $.
- # By default was `s,x,x', remove it if useless.
--cat <<\_ACEOF >conftest.sed
--s/[\\$]/&&/g;s/;s,x,x,$//
--_ACEOF
--program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
--rm -f conftest.sed
-+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
-+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
- 
- # Un-double any \ or $ (doubled by AC_ARG_PROGRAM).
- cat <<\EOF_SED > conftestsed
-@@ -2409,10 +2536,10 @@ 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$CC"; then
-   ac_cv_prog_CC="$CC" # Let the user override the test.
-@@ -2425,7 +2552,7 @@ do
-   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"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -2436,11 +2563,11 @@ fi
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
--  { echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-+$as_echo "$CC" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -2449,10 +2576,10 @@ 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $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.
-@@ -2465,7 +2592,7 @@ do
-   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"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -2476,11 +2603,11 @@ 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; }
-+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-+$as_echo "$ac_ct_CC" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
-   if test "x$ac_ct_CC" = x; then
-@@ -2488,12 +2615,8 @@ fi
-   else
-     case $cross_compiling:$ac_tool_warned in
- yes:)
--{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
--whose name does not start with the host triplet.  If you think this
--configuration is useful to you, please write to autoconf@gnu.org." >&5
--echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
--whose name does not start with the host triplet.  If you think this
--configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-+{ $as_echo "$as_me:$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
-@@ -2506,10 +2629,10 @@ 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$CC"; then
-   ac_cv_prog_CC="$CC" # Let the user override the test.
-@@ -2522,7 +2645,7 @@ do
-   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"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -2533,11 +2656,11 @@ fi
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
--  { echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-+$as_echo "$CC" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -2546,10 +2669,10 @@ 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$CC"; then
-   ac_cv_prog_CC="$CC" # Let the user override the test.
-@@ -2567,7 +2690,7 @@ do
-        continue
-      fi
-     ac_cv_prog_CC="cc"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -2590,11 +2713,11 @@ fi
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
--  { echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-+$as_echo "$CC" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -2605,10 +2728,10 @@ if test -z "$CC"; then
-   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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$CC"; then
-   ac_cv_prog_CC="$CC" # Let the user override the test.
-@@ -2621,7 +2744,7 @@ do
-   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"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -2632,11 +2755,11 @@ fi
- fi
- CC=$ac_cv_prog_CC
- if test -n "$CC"; then
--  { echo "$as_me:$LINENO: result: $CC" >&5
--echo "${ECHO_T}$CC" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
-+$as_echo "$CC" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -2649,10 +2772,10 @@ if test -z "$CC"; then
- 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $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.
-@@ -2665,7 +2788,7 @@ do
-   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"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -2676,11 +2799,11 @@ 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; }
-+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-+$as_echo "$ac_ct_CC" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -2692,12 +2815,8 @@ done
-   else
-     case $cross_compiling:$ac_tool_warned in
- yes:)
--{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
--whose name does not start with the host triplet.  If you think this
--configuration is useful to you, please write to autoconf@gnu.org." >&5
--echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
--whose name does not start with the host triplet.  If you think this
--configuration is useful to you, please write to autoconf@gnu.org." >&2;}
-+{ $as_echo "$as_me:$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
-@@ -2707,44 +2826,50 @@ fi
- fi
- 
- 
--test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+{ { $as_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
-+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
- See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
-+   { (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`
-+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
-+set X $ac_compile
-+ac_compiler=$2
- { (ac_try="$ac_compiler --version >&5"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compiler --version >&5") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }
- { (ac_try="$ac_compiler -v >&5"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compiler -v >&5") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }
- { (ac_try="$ac_compiler -V >&5"
- case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compiler -V >&5") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }
- 
- cat >conftest.$ac_ext <<_ACEOF
-@@ -2763,27 +2888,22 @@ main ()
- }
- _ACEOF
- ac_clean_files_save=$ac_clean_files
--ac_clean_files="$ac_clean_files a.out a.exe b.out"
-+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.
--{ 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[^ ]*//'`
--#
--# List of possible output files, starting from the most likely.
--# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
--# only as a last resort.  b.out is created by i960 compilers.
--ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
--#
--# The IRIX 6 linker writes into existing files which may not be
--# executable, retaining their permissions.  Remove them first so a
--# subsequent execution test works.
-+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-+$as_echo_n "checking for C compiler default output file name... " >&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 | *.o | *.obj ) ;;
-+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-     * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-   esac
- done
-@@ -2794,10 +2914,11 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link_default") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; 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'
-@@ -2808,7 +2929,7 @@ 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 | *.o | *.obj )
-+    *.$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
-@@ -2835,25 +2956,27 @@ else
-   ac_file=''
- fi
- 
--{ echo "$as_me:$LINENO: result: $ac_file" >&5
--echo "${ECHO_T}$ac_file" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
-+$as_echo "$ac_file" >&6; }
- if test -z "$ac_file"; then
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
--{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
-+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+{ { $as_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
-+$as_echo "$as_me: error: C compiler cannot create executables
- See \`config.log' for more details." >&2;}
--   { (exit 77); exit 77; }; }
-+   { (exit 77); exit 77; }; }; }
- fi
- 
- ac_exeext=$ac_cv_exeext
- 
- # Check that 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; }
-+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-+$as_echo_n "checking whether the C compiler works... " >&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
-@@ -2862,49 +2985,53 @@ if test "$cross_compiling" != yes; then
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_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.
-+	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+{ { $as_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.
-+$as_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; }; }
-+   { (exit 1); exit 1; }; }; }
-     fi
-   fi
- fi
--{ echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: yes" >&5
-+$as_echo "yes" >&6; }
- 
--rm -f a.out a.exe conftest$ac_cv_exeext b.out
-+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
- ac_clean_files=$ac_clean_files_save
- # Check that 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; }
-+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-+$as_echo_n "checking whether we are cross compiling... " >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
-+$as_echo "$cross_compiling" >&6; }
- 
--{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
--echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$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 "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_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
-@@ -2913,31 +3040,33 @@ eval "echo \"\$as_me:$LINENO: $ac_try_ec
- 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 | *.o | *.obj ) ;;
-+    *.$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
--  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+{ { $as_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
-+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
- See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
-+   { (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; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
-+$as_echo_n "checking for suffix of object files... " >&6; }
- if test "${ac_cv_objext+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -2960,40 +3089,43 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; 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 ) ;;
-+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-        break;;
-   esac
- done
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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
-+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+{ { $as_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
-+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
- See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
-+   { (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; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$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 test "${ac_cv_c_compiler_gnu+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -3019,20 +3151,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_compiler_gnu=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_compiler_gnu=no
-@@ -3042,15 +3175,19 @@ rm -f core conftest.err conftest.$ac_obj
- 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`
-+{ $as_echo "$as_me:$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
--{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
--echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-+$as_echo_n "checking whether $CC accepts -g... " >&6; }
- if test "${ac_cv_prog_cc_g+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_save_c_werror_flag=$ac_c_werror_flag
-    ac_c_werror_flag=yes
-@@ -3077,20 +3214,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_prog_cc_g=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	CFLAGS=""
-@@ -3115,20 +3253,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   :
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_c_werror_flag=$ac_save_c_werror_flag
-@@ -3154,20 +3293,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_prog_cc_g=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -3182,8 +3322,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-    ac_c_werror_flag=$ac_save_c_werror_flag
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
-+{ $as_echo "$as_me:$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
-@@ -3199,10 +3339,10 @@ else
-     CFLAGS=
-   fi
- fi
--{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
--echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
- if test "${ac_cv_prog_cc_c89+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_cv_prog_cc_c89=no
- ac_save_CC=$CC
-@@ -3273,20 +3413,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_prog_cc_c89=$ac_arg
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -3302,15 +3443,15 @@ fi
- # AC_CACHE_VAL
- case "x$ac_cv_prog_cc_c89" in
-   x)
--    { echo "$as_me:$LINENO: result: none needed" >&5
--echo "${ECHO_T}none needed" >&6; } ;;
-+    { $as_echo "$as_me:$LINENO: result: none needed" >&5
-+$as_echo "none needed" >&6; } ;;
-   xno)
--    { echo "$as_me:$LINENO: result: unsupported" >&5
--echo "${ECHO_T}unsupported" >&6; } ;;
-+    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
-+$as_echo "unsupported" >&6; } ;;
-   *)
-     CC="$CC $ac_cv_prog_cc_c89"
--    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
--echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
-+    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
- esac
- 
- 
-@@ -3333,10 +3474,10 @@ 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; }
-+  { $as_echo "$as_me:$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 test "${ac_cv_sys_largefile_CC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_cv_sys_largefile_CC=no
-      if test "$GCC" != yes; then
-@@ -3373,20 +3514,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   break
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -3400,20 +3542,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_sys_largefile_CC=' -n32'; break
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -3426,16 +3569,16 @@ rm -f core conftest.err conftest.$ac_obj
-        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; }
-+{ $as_echo "$as_me:$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
- 
--  { 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; }
-+  { $as_echo "$as_me:$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 test "${ac_cv_sys_file_offset_bits+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   while :; do
-   cat >conftest.$ac_ext <<_ACEOF
-@@ -3467,20 +3610,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_sys_file_offset_bits=no; break
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -3517,20 +3661,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_sys_file_offset_bits=64; break
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -3541,8 +3686,8 @@ rm -f core conftest.err conftest.$ac_obj
-   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; }
-+{ $as_echo "$as_me:$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) ;;
-   *)
-@@ -3551,12 +3696,12 @@ cat >>confdefs.h <<_ACEOF
- _ACEOF
- ;;
- esac
--rm -f conftest*
-+rm -rf conftest*
-   if test $ac_cv_sys_file_offset_bits = unknown; then
--    { 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; }
-+    { $as_echo "$as_me:$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 test "${ac_cv_sys_large_files+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   while :; do
-   cat >conftest.$ac_ext <<_ACEOF
-@@ -3588,20 +3733,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_sys_large_files=no; break
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -3638,20 +3784,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_sys_large_files=1; break
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -3662,8 +3809,8 @@ rm -f core conftest.err conftest.$ac_obj
-   break
- done
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_sys_large_files" >&5
--echo "${ECHO_T}$ac_cv_sys_large_files" >&6; }
-+{ $as_echo "$as_me:$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) ;;
-   *)
-@@ -3672,7 +3819,7 @@ cat >>confdefs.h <<_ACEOF
- _ACEOF
- ;;
- esac
--rm -f conftest*
-+rm -rf conftest*
-   fi
- fi
- 
-@@ -3738,15 +3885,15 @@ 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; }
-+{ $as_echo "$as_me:$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 test "${ac_cv_prog_CPP+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $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"
-@@ -3778,20 +3925,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   :
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-   # Broken: fails on valid input.
-@@ -3815,13 +3963,14 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-@@ -3829,7 +3978,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_ec
-   # Broken: success on invalid input.
- continue
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-   # Passes both tests.
-@@ -3854,8 +4003,8 @@ fi
- else
-   ac_cv_prog_CPP=$CPP
- fi
--{ echo "$as_me:$LINENO: result: $CPP" >&5
--echo "${ECHO_T}$CPP" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
-+$as_echo "$CPP" >&6; }
- ac_preproc_ok=false
- for ac_c_preproc_warn_flag in '' yes
- do
-@@ -3883,20 +4032,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   :
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-   # Broken: fails on valid input.
-@@ -3920,13 +4070,14 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-@@ -3934,7 +4085,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_ec
-   # Broken: success on invalid input.
- continue
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
-   # Passes both tests.
-@@ -3950,11 +4101,13 @@ rm -f conftest.err conftest.$ac_ext
- if $ac_preproc_ok; then
-   :
- else
--  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+{ { $as_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
-+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
- See \`config.log' for more details." >&2;}
--   { (exit 1); exit 1; }; }
-+   { (exit 1); exit 1; }; }; }
- fi
- 
- ac_ext=c
-@@ -3963,42 +4116,37 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS con
- 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 grep that handles long lines and -e" >&5
--echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
--if test "${ac_cv_path_GREP+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--else
--  # Extract the first word of "grep ggrep" to use in msg output
--if test -z "$GREP"; then
--set dummy grep ggrep; ac_prog_name=$2
-+{ $as_echo "$as_me:$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 test "${ac_cv_path_GREP+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $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
-+  # 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.
-+    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
--  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-+  $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"
--    echo 'GREP' >> "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
-     ac_count=`expr $ac_count + 1`
-@@ -4013,74 +4161,60 @@ case `"$ac_path_GREP" --version 2>&1` in
-   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
- esac
- 
--
--    $ac_path_GREP_found && break 3
-+      $ac_path_GREP_found && break 3
-+    done
-   done
- done
--
--done
- IFS=$as_save_IFS
--
--
--fi
--
--GREP="$ac_cv_path_GREP"
--if test -z "$GREP"; then
--  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
--echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-+  if test -z "$ac_cv_path_GREP"; then
-+    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-    { (exit 1); exit 1; }; }
--fi
--
-+  fi
- else
-   ac_cv_path_GREP=$GREP
- fi
- 
--
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
--echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-+$as_echo "$ac_cv_path_GREP" >&6; }
-  GREP="$ac_cv_path_GREP"
- 
- 
--{ echo "$as_me:$LINENO: checking for egrep" >&5
--echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
-+$as_echo_n "checking for egrep... " >&6; }
- if test "${ac_cv_path_EGREP+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $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
--     # Extract the first word of "egrep" to use in msg output
--if test -z "$EGREP"; then
--set dummy egrep; ac_prog_name=$2
--if test "${ac_cv_path_EGREP+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--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
-+  # 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.
-+    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
--  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-+  $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"
--    echo 'EGREP' >> "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
-     ac_count=`expr $ac_count + 1`
-@@ -4095,41 +4229,32 @@ case `"$ac_path_EGREP" --version 2>&1` i
-   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
- esac
- 
--
--    $ac_path_EGREP_found && break 3
-+      $ac_path_EGREP_found && break 3
-+    done
-   done
- done
--
--done
- IFS=$as_save_IFS
--
--
--fi
--
--EGREP="$ac_cv_path_EGREP"
--if test -z "$EGREP"; then
--  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
--echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-+  if test -z "$ac_cv_path_EGREP"; then
-+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-    { (exit 1); exit 1; }; }
--fi
--
-+  fi
- else
-   ac_cv_path_EGREP=$EGREP
- fi
- 
--
-    fi
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
--echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-+$as_echo "$ac_cv_path_EGREP" >&6; }
-  EGREP="$ac_cv_path_EGREP"
- 
- 
- 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; }
-+    { $as_echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5
-+$as_echo_n "checking whether $CC needs -traditional... " >&6; }
- if test "${ac_cv_prog_gcc_traditional+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-     ac_pattern="Autoconf.*'x'"
-   cat >conftest.$ac_ext <<_ACEOF
-@@ -4168,16 +4293,16 @@ 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; }
-+{ $as_echo "$as_me:$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
--     { 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; }
-+     { $as_echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5
-+$as_echo_n "checking for an ANSI C-conforming const... " >&6; }
- if test "${ac_cv_c_const+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -4249,20 +4374,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_c_const=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_c_const=no
-@@ -4270,12 +4396,12 @@ fi
- 
- rm -f core 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; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5
-+$as_echo "$ac_cv_c_const" >&6; }
- if test $ac_cv_c_const = no; then
- 
- cat >>confdefs.h <<\_ACEOF
--#define const
-+#define const /**/
- _ACEOF
- 
- fi
-@@ -4284,10 +4410,10 @@ case "$host_os" in
-   darwin*) CPP="$CPP -traditional-cpp" ;;
- esac
- 
--{ echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5
--echo $ECHO_N "checking for ${CC-cc} option to accept ANSI C... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for ${CC-cc} option to accept ANSI C" >&5
-+$as_echo_n "checking for ${CC-cc} option to accept ANSI C... " >&6; }
- if test "${fp_cv_prog_cc_stdc+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   fp_cv_prog_cc_stdc=no
- ac_save_CFLAGS="$CFLAGS"
-@@ -4329,20 +4455,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   fp_cv_prog_cc_stdc="$ac_arg"; break
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -4353,15 +4480,15 @@ done
- CFLAGS="$ac_save_CFLAGS"
- 
- fi
--{ echo "$as_me:$LINENO: result: $fp_cv_prog_cc_stdc" >&5
--echo "${ECHO_T}$fp_cv_prog_cc_stdc" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $fp_cv_prog_cc_stdc" >&5
-+$as_echo "$fp_cv_prog_cc_stdc" >&6; }
- case "x$fp_cv_prog_cc_stdc" in
-   x|xno) ;;
-   *) CC="$CC $fp_cv_prog_cc_stdc" ;;
- esac
- 
--{ echo "$as_me:$LINENO: checking whether to use prototypes" >&5
--echo $ECHO_N "checking whether to use prototypes... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking whether to use prototypes" >&5
-+$as_echo_n "checking whether to use prototypes... " >&6; }
- if test ."$ansi2knr" = .yes || test ."$ansi2knr" = .no; then
-   msg="(overridden) "
- else
-@@ -4375,12 +4502,12 @@ fi
- 
- 
- if test "$ansi2knr" = yes; then
--  { echo "$as_me:$LINENO: result: ${msg}no" >&5
--echo "${ECHO_T}${msg}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: ${msg}no" >&5
-+$as_echo "${msg}no" >&6; }
-   U=_
- else
--  { echo "$as_me:$LINENO: result: ${msg}yes" >&5
--echo "${ECHO_T}${msg}yes" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: ${msg}yes" >&5
-+$as_echo "${msg}yes" >&6; }
-   cat >>confdefs.h <<\_ACEOF
- #define PROTOTYPES 1
- _ACEOF
-@@ -4389,10 +4516,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
--echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-+$as_echo_n "checking for ANSI C header files... " >&6; }
- if test "${ac_cv_header_stdc+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -4419,20 +4546,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_header_stdc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_header_stdc=no
-@@ -4524,37 +4652,40 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_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
-+  $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
- 
- ( exit $ac_status )
- ac_cv_header_stdc=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* 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; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-+$as_echo "$ac_cv_header_stdc" >&6; }
- if test $ac_cv_header_stdc = yes; then
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -4576,11 +4707,11 @@ fi
- 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; }
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -4598,20 +4729,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   eval "$as_ac_Header=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_Header=no"
-@@ -4619,12 +4751,15 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -4634,10 +4769,10 @@ done
- 
- # 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; }
-+{ $as_echo "$as_me:$LINENO: checking for working alloca.h" >&5
-+$as_echo_n "checking for working alloca.h... " >&6; }
- if test "${ac_cv_working_alloca_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -4661,31 +4796,35 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_working_alloca_h=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_working_alloca_h=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       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; }
-+{ $as_echo "$as_me:$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
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -4694,10 +4833,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for alloca" >&5
--echo $ECHO_N "checking for alloca... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for alloca" >&5
-+$as_echo_n "checking for alloca... " >&6; }
- if test "${ac_cv_func_alloca_works+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -4741,31 +4880,35 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_func_alloca_works=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_func_alloca_works=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       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; }
-+{ $as_echo "$as_me:$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
- 
-@@ -4786,10 +4929,10 @@ cat >>confdefs.h <<\_ACEOF
- _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; }
-+{ $as_echo "$as_me:$LINENO: checking whether \`alloca.c' needs Cray hooks" >&5
-+$as_echo_n "checking whether \`alloca.c' needs Cray hooks... " >&6; }
- if test "${ac_cv_os_cray+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -4813,15 +4956,15 @@ fi
- rm -f conftest*
- 
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_os_cray" >&5
--echo "${ECHO_T}$ac_cv_os_cray" >&6; }
-+{ $as_echo "$as_me:$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=`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; }
-+    as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-+$as_echo_n "checking for $ac_func... " >&6; }
- if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -4874,33 +5017,40 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   eval "$as_ac_var=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_var=no"
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_var'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define CRAY_STACKSEG_END $ac_func
-@@ -4912,10 +5062,10 @@ 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; }
-+{ $as_echo "$as_me:$LINENO: checking stack direction for C alloca" >&5
-+$as_echo_n "checking stack direction for C alloca... " >&6; }
- if test "${ac_cv_c_stack_direction+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   ac_cv_c_stack_direction=0
-@@ -4953,36 +5103,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_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
-+  $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
- 
- ( exit $ac_status )
- ac_cv_c_stack_direction=-1
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* 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; }
-+{ $as_echo "$as_me:$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
-@@ -4991,10 +5144,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking if the compiler supports union initialisation" >&5
--echo $ECHO_N "checking if the compiler supports union initialisation... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if the compiler supports union initialisation" >&5
-+$as_echo_n "checking if the compiler supports union initialisation... " >&6; }
- if test "${zsh_cv_c_have_union_init+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -5017,20 +5170,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_c_have_union_init=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_c_have_union_init=no
-@@ -5038,8 +5192,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_c_have_union_init" >&5
--echo "${ECHO_T}$zsh_cv_c_have_union_init" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_c_have_union_init" >&5
-+$as_echo "$zsh_cv_c_have_union_init" >&6; }
- 
- 
- if test x$zsh_cv_c_have_union_init = xyes; then
-@@ -5049,10 +5203,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking if signed to unsigned casting is broken" >&5
--echo $ECHO_N "checking if signed to unsigned casting is broken... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if signed to unsigned casting is broken" >&5
-+$as_echo_n "checking if signed to unsigned casting is broken... " >&6; }
- if test "${zsh_cv_c_broken_signed_to_unsigned_casting+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_c_broken_signed_to_unsigned_casting=no
-@@ -5071,36 +5225,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_c_broken_signed_to_unsigned_casting=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_c_broken_signed_to_unsigned_casting=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_c_broken_signed_to_unsigned_casting" >&5
--echo "${ECHO_T}$zsh_cv_c_broken_signed_to_unsigned_casting" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_c_broken_signed_to_unsigned_casting" >&5
-+$as_echo "$zsh_cv_c_broken_signed_to_unsigned_casting" >&6; }
- 
- 
- if test x$zsh_cv_c_broken_signed_to_unsigned_casting = xyes; then
-@@ -5110,10 +5267,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking if the compiler supports variable-length arrays" >&5
--echo $ECHO_N "checking if the compiler supports variable-length arrays... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if the compiler supports variable-length arrays" >&5
-+$as_echo_n "checking if the compiler supports variable-length arrays... " >&6; }
- if test "${zsh_cv_c_variable_length_arrays+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -5136,20 +5293,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_c_variable_length_arrays=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_c_variable_length_arrays=no
-@@ -5157,8 +5315,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_c_variable_length_arrays" >&5
--echo "${ECHO_T}$zsh_cv_c_variable_length_arrays" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_c_variable_length_arrays" >&5
-+$as_echo "$zsh_cv_c_variable_length_arrays" >&6; }
- 
- 
- if test x$zsh_cv_c_variable_length_arrays = xyes; then
-@@ -5168,11 +5326,12 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
--echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
--set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-+{ $as_echo "$as_me:$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 { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.make <<\_ACEOF
- SHELL = /bin/sh
-@@ -5189,12 +5348,12 @@ esac
- rm -f conftest.make
- fi
- if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
--  { echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: yes" >&5
-+$as_echo "yes" >&6; }
-   SET_MAKE=
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
-   SET_MAKE="MAKE=${MAKE-make}"
- fi
-             # Find a good install program.  We prefer a C program (faster),
-@@ -5210,11 +5369,12 @@ fi
- # 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; }
-+# Reject install programs that cannot install multiple files.
-+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-+$as_echo_n "checking for a BSD-compatible install... " >&6; }
- if test -z "$INSTALL"; then
- if test "${ac_cv_path_install+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
- for as_dir in $PATH
-@@ -5243,17 +5403,29 @@ case $as_dir/ in
- 	    # 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
-+	    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
-@@ -5266,8 +5438,8 @@ fi
-     INSTALL=$ac_install_sh
-   fi
- fi
--{ echo "$as_me:$LINENO: result: $INSTALL" >&5
--echo "${ECHO_T}$INSTALL" >&6; }
-+{ $as_echo "$as_me:$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.
-@@ -5280,10 +5452,10 @@ test -z "$INSTALL_DATA" && INSTALL_DATA=
- 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_AWK+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$AWK"; then
-   ac_cv_prog_AWK="$AWK" # Let the user override the test.
-@@ -5296,7 +5468,7 @@ do
-   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_AWK="$ac_prog"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -5307,20 +5479,20 @@ fi
- fi
- AWK=$ac_cv_prog_AWK
- if test -n "$AWK"; then
--  { echo "$as_me:$LINENO: result: $AWK" >&5
--echo "${ECHO_T}$AWK" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
-+$as_echo "$AWK" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-   test -n "$AWK" && break
- done
--                 { echo "$as_me:$LINENO: checking whether ln works" >&5
--echo $ECHO_N "checking whether ln works... $ECHO_C" >&6; }
-+                 { $as_echo "$as_me:$LINENO: checking whether ln works" >&5
-+$as_echo_n "checking whether ln works... " >&6; }
- if test "${ac_cv_prog_LN+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   rm -f conftestdata conftestlink
- echo > conftestdata
-@@ -5335,51 +5507,46 @@ fi
- fi
- LN="$ac_cv_prog_LN"
- if test "$ac_cv_prog_LN" = "ln"; then
--  { echo "$as_me:$LINENO: result: yes" >&5
--echo "${ECHO_T}yes" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: yes" >&5
-+$as_echo "yes" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
--                  { echo "$as_me:$LINENO: checking for egrep" >&5
--echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
-+                  { $as_echo "$as_me:$LINENO: checking for egrep" >&5
-+$as_echo_n "checking for egrep... " >&6; }
- if test "${ac_cv_path_EGREP+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $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
--     # Extract the first word of "egrep" to use in msg output
--if test -z "$EGREP"; then
--set dummy egrep; ac_prog_name=$2
--if test "${ac_cv_path_EGREP+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
--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
-+  # 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.
-+    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
--  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
-+  $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"
--    echo 'EGREP' >> "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
-     ac_count=`expr $ac_count + 1`
-@@ -5394,43 +5561,34 @@ case `"$ac_path_EGREP" --version 2>&1` i
-   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
- esac
- 
--
--    $ac_path_EGREP_found && break 3
-+      $ac_path_EGREP_found && break 3
-+    done
-   done
- done
--
--done
- IFS=$as_save_IFS
--
--
--fi
--
--EGREP="$ac_cv_path_EGREP"
--if test -z "$EGREP"; then
--  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
--echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-+  if test -z "$ac_cv_path_EGREP"; then
-+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-    { (exit 1); exit 1; }; }
--fi
--
-+  fi
- else
-   ac_cv_path_EGREP=$EGREP
- fi
- 
--
-    fi
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
--echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-+$as_echo "$ac_cv_path_EGREP" >&6; }
-  EGREP="$ac_cv_path_EGREP"
- 
-                for ac_prog in yodl
- 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_YODL+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$YODL"; then
-   ac_cv_prog_YODL="$YODL" # Let the user override the test.
-@@ -5443,7 +5601,7 @@ do
-   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_YODL="$ac_prog"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -5454,11 +5612,11 @@ fi
- fi
- YODL=$ac_cv_prog_YODL
- if test -n "$YODL"; then
--  { echo "$as_me:$LINENO: result: $YODL" >&5
--echo "${ECHO_T}$YODL" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $YODL" >&5
-+$as_echo "$YODL" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -5470,10 +5628,10 @@ for ac_prog in pdfetex
- 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_PDFETEX+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$PDFETEX"; then
-   ac_cv_prog_PDFETEX="$PDFETEX" # Let the user override the test.
-@@ -5486,7 +5644,7 @@ do
-   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_PDFETEX="$ac_prog"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -5497,11 +5655,11 @@ fi
- fi
- PDFETEX=$ac_cv_prog_PDFETEX
- if test -n "$PDFETEX"; then
--  { echo "$as_me:$LINENO: result: $PDFETEX" >&5
--echo "${ECHO_T}$PDFETEX" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $PDFETEX" >&5
-+$as_echo "$PDFETEX" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -5513,10 +5671,10 @@ for ac_prog in texi2pdf
- 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_TEXI2PDF+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$TEXI2PDF"; then
-   ac_cv_prog_TEXI2PDF="$TEXI2PDF" # Let the user override the test.
-@@ -5529,7 +5687,7 @@ do
-   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_TEXI2PDF="$ac_prog"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -5540,11 +5698,11 @@ fi
- fi
- TEXI2PDF=$ac_cv_prog_TEXI2PDF
- if test -n "$TEXI2PDF"; then
--  { echo "$as_me:$LINENO: result: $TEXI2PDF" >&5
--echo "${ECHO_T}$TEXI2PDF" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $TEXI2PDF" >&5
-+$as_echo "$TEXI2PDF" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -5555,10 +5713,10 @@ for ac_prog in texi2html
- 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_TEXI2HTML+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$TEXI2HTML"; then
-   ac_cv_prog_TEXI2HTML="$TEXI2HTML" # Let the user override the test.
-@@ -5571,7 +5729,7 @@ do
-   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_TEXI2HTML="$ac_prog"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -5582,11 +5740,11 @@ fi
- fi
- TEXI2HTML=$ac_cv_prog_TEXI2HTML
- if test -n "$TEXI2HTML"; then
--  { echo "$as_me:$LINENO: result: $TEXI2HTML" >&5
--echo "${ECHO_T}$TEXI2HTML" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $TEXI2HTML" >&5
-+$as_echo "$TEXI2HTML" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -5597,10 +5755,10 @@ for ac_prog in ansi2knr
- 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; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_ANSI2KNR+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$ANSI2KNR"; then
-   ac_cv_prog_ANSI2KNR="$ANSI2KNR" # Let the user override the test.
-@@ -5613,7 +5771,7 @@ do
-   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_ANSI2KNR="$ac_prog"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -5624,11 +5782,11 @@ fi
- fi
- ANSI2KNR=$ac_cv_prog_ANSI2KNR
- if test -n "$ANSI2KNR"; then
--  { echo "$as_me:$LINENO: result: $ANSI2KNR" >&5
--echo "${ECHO_T}$ANSI2KNR" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $ANSI2KNR" >&5
-+$as_echo "$ANSI2KNR" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -5654,11 +5812,11 @@ fi
- 
- 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; }
-+  as_ac_Header=`$as_echo "ac_cv_header_dirent_$ac_hdr" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_hdr that defines DIR" >&5
-+$as_echo_n "checking for $ac_hdr that defines DIR... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -5684,20 +5842,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   eval "$as_ac_Header=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_Header=no"
-@@ -5705,12 +5864,15 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_hdr" | $as_tr_cpp` 1
- _ACEOF
- 
- ac_header_dirent=$ac_hdr; break
-@@ -5719,10 +5881,10 @@ 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; }
-+  { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
-+$as_echo_n "checking for library containing opendir... " >&6; }
- if test "${ac_cv_search_opendir+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -5760,26 +5922,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_opendir=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_opendir+set}" = set; then
-@@ -5794,8 +5960,8 @@ fi
- rm conftest.$ac_ext
- 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; }
-+{ $as_echo "$as_me:$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"
-@@ -5803,10 +5969,10 @@ if test "$ac_res" != no; then
- fi
- 
- else
--  { echo "$as_me:$LINENO: checking for library containing opendir" >&5
--echo $ECHO_N "checking for library containing opendir... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for library containing opendir" >&5
-+$as_echo_n "checking for library containing opendir... " >&6; }
- if test "${ac_cv_search_opendir+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -5844,26 +6010,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_opendir=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_opendir+set}" = set; then
-@@ -5878,8 +6048,8 @@ fi
- rm conftest.$ac_ext
- 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; }
-+{ $as_echo "$as_me:$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"
-@@ -5888,10 +6058,10 @@ fi
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
--echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-+$as_echo_n "checking for ANSI C header files... " >&6; }
- if test "${ac_cv_header_stdc+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -5918,20 +6088,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_header_stdc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_header_stdc=no
-@@ -6023,37 +6194,40 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_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
-+  $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
- 
- ( exit $ac_status )
- ac_cv_header_stdc=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* 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; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-+$as_echo "$ac_cv_header_stdc" >&6; }
- if test $ac_cv_header_stdc = yes; then
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -6062,10 +6236,10 @@ _ACEOF
- 
- 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; }
-+{ $as_echo "$as_me:$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 test "${ac_cv_header_time+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -6092,20 +6266,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_header_time=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_header_time=no
-@@ -6113,8 +6288,8 @@ fi
- 
- rm -f core 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; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5
-+$as_echo "$ac_cv_header_time" >&6; }
- if test $ac_cv_header_time = yes; then
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -6123,10 +6298,10 @@ _ACEOF
- 
- 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; }
-+{ $as_echo "$as_me:$LINENO: checking whether stat file-mode macros are broken" >&5
-+$as_echo_n "checking whether stat file-mode macros are broken... " >&6; }
- if test "${ac_cv_header_stat_broken+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -6160,20 +6335,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_header_stat_broken=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_header_stat_broken=yes
-@@ -6181,8 +6357,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_header_stat_broken" >&5
--echo "${ECHO_T}$ac_cv_header_stat_broken" >&6; }
-+{ $as_echo "$as_me:$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
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -6191,10 +6367,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
--echo $ECHO_N "checking for sys/wait.h that is POSIX.1 compatible... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for sys/wait.h that is POSIX.1 compatible" >&5
-+$as_echo_n "checking for sys/wait.h that is POSIX.1 compatible... " >&6; }
- if test "${ac_cv_header_sys_wait_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -6227,20 +6403,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_header_sys_wait_h=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_header_sys_wait_h=no
-@@ -6248,8 +6425,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
--echo "${ECHO_T}$ac_cv_header_sys_wait_h" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_wait_h" >&5
-+$as_echo "$ac_cv_header_sys_wait_h" >&6; }
- if test $ac_cv_header_sys_wait_h = yes; then
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -6263,10 +6440,10 @@ oldcflags="$CFLAGS"
- if test x$enable_pcre = xyes; then
- # Extract the first word of "pcre-config", so it can be a program name with args.
- set dummy pcre-config; ac_word=$2
--{ echo "$as_me:$LINENO: checking for $ac_word" >&5
--echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-+$as_echo_n "checking for $ac_word... " >&6; }
- if test "${ac_cv_prog_PCRECONF+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -n "$PCRECONF"; then
-   ac_cv_prog_PCRECONF="$PCRECONF" # Let the user override the test.
-@@ -6279,7 +6456,7 @@ do
-   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_PCRECONF="pcre-config"
--    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-     break 2
-   fi
- done
-@@ -6290,11 +6467,11 @@ fi
- fi
- PCRECONF=$ac_cv_prog_PCRECONF
- if test -n "$PCRECONF"; then
--  { echo "$as_me:$LINENO: result: $PCRECONF" >&5
--echo "${ECHO_T}$PCRECONF" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $PCRECONF" >&5
-+$as_echo "$PCRECONF" >&6; }
- else
--  { echo "$as_me:$LINENO: result: no" >&5
--echo "${ECHO_T}no" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: no" >&5
-+$as_echo "no" >&6; }
- fi
- 
- 
-@@ -6353,20 +6530,21 @@ for ac_header in sys/time.h sys/times.h
- 		 sys/stropts.h iconv.h ncurses.h ncursesw/ncurses.h \
- 		 ncurses/ncurses.h
- do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  { echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+$as_echo_n "checking $ac_header usability... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -6382,32 +6560,33 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_header_compiler=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_header_compiler=no
- fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+$as_echo_n "checking $ac_header presence... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -6421,69 +6600,73 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   ac_header_preproc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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; }
-+{ $as_echo "$as_me:$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: )
--    { 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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+$as_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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- 
-     ;;
- esac
--{ echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   eval "$as_ac_Header=\$ac_header_preproc"
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
- 
- fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -6494,20 +6677,21 @@ if test x$dynamic = xyes; then
- 
- for ac_header in dlfcn.h
- do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  { echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+$as_echo_n "checking $ac_header usability... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -6523,32 +6707,33 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_header_compiler=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_header_compiler=no
- fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+$as_echo_n "checking $ac_header presence... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -6562,69 +6747,73 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   ac_header_preproc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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; }
-+{ $as_echo "$as_me:$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: )
--    { 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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+$as_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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- 
-     ;;
- esac
--{ echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   eval "$as_ac_Header=\$ac_header_preproc"
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
- 
- fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -6634,20 +6823,21 @@ done
- 
- for ac_header in dl.h
- do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  { echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+$as_echo_n "checking $ac_header usability... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -6663,32 +6853,33 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_header_compiler=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_header_compiler=no
- fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+$as_echo_n "checking $ac_header presence... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -6702,69 +6893,73 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   ac_header_preproc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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; }
-+{ $as_echo "$as_me:$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: )
--    { 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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+$as_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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- 
-     ;;
- esac
--{ echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   eval "$as_ac_Header=\$ac_header_preproc"
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
- 
- fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -6776,10 +6971,10 @@ fi
- 
- 
- if test x$ac_cv_header_sys_time_h = xyes && test x$ac_cv_header_sys_select_h = xyes; then
--  { echo "$as_me:$LINENO: checking for conflicts in sys/time.h and sys/select.h" >&5
--echo $ECHO_N "checking for conflicts in sys/time.h and sys/select.h... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for conflicts in sys/time.h and sys/select.h" >&5
-+$as_echo_n "checking for conflicts in sys/time.h and sys/select.h... " >&6; }
- if test "${zsh_cv_header_time_h_select_h_conflicts+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -6803,20 +6998,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_header_time_h_select_h_conflicts=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_time_h_select_h_conflicts=yes
-@@ -6824,8 +7020,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_time_h_select_h_conflicts" >&5
--echo "${ECHO_T}$zsh_cv_header_time_h_select_h_conflicts" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_time_h_select_h_conflicts" >&5
-+$as_echo "$zsh_cv_header_time_h_select_h_conflicts" >&6; }
-   if test x$zsh_cv_header_time_h_select_h_conflicts = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define TIME_H_SELECT_H_CONFLICTS 1
-@@ -6837,10 +7033,10 @@ fi
- 
- 
- if test x$ac_cv_header_termios_h = xyes; then
--  { echo "$as_me:$LINENO: checking TIOCGWINSZ in termios.h" >&5
--echo $ECHO_N "checking TIOCGWINSZ in termios.h... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking TIOCGWINSZ in termios.h" >&5
-+$as_echo_n "checking TIOCGWINSZ in termios.h... " >&6; }
- if test "${zsh_cv_header_termios_h_tiocgwinsz+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -6867,39 +7063,43 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   zsh_cv_header_termios_h_tiocgwinsz=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_termios_h_tiocgwinsz=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_termios_h_tiocgwinsz" >&5
--echo "${ECHO_T}$zsh_cv_header_termios_h_tiocgwinsz" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_termios_h_tiocgwinsz" >&5
-+$as_echo "$zsh_cv_header_termios_h_tiocgwinsz" >&6; }
- else
-   zsh_cv_header_termios_h_tiocgwinsz=no
- fi
- if test x$zsh_cv_header_termios_h_tiocgwinsz = xno; then
--  { echo "$as_me:$LINENO: checking TIOCGWINSZ in sys/ioctl.h" >&5
--echo $ECHO_N "checking TIOCGWINSZ in sys/ioctl.h... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking TIOCGWINSZ in sys/ioctl.h" >&5
-+$as_echo_n "checking TIOCGWINSZ in sys/ioctl.h... " >&6; }
- if test "${zsh_cv_header_sys_ioctl_h_tiocgwinsz+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -6926,31 +7126,35 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   zsh_cv_header_sys_ioctl_h_tiocgwinsz=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_sys_ioctl_h_tiocgwinsz=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_sys_ioctl_h_tiocgwinsz" >&5
--echo "${ECHO_T}$zsh_cv_header_sys_ioctl_h_tiocgwinsz" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_sys_ioctl_h_tiocgwinsz" >&5
-+$as_echo "$zsh_cv_header_sys_ioctl_h_tiocgwinsz" >&6; }
-   if test x$zsh_cv_header_sys_ioctl_h_tiocgwinsz = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define GWINSZ_IN_SYS_IOCTL 1
-@@ -6961,10 +7165,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking for streams headers including struct winsize" >&5
--echo $ECHO_N "checking for streams headers including struct winsize... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for streams headers including struct winsize" >&5
-+$as_echo_n "checking for streams headers including struct winsize... " >&6; }
- if test "${ac_cv_winsize_in_ptem+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -6988,20 +7192,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_winsize_in_ptem=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_winsize_in_ptem=no
-@@ -7009,8 +7214,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_winsize_in_ptem" >&5
--echo "${ECHO_T}$ac_cv_winsize_in_ptem" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_winsize_in_ptem" >&5
-+$as_echo "$ac_cv_winsize_in_ptem" >&6; }
- if test x$ac_cv_winsize_in_ptem = xyes; then
-   cat >>confdefs.h <<\_ACEOF
- #define WINSIZE_IN_PTEM 1
-@@ -7019,10 +7224,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for printf in -lc" >&5
--echo $ECHO_N "checking for printf in -lc... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for printf in -lc" >&5
-+$as_echo_n "checking for printf in -lc... " >&6; }
- if test "${ac_cv_lib_c_printf+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lc  $LIBS"
-@@ -7054,42 +7259,46 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_c_printf=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_c_printf=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_lib_c_printf" >&5
--echo "${ECHO_T}$ac_cv_lib_c_printf" >&6; }
--if test $ac_cv_lib_c_printf = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_c_printf" >&5
-+$as_echo "$ac_cv_lib_c_printf" >&6; }
-+if test "x$ac_cv_lib_c_printf" = x""yes; then
-   LIBS="$LIBS -lc"
- fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking for pow in -lm" >&5
--echo $ECHO_N "checking for pow in -lm... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for pow in -lm" >&5
-+$as_echo_n "checking for pow in -lm... " >&6; }
- if test "${ac_cv_lib_m_pow+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lm  $LIBS"
-@@ -7121,33 +7330,37 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_m_pow=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_m_pow=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5
--echo "${ECHO_T}$ac_cv_lib_m_pow" >&6; }
--if test $ac_cv_lib_m_pow = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_m_pow" >&5
-+$as_echo "$ac_cv_lib_m_pow" >&6; }
-+if test "x$ac_cv_lib_m_pow" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
- #define HAVE_LIBM 1
- _ACEOF
-@@ -7170,10 +7383,10 @@ fi
- if test "${with_term_lib+set}" = set; then
-   withval=$with_term_lib; if test "x$withval" != xno && test "x$withval" != x ; then
-   termcap_curses_order="$withval"
--  { echo "$as_me:$LINENO: checking for library containing tigetstr" >&5
--echo $ECHO_N "checking for library containing tigetstr... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for library containing tigetstr" >&5
-+$as_echo_n "checking for library containing tigetstr... " >&6; }
- if test "${ac_cv_search_tigetstr+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -7211,26 +7424,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_tigetstr=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_tigetstr+set}" = set; then
-@@ -7245,8 +7462,8 @@ fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_search_tigetstr" >&5
--echo "${ECHO_T}$ac_cv_search_tigetstr" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_tigetstr" >&5
-+$as_echo "$ac_cv_search_tigetstr" >&6; }
- ac_res=$ac_cv_search_tigetstr
- if test "$ac_res" != no; then
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-@@ -7270,10 +7487,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking if _XOPEN_SOURCE_EXTENDED should not be defined" >&5
--echo $ECHO_N "checking if _XOPEN_SOURCE_EXTENDED should not be defined... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if _XOPEN_SOURCE_EXTENDED should not be defined" >&5
-+$as_echo_n "checking if _XOPEN_SOURCE_EXTENDED should not be defined... " >&6; }
- if test "${zsh_cv_no_xopen+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   case "$host_os" in
-   *openbsd*|*freebsd5*|*freebsd6.[012]*|*aix*)
-@@ -7284,8 +7501,8 @@ else
-   ;;
- esac
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_no_xopen" >&5
--echo "${ECHO_T}$zsh_cv_no_xopen" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_no_xopen" >&5
-+$as_echo "$zsh_cv_no_xopen" >&6; }
- if test x$zsh_cv_no_xopen = xyes; then
-   cat >>confdefs.h <<\_ACEOF
- #define ZSH_NO_XOPEN 1
-@@ -7293,10 +7510,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for library containing tigetflag" >&5
--echo $ECHO_N "checking for library containing tigetflag... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for library containing tigetflag" >&5
-+$as_echo_n "checking for library containing tigetflag... " >&6; }
- if test "${ac_cv_search_tigetflag+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -7334,26 +7551,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_tigetflag=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_tigetflag+set}" = set; then
-@@ -7368,18 +7589,18 @@ fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_search_tigetflag" >&5
--echo "${ECHO_T}$ac_cv_search_tigetflag" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_tigetflag" >&5
-+$as_echo "$ac_cv_search_tigetflag" >&6; }
- ac_res=$ac_cv_search_tigetflag
- if test "$ac_res" != no; then
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for library containing tgetent" >&5
--echo $ECHO_N "checking for library containing tgetent... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for library containing tgetent" >&5
-+$as_echo_n "checking for library containing tgetent... " >&6; }
- if test "${ac_cv_search_tgetent+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -7417,26 +7638,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_tgetent=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_tgetent+set}" = set; then
-@@ -7451,43 +7676,46 @@ fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_search_tgetent" >&5
--echo "${ECHO_T}$ac_cv_search_tgetent" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_tgetent" >&5
-+$as_echo "$ac_cv_search_tgetent" >&6; }
- ac_res=$ac_cv_search_tgetent
- if test "$ac_res" != no; then
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-   true
- else
--  { { echo "$as_me:$LINENO: error: \"No terminal handling library was found on your system.
-+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-+{ { $as_echo "$as_me:$LINENO: error: \"No terminal handling library was found on your system.
- This is probably a library called 'curses' or 'ncurses'.  You may
- need to install a package called 'curses-devel' or 'ncurses-devel' on your
- system.\"
- See \`config.log' for more details." >&5
--echo "$as_me: error: \"No terminal handling library was found on your system.
-+$as_echo "$as_me: error: \"No terminal handling library was found on your system.
- This is probably a library called 'curses' or 'ncurses'.  You may
- need to install a package called 'curses-devel' or 'ncurses-devel' on your
- system.\"
- See \`config.log' for more details." >&2;}
--   { (exit 255); exit 255; }; }
-+   { (exit 255); exit 255; }; }; }
- fi
- 
- 
- for ac_header in curses.h
- do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  { echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+$as_echo_n "checking $ac_header usability... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -7503,32 +7731,33 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_header_compiler=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_header_compiler=no
- fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+$as_echo_n "checking $ac_header presence... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -7542,76 +7771,80 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   ac_header_preproc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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; }
-+{ $as_echo "$as_me:$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: )
--    { 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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+$as_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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- 
-     ;;
- esac
--{ echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   eval "$as_ac_Header=\$ac_header_preproc"
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
- 
- fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- else
--  { echo "$as_me:$LINENO: checking for Solaris 8 curses.h mistake" >&5
--echo $ECHO_N "checking for Solaris 8 curses.h mistake... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for Solaris 8 curses.h mistake" >&5
-+$as_echo_n "checking for Solaris 8 curses.h mistake... " >&6; }
- if test "${ac_cv_header_curses_solaris+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -7634,13 +7867,14 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-@@ -7648,7 +7882,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_ec
-   ac_cv_header_curses_h=yes
- ac_cv_header_curses_solaris=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_header_curses_h=no
-@@ -7657,8 +7891,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_header_curses_solaris" >&5
--echo "${ECHO_T}$ac_cv_header_curses_solaris" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_curses_solaris" >&5
-+$as_echo "$ac_cv_header_curses_solaris" >&6; }
- if test x$ac_cv_header_curses_solaris = xyes; then
- cat >>confdefs.h <<\_ACEOF
- #define HAVE_CURSES_H 1
-@@ -7670,10 +7904,10 @@ fi
- done
- 
- 
--{ echo "$as_me:$LINENO: checking if we need to ignore ncurses" >&5
--echo $ECHO_N "checking if we need to ignore ncurses... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if we need to ignore ncurses" >&5
-+$as_echo_n "checking if we need to ignore ncurses... " >&6; }
- if test "${zsh_cv_ignore_ncurses+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   case $LIBS in
-   *-lncurses*)
-@@ -7684,13 +7918,13 @@ else
-   ;;
- esac
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_ignore_ncurses" >&5
--echo "${ECHO_T}$zsh_cv_ignore_ncurses" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_ignore_ncurses" >&5
-+$as_echo "$zsh_cv_ignore_ncurses" >&6; }
- 
--{ echo "$as_me:$LINENO: checking for library containing getpwnam" >&5
--echo $ECHO_N "checking for library containing getpwnam... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for library containing getpwnam" >&5
-+$as_echo_n "checking for library containing getpwnam... " >&6; }
- if test "${ac_cv_search_getpwnam+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -7728,26 +7962,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_getpwnam=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_getpwnam+set}" = set; then
-@@ -7762,8 +8000,8 @@ fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_search_getpwnam" >&5
--echo "${ECHO_T}$ac_cv_search_getpwnam" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_getpwnam" >&5
-+$as_echo "$ac_cv_search_getpwnam" >&6; }
- ac_res=$ac_cv_search_getpwnam
- if test "$ac_res" != no; then
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-@@ -7777,10 +8015,10 @@ fi
- 
- if test "x$dynamic" = xyes; then
- 
--{ echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
--echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-+$as_echo_n "checking for dlopen in -ldl... " >&6; }
- if test "${ac_cv_lib_dl_dlopen+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-ldl  $LIBS"
-@@ -7812,33 +8050,37 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_dl_dlopen=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_dl_dlopen=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       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
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
- #define HAVE_LIBDL 1
- _ACEOF
-@@ -7851,10 +8093,10 @@ fi
- 
- if test x$enable_cap = xyes; then
- 
--{ echo "$as_me:$LINENO: checking for cap_get_proc in -lcap" >&5
--echo $ECHO_N "checking for cap_get_proc in -lcap... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for cap_get_proc in -lcap" >&5
-+$as_echo_n "checking for cap_get_proc in -lcap... " >&6; }
- if test "${ac_cv_lib_cap_cap_get_proc+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lcap  $LIBS"
-@@ -7886,33 +8128,37 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_cap_cap_get_proc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_cap_cap_get_proc=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_lib_cap_cap_get_proc" >&5
--echo "${ECHO_T}$ac_cv_lib_cap_cap_get_proc" >&6; }
--if test $ac_cv_lib_cap_cap_get_proc = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_cap_cap_get_proc" >&5
-+$as_echo "$ac_cv_lib_cap_cap_get_proc" >&6; }
-+if test "x$ac_cv_lib_cap_cap_get_proc" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
- #define HAVE_LIBCAP 1
- _ACEOF
-@@ -7924,10 +8170,10 @@ fi
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
--echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
-+$as_echo_n "checking for socket in -lsocket... " >&6; }
- if test "${ac_cv_lib_socket_socket+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lsocket  $LIBS"
-@@ -7959,33 +8205,37 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_socket_socket=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_socket_socket=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
--echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6; }
--if test $ac_cv_lib_socket_socket = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
-+$as_echo "$ac_cv_lib_socket_socket" >&6; }
-+if test "x$ac_cv_lib_socket_socket" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
- #define HAVE_LIBSOCKET 1
- _ACEOF
-@@ -7994,10 +8244,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for library containing gethostbyname2" >&5
--echo $ECHO_N "checking for library containing gethostbyname2... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for library containing gethostbyname2" >&5
-+$as_echo_n "checking for library containing gethostbyname2... " >&6; }
- if test "${ac_cv_search_gethostbyname2+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -8035,26 +8285,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_gethostbyname2=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_gethostbyname2+set}" = set; then
-@@ -8069,8 +8323,8 @@ fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname2" >&5
--echo "${ECHO_T}$ac_cv_search_gethostbyname2" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_gethostbyname2" >&5
-+$as_echo "$ac_cv_search_gethostbyname2" >&6; }
- ac_res=$ac_cv_search_gethostbyname2
- if test "$ac_res" != no; then
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-@@ -8083,20 +8337,21 @@ case $LIBS in
- 
- for ac_header in bind/netdb.h
- do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  { echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+$as_echo_n "checking $ac_header usability... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -8112,32 +8367,33 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_header_compiler=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_header_compiler=no
- fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+$as_echo_n "checking $ac_header presence... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -8151,69 +8407,73 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   ac_header_preproc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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; }
-+{ $as_echo "$as_me:$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: )
--    { 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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+$as_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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- 
-     ;;
- esac
--{ echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   eval "$as_ac_Header=\$ac_header_preproc"
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
- 
- fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -8225,10 +8485,10 @@ esac
- 
- 
- if test "x$ac_cv_header_iconv_h" = "xyes"; then
--  { echo "$as_me:$LINENO: checking for iconv" >&5
--echo $ECHO_N "checking for iconv... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for iconv" >&5
-+$as_echo_n "checking for iconv... " >&6; }
- if test "${ac_cv_func_iconv+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -8281,42 +8541,46 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_func_iconv=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_func_iconv=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_func_iconv" >&5
--echo "${ECHO_T}$ac_cv_func_iconv" >&6; }
--if test $ac_cv_func_iconv = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_iconv" >&5
-+$as_echo "$ac_cv_func_iconv" >&6; }
-+if test "x$ac_cv_func_iconv" = x""yes; then
-   ac_found_iconv=yes
- else
-   ac_found_iconv=no
- fi
- 
-   if test "x$ac_found_iconv" = "xno"; then
--    { echo "$as_me:$LINENO: checking for iconv in -liconv" >&5
--echo $ECHO_N "checking for iconv in -liconv... $ECHO_C" >&6; }
-+    { $as_echo "$as_me:$LINENO: checking for iconv in -liconv" >&5
-+$as_echo_n "checking for iconv in -liconv... " >&6; }
- if test "${ac_cv_lib_iconv_iconv+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-liconv  $LIBS"
-@@ -8348,41 +8612,45 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_iconv_iconv=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_iconv_iconv=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5
--echo "${ECHO_T}$ac_cv_lib_iconv_iconv" >&6; }
--if test $ac_cv_lib_iconv_iconv = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_iconv" >&5
-+$as_echo "$ac_cv_lib_iconv_iconv" >&6; }
-+if test "x$ac_cv_lib_iconv_iconv" = x""yes; then
-   ac_found_iconv=yes
- fi
- 
-     if test "x$ac_found_iconv" = "xno"; then
--      { echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
--echo $ECHO_N "checking for libiconv in -liconv... $ECHO_C" >&6; }
-+      { $as_echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
-+$as_echo_n "checking for libiconv in -liconv... " >&6; }
- if test "${ac_cv_lib_iconv_libiconv+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-liconv  $LIBS"
-@@ -8414,33 +8682,37 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_iconv_libiconv=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_iconv_libiconv=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_libiconv" >&5
--echo "${ECHO_T}$ac_cv_lib_iconv_libiconv" >&6; }
--if test $ac_cv_lib_iconv_libiconv = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_libiconv" >&5
-+$as_echo "$ac_cv_lib_iconv_libiconv" >&6; }
-+if test "x$ac_cv_lib_iconv_libiconv" = x""yes; then
-   ac_found_iconv=yes
- fi
- 
-@@ -8449,10 +8721,10 @@ fi
-       LIBS="-liconv $LIBS"
-     fi
-   else
--        { echo "$as_me:$LINENO: checking whether _libiconv_version is declared" >&5
--echo $ECHO_N "checking whether _libiconv_version is declared... $ECHO_C" >&6; }
-+        { $as_echo "$as_me:$LINENO: checking whether _libiconv_version is declared" >&5
-+$as_echo_n "checking whether _libiconv_version is declared... " >&6; }
- if test "${ac_cv_have_decl__libiconv_version+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -8479,20 +8751,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_have_decl__libiconv_version=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_have_decl__libiconv_version=no
-@@ -8500,13 +8773,13 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_have_decl__libiconv_version" >&5
--echo "${ECHO_T}$ac_cv_have_decl__libiconv_version" >&6; }
--if test $ac_cv_have_decl__libiconv_version = yes; then
--   { echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
--echo $ECHO_N "checking for libiconv in -liconv... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl__libiconv_version" >&5
-+$as_echo "$ac_cv_have_decl__libiconv_version" >&6; }
-+if test "x$ac_cv_have_decl__libiconv_version" = x""yes; then
-+   { $as_echo "$as_me:$LINENO: checking for libiconv in -liconv" >&5
-+$as_echo_n "checking for libiconv in -liconv... " >&6; }
- if test "${ac_cv_lib_iconv_libiconv+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-liconv  $LIBS"
-@@ -8538,33 +8811,37 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_iconv_libiconv=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_iconv_libiconv=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_libiconv" >&5
--echo "${ECHO_T}$ac_cv_lib_iconv_libiconv" >&6; }
--if test $ac_cv_lib_iconv_libiconv = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_iconv_libiconv" >&5
-+$as_echo "$ac_cv_lib_iconv_libiconv" >&6; }
-+if test "x$ac_cv_lib_iconv_libiconv" = x""yes; then
-   LIBS="-liconv $LIBS"
- fi
- 
-@@ -8601,38 +8878,42 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   cat >>confdefs.h <<\_ACEOF
- #define ICONV_FROM_LIBICONV 1
- _ACEOF
- 
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
- 
- if test "x$ac_found_iconv" = "xyes"; then
--  { echo "$as_me:$LINENO: checking for iconv declaration" >&5
--echo $ECHO_N "checking for iconv declaration... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for iconv declaration" >&5
-+$as_echo_n "checking for iconv declaration... " >&6; }
- if test "${ac_cv_iconv_const+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -8663,20 +8944,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_iconv_const=
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_iconv_const=const
-@@ -8684,8 +8966,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_iconv_const" >&5
--echo "${ECHO_T}$ac_cv_iconv_const" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_iconv_const" >&5
-+$as_echo "$ac_cv_iconv_const" >&6; }
- 
- cat >>confdefs.h <<_ACEOF
- #define ICONV_CONST $ac_cv_iconv_const
-@@ -8697,10 +8979,10 @@ if test x$enable_pcre = xyes; then
-   LIBS="`pcre-config --libs` $LIBS"
- fi
- 
--{ echo "$as_me:$LINENO: checking if an include file defines ospeed" >&5
--echo $ECHO_N "checking if an include file defines ospeed... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if an include file defines ospeed" >&5
-+$as_echo_n "checking if an include file defines ospeed... " >&6; }
- if test "${zsh_cv_decl_ospeed_include_defines+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -8729,37 +9011,41 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   zsh_cv_decl_ospeed_include_defines=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_decl_ospeed_include_defines=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_decl_ospeed_include_defines" >&5
--echo "${ECHO_T}$zsh_cv_decl_ospeed_include_defines" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_decl_ospeed_include_defines" >&5
-+$as_echo "$zsh_cv_decl_ospeed_include_defines" >&6; }
- 
- if test x$zsh_cv_decl_ospeed_include_defines = xno; then
--  { echo "$as_me:$LINENO: checking if you must define ospeed" >&5
--echo $ECHO_N "checking if you must define ospeed... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if you must define ospeed" >&5
-+$as_echo_n "checking if you must define ospeed... " >&6; }
- if test "${zsh_cv_decl_ospeed_must_define+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -8782,31 +9068,35 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   zsh_cv_decl_ospeed_must_define=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_decl_ospeed_must_define=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_decl_ospeed_must_define" >&5
--echo "${ECHO_T}$zsh_cv_decl_ospeed_must_define" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_decl_ospeed_must_define" >&5
-+$as_echo "$zsh_cv_decl_ospeed_must_define" >&6; }
- fi
- 
- 
-@@ -8833,20 +9123,21 @@ if test x$gdbm != xno; then
- 
- for ac_header in gdbm.h
- do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  { echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+$as_echo_n "checking $ac_header usability... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -8862,32 +9153,33 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_header_compiler=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_header_compiler=no
- fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+$as_echo_n "checking $ac_header presence... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -8901,69 +9193,73 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   ac_header_preproc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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; }
-+{ $as_echo "$as_me:$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: )
--    { 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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+$as_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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- 
-     ;;
- esac
--{ echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   eval "$as_ac_Header=\$ac_header_preproc"
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
- 
- fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -8971,10 +9267,10 @@ fi
- done
- 
- 
--{ echo "$as_me:$LINENO: checking for gdbm_open in -lgdbm" >&5
--echo $ECHO_N "checking for gdbm_open in -lgdbm... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for gdbm_open in -lgdbm" >&5
-+$as_echo_n "checking for gdbm_open in -lgdbm... " >&6; }
- if test "${ac_cv_lib_gdbm_gdbm_open+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_check_lib_save_LIBS=$LIBS
- LIBS="-lgdbm  $LIBS"
-@@ -9006,33 +9302,37 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_lib_gdbm_gdbm_open=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_lib_gdbm_gdbm_open=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LIBS=$ac_check_lib_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_lib_gdbm_gdbm_open" >&5
--echo "${ECHO_T}$ac_cv_lib_gdbm_gdbm_open" >&6; }
--if test $ac_cv_lib_gdbm_gdbm_open = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gdbm_gdbm_open" >&5
-+$as_echo "$ac_cv_lib_gdbm_gdbm_open" >&6; }
-+if test "x$ac_cv_lib_gdbm_gdbm_open" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
- #define HAVE_LIBGDBM 1
- _ACEOF
-@@ -9046,20 +9346,21 @@ fi
- 
- for ac_header in sys/xattr.h
- do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  { echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+$as_echo_n "checking $ac_header usability... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -9075,32 +9376,33 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_header_compiler=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_header_compiler=no
- fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+$as_echo_n "checking $ac_header presence... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -9114,69 +9416,73 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   ac_header_preproc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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; }
-+{ $as_echo "$as_me:$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: )
--    { 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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+$as_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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- 
-     ;;
- esac
--{ echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   eval "$as_ac_Header=\$ac_header_preproc"
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
- 
- fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -9185,10 +9491,10 @@ done
- 
- 
- 
--{ echo "$as_me:$LINENO: checking return type of signal handlers" >&5
--echo $ECHO_N "checking return type of signal handlers... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking return type of signal handlers" >&5
-+$as_echo_n "checking return type of signal handlers... " >&6; }
- if test "${ac_cv_type_signal+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -9213,55 +9519,262 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_type_signal=int
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_cv_type_signal=void
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+{ $as_echo "$as_me:$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:$LINENO: checking for pid_t" >&5
-+$as_echo_n "checking for pid_t... " >&6; }
-+if test "${ac_cv_type_pid_t+set}" = set; then
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_cv_type_pid_t=no
-+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 (sizeof (pid_t))
-+       return 0;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+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:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-+  (eval "$ac_compile") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest.$ac_objext; then
-+  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 (sizeof ((pid_t)))
-+	  return 0;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+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:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-+  (eval "$ac_compile") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest.$ac_objext; then
-+  :
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_cv_type_pid_t=yes
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+fi
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5
-+$as_echo "$ac_cv_type_pid_t" >&6; }
-+if test "x$ac_cv_type_pid_t" = x""yes; then
-+  :
-+else
-+
-+cat >>confdefs.h <<_ACEOF
-+#define pid_t int
-+_ACEOF
-+
-+fi
-+
-+{ $as_echo "$as_me:$LINENO: checking for off_t" >&5
-+$as_echo_n "checking for off_t... " >&6; }
-+if test "${ac_cv_type_off_t+set}" = set; then
-+  $as_echo_n "(cached) " >&6
-+else
-+  ac_cv_type_off_t=no
-+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 (sizeof (off_t))
-+       return 0;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+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:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-+  (eval "$ac_compile") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest.$ac_objext; then
-+  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 (sizeof ((off_t)))
-+	  return 0;
-+  ;
-+  return 0;
-+}
-+_ACEOF
-+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:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-+  (eval "$ac_compile") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest.$ac_objext; then
-+  :
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_cv_type_off_t=yes
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-+else
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
--	ac_cv_type_signal=void
-+
- fi
- 
- rm -f core 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; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_off_t" >&5
-+$as_echo "$ac_cv_type_off_t" >&6; }
-+if test "x$ac_cv_type_off_t" = x""yes; then
-+  :
-+else
- 
- cat >>confdefs.h <<_ACEOF
--#define RETSIGTYPE $ac_cv_type_signal
-+#define off_t long 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
-+{ $as_echo "$as_me:$LINENO: checking for ino_t" >&5
-+$as_echo_n "checking for ino_t... " >&6; }
-+if test "${ac_cv_type_ino_t+set}" = set; then
-+  $as_echo_n "(cached) " >&6
- else
--  cat >conftest.$ac_ext <<_ACEOF
-+  ac_cv_type_ino_t=no
-+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
--typedef pid_t ac__type_new_;
- int
- main ()
- {
--if ((ac__type_new_ *) 0)
--  return 0;
--if (sizeof (ac__type_new_))
--  return 0;
-+if (sizeof (ino_t))
-+       return 0;
-   ;
-   return 0;
- }
-@@ -9272,44 +9785,18 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; 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 core 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 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
-@@ -9317,14 +9804,11 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
- $ac_includes_default
--typedef off_t ac__type_new_;
- int
- main ()
- {
--if ((ac__type_new_ *) 0)
--  return 0;
--if (sizeof (ac__type_new_))
--  return 0;
-+if (sizeof ((ino_t)))
-+	  return 0;
-   ;
-   return 0;
- }
-@@ -9335,59 +9819,66 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
--  ac_cv_type_off_t=yes
-+  :
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_cv_type_ino_t=yes
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
--	ac_cv_type_off_t=no
-+
- fi
- 
- rm -f core 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
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5
-+$as_echo "$ac_cv_type_ino_t" >&6; }
-+if test "x$ac_cv_type_ino_t" = x""yes; then
-   :
- else
- 
- cat >>confdefs.h <<_ACEOF
--#define off_t long int
-+#define ino_t unsigned long
- _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for ino_t" >&5
--echo $ECHO_N "checking for ino_t... $ECHO_C" >&6; }
--if test "${ac_cv_type_ino_t+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+{ $as_echo "$as_me:$LINENO: checking for mode_t" >&5
-+$as_echo_n "checking for mode_t... " >&6; }
-+if test "${ac_cv_type_mode_t+set}" = set; then
-+  $as_echo_n "(cached) " >&6
- else
--  cat >conftest.$ac_ext <<_ACEOF
-+  ac_cv_type_mode_t=no
-+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
--typedef ino_t ac__type_new_;
- int
- main ()
- {
--if ((ac__type_new_ *) 0)
--  return 0;
--if (sizeof (ac__type_new_))
--  return 0;
-+if (sizeof (mode_t))
-+       return 0;
-   ;
-   return 0;
- }
-@@ -9398,44 +9889,18 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
--  ac_cv_type_ino_t=yes
--else
--  echo "$as_me: failed program was:" >&5
--sed 's/^/| /' conftest.$ac_ext >&5
--
--	ac_cv_type_ino_t=no
--fi
--
--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--fi
--{ echo "$as_me:$LINENO: result: $ac_cv_type_ino_t" >&5
--echo "${ECHO_T}$ac_cv_type_ino_t" >&6; }
--if test $ac_cv_type_ino_t = yes; then
--  :
--else
--
--cat >>confdefs.h <<_ACEOF
--#define ino_t unsigned 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
-@@ -9443,14 +9908,11 @@ cat confdefs.h >>conftest.$ac_ext
- cat >>conftest.$ac_ext <<_ACEOF
- /* end confdefs.h.  */
- $ac_includes_default
--typedef mode_t ac__type_new_;
- int
- main ()
- {
--if ((ac__type_new_ *) 0)
--  return 0;
--if (sizeof (ac__type_new_))
--  return 0;
-+if (sizeof ((mode_t)))
-+	  return 0;
-   ;
-   return 0;
- }
-@@ -9461,30 +9923,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
--  ac_cv_type_mode_t=yes
-+  :
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_cv_type_mode_t=yes
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
--	ac_cv_type_mode_t=no
-+
- fi
- 
- rm -f core 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
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_mode_t" >&5
-+$as_echo "$ac_cv_type_mode_t" >&6; }
-+if test "x$ac_cv_type_mode_t" = x""yes; then
-   :
- else
- 
-@@ -9494,10 +9965,10 @@ _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; }
-+{ $as_echo "$as_me:$LINENO: checking for uid_t in sys/types.h" >&5
-+$as_echo_n "checking for uid_t in sys/types.h... " >&6; }
- if test "${ac_cv_type_uid_t+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -9517,8 +9988,8 @@ 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; }
-+{ $as_echo "$as_me:$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
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -9532,26 +10003,58 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for size_t" >&5
--echo $ECHO_N "checking for size_t... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for size_t" >&5
-+$as_echo_n "checking for size_t... " >&6; }
- if test "${ac_cv_type_size_t+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
--  cat >conftest.$ac_ext <<_ACEOF
-+  ac_cv_type_size_t=no
-+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
--typedef size_t ac__type_new_;
- int
- main ()
- {
--if ((ac__type_new_ *) 0)
--  return 0;
--if (sizeof (ac__type_new_))
-+if (sizeof (size_t))
-+       return 0;
-+  ;
-   return 0;
-+}
-+_ACEOF
-+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:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-+  (eval "$ac_compile") 2>conftest.er1
-+  ac_status=$?
-+  grep -v '^ *+' conftest.er1 >conftest.err
-+  rm -f conftest.er1
-+  cat conftest.err >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  (exit $ac_status); } && {
-+	 test -z "$ac_c_werror_flag" ||
-+	 test ! -s conftest.err
-+       } && test -s conftest.$ac_objext; then
-+  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 (sizeof ((size_t)))
-+	  return 0;
-   ;
-   return 0;
- }
-@@ -9562,30 +10065,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
--  ac_cv_type_size_t=yes
-+  :
-+else
-+  $as_echo "$as_me: failed program was:" >&5
-+sed 's/^/| /' conftest.$ac_ext >&5
-+
-+	ac_cv_type_size_t=yes
-+fi
-+
-+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
--	ac_cv_type_size_t=no
-+
- fi
- 
- rm -f core 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
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5
-+$as_echo "$ac_cv_type_size_t" >&6; }
-+if test "x$ac_cv_type_size_t" = x""yes; then
-   :
- else
- 
-@@ -9596,10 +10108,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking if long is 64 bits" >&5
--echo $ECHO_N "checking if long is 64 bits... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if long is 64 bits" >&5
-+$as_echo_n "checking if long is 64 bits... " >&6; }
- if test "${zsh_cv_long_is_64_bit+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_long_is_64_bit=no
-@@ -9618,36 +10130,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_long_is_64_bit=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_long_is_64_bit=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_long_is_64_bit" >&5
--echo "${ECHO_T}$zsh_cv_long_is_64_bit" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_long_is_64_bit" >&5
-+$as_echo "$zsh_cv_long_is_64_bit" >&6; }
- 
- 
- 
-@@ -9667,10 +10182,10 @@ if test x$zsh_cv_long_is_64_bit = xyes;
- _ACEOF
- 
- else
--  { echo "$as_me:$LINENO: checking if off_t is 64 bit" >&5
--echo $ECHO_N "checking if off_t is 64 bit... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if off_t is 64 bit" >&5
-+$as_echo_n "checking if off_t is 64 bit... " >&6; }
- if test "${zsh_cv_off_t_is_64_bit+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_off_t_is_64_bit=no
-@@ -9693,36 +10208,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_off_t_is_64_bit=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_off_t_is_64_bit=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_off_t_is_64_bit" >&5
--echo "${ECHO_T}$zsh_cv_off_t_is_64_bit" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_off_t_is_64_bit" >&5
-+$as_echo "$zsh_cv_off_t_is_64_bit" >&6; }
-   if test x$zsh_cv_off_t_is_64_bit = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define OFF_T_IS_64_BIT 1
-@@ -9730,10 +10248,10 @@ _ACEOF
- 
-   fi
- 
--  { echo "$as_me:$LINENO: checking if ino_t is 64 bit" >&5
--echo $ECHO_N "checking if ino_t is 64 bit... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if ino_t is 64 bit" >&5
-+$as_echo_n "checking if ino_t is 64 bit... " >&6; }
- if test "${zsh_cv_ino_t_is_64_bit+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_ino_t_is_64_bit=no
-@@ -9756,36 +10274,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_ino_t_is_64_bit=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_ino_t_is_64_bit=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_ino_t_is_64_bit" >&5
--echo "${ECHO_T}$zsh_cv_ino_t_is_64_bit" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_ino_t_is_64_bit" >&5
-+$as_echo "$zsh_cv_ino_t_is_64_bit" >&6; }
-   if test x$zsh_cv_ino_t_is_64_bit = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define INO_T_IS_64_BIT 1
-@@ -9795,10 +10316,10 @@ _ACEOF
- 
-   if test x$enable_largefile != xno -o x$zsh_cv_off_t_is_64_bit = xyes \
-   -o $zsh_cv_ino_t_is_64_bit = yes; then
--    { echo "$as_me:$LINENO: checking if compiler has a 64 bit type" >&5
--echo $ECHO_N "checking if compiler has a 64 bit type... $ECHO_C" >&6; }
-+    { $as_echo "$as_me:$LINENO: checking if compiler has a 64 bit type" >&5
-+$as_echo_n "checking if compiler has a 64 bit type... " >&6; }
- if test "${zsh_cv_64_bit_type+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   if test x != x ; then
-@@ -9832,29 +10353,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_64_bit_type="long long"
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_64_bit_type=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -9893,29 +10417,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_64_bit_type="quad_t"
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_64_bit_type=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -9955,29 +10482,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_64_bit_type="__int64_t"
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_64_bit_type=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -10018,29 +10548,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_64_bit_type="off_t"
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_64_bit_type=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -10048,18 +10581,18 @@ fi
- 
-      fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_64_bit_type" >&5
--echo "${ECHO_T}$zsh_cv_64_bit_type" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_64_bit_type" >&5
-+$as_echo "$zsh_cv_64_bit_type" >&6; }
-     if test "$zsh_cv_64_bit_type" != no; then
-       cat >>confdefs.h <<_ACEOF
- #define ZSH_64_BIT_TYPE $zsh_cv_64_bit_type
- _ACEOF
- 
- 
--                  { echo "$as_me:$LINENO: checking for a corresponding unsigned 64 bit type" >&5
--echo $ECHO_N "checking for a corresponding unsigned 64 bit type... $ECHO_C" >&6; }
-+                  { $as_echo "$as_me:$LINENO: checking for a corresponding unsigned 64 bit type" >&5
-+$as_echo_n "checking for a corresponding unsigned 64 bit type... " >&6; }
- if test "${zsh_cv_64_bit_utype+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   if test xforce != x ; then
-@@ -10093,29 +10626,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_64_bit_utype="unsigned $zsh_cv_64_bit_type"
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_64_bit_utype=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -10154,29 +10690,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_64_bit_utype="__uint64_t"
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_64_bit_utype=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -10184,8 +10723,8 @@ fi
- 
-        fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_64_bit_utype" >&5
--echo "${ECHO_T}$zsh_cv_64_bit_utype" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_64_bit_utype" >&5
-+$as_echo "$zsh_cv_64_bit_utype" >&6; }
-       if test "$zsh_cv_64_bit_utype" != no; then
-         cat >>confdefs.h <<_ACEOF
- #define ZSH_64_BIT_UTYPE $zsh_cv_64_bit_utype
-@@ -10196,10 +10735,10 @@ _ACEOF
-   fi
- fi
- 
--{ echo "$as_me:$LINENO: checking for sigset_t" >&5
--echo $ECHO_N "checking for sigset_t... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for sigset_t" >&5
-+$as_echo_n "checking for sigset_t... " >&6; }
- if test "${zsh_cv_type_sigset_t+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10223,20 +10762,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_type_sigset_t=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_type_sigset_t=no
-@@ -10244,8 +10784,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_type_sigset_t" >&5
--echo "${ECHO_T}$zsh_cv_type_sigset_t" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_sigset_t" >&5
-+$as_echo "$zsh_cv_type_sigset_t" >&6; }
- 
- 
- if test x$zsh_cv_type_sigset_t = xno; then
-@@ -10255,10 +10795,10 @@ _ACEOF
- 
- fi
- 
--{ 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; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atim.tv_nsec" >&5
-+$as_echo_n "checking for struct stat.st_atim.tv_nsec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_atim_tv_nsec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10283,20 +10823,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_atim_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -10322,20 +10863,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_atim_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_atim_tv_nsec=no
-@@ -10346,9 +10888,9 @@ fi
- 
- rm -f core 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
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atim_tv_nsec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_atim_tv_nsec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_atim_tv_nsec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC 1
-@@ -10356,10 +10898,10 @@ _ACEOF
- 
- 
- fi
--{ 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; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atimespec.tv_nsec" >&5
-+$as_echo_n "checking for struct stat.st_atimespec.tv_nsec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_atimespec_tv_nsec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10384,20 +10926,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -10423,20 +10966,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_atimespec_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_atimespec_tv_nsec=no
-@@ -10447,9 +10991,9 @@ fi
- 
- rm -f core 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
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_atimespec_tv_nsec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_atimespec_tv_nsec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC 1
-@@ -10457,10 +11001,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5
--echo $ECHO_N "checking for struct stat.st_atimensec... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_atimensec" >&5
-+$as_echo_n "checking for struct stat.st_atimensec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_atimensec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10485,20 +11029,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_atimensec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -10524,20 +11069,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_atimensec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_atimensec=no
-@@ -10548,9 +11094,9 @@ fi
- 
- rm -f core 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
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_atimensec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_atimensec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_atimensec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_ATIMENSEC 1
-@@ -10558,10 +11104,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct stat.st_mtim.tv_nsec" >&5
--echo $ECHO_N "checking for struct stat.st_mtim.tv_nsec... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtim.tv_nsec" >&5
-+$as_echo_n "checking for struct stat.st_mtim.tv_nsec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_mtim_tv_nsec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10586,20 +11132,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_mtim_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -10625,20 +11172,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_mtim_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_mtim_tv_nsec=no
-@@ -10649,9 +11197,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtim_tv_nsec" >&5
--echo "${ECHO_T}$ac_cv_member_struct_stat_st_mtim_tv_nsec" >&6; }
--if test $ac_cv_member_struct_stat_st_mtim_tv_nsec = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtim_tv_nsec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_mtim_tv_nsec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_mtim_tv_nsec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_MTIM_TV_NSEC 1
-@@ -10659,10 +11207,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct stat.st_mtimespec.tv_nsec" >&5
--echo $ECHO_N "checking for struct stat.st_mtimespec.tv_nsec... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtimespec.tv_nsec" >&5
-+$as_echo_n "checking for struct stat.st_mtimespec.tv_nsec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_mtimespec_tv_nsec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10687,20 +11235,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_mtimespec_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -10726,20 +11275,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_mtimespec_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_mtimespec_tv_nsec=no
-@@ -10750,9 +11300,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&5
--echo "${ECHO_T}$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&6; }
--if test $ac_cv_member_struct_stat_st_mtimespec_tv_nsec = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_mtimespec_tv_nsec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_MTIMESPEC_TV_NSEC 1
-@@ -10760,10 +11310,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct stat.st_mtimensec" >&5
--echo $ECHO_N "checking for struct stat.st_mtimensec... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_mtimensec" >&5
-+$as_echo_n "checking for struct stat.st_mtimensec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_mtimensec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10788,20 +11338,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_mtimensec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -10827,20 +11378,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_mtimensec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_mtimensec=no
-@@ -10851,9 +11403,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimensec" >&5
--echo "${ECHO_T}$ac_cv_member_struct_stat_st_mtimensec" >&6; }
--if test $ac_cv_member_struct_stat_st_mtimensec = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_mtimensec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_mtimensec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_mtimensec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_MTIMENSEC 1
-@@ -10861,10 +11413,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct stat.st_ctim.tv_nsec" >&5
--echo $ECHO_N "checking for struct stat.st_ctim.tv_nsec... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_ctim.tv_nsec" >&5
-+$as_echo_n "checking for struct stat.st_ctim.tv_nsec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_ctim_tv_nsec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10889,20 +11441,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_ctim_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -10928,20 +11481,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_ctim_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_ctim_tv_nsec=no
-@@ -10952,9 +11506,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctim_tv_nsec" >&5
--echo "${ECHO_T}$ac_cv_member_struct_stat_st_ctim_tv_nsec" >&6; }
--if test $ac_cv_member_struct_stat_st_ctim_tv_nsec = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctim_tv_nsec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_ctim_tv_nsec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_ctim_tv_nsec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_CTIM_TV_NSEC 1
-@@ -10962,10 +11516,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct stat.st_ctimespec.tv_nsec" >&5
--echo $ECHO_N "checking for struct stat.st_ctimespec.tv_nsec... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_ctimespec.tv_nsec" >&5
-+$as_echo_n "checking for struct stat.st_ctimespec.tv_nsec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_ctimespec_tv_nsec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -10990,20 +11544,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_ctimespec_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -11029,20 +11584,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_ctimespec_tv_nsec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_ctimespec_tv_nsec=no
-@@ -11053,9 +11609,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctimespec_tv_nsec" >&5
--echo "${ECHO_T}$ac_cv_member_struct_stat_st_ctimespec_tv_nsec" >&6; }
--if test $ac_cv_member_struct_stat_st_ctimespec_tv_nsec = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctimespec_tv_nsec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_ctimespec_tv_nsec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_ctimespec_tv_nsec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_CTIMESPEC_TV_NSEC 1
-@@ -11063,10 +11619,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct stat.st_ctimensec" >&5
--echo $ECHO_N "checking for struct stat.st_ctimensec... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct stat.st_ctimensec" >&5
-+$as_echo_n "checking for struct stat.st_ctimensec... " >&6; }
- if test "${ac_cv_member_struct_stat_st_ctimensec+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11091,20 +11647,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_ctimensec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -11130,20 +11687,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_stat_st_ctimensec=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_stat_st_ctimensec=no
-@@ -11154,9 +11712,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctimensec" >&5
--echo "${ECHO_T}$ac_cv_member_struct_stat_st_ctimensec" >&6; }
--if test $ac_cv_member_struct_stat_st_ctimensec = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_stat_st_ctimensec" >&5
-+$as_echo "$ac_cv_member_struct_stat_st_ctimensec" >&6; }
-+if test "x$ac_cv_member_struct_stat_st_ctimensec" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_STAT_ST_CTIMENSEC 1
-@@ -11166,10 +11724,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for struct timezone" >&5
--echo $ECHO_N "checking for struct timezone... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct timezone" >&5
-+$as_echo_n "checking for struct timezone... " >&6; }
- if test "${zsh_cv_type_exists_struct_timezone+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11196,20 +11754,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_type_exists_struct_timezone=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_type_exists_struct_timezone=no
-@@ -11218,8 +11777,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_timezone" >&5
--echo "${ECHO_T}$zsh_cv_type_exists_struct_timezone" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_timezone" >&5
-+$as_echo "$zsh_cv_type_exists_struct_timezone" >&6; }
- 
- 
- if test $zsh_cv_type_exists_struct_timezone = yes; then
-@@ -11230,10 +11789,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for struct utmp" >&5
--echo $ECHO_N "checking for struct utmp... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct utmp" >&5
-+$as_echo_n "checking for struct utmp... " >&6; }
- if test "${zsh_cv_type_exists_struct_utmp+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11263,20 +11822,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_type_exists_struct_utmp=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_type_exists_struct_utmp=no
-@@ -11285,8 +11845,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_utmp" >&5
--echo "${ECHO_T}$zsh_cv_type_exists_struct_utmp" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_utmp" >&5
-+$as_echo "$zsh_cv_type_exists_struct_utmp" >&6; }
- 
- 
- if test $zsh_cv_type_exists_struct_utmp = yes; then
-@@ -11296,10 +11856,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for struct utmpx" >&5
--echo $ECHO_N "checking for struct utmpx... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct utmpx" >&5
-+$as_echo_n "checking for struct utmpx... " >&6; }
- if test "${zsh_cv_type_exists_struct_utmpx+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11329,20 +11889,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_type_exists_struct_utmpx=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_type_exists_struct_utmpx=no
-@@ -11351,8 +11912,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_utmpx" >&5
--echo "${ECHO_T}$zsh_cv_type_exists_struct_utmpx" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_exists_struct_utmpx" >&5
-+$as_echo "$zsh_cv_type_exists_struct_utmpx" >&6; }
- 
- 
- if test $zsh_cv_type_exists_struct_utmpx = yes; then
-@@ -11363,10 +11924,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for ut_host in struct utmp" >&5
--echo $ECHO_N "checking for ut_host in struct utmp... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for ut_host in struct utmp" >&5
-+$as_echo_n "checking for ut_host in struct utmp... " >&6; }
- if test "${zsh_cv_struct_member_struct_utmp_ut_host+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11396,20 +11957,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_utmp_ut_host=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_utmp_ut_host=no
-@@ -11418,8 +11980,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmp_ut_host" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_utmp_ut_host" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmp_ut_host" >&5
-+$as_echo "$zsh_cv_struct_member_struct_utmp_ut_host" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_utmp_ut_host = yes; then
-@@ -11429,10 +11991,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for ut_host in struct utmpx" >&5
--echo $ECHO_N "checking for ut_host in struct utmpx... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for ut_host in struct utmpx" >&5
-+$as_echo_n "checking for ut_host in struct utmpx... " >&6; }
- if test "${zsh_cv_struct_member_struct_utmpx_ut_host+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11462,20 +12024,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_utmpx_ut_host=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_utmpx_ut_host=no
-@@ -11484,8 +12047,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_host" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_utmpx_ut_host" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_host" >&5
-+$as_echo "$zsh_cv_struct_member_struct_utmpx_ut_host" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_utmpx_ut_host = yes; then
-@@ -11495,10 +12058,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for ut_xtime in struct utmpx" >&5
--echo $ECHO_N "checking for ut_xtime in struct utmpx... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for ut_xtime in struct utmpx" >&5
-+$as_echo_n "checking for ut_xtime in struct utmpx... " >&6; }
- if test "${zsh_cv_struct_member_struct_utmpx_ut_xtime+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11528,20 +12091,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_utmpx_ut_xtime=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_utmpx_ut_xtime=no
-@@ -11550,8 +12114,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_xtime" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_utmpx_ut_xtime" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_xtime" >&5
-+$as_echo "$zsh_cv_struct_member_struct_utmpx_ut_xtime" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_utmpx_ut_xtime = yes; then
-@@ -11561,10 +12125,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for ut_tv in struct utmpx" >&5
--echo $ECHO_N "checking for ut_tv in struct utmpx... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for ut_tv in struct utmpx" >&5
-+$as_echo_n "checking for ut_tv in struct utmpx... " >&6; }
- if test "${zsh_cv_struct_member_struct_utmpx_ut_tv+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11594,20 +12158,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_utmpx_ut_tv=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_utmpx_ut_tv=no
-@@ -11616,8 +12181,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_tv" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_utmpx_ut_tv" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_utmpx_ut_tv" >&5
-+$as_echo "$zsh_cv_struct_member_struct_utmpx_ut_tv" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_utmpx_ut_tv = yes; then
-@@ -11628,10 +12193,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for d_ino in struct dirent" >&5
--echo $ECHO_N "checking for d_ino in struct dirent... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for d_ino in struct dirent" >&5
-+$as_echo_n "checking for d_ino in struct dirent... " >&6; }
- if test "${zsh_cv_struct_member_struct_dirent_d_ino+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11661,20 +12226,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_dirent_d_ino=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_dirent_d_ino=no
-@@ -11683,8 +12249,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_dirent_d_ino" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_dirent_d_ino" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_dirent_d_ino" >&5
-+$as_echo "$zsh_cv_struct_member_struct_dirent_d_ino" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_dirent_d_ino = yes; then
-@@ -11694,10 +12260,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for d_stat in struct dirent" >&5
--echo $ECHO_N "checking for d_stat in struct dirent... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for d_stat in struct dirent" >&5
-+$as_echo_n "checking for d_stat in struct dirent... " >&6; }
- if test "${zsh_cv_struct_member_struct_dirent_d_stat+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11727,20 +12293,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_dirent_d_stat=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_dirent_d_stat=no
-@@ -11749,8 +12316,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_dirent_d_stat" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_dirent_d_stat" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_dirent_d_stat" >&5
-+$as_echo "$zsh_cv_struct_member_struct_dirent_d_stat" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_dirent_d_stat = yes; then
-@@ -11760,10 +12327,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for d_ino in struct direct" >&5
--echo $ECHO_N "checking for d_ino in struct direct... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for d_ino in struct direct" >&5
-+$as_echo_n "checking for d_ino in struct direct... " >&6; }
- if test "${zsh_cv_struct_member_struct_direct_d_ino+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11799,20 +12366,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_direct_d_ino=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_direct_d_ino=no
-@@ -11821,8 +12389,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_direct_d_ino" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_direct_d_ino" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_direct_d_ino" >&5
-+$as_echo "$zsh_cv_struct_member_struct_direct_d_ino" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_direct_d_ino = yes; then
-@@ -11832,10 +12400,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for d_stat in struct direct" >&5
--echo $ECHO_N "checking for d_stat in struct direct... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for d_stat in struct direct" >&5
-+$as_echo_n "checking for d_stat in struct direct... " >&6; }
- if test "${zsh_cv_struct_member_struct_direct_d_stat+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11871,20 +12439,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_direct_d_stat=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_direct_d_stat=no
-@@ -11893,8 +12462,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_direct_d_stat" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_direct_d_stat" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_direct_d_stat" >&5
-+$as_echo "$zsh_cv_struct_member_struct_direct_d_stat" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_direct_d_stat = yes; then
-@@ -11905,10 +12474,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for sin6_scope_id in struct sockaddr_in6" >&5
--echo $ECHO_N "checking for sin6_scope_id in struct sockaddr_in6... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for sin6_scope_id in struct sockaddr_in6" >&5
-+$as_echo_n "checking for sin6_scope_id in struct sockaddr_in6... " >&6; }
- if test "${zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11936,20 +12505,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id=no
-@@ -11958,8 +12528,8 @@ fi
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id" >&5
--echo "${ECHO_T}$zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id" >&5
-+$as_echo "$zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id" >&6; }
- 
- 
- if test $zsh_cv_struct_member_struct_sockaddr_in6_sin6_scope_id = yes; then
-@@ -11972,10 +12542,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking if we need our own h_errno" >&5
--echo $ECHO_N "checking if we need our own h_errno... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if we need our own h_errno" >&5
-+$as_echo_n "checking if we need our own h_errno... " >&6; }
- if test "${zsh_cv_decl_h_errno_use_local+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -11998,31 +12568,35 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   zsh_cv_decl_h_errno_use_local=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_decl_h_errno_use_local=yes
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_decl_h_errno_use_local" >&5
--echo "${ECHO_T}$zsh_cv_decl_h_errno_use_local" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_decl_h_errno_use_local" >&5
-+$as_echo "$zsh_cv_decl_h_errno_use_local" >&6; }
- 
- if test x$zsh_cv_decl_h_errno_use_local = xyes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -12175,11 +12749,11 @@ for ac_func in strftime strptime mktime
- 	       gdbm_open getxattr \
- 	       realpath canonicalize_file_name
- 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; }
-+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-+$as_echo_n "checking for $ac_func... " >&6; }
- if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -12232,44 +12806,51 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   eval "$as_ac_var=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_var=no"
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_var'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
- done
- 
--{ echo "$as_me:$LINENO: checking for working strcoll" >&5
--echo $ECHO_N "checking for working strcoll... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for working strcoll" >&5
-+$as_echo_n "checking for working strcoll... " >&6; }
- if test "${ac_cv_func_strcoll_works+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   ac_cv_func_strcoll_works=no
-@@ -12297,36 +12878,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_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
-+  $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
- 
- ( exit $ac_status )
- ac_cv_func_strcoll_works=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* 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; }
-+{ $as_echo "$as_me:$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
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -12340,11 +12924,11 @@ if test x$enable_cap = xyes; then
- 
- for ac_func in cap_get_proc
- 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; }
-+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-+$as_echo_n "checking for $ac_func... " >&6; }
- if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -12397,35 +12981,42 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   eval "$as_ac_var=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_var=no"
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_var'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -12435,10 +13026,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking if tgetent accepts NULL" >&5
--echo $ECHO_N "checking if tgetent accepts NULL... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if tgetent accepts NULL" >&5
-+$as_echo_n "checking if tgetent accepts NULL... " >&6; }
- if test "${zsh_cv_func_tgetent_accepts_null+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_func_tgetent_accepts_null=no
-@@ -12471,19 +13062,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   if test -f conftest.tgetent; then
-     zsh_cv_func_tgetent_accepts_null=yes
-@@ -12491,30 +13084,31 @@ eval "echo \"\$as_me:$LINENO: $ac_try_ec
-     zsh_cv_func_tgetent_accepts_null=no
-   fi
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_func_tgetent_accepts_null=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_func_tgetent_accepts_null" >&5
--echo "${ECHO_T}$zsh_cv_func_tgetent_accepts_null" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_func_tgetent_accepts_null" >&5
-+$as_echo "$zsh_cv_func_tgetent_accepts_null" >&6; }
- if test x$zsh_cv_func_tgetent_accepts_null = xyes; then
-   cat >>confdefs.h <<\_ACEOF
- #define TGETENT_ACCEPTS_NULL 1
- _ACEOF
- 
- fi
--{ echo "$as_me:$LINENO: checking if tgetent returns 0 on success" >&5
--echo $ECHO_N "checking if tgetent returns 0 on success... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if tgetent returns 0 on success" >&5
-+$as_echo_n "checking if tgetent returns 0 on success... " >&6; }
- if test "${zsh_cv_func_tgetent_zero_success+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_func_tgetent_zero_success=no
-@@ -12547,19 +13141,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   if test -f conftest.tgetent0; then
-     zsh_cv_func_tgetent_zero_success=yes
-@@ -12567,20 +13163,21 @@ eval "echo \"\$as_me:$LINENO: $ac_try_ec
-     zsh_cv_func_tgetent_zero_success=no
-   fi
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_func_tgetent_zero_success=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_func_tgetent_zero_success" >&5
--echo "${ECHO_T}$zsh_cv_func_tgetent_zero_success" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_func_tgetent_zero_success" >&5
-+$as_echo "$zsh_cv_func_tgetent_zero_success" >&6; }
- 
- 
- if test x$zsh_cv_func_tgetent_zero_success = xyes; then
-@@ -12599,20 +13196,21 @@ fi
- 
- for ac_header in stdlib.h unistd.h
- do
--as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  { echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-+$as_echo_n "checking $ac_header usability... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -12628,32 +13226,33 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_header_compiler=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_header_compiler=no
- fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
--{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
--echo "${ECHO_T}$ac_header_compiler" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-+$as_echo "$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; }
-+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-+$as_echo_n "checking $ac_header presence... " >&6; }
- cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -12667,69 +13266,73 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } >/dev/null && {
- 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        }; then
-   ac_header_preproc=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_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; }
-+{ $as_echo "$as_me:$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: )
--    { 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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-+$as_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;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
- 
-     ;;
- esac
--{ echo "$as_me:$LINENO: checking for $ac_header" >&5
--echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   eval "$as_ac_Header=\$ac_header_preproc"
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
- 
- fi
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -12739,11 +13342,11 @@ 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; }
-+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-+$as_echo_n "checking for $ac_func... " >&6; }
- if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -12796,44 +13399,51 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   eval "$as_ac_var=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_var=no"
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_var'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+#define `$as_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; }
-+{ $as_echo "$as_me:$LINENO: checking for working mmap" >&5
-+$as_echo_n "checking for working mmap... " >&6; }
- if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   ac_cv_func_mmap_fixed_mapped=no
-@@ -12977,36 +13587,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_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
-+  $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
- 
- ( exit $ac_status )
- ac_cv_func_mmap_fixed_mapped=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* 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; }
-+{ $as_echo "$as_me:$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
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -13021,11 +13634,11 @@ if test x$ac_cv_func_mmap_fixed_mapped =
- 
- for ac_func in munmap msync
- 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; }
-+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-+$as_echo_n "checking for $ac_func... " >&6; }
- if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -13078,35 +13691,42 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   eval "$as_ac_var=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_var=no"
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_var'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -13115,10 +13735,10 @@ done
- fi
- 
- if test x$ac_cv_func_setpgrp = xyes; then
--  { echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
--echo $ECHO_N "checking whether getpgrp requires zero arguments... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking whether getpgrp requires zero arguments" >&5
-+$as_echo_n "checking whether getpgrp requires zero arguments... " >&6; }
- if test "${ac_cv_func_getpgrp_void+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   # Use it with a single arg.
- cat >conftest.$ac_ext <<_ACEOF
-@@ -13142,20 +13762,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_func_getpgrp_void=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_func_getpgrp_void=yes
-@@ -13164,8 +13785,8 @@ fi
- rm -f core 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; }
-+{ $as_echo "$as_me:$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
- 
- cat >>confdefs.h <<\_ACEOF
-@@ -13197,11 +13818,11 @@ if test x$dynamic = xyes; then
- for ac_func in dlopen dlerror dlsym dlclose load loadquery loadbind unload \
- 		shl_load shl_unload shl_findsym
- 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; }
-+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-+$as_echo_n "checking for $ac_func... " >&6; }
- if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -13254,35 +13875,42 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   eval "$as_ac_var=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_var=no"
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_var'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
- _ACEOF
- 
- fi
-@@ -13294,10 +13922,10 @@ fi
- 
- if test x$ac_cv_func_getxattr = xyes && test x$ac_cv_header_sys_xattr_h = xyes
- then
--  { echo "$as_me:$LINENO: checking if getxattr etc. are Linux-like" >&5
--echo $ECHO_N "checking if getxattr etc. are Linux-like... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if getxattr etc. are Linux-like" >&5
-+$as_echo_n "checking if getxattr etc. are Linux-like... " >&6; }
- if test "${zsh_cv_getxattr_linux+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -13326,20 +13954,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_getxattr_linux=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_getxattr_linux=no
-@@ -13347,14 +13976,14 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_getxattr_linux" >&5
--echo "${ECHO_T}$zsh_cv_getxattr_linux" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_getxattr_linux" >&5
-+$as_echo "$zsh_cv_getxattr_linux" >&6; }
- 
-   if test x$zsh_cv_getxattr_linux != xyes; then
--    { echo "$as_me:$LINENO: checking if getxattr etc. are MAC-like" >&5
--echo $ECHO_N "checking if getxattr etc. are MAC-like... $ECHO_C" >&6; }
-+    { $as_echo "$as_me:$LINENO: checking if getxattr etc. are MAC-like" >&5
-+$as_echo_n "checking if getxattr etc. are MAC-like... " >&6; }
- if test "${zsh_cv_getxattr_mac+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -13381,20 +14010,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_getxattr_mac=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_getxattr_mac=no
-@@ -13402,8 +14032,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_getxattr_mac" >&5
--echo "${ECHO_T}$zsh_cv_getxattr_mac" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_getxattr_mac" >&5
-+$as_echo "$zsh_cv_getxattr_mac" >&6; }
- 
-     if test x$zsh_cv_getxattr_mac = xyes; then
-       cat >>confdefs.h <<\_ACEOF
-@@ -13414,10 +14044,10 @@ _ACEOF
-   fi
- fi
- 
--{ echo "$as_me:$LINENO: checking if getxattr etc. are usable" >&5
--echo $ECHO_N "checking if getxattr etc. are usable... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if getxattr etc. are usable" >&5
-+$as_echo_n "checking if getxattr etc. are usable... " >&6; }
- if test "${zsh_cv_use_xattr+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test x$zsh_cv_getxattr_linux = xyes || test x$zsh_cv_getxattr_mac = xyes
- then
-@@ -13426,8 +14056,8 @@ else
- zsh_cv_use_xattr=no
- fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_use_xattr" >&5
--echo "${ECHO_T}$zsh_cv_use_xattr" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_use_xattr" >&5
-+$as_echo "$zsh_cv_use_xattr" >&6; }
- 
- 
- 
-@@ -13437,8 +14067,8 @@ echo "${ECHO_T}$zsh_cv_use_xattr" >&6; }
- 
- 
- 
--{ echo "$as_me:$LINENO: checking what style of signals to use" >&5
--echo $ECHO_N "checking what style of signals to use... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking what style of signals to use" >&5
-+$as_echo_n "checking what style of signals to use... " >&6; }
- if test x$ac_cv_func_sigaction = xyes && test x$ac_cv_func_sigprocmask = xyes; then
-   signals_style=POSIX_SIGNALS
-   cat >>confdefs.h <<\_ACEOF
-@@ -13468,13 +14098,13 @@ cat >>confdefs.h <<_ACEOF
- #define $signals_style 1
- _ACEOF
- 
--{ echo "$as_me:$LINENO: result: $signals_style" >&5
--echo "${ECHO_T}$signals_style" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $signals_style" >&5
-+$as_echo "$signals_style" >&6; }
- 
--{ echo "$as_me:$LINENO: checking where signal.h is located" >&5
--echo $ECHO_N "checking where signal.h is located... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking where signal.h is located" >&5
-+$as_echo_n "checking where signal.h is located... " >&6; }
- if test "${zsh_cv_path_signal_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   echo "#include " > nametmp.c
- sigfile_list="`$CPP nametmp.c |
-@@ -13503,21 +14133,21 @@ do
-   test "x$nsigs" != x && test "$nsigs" -ge 7 && break
- done
- if test x$SIGNAL_H = x"/dev/null"; then
--  { { echo "$as_me:$LINENO: error: SIGNAL MACROS NOT FOUND:  please report to developers" >&5
--echo "$as_me: error: SIGNAL MACROS NOT FOUND:  please report to developers" >&2;}
-+  { { $as_echo "$as_me:$LINENO: error: SIGNAL MACROS NOT FOUND:  please report to developers" >&5
-+$as_echo "$as_me: error: SIGNAL MACROS NOT FOUND:  please report to developers" >&2;}
-    { (exit 1); exit 1; }; }
- fi
- zsh_cv_path_signal_h=$SIGNAL_H
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_signal_h" >&5
--echo "${ECHO_T}$zsh_cv_path_signal_h" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_signal_h" >&5
-+$as_echo "$zsh_cv_path_signal_h" >&6; }
- SIGNAL_H=$zsh_cv_path_signal_h
- 
--{ echo "$as_me:$LINENO: checking where error names are located" >&5
--echo $ECHO_N "checking where error names are located... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking where error names are located" >&5
-+$as_echo_n "checking where error names are located... " >&6; }
- if test "${zsh_cv_path_errno_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   echo "#include " > nametmp.c
- errfile_list="`$CPP nametmp.c |
-@@ -13538,21 +14168,21 @@ do
-   fi
- done
- if test x"$ERRNO_H" = x; then
--  { { echo "$as_me:$LINENO: error: ERROR MACROS NOT FOUND:  please report to developers" >&5
--echo "$as_me: error: ERROR MACROS NOT FOUND:  please report to developers" >&2;}
-+  { { $as_echo "$as_me:$LINENO: error: ERROR MACROS NOT FOUND:  please report to developers" >&5
-+$as_echo "$as_me: error: ERROR MACROS NOT FOUND:  please report to developers" >&2;}
-    { (exit 1); exit 1; }; }
- fi
- zsh_cv_path_errno_h="$ERRNO_H"
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_errno_h" >&5
--echo "${ECHO_T}$zsh_cv_path_errno_h" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_errno_h" >&5
-+$as_echo "$zsh_cv_path_errno_h" >&6; }
- ERRNO_H="$zsh_cv_path_errno_h"
- 
--{ echo "$as_me:$LINENO: checking location of curses header" >&5
--echo $ECHO_N "checking location of curses header... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking location of curses header" >&5
-+$as_echo_n "checking location of curses header... " >&6; }
- if test "${zsh_cv_path_curses_header+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test x$zsh_cv_ignore_ncurses = xyes; then
-   if test x$ac_cv_header_curses_h = xyes; then
-@@ -13572,8 +14202,8 @@ else
-   zsh_cv_path_curses_header=none
- fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_curses_header" >&5
--echo "${ECHO_T}$zsh_cv_path_curses_header" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_curses_header" >&5
-+$as_echo "$zsh_cv_path_curses_header" >&6; }
- 
- 
- if test x$zsh_cv_path_curses_header != xnone; then
-@@ -13587,10 +14217,10 @@ else
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking where curses key definitions are located" >&5
--echo $ECHO_N "checking where curses key definitions are located... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking where curses key definitions are located" >&5
-+$as_echo_n "checking where curses key definitions are located... " >&6; }
- if test "${zsh_cv_path_curses_keys_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test x$zsh_cv_path_curses_header = xnone; then
-   echo >nametmp.c
-@@ -13619,18 +14249,18 @@ done
- zsh_cv_path_curses_keys_h="$CURSES_KEYS_H"
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_curses_keys_h" >&5
--echo "${ECHO_T}$zsh_cv_path_curses_keys_h" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_curses_keys_h" >&5
-+$as_echo "$zsh_cv_path_curses_keys_h" >&6; }
- CURSES_KEYS_H="$zsh_cv_path_curses_keys_h"
- 
- 
- for ac_header in ncursesw/term.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; }
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -13648,20 +14278,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   eval "$as_ac_Header=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_Header=no"
-@@ -13669,12 +14300,15 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
-  true
- else
-@@ -13686,11 +14320,11 @@ done
- 
- for ac_header in ncurses/term.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; }
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -13708,20 +14342,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   eval "$as_ac_Header=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_Header=no"
-@@ -13729,12 +14364,15 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
-  true
- else
-@@ -13746,11 +14384,11 @@ done
- 
- for ac_header in term.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; }
-+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-+$as_echo_n "checking for $ac_header... " >&6; }
- if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -13768,20 +14406,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   eval "$as_ac_Header=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_Header=no"
-@@ -13789,12 +14428,15 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_Header'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_Header'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_Header'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   cat >>confdefs.h <<_ACEOF
--#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
-+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
- _ACEOF
-  true
- else
-@@ -13804,10 +14446,10 @@ fi
- done
- 
- 
--{ echo "$as_me:$LINENO: checking where term.h is located" >&5
--echo $ECHO_N "checking where term.h is located... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking where term.h is located" >&5
-+$as_echo_n "checking where term.h is located... " >&6; }
- if test "${zsh_cv_path_term_header+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   case x$zsh_cv_path_curses_header in
-   xncursesw/*)
-@@ -13829,8 +14471,8 @@ if test x$zsh_cv_path_term_header = x; t
-   fi
- fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_term_header" >&5
--echo "${ECHO_T}$zsh_cv_path_term_header" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_term_header" >&5
-+$as_echo "$zsh_cv_path_term_header" >&6; }
- 
- 
- 
-@@ -13860,8 +14502,8 @@ _ACEOF
-     term_includes="#include <$zsh_cv_path_term_header>"
-   fi
- 
--  { echo "$as_me:$LINENO: checking if boolcodes is available" >&5
--echo $ECHO_N "checking if boolcodes is available... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if boolcodes is available" >&5
-+$as_echo_n "checking if boolcodes is available... " >&6; }
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -13883,35 +14525,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_BOOLCODES 1
- _ACEOF
-  boolcodes=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	boolcodes=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
--  { echo "$as_me:$LINENO: result: $boolcodes" >&5
--echo "${ECHO_T}$boolcodes" >&6; }
--  { echo "$as_me:$LINENO: checking if numcodes is available" >&5
--echo $ECHO_N "checking if numcodes is available... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $boolcodes" >&5
-+$as_echo "$boolcodes" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if numcodes is available" >&5
-+$as_echo_n "checking if numcodes is available... " >&6; }
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -13933,35 +14579,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_NUMCODES 1
- _ACEOF
-  numcodes=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	numcodes=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
--  { echo "$as_me:$LINENO: result: $numcodes" >&5
--echo "${ECHO_T}$numcodes" >&6; }
--  { echo "$as_me:$LINENO: checking if strcodes is available" >&5
--echo $ECHO_N "checking if strcodes is available... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $numcodes" >&5
-+$as_echo "$numcodes" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if strcodes is available" >&5
-+$as_echo_n "checking if strcodes is available... " >&6; }
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -13983,35 +14633,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_STRCODES 1
- _ACEOF
-  strcodes=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	strcodes=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
--  { echo "$as_me:$LINENO: result: $strcodes" >&5
--echo "${ECHO_T}$strcodes" >&6; }
--  { echo "$as_me:$LINENO: checking if boolnames is available" >&5
--echo $ECHO_N "checking if boolnames is available... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $strcodes" >&5
-+$as_echo "$strcodes" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if boolnames is available" >&5
-+$as_echo_n "checking if boolnames is available... " >&6; }
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -14033,35 +14687,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_BOOLNAMES 1
- _ACEOF
-  boolnames=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	boolnames=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
--  { echo "$as_me:$LINENO: result: $boolnames" >&5
--echo "${ECHO_T}$boolnames" >&6; }
--  { echo "$as_me:$LINENO: checking if numnames is available" >&5
--echo $ECHO_N "checking if numnames is available... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $boolnames" >&5
-+$as_echo "$boolnames" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if numnames is available" >&5
-+$as_echo_n "checking if numnames is available... " >&6; }
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -14083,35 +14741,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_NUMNAMES 1
- _ACEOF
-  numnames=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	numnames=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
--  { echo "$as_me:$LINENO: result: $numnames" >&5
--echo "${ECHO_T}$numnames" >&6; }
--  { echo "$as_me:$LINENO: checking if strnames is available" >&5
--echo $ECHO_N "checking if strnames is available... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $numnames" >&5
-+$as_echo "$numnames" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if strnames is available" >&5
-+$as_echo_n "checking if strnames is available... " >&6; }
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
- _ACEOF
-@@ -14133,43 +14795,47 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_STRNAMES 1
- _ACEOF
-  strnames=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	strnames=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
--  { echo "$as_me:$LINENO: result: $strnames" >&5
--echo "${ECHO_T}$strnames" >&6; }
-+  { $as_echo "$as_me:$LINENO: result: $strnames" >&5
-+$as_echo "$strnames" >&6; }
- else
-   ZSH_TERM_H=
- fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking where the RLIMIT macros are located" >&5
--echo $ECHO_N "checking where the RLIMIT macros are located... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking where the RLIMIT macros are located" >&5
-+$as_echo_n "checking where the RLIMIT macros are located... " >&6; }
- if test "${zsh_cv_path_rlimit_h+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   echo "#include " >restmp.c
- resourcefile_list="`$CPP restmp.c |
-@@ -14195,12 +14861,12 @@ do
- done
- zsh_cv_path_rlimit_h=$RESOURCE_H
- if test x$RESOURCE_H = x"/dev/null" && test x$ac_cv_func_getrlimit = xyes; then
--  { echo "$as_me:$LINENO: WARNING: RLIMIT MACROS NOT FOUND:  please report to developers" >&5
--echo "$as_me: WARNING: RLIMIT MACROS NOT FOUND:  please report to developers" >&2;}
-+  { $as_echo "$as_me:$LINENO: WARNING: RLIMIT MACROS NOT FOUND:  please report to developers" >&5
-+$as_echo "$as_me: WARNING: RLIMIT MACROS NOT FOUND:  please report to developers" >&2;}
- fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_rlimit_h" >&5
--echo "${ECHO_T}$zsh_cv_path_rlimit_h" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_rlimit_h" >&5
-+$as_echo "$zsh_cv_path_rlimit_h" >&6; }
- RLIMITS_INC_H=$zsh_cv_path_rlimit_h
- if test "$RLIMITS_INC_H" = "/dev/null"; then
-   RLIMITS_INC_H=''
-@@ -14215,10 +14881,10 @@ fi
- 
- 
- DEFAULT_RLIM_T=long
--{ echo "$as_me:$LINENO: checking if rlim_t is longer than a long" >&5
--echo $ECHO_N "checking if rlim_t is longer than a long... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if rlim_t is longer than a long" >&5
-+$as_echo_n "checking if rlim_t is longer than a long... " >&6; }
- if test "${zsh_cv_rlim_t_is_longer+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_rlim_t_is_longer=yes
-@@ -14242,41 +14908,44 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_rlim_t_is_longer=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_rlim_t_is_longer=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_rlim_t_is_longer" >&5
--echo "${ECHO_T}$zsh_cv_rlim_t_is_longer" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlim_t_is_longer" >&5
-+$as_echo "$zsh_cv_rlim_t_is_longer" >&6; }
- if test x$zsh_cv_rlim_t_is_longer = xyes; then
--  { echo "$as_me:$LINENO: checking if rlim_t is a quad" >&5
--echo $ECHO_N "checking if rlim_t is a quad... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if rlim_t is a quad" >&5
-+$as_echo_n "checking if rlim_t is a quad... " >&6; }
- if test "${zsh_cv_rlim_t_is_quad_t+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_rlim_t_is_quad_t=no
-@@ -14307,36 +14976,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_rlim_t_is_quad_t=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_rlim_t_is_quad_t=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_rlim_t_is_quad_t" >&5
--echo "${ECHO_T}$zsh_cv_rlim_t_is_quad_t" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlim_t_is_quad_t" >&5
-+$as_echo "$zsh_cv_rlim_t_is_quad_t" >&6; }
-   if test x$zsh_cv_rlim_t_is_quad_t = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define RLIM_T_IS_QUAD_T 1
-@@ -14351,10 +15023,10 @@ _ACEOF
-     DEFAULT_RLIM_T='long long'
-   fi
- else
--  { echo "$as_me:$LINENO: checking if the rlim_t is unsigned" >&5
--echo $ECHO_N "checking if the rlim_t is unsigned... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if the rlim_t is unsigned" >&5
-+$as_echo_n "checking if the rlim_t is unsigned... " >&6; }
- if test "${zsh_cv_type_rlim_t_is_unsigned+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_type_rlim_t_is_unsigned=no
-@@ -14378,36 +15050,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_type_rlim_t_is_unsigned=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_type_rlim_t_is_unsigned=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_type_rlim_t_is_unsigned" >&5
--echo "${ECHO_T}$zsh_cv_type_rlim_t_is_unsigned" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_rlim_t_is_unsigned" >&5
-+$as_echo "$zsh_cv_type_rlim_t_is_unsigned" >&6; }
-   if test x$zsh_cv_type_rlim_t_is_unsigned = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define RLIM_T_IS_UNSIGNED 1
-@@ -14417,10 +15092,10 @@ _ACEOF
-   fi
- fi
- 
--{ echo "$as_me:$LINENO: checking for rlim_t" >&5
--echo $ECHO_N "checking for rlim_t... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for rlim_t" >&5
-+$as_echo_n "checking for rlim_t... " >&6; }
- if test "${zsh_cv_type_rlim_t+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14448,20 +15123,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_type_rlim_t=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_type_rlim_t=no
-@@ -14469,8 +15145,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_type_rlim_t" >&5
--echo "${ECHO_T}$zsh_cv_type_rlim_t" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_rlim_t" >&5
-+$as_echo "$zsh_cv_type_rlim_t" >&6; }
- if test x$zsh_cv_type_rlim_t = xno; then
-   cat >>confdefs.h <<_ACEOF
- #define rlim_t $DEFAULT_RLIM_T
-@@ -14482,10 +15158,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_AIO_MEM" >&5
--echo $ECHO_N "checking for limit RLIMIT_AIO_MEM... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_AIO_MEM" >&5
-+$as_echo_n "checking for limit RLIMIT_AIO_MEM... " >&6; }
- if test "${zsh_cv_have_RLIMIT_AIO_MEM+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14513,20 +15189,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_AIO_MEM=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_AIO_MEM=no
-@@ -14534,8 +15211,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AIO_MEM" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_AIO_MEM" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AIO_MEM" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_AIO_MEM" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_AIO_MEM = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -14545,10 +15222,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_AIO_OPS" >&5
--echo $ECHO_N "checking for limit RLIMIT_AIO_OPS... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_AIO_OPS" >&5
-+$as_echo_n "checking for limit RLIMIT_AIO_OPS... " >&6; }
- if test "${zsh_cv_have_RLIMIT_AIO_OPS+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14576,20 +15253,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_AIO_OPS=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_AIO_OPS=no
-@@ -14597,8 +15275,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AIO_OPS" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_AIO_OPS" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AIO_OPS" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_AIO_OPS" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_AIO_OPS = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -14608,10 +15286,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_AS" >&5
--echo $ECHO_N "checking for limit RLIMIT_AS... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_AS" >&5
-+$as_echo_n "checking for limit RLIMIT_AS... " >&6; }
- if test "${zsh_cv_have_RLIMIT_AS+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14639,20 +15317,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_AS=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_AS=no
-@@ -14660,8 +15339,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AS" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_AS" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_AS" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_AS" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_AS = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -14671,10 +15350,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_LOCKS" >&5
--echo $ECHO_N "checking for limit RLIMIT_LOCKS... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_LOCKS" >&5
-+$as_echo_n "checking for limit RLIMIT_LOCKS... " >&6; }
- if test "${zsh_cv_have_RLIMIT_LOCKS+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14702,20 +15381,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_LOCKS=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_LOCKS=no
-@@ -14723,8 +15403,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_LOCKS" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_LOCKS" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_LOCKS" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_LOCKS" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_LOCKS = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -14734,10 +15414,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_MEMLOCK" >&5
--echo $ECHO_N "checking for limit RLIMIT_MEMLOCK... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_MEMLOCK" >&5
-+$as_echo_n "checking for limit RLIMIT_MEMLOCK... " >&6; }
- if test "${zsh_cv_have_RLIMIT_MEMLOCK+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14765,20 +15445,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_MEMLOCK=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_MEMLOCK=no
-@@ -14786,8 +15467,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_MEMLOCK" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_MEMLOCK" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_MEMLOCK" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_MEMLOCK" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_MEMLOCK = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -14797,10 +15478,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_NPROC" >&5
--echo $ECHO_N "checking for limit RLIMIT_NPROC... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_NPROC" >&5
-+$as_echo_n "checking for limit RLIMIT_NPROC... " >&6; }
- if test "${zsh_cv_have_RLIMIT_NPROC+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14828,20 +15509,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_NPROC=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_NPROC=no
-@@ -14849,8 +15531,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NPROC" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_NPROC" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NPROC" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_NPROC" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_NPROC = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -14860,10 +15542,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_NOFILE" >&5
--echo $ECHO_N "checking for limit RLIMIT_NOFILE... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_NOFILE" >&5
-+$as_echo_n "checking for limit RLIMIT_NOFILE... " >&6; }
- if test "${zsh_cv_have_RLIMIT_NOFILE+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14891,20 +15573,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_NOFILE=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_NOFILE=no
-@@ -14912,8 +15595,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NOFILE" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_NOFILE" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NOFILE" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_NOFILE" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_NOFILE = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -14923,10 +15606,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_PTHREAD" >&5
--echo $ECHO_N "checking for limit RLIMIT_PTHREAD... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_PTHREAD" >&5
-+$as_echo_n "checking for limit RLIMIT_PTHREAD... " >&6; }
- if test "${zsh_cv_have_RLIMIT_PTHREAD+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -14954,20 +15637,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_PTHREAD=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_PTHREAD=no
-@@ -14975,8 +15659,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_PTHREAD" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_PTHREAD" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_PTHREAD" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_PTHREAD" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_PTHREAD = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -14986,10 +15670,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_RSS" >&5
--echo $ECHO_N "checking for limit RLIMIT_RSS... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_RSS" >&5
-+$as_echo_n "checking for limit RLIMIT_RSS... " >&6; }
- if test "${zsh_cv_have_RLIMIT_RSS+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15017,20 +15701,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_RSS=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_RSS=no
-@@ -15038,8 +15723,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_RSS" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_RSS" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_RSS" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_RSS" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_RSS = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15049,10 +15734,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_SBSIZE" >&5
--echo $ECHO_N "checking for limit RLIMIT_SBSIZE... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_SBSIZE" >&5
-+$as_echo_n "checking for limit RLIMIT_SBSIZE... " >&6; }
- if test "${zsh_cv_have_RLIMIT_SBSIZE+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15080,20 +15765,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_SBSIZE=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_SBSIZE=no
-@@ -15101,8 +15787,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_SBSIZE" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_SBSIZE" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_SBSIZE" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_SBSIZE" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_SBSIZE = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15112,10 +15798,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_TCACHE" >&5
--echo $ECHO_N "checking for limit RLIMIT_TCACHE... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_TCACHE" >&5
-+$as_echo_n "checking for limit RLIMIT_TCACHE... " >&6; }
- if test "${zsh_cv_have_RLIMIT_TCACHE+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15143,20 +15829,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_TCACHE=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_TCACHE=no
-@@ -15164,8 +15851,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_TCACHE" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_TCACHE" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_TCACHE" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_TCACHE" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_TCACHE = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15175,10 +15862,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_VMEM" >&5
--echo $ECHO_N "checking for limit RLIMIT_VMEM... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_VMEM" >&5
-+$as_echo_n "checking for limit RLIMIT_VMEM... " >&6; }
- if test "${zsh_cv_have_RLIMIT_VMEM+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15206,20 +15893,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_VMEM=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_VMEM=no
-@@ -15227,8 +15915,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_VMEM" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_VMEM" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_VMEM" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_VMEM" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_VMEM = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15238,10 +15926,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_SIGPENDING" >&5
--echo $ECHO_N "checking for limit RLIMIT_SIGPENDING... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_SIGPENDING" >&5
-+$as_echo_n "checking for limit RLIMIT_SIGPENDING... " >&6; }
- if test "${zsh_cv_have_RLIMIT_SIGPENDING+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15269,20 +15957,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_SIGPENDING=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_SIGPENDING=no
-@@ -15290,8 +15979,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_SIGPENDING" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_SIGPENDING" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_SIGPENDING" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_SIGPENDING" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_SIGPENDING = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15301,10 +15990,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_MSGQUEUE" >&5
--echo $ECHO_N "checking for limit RLIMIT_MSGQUEUE... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_MSGQUEUE" >&5
-+$as_echo_n "checking for limit RLIMIT_MSGQUEUE... " >&6; }
- if test "${zsh_cv_have_RLIMIT_MSGQUEUE+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15332,20 +16021,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_MSGQUEUE=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_MSGQUEUE=no
-@@ -15353,8 +16043,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_MSGQUEUE" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_MSGQUEUE" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_MSGQUEUE" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_MSGQUEUE" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_MSGQUEUE = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15364,10 +16054,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_NICE" >&5
--echo $ECHO_N "checking for limit RLIMIT_NICE... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_NICE" >&5
-+$as_echo_n "checking for limit RLIMIT_NICE... " >&6; }
- if test "${zsh_cv_have_RLIMIT_NICE+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15395,20 +16085,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_NICE=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_NICE=no
-@@ -15416,8 +16107,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NICE" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_NICE" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_NICE" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_NICE" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_NICE = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15427,10 +16118,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for limit RLIMIT_RTPRIO" >&5
--echo $ECHO_N "checking for limit RLIMIT_RTPRIO... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for limit RLIMIT_RTPRIO" >&5
-+$as_echo_n "checking for limit RLIMIT_RTPRIO... " >&6; }
- if test "${zsh_cv_have_RLIMIT_RTPRIO+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15458,20 +16149,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_have_RLIMIT_RTPRIO=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_have_RLIMIT_RTPRIO=no
-@@ -15479,8 +16171,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_RTPRIO" >&5
--echo "${ECHO_T}$zsh_cv_have_RLIMIT_RTPRIO" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_have_RLIMIT_RTPRIO" >&5
-+$as_echo "$zsh_cv_have_RLIMIT_RTPRIO" >&6; }
- 
- if test $zsh_cv_have_RLIMIT_RTPRIO = yes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15491,10 +16183,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking if RLIMIT_VMEM and RLIMIT_RSS are the same" >&5
--echo $ECHO_N "checking if RLIMIT_VMEM and RLIMIT_RSS are the same... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if RLIMIT_VMEM and RLIMIT_RSS are the same" >&5
-+$as_echo_n "checking if RLIMIT_VMEM and RLIMIT_RSS are the same... " >&6; }
- if test "${zsh_cv_rlimit_vmem_is_rss+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_rlimit_vmem_is_rss=no
-@@ -15526,36 +16218,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_rlimit_vmem_is_rss=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_rlimit_vmem_is_rss=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_rlimit_vmem_is_rss" >&5
--echo "${ECHO_T}$zsh_cv_rlimit_vmem_is_rss" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlimit_vmem_is_rss" >&5
-+$as_echo "$zsh_cv_rlimit_vmem_is_rss" >&6; }
- 
- if test x$zsh_cv_rlimit_vmem_is_rss = xyes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15567,10 +16262,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking if RLIMIT_VMEM and RLIMIT_AS are the same" >&5
--echo $ECHO_N "checking if RLIMIT_VMEM and RLIMIT_AS are the same... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if RLIMIT_VMEM and RLIMIT_AS are the same" >&5
-+$as_echo_n "checking if RLIMIT_VMEM and RLIMIT_AS are the same... " >&6; }
- if test "${zsh_cv_rlimit_vmem_is_as+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_rlimit_vmem_is_as=no
-@@ -15602,36 +16297,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_rlimit_vmem_is_as=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_rlimit_vmem_is_as=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_rlimit_vmem_is_as" >&5
--echo "${ECHO_T}$zsh_cv_rlimit_vmem_is_as" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlimit_vmem_is_as" >&5
-+$as_echo "$zsh_cv_rlimit_vmem_is_as" >&6; }
- 
- if test x$zsh_cv_rlimit_vmem_is_as = xyes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15643,10 +16341,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking if RLIMIT_RSS and RLIMIT_AS are the same" >&5
--echo $ECHO_N "checking if RLIMIT_RSS and RLIMIT_AS are the same... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if RLIMIT_RSS and RLIMIT_AS are the same" >&5
-+$as_echo_n "checking if RLIMIT_RSS and RLIMIT_AS are the same... " >&6; }
- if test "${zsh_cv_rlimit_rss_is_as+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_rlimit_rss_is_as=no
-@@ -15678,36 +16376,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_rlimit_rss_is_as=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_rlimit_rss_is_as=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_rlimit_rss_is_as" >&5
--echo "${ECHO_T}$zsh_cv_rlimit_rss_is_as" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rlimit_rss_is_as" >&5
-+$as_echo "$zsh_cv_rlimit_rss_is_as" >&6; }
- 
- if test x$zsh_cv_rlimit_rss_is_as = xyes; then
-   cat >>confdefs.h <<\_ACEOF
-@@ -15718,10 +16419,10 @@ fi
- 
- 
- if test x$ac_cv_func_getrusage = xyes; then
--  { echo "$as_me:$LINENO: checking for struct rusage.ru_maxrss" >&5
--echo $ECHO_N "checking for struct rusage.ru_maxrss... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for struct rusage.ru_maxrss" >&5
-+$as_echo_n "checking for struct rusage.ru_maxrss... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_maxrss+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15751,20 +16452,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_maxrss=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -15795,20 +16497,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_maxrss=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_maxrss=no
-@@ -15819,9 +16522,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_maxrss" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_maxrss" >&6; }
--if test $ac_cv_member_struct_rusage_ru_maxrss = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_maxrss" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_maxrss" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_maxrss" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_MAXRSS 1
-@@ -15829,10 +16532,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_ixrss" >&5
--echo $ECHO_N "checking for struct rusage.ru_ixrss... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_ixrss" >&5
-+$as_echo_n "checking for struct rusage.ru_ixrss... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_ixrss+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15862,20 +16565,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_ixrss=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -15906,20 +16610,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_ixrss=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_ixrss=no
-@@ -15930,9 +16635,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_ixrss" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_ixrss" >&6; }
--if test $ac_cv_member_struct_rusage_ru_ixrss = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_ixrss" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_ixrss" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_ixrss" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_IXRSS 1
-@@ -15940,10 +16645,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_idrss" >&5
--echo $ECHO_N "checking for struct rusage.ru_idrss... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_idrss" >&5
-+$as_echo_n "checking for struct rusage.ru_idrss... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_idrss+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -15973,20 +16678,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_idrss=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16017,20 +16723,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_idrss=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_idrss=no
-@@ -16041,9 +16748,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_idrss" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_idrss" >&6; }
--if test $ac_cv_member_struct_rusage_ru_idrss = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_idrss" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_idrss" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_idrss" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_IDRSS 1
-@@ -16051,10 +16758,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_isrss" >&5
--echo $ECHO_N "checking for struct rusage.ru_isrss... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_isrss" >&5
-+$as_echo_n "checking for struct rusage.ru_isrss... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_isrss+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16084,20 +16791,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_isrss=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16128,20 +16836,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_isrss=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_isrss=no
-@@ -16152,9 +16861,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_isrss" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_isrss" >&6; }
--if test $ac_cv_member_struct_rusage_ru_isrss = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_isrss" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_isrss" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_isrss" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_ISRSS 1
-@@ -16162,10 +16871,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_minflt" >&5
--echo $ECHO_N "checking for struct rusage.ru_minflt... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_minflt" >&5
-+$as_echo_n "checking for struct rusage.ru_minflt... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_minflt+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16195,20 +16904,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_minflt=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16239,20 +16949,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_minflt=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_minflt=no
-@@ -16263,9 +16974,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_minflt" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_minflt" >&6; }
--if test $ac_cv_member_struct_rusage_ru_minflt = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_minflt" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_minflt" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_minflt" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_MINFLT 1
-@@ -16273,10 +16984,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_majflt" >&5
--echo $ECHO_N "checking for struct rusage.ru_majflt... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_majflt" >&5
-+$as_echo_n "checking for struct rusage.ru_majflt... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_majflt+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16306,20 +17017,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_majflt=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16350,20 +17062,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_majflt=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_majflt=no
-@@ -16374,9 +17087,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_majflt" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_majflt" >&6; }
--if test $ac_cv_member_struct_rusage_ru_majflt = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_majflt" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_majflt" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_majflt" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_MAJFLT 1
-@@ -16384,10 +17097,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_nswap" >&5
--echo $ECHO_N "checking for struct rusage.ru_nswap... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_nswap" >&5
-+$as_echo_n "checking for struct rusage.ru_nswap... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_nswap+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16417,20 +17130,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_nswap=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16461,20 +17175,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_nswap=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_nswap=no
-@@ -16485,9 +17200,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nswap" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_nswap" >&6; }
--if test $ac_cv_member_struct_rusage_ru_nswap = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nswap" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_nswap" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_nswap" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_NSWAP 1
-@@ -16495,10 +17210,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_inblock" >&5
--echo $ECHO_N "checking for struct rusage.ru_inblock... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_inblock" >&5
-+$as_echo_n "checking for struct rusage.ru_inblock... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_inblock+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16528,20 +17243,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_inblock=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16572,20 +17288,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_inblock=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_inblock=no
-@@ -16596,9 +17313,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_inblock" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_inblock" >&6; }
--if test $ac_cv_member_struct_rusage_ru_inblock = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_inblock" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_inblock" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_inblock" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_INBLOCK 1
-@@ -16606,10 +17323,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_oublock" >&5
--echo $ECHO_N "checking for struct rusage.ru_oublock... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_oublock" >&5
-+$as_echo_n "checking for struct rusage.ru_oublock... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_oublock+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16639,20 +17356,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_oublock=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16683,20 +17401,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_oublock=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_oublock=no
-@@ -16707,9 +17426,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_oublock" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_oublock" >&6; }
--if test $ac_cv_member_struct_rusage_ru_oublock = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_oublock" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_oublock" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_oublock" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_OUBLOCK 1
-@@ -16717,10 +17436,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_msgsnd" >&5
--echo $ECHO_N "checking for struct rusage.ru_msgsnd... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_msgsnd" >&5
-+$as_echo_n "checking for struct rusage.ru_msgsnd... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_msgsnd+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16750,20 +17469,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_msgsnd=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16794,20 +17514,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_msgsnd=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_msgsnd=no
-@@ -16818,9 +17539,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_msgsnd" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_msgsnd" >&6; }
--if test $ac_cv_member_struct_rusage_ru_msgsnd = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_msgsnd" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_msgsnd" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_msgsnd" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_MSGSND 1
-@@ -16828,10 +17549,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_msgrcv" >&5
--echo $ECHO_N "checking for struct rusage.ru_msgrcv... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_msgrcv" >&5
-+$as_echo_n "checking for struct rusage.ru_msgrcv... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_msgrcv+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16861,20 +17582,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_msgrcv=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -16905,20 +17627,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_msgrcv=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_msgrcv=no
-@@ -16929,9 +17652,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_msgrcv" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_msgrcv" >&6; }
--if test $ac_cv_member_struct_rusage_ru_msgrcv = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_msgrcv" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_msgrcv" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_msgrcv" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_MSGRCV 1
-@@ -16939,10 +17662,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_nsignals" >&5
--echo $ECHO_N "checking for struct rusage.ru_nsignals... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_nsignals" >&5
-+$as_echo_n "checking for struct rusage.ru_nsignals... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_nsignals+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -16972,20 +17695,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_nsignals=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -17016,20 +17740,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_nsignals=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_nsignals=no
-@@ -17040,9 +17765,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nsignals" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_nsignals" >&6; }
--if test $ac_cv_member_struct_rusage_ru_nsignals = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nsignals" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_nsignals" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_nsignals" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_NSIGNALS 1
-@@ -17050,10 +17775,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_nvcsw" >&5
--echo $ECHO_N "checking for struct rusage.ru_nvcsw... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_nvcsw" >&5
-+$as_echo_n "checking for struct rusage.ru_nvcsw... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_nvcsw+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -17083,20 +17808,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_nvcsw=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -17127,20 +17853,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_nvcsw=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_nvcsw=no
-@@ -17151,9 +17878,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nvcsw" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_nvcsw" >&6; }
--if test $ac_cv_member_struct_rusage_ru_nvcsw = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nvcsw" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_nvcsw" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_nvcsw" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_NVCSW 1
-@@ -17161,10 +17888,10 @@ _ACEOF
- 
- 
- fi
--{ echo "$as_me:$LINENO: checking for struct rusage.ru_nivcsw" >&5
--echo $ECHO_N "checking for struct rusage.ru_nivcsw... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for struct rusage.ru_nivcsw" >&5
-+$as_echo_n "checking for struct rusage.ru_nivcsw... " >&6; }
- if test "${ac_cv_member_struct_rusage_ru_nivcsw+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -17194,20 +17921,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_nivcsw=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	cat >conftest.$ac_ext <<_ACEOF
-@@ -17238,20 +17966,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_member_struct_rusage_ru_nivcsw=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_member_struct_rusage_ru_nivcsw=no
-@@ -17262,9 +17991,9 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nivcsw" >&5
--echo "${ECHO_T}$ac_cv_member_struct_rusage_ru_nivcsw" >&6; }
--if test $ac_cv_member_struct_rusage_ru_nivcsw = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_rusage_ru_nivcsw" >&5
-+$as_echo "$ac_cv_member_struct_rusage_ru_nivcsw" >&6; }
-+if test "x$ac_cv_member_struct_rusage_ru_nivcsw" = x""yes; then
- 
- cat >>confdefs.h <<_ACEOF
- #define HAVE_STRUCT_RUSAGE_RU_NIVCSW 1
-@@ -17277,7 +18006,7 @@ fi
- 
- 
- if test "${zsh_cv_cs_path+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if getconf _CS_PATH >/dev/null 2>&1; then
-   zsh_cv_cs_path=`getconf _CS_PATH`
-@@ -17297,10 +18026,10 @@ _ACEOF
- 
- 
- 
--{ echo "$as_me:$LINENO: checking for /dev/fd filesystem" >&5
--echo $ECHO_N "checking for /dev/fd filesystem... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for /dev/fd filesystem" >&5
-+$as_echo_n "checking for /dev/fd filesystem... " >&6; }
- if test "${zsh_cv_sys_path_dev_fd+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$host_os" = cygwin; then
- zsh_cv_sys_path_dev_fd=no
-@@ -17310,8 +18039,8 @@ for zsh_cv_sys_path_dev_fd in /proc/self
-  done
- fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_path_dev_fd" >&5
--echo "${ECHO_T}$zsh_cv_sys_path_dev_fd" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_path_dev_fd" >&5
-+$as_echo "$zsh_cv_sys_path_dev_fd" >&6; }
- if test x$zsh_cv_sys_path_dev_fd != xno; then
-   cat >>confdefs.h <<_ACEOF
- #define PATH_DEV_FD "$zsh_cv_sys_path_dev_fd"
-@@ -17319,15 +18048,15 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for RFS superroot directory" >&5
--echo $ECHO_N "checking for RFS superroot directory... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for RFS superroot directory" >&5
-+$as_echo_n "checking for RFS superroot directory... " >&6; }
- if test "${zsh_cv_sys_superroot+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   test -d /../.LOCALROOT && zsh_cv_sys_superroot=yes || zsh_cv_sys_superroot=no
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_superroot" >&5
--echo "${ECHO_T}$zsh_cv_sys_superroot" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_superroot" >&5
-+$as_echo "$zsh_cv_sys_superroot" >&6; }
- 
- 
- if test x$zsh_cv_sys_superroot = xyes; then
-@@ -17337,18 +18066,18 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking whether we should use the native getcwd" >&5
--echo $ECHO_N "checking whether we should use the native getcwd... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking whether we should use the native getcwd" >&5
-+$as_echo_n "checking whether we should use the native getcwd... " >&6; }
- if test "${zsh_cv_use_getcwd+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   case "${host_cpu}-${host_vendor}-${host_os}" in
-     *QNX*) zsh_cv_use_getcwd=yes ;;
-     *) zsh_cv_use_getcwd=no ;;
-  esac
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_use_getcwd" >&5
--echo "${ECHO_T}$zsh_cv_use_getcwd" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_use_getcwd" >&5
-+$as_echo "$zsh_cv_use_getcwd" >&6; }
- 
- 
- if test x$zsh_cv_use_getcwd = xyes; then
-@@ -17360,10 +18089,10 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking for setproctitle" >&5
--echo $ECHO_N "checking for setproctitle... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for setproctitle" >&5
-+$as_echo_n "checking for setproctitle... " >&6; }
- if test "${ac_cv_func_setproctitle+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -17416,41 +18145,45 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_func_setproctitle=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_func_setproctitle=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_func_setproctitle" >&5
--echo "${ECHO_T}$ac_cv_func_setproctitle" >&6; }
--if test $ac_cv_func_setproctitle = yes; then
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_setproctitle" >&5
-+$as_echo "$ac_cv_func_setproctitle" >&6; }
-+if test "x$ac_cv_func_setproctitle" = x""yes; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_SETPROCTITLE 1
- _ACEOF
- 
- else
--  { echo "$as_me:$LINENO: checking for library containing setproctitle" >&5
--echo $ECHO_N "checking for library containing setproctitle... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for library containing setproctitle" >&5
-+$as_echo_n "checking for library containing setproctitle... " >&6; }
- if test "${ac_cv_search_setproctitle+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -17488,26 +18221,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_setproctitle=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_setproctitle+set}" = set; then
-@@ -17522,8 +18259,8 @@ fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_search_setproctitle" >&5
--echo "${ECHO_T}$ac_cv_search_setproctitle" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_setproctitle" >&5
-+$as_echo "$ac_cv_search_setproctitle" >&6; }
- ac_res=$ac_cv_search_setproctitle
- if test "$ac_res" != no; then
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-@@ -17538,25 +18275,25 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking for NIS" >&5
--echo $ECHO_N "checking for NIS... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for NIS" >&5
-+$as_echo_n "checking for NIS... " >&6; }
- if test "${zsh_cv_sys_nis+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   test -f /usr/bin/ypcat && /usr/bin/ypcat passwd.byname > /dev/null 2>&1 && \
- zsh_cv_sys_nis=yes || zsh_cv_sys_nis=no
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_nis" >&5
--echo "${ECHO_T}$zsh_cv_sys_nis" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_nis" >&5
-+$as_echo "$zsh_cv_sys_nis" >&6; }
- if test x$zsh_cv_sys_nis = xyes; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_NIS 1
- _ACEOF
- 
--  { echo "$as_me:$LINENO: checking for library containing yp_all" >&5
--echo $ECHO_N "checking for library containing yp_all... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for library containing yp_all" >&5
-+$as_echo_n "checking for library containing yp_all... " >&6; }
- if test "${ac_cv_search_yp_all+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   ac_func_search_save_LIBS=$LIBS
- cat >conftest.$ac_ext <<_ACEOF
-@@ -17594,26 +18331,30 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   ac_cv_search_yp_all=$ac_res
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext
-   if test "${ac_cv_search_yp_all+set}" = set; then
-@@ -17628,8 +18369,8 @@ fi
- rm conftest.$ac_ext
- LIBS=$ac_func_search_save_LIBS
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_search_yp_all" >&5
--echo "${ECHO_T}$ac_cv_search_yp_all" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_yp_all" >&5
-+$as_echo "$ac_cv_search_yp_all" >&6; }
- ac_res=$ac_cv_search_yp_all
- if test "$ac_res" != no; then
-   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-@@ -17640,17 +18381,17 @@ fi
- 
- 
- 
--{ echo "$as_me:$LINENO: checking for NIS+" >&5
--echo $ECHO_N "checking for NIS+... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for NIS+" >&5
-+$as_echo_n "checking for NIS+... " >&6; }
- if test "${zsh_cv_sys_nis_plus+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   test x$ac_cv_func_nis_list = xyes && test -f /usr/bin/nisls && \
-  /usr/bin/nisls > /dev/null 2>&1 && \
- zsh_cv_sys_nis_plus=yes || zsh_cv_sys_nis_plus=no
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_nis_plus" >&5
--echo "${ECHO_T}$zsh_cv_sys_nis_plus" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_nis_plus" >&5
-+$as_echo "$zsh_cv_sys_nis_plus" >&6; }
- if test x$zsh_cv_sys_nis_plus = xyes; then
-   cat >>confdefs.h <<\_ACEOF
- #define HAVE_NIS_PLUS 1
-@@ -17658,10 +18399,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for utmp file" >&5
--echo $ECHO_N "checking for utmp file... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for utmp file" >&5
-+$as_echo_n "checking for utmp file... " >&6; }
- if test "${zsh_cv_path_utmp+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   for dir in /etc /usr/etc /var/adm /usr/adm /var/run /var/log ./conftest; do
-   zsh_cv_path_utmp=${dir}/utmp
-@@ -17670,8 +18411,8 @@ else
- done
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_utmp" >&5
--echo "${ECHO_T}$zsh_cv_path_utmp" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_utmp" >&5
-+$as_echo "$zsh_cv_path_utmp" >&6; }
- 
- 
- if test $zsh_cv_path_utmp != no; then
-@@ -17681,10 +18422,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for wtmp file" >&5
--echo $ECHO_N "checking for wtmp file... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for wtmp file" >&5
-+$as_echo_n "checking for wtmp file... " >&6; }
- if test "${zsh_cv_path_wtmp+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   for dir in /etc /usr/etc /var/adm /usr/adm /var/run /var/log ./conftest; do
-   zsh_cv_path_wtmp=${dir}/wtmp
-@@ -17693,8 +18434,8 @@ else
- done
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_wtmp" >&5
--echo "${ECHO_T}$zsh_cv_path_wtmp" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_wtmp" >&5
-+$as_echo "$zsh_cv_path_wtmp" >&6; }
- 
- 
- if test $zsh_cv_path_wtmp != no; then
-@@ -17704,10 +18445,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for utmpx file" >&5
--echo $ECHO_N "checking for utmpx file... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for utmpx file" >&5
-+$as_echo_n "checking for utmpx file... " >&6; }
- if test "${zsh_cv_path_utmpx+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   for dir in /etc /usr/etc /var/adm /usr/adm /var/run /var/log ./conftest; do
-   zsh_cv_path_utmpx=${dir}/utmpx
-@@ -17716,8 +18457,8 @@ else
- done
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_utmpx" >&5
--echo "${ECHO_T}$zsh_cv_path_utmpx" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_utmpx" >&5
-+$as_echo "$zsh_cv_path_utmpx" >&6; }
- 
- 
- if test $zsh_cv_path_utmpx != no; then
-@@ -17727,10 +18468,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for wtmpx file" >&5
--echo $ECHO_N "checking for wtmpx file... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for wtmpx file" >&5
-+$as_echo_n "checking for wtmpx file... " >&6; }
- if test "${zsh_cv_path_wtmpx+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   for dir in /etc /usr/etc /var/adm /usr/adm /var/run /var/log ./conftest; do
-   zsh_cv_path_wtmpx=${dir}/wtmpx
-@@ -17739,8 +18480,8 @@ else
- done
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_path_wtmpx" >&5
--echo "${ECHO_T}$zsh_cv_path_wtmpx" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_path_wtmpx" >&5
-+$as_echo "$zsh_cv_path_wtmpx" >&6; }
- 
- 
- if test $zsh_cv_path_wtmpx != no; then
-@@ -17751,10 +18492,10 @@ _ACEOF
- fi
- 
- 
--{ echo "$as_me:$LINENO: checking for brk() prototype in " >&5
--echo $ECHO_N "checking for brk() prototype in ... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for brk() prototype in " >&5
-+$as_echo_n "checking for brk() prototype in ... " >&6; }
- if test "${zsh_cv_header_unistd_h_brk_proto+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -17778,20 +18519,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_header_unistd_h_brk_proto=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_unistd_h_brk_proto=yes
-@@ -17799,8 +18541,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_brk_proto" >&5
--echo "${ECHO_T}$zsh_cv_header_unistd_h_brk_proto" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_brk_proto" >&5
-+$as_echo "$zsh_cv_header_unistd_h_brk_proto" >&6; }
- 
- 
- if test x$zsh_cv_header_unistd_h_brk_proto = xyes; then
-@@ -17810,10 +18552,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking for sbrk() prototype in " >&5
--echo $ECHO_N "checking for sbrk() prototype in ... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for sbrk() prototype in " >&5
-+$as_echo_n "checking for sbrk() prototype in ... " >&6; }
- if test "${zsh_cv_header_unistd_h_sbrk_proto+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -17837,20 +18579,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_header_unistd_h_sbrk_proto=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_unistd_h_sbrk_proto=yes
-@@ -17858,8 +18601,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_sbrk_proto" >&5
--echo "${ECHO_T}$zsh_cv_header_unistd_h_sbrk_proto" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_sbrk_proto" >&5
-+$as_echo "$zsh_cv_header_unistd_h_sbrk_proto" >&6; }
- 
- 
- if test x$zsh_cv_header_unistd_h_sbrk_proto = xyes; then
-@@ -17872,10 +18615,10 @@ fi
- 
- 
- if test "$ac_cv_prog_cc_stdc" != no; then
--  { echo "$as_me:$LINENO: checking for mknod prototype in " >&5
--echo $ECHO_N "checking for mknod prototype in ... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for mknod prototype in " >&5
-+$as_echo_n "checking for mknod prototype in ... " >&6; }
- if test "${zsh_cv_header_sys_stat_h_mknod_proto+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -17899,20 +18642,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_header_sys_stat_h_mknod_proto=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_sys_stat_h_mknod_proto=yes
-@@ -17920,8 +18664,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_sys_stat_h_mknod_proto" >&5
--echo "${ECHO_T}$zsh_cv_header_sys_stat_h_mknod_proto" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_sys_stat_h_mknod_proto" >&5
-+$as_echo "$zsh_cv_header_sys_stat_h_mknod_proto" >&6; }
-   if test x$zsh_cv_header_sys_stat_h_mknod_proto = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define HAVE_MKNOD_PROTO 1
-@@ -17930,10 +18674,10 @@ _ACEOF
-   fi
- fi
- 
--{ echo "$as_me:$LINENO: checking for ioctl prototype in  or " >&5
--echo $ECHO_N "checking for ioctl prototype in  or ... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking for ioctl prototype in  or " >&5
-+$as_echo_n "checking for ioctl prototype in  or ... " >&6; }
- if test "${zsh_cv_header_unistd_h_termios_h_ioctl_proto+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -17963,20 +18707,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_header_unistd_h_termios_h_ioctl_proto=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_unistd_h_termios_h_ioctl_proto=yes
-@@ -17984,14 +18729,14 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_termios_h_ioctl_proto" >&5
--echo "${ECHO_T}$zsh_cv_header_unistd_h_termios_h_ioctl_proto" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_unistd_h_termios_h_ioctl_proto" >&5
-+$as_echo "$zsh_cv_header_unistd_h_termios_h_ioctl_proto" >&6; }
- 
- if test x$zsh_cv_header_unistd_h_termios_h_ioctl_proto = xno; then
--  { echo "$as_me:$LINENO: checking for ioctl prototype in " >&5
--echo $ECHO_N "checking for ioctl prototype in ... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for ioctl prototype in " >&5
-+$as_echo_n "checking for ioctl prototype in ... " >&6; }
- if test "${zsh_cv_header_sys_ioctl_h_ioctl_proto+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -18015,20 +18760,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_header_sys_ioctl_h_ioctl_proto=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_sys_ioctl_h_ioctl_proto=yes
-@@ -18036,8 +18782,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_sys_ioctl_h_ioctl_proto" >&5
--echo "${ECHO_T}$zsh_cv_header_sys_ioctl_h_ioctl_proto" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_sys_ioctl_h_ioctl_proto" >&5
-+$as_echo "$zsh_cv_header_sys_ioctl_h_ioctl_proto" >&6; }
- else
-   zsh_cv_header_sys_ioctl_h_ioctl_proto=no
- fi
-@@ -18063,10 +18809,10 @@ fi
- 
- 
- if test x$ac_cv_header_sys_select_h != xyes; then
--  { echo "$as_me:$LINENO: checking for select() in " >&5
--echo $ECHO_N "checking for select() in ... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for select() in " >&5
-+$as_echo_n "checking for select() in ... " >&6; }
- if test "${zsh_cv_header_socket_h_select_proto+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -18089,20 +18835,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_header_socket_h_select_proto=yes
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cv_header_socket_h_select_proto=no
-@@ -18110,8 +18857,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_header_socket_h_select_proto" >&5
--echo "${ECHO_T}$zsh_cv_header_socket_h_select_proto" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_header_socket_h_select_proto" >&5
-+$as_echo "$zsh_cv_header_socket_h_select_proto" >&6; }
-   if test x$zsh_cv_header_socket_h_select_proto = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define SELECT_IN_SYS_SOCKET_H 1
-@@ -18120,10 +18867,10 @@ _ACEOF
-   fi
- fi
- 
--{ echo "$as_me:$LINENO: checking if named FIFOs work" >&5
--echo $ECHO_N "checking if named FIFOs work... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if named FIFOs work" >&5
-+$as_echo_n "checking if named FIFOs work... " >&6; }
- if test "${zsh_cv_sys_fifo+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$host_os" = cygwin; then
- zsh_cv_sys_fifo=yes
-@@ -18172,37 +18919,40 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_fifo=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_fifo=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_fifo" >&5
--echo "${ECHO_T}$zsh_cv_sys_fifo" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_fifo" >&5
-+$as_echo "$zsh_cv_sys_fifo" >&6; }
- 
- 
- if test x$zsh_cv_sys_fifo = xyes; then
-@@ -18211,10 +18961,10 @@ if test x$zsh_cv_sys_fifo = xyes; then
- _ACEOF
- 
- fi
--{ echo "$as_me:$LINENO: checking if echo in /bin/sh interprets escape sequences" >&5
--echo $ECHO_N "checking if echo in /bin/sh interprets escape sequences... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if echo in /bin/sh interprets escape sequences" >&5
-+$as_echo_n "checking if echo in /bin/sh interprets escape sequences... " >&6; }
- if test "${zsh_cv_prog_sh_echo_escape+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "`/bin/sh -c \"echo '\\n'\"`" = "\\n"; then
-   zsh_cv_prog_sh_echo_escape=no
-@@ -18222,8 +18972,8 @@ else
-   zsh_cv_prog_sh_echo_escape=yes
- fi
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_prog_sh_echo_escape" >&5
--echo "${ECHO_T}$zsh_cv_prog_sh_echo_escape" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_prog_sh_echo_escape" >&5
-+$as_echo "$zsh_cv_prog_sh_echo_escape" >&6; }
- 
- 
- if test x$zsh_cv_prog_sh_echo_escape = xno; then
-@@ -18233,10 +18983,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking if link() works" >&5
--echo $ECHO_N "checking if link() works... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if link() works" >&5
-+$as_echo_n "checking if link() works... " >&6; }
- if test "${zsh_cv_sys_link+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_sys_link=yes
-@@ -18273,36 +19023,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_link=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_link=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_link" >&5
--echo "${ECHO_T}$zsh_cv_sys_link" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_link" >&5
-+$as_echo "$zsh_cv_sys_link" >&6; }
- 
- 
- if test x$zsh_cv_sys_link = xyes; then
-@@ -18312,10 +19065,10 @@ _ACEOF
- 
- fi
- 
--{ echo "$as_me:$LINENO: checking if kill(pid, 0) returns ESRCH correctly" >&5
--echo $ECHO_N "checking if kill(pid, 0) returns ESRCH correctly... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if kill(pid, 0) returns ESRCH correctly" >&5
-+$as_echo_n "checking if kill(pid, 0) returns ESRCH correctly... " >&6; }
- if test "${zsh_cv_sys_killesrch+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_sys_killesrch=yes
-@@ -18344,36 +19097,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_killesrch=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_killesrch=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_killesrch" >&5
--echo "${ECHO_T}$zsh_cv_sys_killesrch" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_killesrch" >&5
-+$as_echo "$zsh_cv_sys_killesrch" >&6; }
- 
- 
- if test x$zsh_cv_sys_killesrch = xno; then
-@@ -18386,10 +19142,10 @@ fi
- 
- 
- if test x$signals_style = xPOSIX_SIGNALS; then
--    { echo "$as_me:$LINENO: checking if POSIX sigsuspend() works" >&5
--echo $ECHO_N "checking if POSIX sigsuspend() works... $ECHO_C" >&6; }
-+    { $as_echo "$as_me:$LINENO: checking if POSIX sigsuspend() works" >&5
-+$as_echo_n "checking if POSIX sigsuspend() works... " >&6; }
- if test "${zsh_cv_sys_sigsuspend+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_sys_sigsuspend=yes
-@@ -18433,36 +19189,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_sigsuspend=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_sigsuspend=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_sigsuspend" >&5
--echo "${ECHO_T}$zsh_cv_sys_sigsuspend" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_sigsuspend" >&5
-+$as_echo "$zsh_cv_sys_sigsuspend" >&6; }
-     if test x$zsh_cv_sys_sigsuspend = xno; then
-       cat >>confdefs.h <<\_ACEOF
- #define BROKEN_POSIX_SIGSUSPEND 1
-@@ -18480,8 +19239,8 @@ if test "${with_tcsetpgrp+set}" = set; t
- case "x$withval" in
-     xyes) zsh_working_tcsetpgrp=yes;;
-     xno)  zsh_working_tcsetpgrp=no;;
--    *)    { { echo "$as_me:$LINENO: error: please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no" >&5
--echo "$as_me: error: please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no" >&2;}
-+    *)    { { $as_echo "$as_me:$LINENO: error: please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no" >&5
-+$as_echo "$as_me: error: please use --with-tcsetpgrp=yes or --with-tcsetpgrp=no" >&2;}
-    { (exit 1); exit 1; }; };;
- esac
- else
-@@ -18492,10 +19251,10 @@ if test "x$ac_cv_func_tcsetpgrp" = xyes;
- case "x$zsh_working_tcsetpgrp" in
-   xcheck)
-     trap "" TTOU > /dev/null 2>&1 || :
--    { echo "$as_me:$LINENO: checking if tcsetpgrp() actually works" >&5
--echo $ECHO_N "checking if tcsetpgrp() actually works... $ECHO_C" >&6; }
-+    { $as_echo "$as_me:$LINENO: checking if tcsetpgrp() actually works" >&5
-+$as_echo_n "checking if tcsetpgrp() actually works... " >&6; }
- if test "${zsh_cv_sys_tcsetpgrp+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_sys_tcsetpgrp=yes
-@@ -18527,24 +19286,26 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_tcsetpgrp=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
-@@ -18556,26 +19317,27 @@ case $? in
- esac
- 
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_tcsetpgrp" >&5
--echo "${ECHO_T}$zsh_cv_sys_tcsetpgrp" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_tcsetpgrp" >&5
-+$as_echo "$zsh_cv_sys_tcsetpgrp" >&6; }
-     case "x$zsh_cv_sys_tcsetpgrp" in
-       xno)    cat >>confdefs.h <<\_ACEOF
- #define BROKEN_TCSETPGRP 1
- _ACEOF
- ;;
-       xyes)   :;;
--      xnotty) { { echo "$as_me:$LINENO: error: no controlling tty
-+      xnotty) { { $as_echo "$as_me:$LINENO: error: no controlling tty
- Try running configure with --with-tcsetpgrp or --without-tcsetpgrp" >&5
--echo "$as_me: error: no controlling tty
-+$as_echo "$as_me: error: no controlling tty
- Try running configure with --with-tcsetpgrp or --without-tcsetpgrp" >&2;}
-    { (exit 1); exit 1; }; };;
--      *)      { { echo "$as_me:$LINENO: error: unexpected return status" >&5
--echo "$as_me: error: unexpected return status" >&2;}
-+      *)      { { $as_echo "$as_me:$LINENO: error: unexpected return status" >&5
-+$as_echo "$as_me: error: unexpected return status" >&2;}
-    { (exit 1); exit 1; }; };;
-     esac
-     trap - TTOU > /dev/null 2>&1 || :
-@@ -18585,8 +19347,8 @@ echo "$as_me: error: unexpected return s
- #define BROKEN_TCSETPGRP 1
- _ACEOF
- ;;
--  *)    { { echo "$as_me:$LINENO: error: unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp" >&5
--echo "$as_me: error: unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp" >&2;}
-+  *)    { { $as_echo "$as_me:$LINENO: error: unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp" >&5
-+$as_echo "$as_me: error: unexpected value zsh_working_tcsetpgrp=$zsh_working_tcsetpgrp" >&2;}
-    { (exit 1); exit 1; }; };;
- esac
- fi
-@@ -18594,10 +19356,10 @@ fi
- 
- 
- if test x$ac_cv_func_getpwnam = xyes; then
--    { echo "$as_me:$LINENO: checking if getpwnam() is faked" >&5
--echo $ECHO_N "checking if getpwnam() is faked... $ECHO_C" >&6; }
-+    { $as_echo "$as_me:$LINENO: checking if getpwnam() is faked" >&5
-+$as_echo_n "checking if getpwnam() is faked... " >&6; }
- if test "${zsh_cv_sys_getpwnam_faked+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_sys_getpwnam_faked=no
-@@ -18628,36 +19390,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_getpwnam_faked=no
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_getpwnam_faked=yes
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_getpwnam_faked" >&5
--echo "${ECHO_T}$zsh_cv_sys_getpwnam_faked" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_getpwnam_faked" >&5
-+$as_echo "$zsh_cv_sys_getpwnam_faked" >&6; }
-     if test x$zsh_cv_sys_getpwnam_faked = xyes; then
-       cat >>confdefs.h <<\_ACEOF
- #define GETPWNAM_FAKED 1
-@@ -18669,10 +19434,10 @@ fi
- 
- 
- 
--  { echo "$as_me:$LINENO: checking base type of the third argument to accept" >&5
--echo $ECHO_N "checking base type of the third argument to accept... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking base type of the third argument to accept" >&5
-+$as_echo_n "checking base type of the third argument to accept... " >&6; }
- if test "${zsh_cv_type_socklen_t+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   zsh_cv_type_socklen_t=
-     for zsh_type in socklen_t int "unsigned long" size_t ; do
-@@ -18698,20 +19463,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   zsh_cv_type_socklen_t="$zsh_type"; break
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 
-@@ -18725,8 +19491,8 @@ rm -f core conftest.err conftest.$ac_obj
-     fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_type_socklen_t" >&5
--echo "${ECHO_T}$zsh_cv_type_socklen_t" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_type_socklen_t" >&5
-+$as_echo "$zsh_cv_type_socklen_t" >&6; }
- 
- cat >>confdefs.h <<_ACEOF
- #define ZSOCKLEN_T $zsh_cv_type_socklen_t
-@@ -18734,10 +19500,10 @@ _ACEOF
- 
- 
- 
--{ echo "$as_me:$LINENO: checking if your system has /dev/ptmx" >&5
--echo $ECHO_N "checking if your system has /dev/ptmx... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if your system has /dev/ptmx" >&5
-+$as_echo_n "checking if your system has /dev/ptmx... " >&6; }
- if test "${ac_cv_have_dev_ptmx+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test -w /dev/ptmx; then
-   ac_cv_have_dev_ptmx=yes
-@@ -18745,8 +19511,8 @@ else
-   ac_cv_have_dev_ptmx=no
- fi
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_have_dev_ptmx" >&5
--echo "${ECHO_T}$ac_cv_have_dev_ptmx" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_dev_ptmx" >&5
-+$as_echo "$ac_cv_have_dev_ptmx" >&6; }
- 
- 
- 
-@@ -18754,10 +19520,10 @@ if test x$ac_cv_have_dev_ptmx = xyes &&
-    test x$ac_cv_func_grantpt = xyes && \
-    test x$ac_cv_func_unlockpt = xyes && \
-    test x$ac_cv_func_ptsname = xyes; then
--   { echo "$as_me:$LINENO: checking if /dev/ptmx is usable" >&5
--echo $ECHO_N "checking if /dev/ptmx is usable... $ECHO_C" >&6; }
-+   { $as_echo "$as_me:$LINENO: checking if /dev/ptmx is usable" >&5
-+$as_echo_n "checking if /dev/ptmx is usable... " >&6; }
- if test "${ac_cv_use_dev_ptmx+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -18784,20 +19550,21 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_compile") 2>conftest.er1
-   ac_status=$?
-   grep -v '^ *+' conftest.er1 >conftest.err
-   rm -f conftest.er1
-   cat conftest.err >&5
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
-        } && test -s conftest.$ac_objext; then
-   ac_cv_use_dev_ptmx=no
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	ac_cv_use_dev_ptmx=yes
-@@ -18805,8 +19572,8 @@ fi
- 
- rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
- fi
--{ echo "$as_me:$LINENO: result: $ac_cv_use_dev_ptmx" >&5
--echo "${ECHO_T}$ac_cv_use_dev_ptmx" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $ac_cv_use_dev_ptmx" >&5
-+$as_echo "$ac_cv_use_dev_ptmx" >&6; }
-    if test x$ac_cv_use_dev_ptmx = xyes; then
-      cat >>confdefs.h <<\_ACEOF
- #define USE_DEV_PTMX 1
-@@ -18820,20 +19587,20 @@ if test "${enable_multibyte+set}" = set;
-   enableval=$enable_multibyte; zsh_cv_c_unicode_support=$enableval
- else
-   if test "${zsh_cv_c_unicode_support+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
--  { echo "$as_me:$LINENO: checking for functions supporting multibyte characters" >&5
--echo "$as_me: checking for functions supporting multibyte characters" >&6;}
-+  { $as_echo "$as_me:$LINENO: checking for functions supporting multibyte characters" >&5
-+$as_echo "$as_me: checking for functions supporting multibyte characters" >&6;}
-   zfuncs_absent=
-    for zfunc in iswalnum iswcntrl iswdigit iswgraph iswlower iswprint \
- iswpunct iswspace iswupper iswxdigit mbrlen mbrtowc towupper towlower \
- wcschr wcscpy wcslen wcsncmp wcsncpy wcrtomb wcwidth wmemchr wmemcmp \
- wmemcpy wmemmove wmemset; do
--     as_ac_var=`echo "ac_cv_func_$zfunc" | $as_tr_sh`
--{ echo "$as_me:$LINENO: checking for $zfunc" >&5
--echo $ECHO_N "checking for $zfunc... $ECHO_C" >&6; }
-+     as_ac_var=`$as_echo "ac_cv_func_$zfunc" | $as_tr_sh`
-+{ $as_echo "$as_me:$LINENO: checking for $zfunc" >&5
-+$as_echo_n "checking for $zfunc... " >&6; }
- if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   cat >conftest.$ac_ext <<_ACEOF
- /* confdefs.h.  */
-@@ -18886,33 +19653,40 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   eval "$as_ac_var=yes"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	eval "$as_ac_var=no"
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- fi
--ac_res=`eval echo '${'$as_ac_var'}'`
--	       { echo "$as_me:$LINENO: result: $ac_res" >&5
--echo "${ECHO_T}$ac_res" >&6; }
--if test `eval echo '${'$as_ac_var'}'` = yes; then
-+ac_res=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-+$as_echo "$ac_res" >&6; }
-+as_val=`eval 'as_val=${'$as_ac_var'}
-+		 $as_echo "$as_val"'`
-+   if test "x$as_val" = x""yes; then
-   :
- else
-   zfuncs_absent="$zfuncs_absent $zfunc"
-@@ -18920,12 +19694,12 @@ fi
- 
-     done
-     if test x"$zfuncs_absent" = x; then
--      { echo "$as_me:$LINENO: all functions found, multibyte support enabled" >&5
--echo "$as_me: all functions found, multibyte support enabled" >&6;}
-+      { $as_echo "$as_me:$LINENO: all functions found, multibyte support enabled" >&5
-+$as_echo "$as_me: all functions found, multibyte support enabled" >&6;}
-       zsh_cv_c_unicode_support=yes
-     else
--      { echo "$as_me:$LINENO: missing functions, multibyte support disabled" >&5
--echo "$as_me: missing functions, multibyte support disabled" >&6;}
-+      { $as_echo "$as_me:$LINENO: missing functions, multibyte support disabled" >&5
-+$as_echo "$as_me: missing functions, multibyte support disabled" >&6;}
-       zsh_cv_c_unicode_support=no
-     fi
- 
-@@ -18972,10 +19746,10 @@ _ACEOF
-   }
-   "
- 
--  { echo "$as_me:$LINENO: checking if the wcwidth() function is broken" >&5
--echo $ECHO_N "checking if the wcwidth() function is broken... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if the wcwidth() function is broken" >&5
-+$as_echo_n "checking if the wcwidth() function is broken... " >&6; }
- if test "${zsh_cv_c_broken_wcwidth+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_c_broken_wcwidth=no
-@@ -18994,36 +19768,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_c_broken_wcwidth=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_c_broken_wcwidth=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_c_broken_wcwidth" >&5
--echo "${ECHO_T}$zsh_cv_c_broken_wcwidth" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_c_broken_wcwidth" >&5
-+$as_echo "$zsh_cv_c_broken_wcwidth" >&6; }
-   if test x$zsh_cv_c_broken_wcwidth = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define BROKEN_WCWIDTH 1
-@@ -19129,10 +19906,10 @@ elif test "$host_os" = cygwin; then
-   MOD_IMPORT_VARIABLE="__attribute__((__dllimport__))"
-   MOD_IMPORT_FUNCTION=
- elif test "x$dynamic" = xyes; then
--  { echo "$as_me:$LINENO: checking if your system uses ELF binaries" >&5
--echo $ECHO_N "checking if your system uses ELF binaries... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if your system uses ELF binaries" >&5
-+$as_echo_n "checking if your system uses ELF binaries... " >&6; }
- if test "${zsh_cv_sys_elf+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$cross_compiling" = yes; then
-   zsh_cv_sys_elf=yes
-@@ -19166,36 +19943,39 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_elf=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_elf=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_elf" >&5
--echo "${ECHO_T}$zsh_cv_sys_elf" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_elf" >&5
-+$as_echo "$zsh_cv_sys_elf" >&6; }
- 
-   # We use [0-9]* in case statements, so need to change quoting
- 
-@@ -19317,10 +20097,10 @@ echo "${ECHO_T}$zsh_cv_sys_elf" >&6; }
-   # Done with our shell code, so restore autotools quoting
- 
- 
--{ echo "$as_me:$LINENO: checking if we can use -rdynamic" >&5
--echo $ECHO_N "checking if we can use -rdynamic... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking if we can use -rdynamic" >&5
-+$as_echo_n "checking if we can use -rdynamic... " >&6; }
- if test "${zsh_cv_rdynamic_available+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   old_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS -rdynamic"
-@@ -19345,37 +20125,41 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&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
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && {
- 	 test -z "$ac_c_werror_flag" ||
- 	 test ! -s conftest.err
--       } && test -s conftest$ac_exeext &&
--       $as_test_x conftest$ac_exeext; then
-+       } && test -s conftest$ac_exeext && {
-+	 test "$cross_compiling" = yes ||
-+	 $as_test_x conftest$ac_exeext
-+       }; then
-   zsh_cv_rdynamic_available=yes
- EXTRA_LDFLAGS="${EXTRA_LDFLAGS=-rdynamic}"
- else
--  echo "$as_me: failed program was:" >&5
-+  $as_echo "$as_me: failed program was:" >&5
- sed 's/^/| /' conftest.$ac_ext >&5
- 
- 	zsh_cvs_rdynamic_available=no
- fi
- 
-+rm -rf conftest.dSYM
- rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-       conftest$ac_exeext conftest.$ac_ext
- LDFLAGS="$old_LDFLAGS"
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_rdynamic_available" >&5
--echo "${ECHO_T}$zsh_cv_rdynamic_available" >&6; }
--  { echo "$as_me:$LINENO: checking if your dlsym() needs a leading underscore" >&5
--echo $ECHO_N "checking if your dlsym() needs a leading underscore... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_rdynamic_available" >&5
-+$as_echo "$zsh_cv_rdynamic_available" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if your dlsym() needs a leading underscore" >&5
-+$as_echo_n "checking if your dlsym() needs a leading underscore... " >&6; }
- if test "${zsh_cv_func_dlsym_needs_underscore+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   echo failed >conftestval && cat >conftest.c <&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
-     { ac_try='$DLLD $LDFLAGS $DLLDFLAGS -o conftest.$DL_EXT conftest.o 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
-     if test "$cross_compiling" = yes; then
-   zsh_cv_func_dlsym_needs_underscore=no
-@@ -19461,37 +20245,40 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_func_dlsym_needs_underscore=`cat conftestval`
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_func_dlsym_needs_underscore=failed
-     dynamic=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_func_dlsym_needs_underscore" >&5
--echo "${ECHO_T}$zsh_cv_func_dlsym_needs_underscore" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_func_dlsym_needs_underscore" >&5
-+$as_echo "$zsh_cv_func_dlsym_needs_underscore" >&6; }
-   if test "x$zsh_cv_func_dlsym_needs_underscore" = xyes; then
-     cat >>confdefs.h <<\_ACEOF
- #define DLSYM_NEEDS_UNDERSCORE 1
-@@ -19503,10 +20290,10 @@ _ACEOF
- fi
- 
- if test "x$dynamic" = xyes; then
--  { echo "$as_me:$LINENO: checking if environ is available in shared libraries" >&5
--echo $ECHO_N "checking if environ is available in shared libraries... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if environ is available in shared libraries" >&5
-+$as_echo_n "checking if environ is available in shared libraries... " >&6; }
- if test "${zsh_cv_shared_environ+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
-     us=_
-@@ -19528,25 +20315,25 @@ if { ac_try='$CC -c $CFLAGS $CPPFLAGS $D
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     if test "$cross_compiling" = yes; then
-   zsh_cv_shared_environ=no
-@@ -19618,29 +20405,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_shared_environ=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_shared_environ=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -19650,15 +20440,15 @@ else
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_shared_environ" >&5
--echo "${ECHO_T}$zsh_cv_shared_environ" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_shared_environ" >&5
-+$as_echo "$zsh_cv_shared_environ" >&6; }
- 
-   test "$zsh_cv_shared_environ" = yes || dynamic=no
-   if test "$ac_cv_func_tgetent" = yes; then
--    { echo "$as_me:$LINENO: checking if tgetent is available in shared libraries" >&5
--echo $ECHO_N "checking if tgetent is available in shared libraries... $ECHO_C" >&6; }
-+    { $as_echo "$as_me:$LINENO: checking if tgetent is available in shared libraries" >&5
-+$as_echo_n "checking if tgetent is available in shared libraries... " >&6; }
- if test "${zsh_cv_shared_tgetent+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
-     us=_
-@@ -19680,25 +20470,25 @@ if { ac_try='$CC -c $CFLAGS $CPPFLAGS $D
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     if test "$cross_compiling" = yes; then
-   zsh_cv_shared_tgetent=no
-@@ -19770,29 +20560,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_shared_tgetent=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_shared_tgetent=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -19802,15 +20595,15 @@ else
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_shared_tgetent" >&5
--echo "${ECHO_T}$zsh_cv_shared_tgetent" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_shared_tgetent" >&5
-+$as_echo "$zsh_cv_shared_tgetent" >&6; }
- 
-   fi
-   if test "$ac_cv_func_tigetstr" = yes; then
--    { echo "$as_me:$LINENO: checking if tigetstr is available in shared libraries" >&5
--echo $ECHO_N "checking if tigetstr is available in shared libraries... $ECHO_C" >&6; }
-+    { $as_echo "$as_me:$LINENO: checking if tigetstr is available in shared libraries" >&5
-+$as_echo_n "checking if tigetstr is available in shared libraries... " >&6; }
- if test "${zsh_cv_shared_tigetstr+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
-     us=_
-@@ -19832,25 +20625,25 @@ if { ac_try='$CC -c $CFLAGS $CPPFLAGS $D
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     if test "$cross_compiling" = yes; then
-   zsh_cv_shared_tigetstr=no
-@@ -19922,29 +20715,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_shared_tigetstr=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_shared_tigetstr=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -19954,17 +20750,17 @@ else
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_shared_tigetstr" >&5
--echo "${ECHO_T}$zsh_cv_shared_tigetstr" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_shared_tigetstr" >&5
-+$as_echo "$zsh_cv_shared_tigetstr" >&6; }
- 
-   fi
- fi
- 
- if test "x$dynamic" = xyes; then
--  { echo "$as_me:$LINENO: checking if name clashes in shared objects are OK" >&5
--echo $ECHO_N "checking if name clashes in shared objects are OK... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking if name clashes in shared objects are OK" >&5
-+$as_echo_n "checking if name clashes in shared objects are OK... " >&6; }
- if test "${zsh_cv_sys_dynamic_clash_ok+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
-     us=_
-@@ -19977,25 +20773,25 @@ if { ac_try='$CC -c $CFLAGS $CPPFLAGS $D
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     if test "$cross_compiling" = yes; then
-   zsh_cv_sys_dynamic_clash_ok=no
-@@ -20057,29 +20853,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_dynamic_clash_ok=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_dynamic_clash_ok=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -20089,8 +20888,8 @@ else
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_clash_ok" >&5
--echo "${ECHO_T}$zsh_cv_sys_dynamic_clash_ok" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_clash_ok" >&5
-+$as_echo "$zsh_cv_sys_dynamic_clash_ok" >&6; }
- if test "$zsh_cv_sys_dynamic_clash_ok" = yes; then
-     cat >>confdefs.h <<\_ACEOF
- #define DYNAMIC_NAME_CLASH_OK 1
-@@ -20098,10 +20897,10 @@ _ACEOF
- 
- fi
- 
--  { echo "$as_me:$LINENO: checking for working RTLD_GLOBAL" >&5
--echo $ECHO_N "checking for working RTLD_GLOBAL... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking for working RTLD_GLOBAL" >&5
-+$as_echo_n "checking for working RTLD_GLOBAL... " >&6; }
- if test "${zsh_cv_sys_dynamic_rtld_global+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
-     us=_
-@@ -20114,25 +20913,25 @@ if { ac_try='$CC -c $CFLAGS $CPPFLAGS $D
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     if test "$cross_compiling" = yes; then
-   zsh_cv_sys_dynamic_rtld_global=no
-@@ -20192,29 +20991,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_dynamic_rtld_global=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_dynamic_rtld_global=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -20224,14 +21026,14 @@ else
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_rtld_global" >&5
--echo "${ECHO_T}$zsh_cv_sys_dynamic_rtld_global" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_rtld_global" >&5
-+$as_echo "$zsh_cv_sys_dynamic_rtld_global" >&6; }
- 
-   RTLD_GLOBAL_OK=$zsh_cv_sys_dynamic_rtld_global
--  { echo "$as_me:$LINENO: checking whether symbols in the executable are available" >&5
--echo $ECHO_N "checking whether symbols in the executable are available... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking whether symbols in the executable are available" >&5
-+$as_echo_n "checking whether symbols in the executable are available... " >&6; }
- if test "${zsh_cv_sys_dynamic_execsyms+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
-     us=_
-@@ -20243,13 +21045,13 @@ if { ac_try='$CC -c $CFLAGS $CPPFLAGS $D
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     save_ldflags=$LDFLAGS
-     LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
-@@ -20311,29 +21113,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_dynamic_execsyms=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_dynamic_execsyms=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -20344,17 +21149,17 @@ else
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_execsyms" >&5
--echo "${ECHO_T}$zsh_cv_sys_dynamic_execsyms" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_execsyms" >&5
-+$as_echo "$zsh_cv_sys_dynamic_execsyms" >&6; }
- 
-   if test "$zsh_cv_sys_dynamic_execsyms" != yes; then
-     L=L
-   fi
- 
--{ echo "$as_me:$LINENO: checking whether executables can be stripped" >&5
--echo $ECHO_N "checking whether executables can be stripped... $ECHO_C" >&6; }
-+{ $as_echo "$as_me:$LINENO: checking whether executables can be stripped" >&5
-+$as_echo_n "checking whether executables can be stripped... " >&6; }
- if test "${zsh_cv_sys_dynamic_strip_exe+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$zsh_cv_sys_dynamic_execsyms" != yes; then
-     zsh_cv_sys_dynamic_strip_exe=yes
-@@ -20369,13 +21174,13 @@ elif
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
-     { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     save_ldflags=$LDFLAGS
-     LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS -s"
-@@ -20437,29 +21242,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_dynamic_strip_exe=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_dynamic_strip_exe=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -20470,13 +21278,13 @@ else
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_strip_exe" >&5
--echo "${ECHO_T}$zsh_cv_sys_dynamic_strip_exe" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_strip_exe" >&5
-+$as_echo "$zsh_cv_sys_dynamic_strip_exe" >&6; }
- 
--  { echo "$as_me:$LINENO: checking whether libraries can be stripped" >&5
--echo $ECHO_N "checking whether libraries can be stripped... $ECHO_C" >&6; }
-+  { $as_echo "$as_me:$LINENO: checking whether libraries can be stripped" >&5
-+$as_echo_n "checking whether libraries can be stripped... " >&6; }
- if test "${zsh_cv_sys_dynamic_strip_lib+set}" = set; then
--  echo $ECHO_N "(cached) $ECHO_C" >&6
-+  $as_echo_n "(cached) " >&6
- else
-   if test "$zsh_cv_func_dlsym_needs_underscore" = yes; then
-     us=_
-@@ -20488,13 +21296,13 @@ if { ac_try='$CC -c $CFLAGS $CPPFLAGS $D
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; } &&
- { ac_try='$DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS -s conftest1.o $LIBS 1>&5'
-   { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-   (eval $ac_try) 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-     if test "$cross_compiling" = yes; then
-   zsh_cv_sys_dynamic_strip_lib=no
-@@ -20552,29 +21360,32 @@ case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_link") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-   { (case "(($ac_try" in
-   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-   *) ac_try_echo=$ac_try;;
- esac
--eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
-+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-+$as_echo "$ac_try_echo") >&5
-   (eval "$ac_try") 2>&5
-   ac_status=$?
--  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   (exit $ac_status); }; }; then
-   zsh_cv_sys_dynamic_strip_lib=yes
- else
--  echo "$as_me: program exited with status $ac_status" >&5
--echo "$as_me: failed program was:" >&5
-+  $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
- 
- ( exit $ac_status )
- zsh_cv_sys_dynamic_strip_lib=no
- fi
-+rm -rf conftest.dSYM
- rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
- fi
- 
-@@ -20584,8 +21395,8 @@ else
- fi
- 
- fi
--{ echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_strip_lib" >&5
--echo "${ECHO_T}$zsh_cv_sys_dynamic_strip_lib" >&6; }
-+{ $as_echo "$as_me:$LINENO: result: $zsh_cv_sys_dynamic_strip_lib" >&5
-+$as_echo "$zsh_cv_sys_dynamic_strip_lib" >&6; }
- 
-   if $strip_exeldflags && test "$zsh_cv_sys_dynamic_strip_exe" = yes; then
-     EXELDFLAGS="$EXELDFLAGS -s"
-@@ -20792,11 +21603,12 @@ _ACEOF
-     case $ac_val in #(
-     *${as_nl}*)
-       case $ac_var in #(
--      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
--echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
-+      *_cv_*) { $as_echo "$as_me:$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= ;; #(
-       *) $as_unset $ac_var ;;
-       esac ;;
-     esac
-@@ -20829,12 +21641,12 @@ echo "$as_me: WARNING: Cache variable $a
- 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 "$as_me:$LINENO: updating cache $cache_file" >&5
--echo "$as_me: updating cache $cache_file" >&6;}
-+      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
-+$as_echo "$as_me: updating cache $cache_file" >&6;}
-     cat confcache >$cache_file
-   else
--    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
--echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-+    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-   fi
- fi
- rm -f confcache
-@@ -20850,7 +21662,7 @@ ac_ltlibobjs=
- for ac_i in : $LIBOBJS; 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=`echo "$ac_i" | sed "$ac_script"`
-+  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.
-   ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-@@ -20863,11 +21675,12 @@ 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"
--{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
--echo "$as_me: creating $CONFIG_STATUS" >&6;}
--cat >$CONFIG_STATUS <<_ACEOF
-+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- #! $SHELL
- # Generated by $as_me.
- # Run this file to recreate the current configuration.
-@@ -20880,7 +21693,7 @@ ac_cs_silent=false
- SHELL=\${CONFIG_SHELL-$SHELL}
- _ACEOF
- 
--cat >>$CONFIG_STATUS <<\_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- ## --------------------- ##
- ## M4sh Initialization.  ##
- ## --------------------- ##
-@@ -20890,7 +21703,7 @@ DUALCASE=1; export DUALCASE # for MKS sh
- 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
-+  # 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
-@@ -20912,17 +21725,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTE
- 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=';'
-+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
-+if (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
--    PATH_SEPARATOR=:
-+    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
--  rm -f conf$$.sh
-+  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
- 
- # Support unset when possible.
-@@ -20938,8 +21779,6 @@ fi
- # 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.)
--as_nl='
--'
- IFS=" ""	$as_nl"
- 
- # Find who we are.  Look in the path if we contain no directory separator.
-@@ -20962,7 +21801,7 @@ if test "x$as_myself" = x; then
-   as_myself=$0
- fi
- if test ! -f "$as_myself"; then
--  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-   { (exit 1); exit 1; }
- fi
- 
-@@ -20975,17 +21814,10 @@ 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) >/dev/null 2>&1 && $as_unset $as_var
--  fi
--done
-+LC_ALL=C
-+export LC_ALL
-+LANGUAGE=C
-+export LANGUAGE
- 
- # Required to use basename.
- if expr a : '\(a\)' >/dev/null 2>&1 &&
-@@ -21007,7 +21839,7 @@ as_me=`$as_basename -- "$0" ||
- $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
- 	 X"$0" : 'X\(//\)$' \| \
- 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
--echo X/"$0" |
-+$as_echo X/"$0" |
-     sed '/^.*\/\([^/][^/]*\)\/*$/{
- 	    s//\1/
- 	    q
-@@ -21058,7 +21890,7 @@ $as_unset CDPATH
-       s/-\n.*//
-     ' >$as_me.lineno &&
-   chmod +x "$as_me.lineno" ||
--    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-+    { $as_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
-@@ -21086,7 +21918,6 @@ case `echo -n x` in
- *)
-   ECHO_N='-n';;
- esac
--
- if expr a : '\(a\)' >/dev/null 2>&1 &&
-    test "X`expr 00001 : '.*\(...\)'`" = X001; then
-   as_expr=expr
-@@ -21099,19 +21930,22 @@ if test -d conf$$.dir; then
-   rm -f conf$$.dir/conf$$.file
- else
-   rm -f conf$$.dir
--  mkdir conf$$.dir
-+  mkdir conf$$.dir 2>/dev/null
- fi
--echo >conf$$.file
--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 ||
-+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'
--elif ln conf$$.file conf$$ 2>/dev/null; then
--  as_ln_s=ln
-+  fi
- else
-   as_ln_s='cp -p'
- fi
-@@ -21136,10 +21970,10 @@ else
-   as_test_x='
-     eval sh -c '\''
-       if test -d "$1"; then
--        test -d "$1/.";
-+	test -d "$1/.";
-       else
- 	case $1 in
--        -*)set "./$1";;
-+	-*)set "./$1";;
- 	esac;
- 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
- 	???[sx]*):;;*)false;;esac;fi
-@@ -21162,7 +21996,7 @@ exec 6>&1
- # values after options handling.
- ac_log="
- This file was extended by $as_me, which was
--generated by GNU Autoconf 2.61.  Invocation command line was
-+generated by GNU Autoconf 2.63.  Invocation command line was
- 
-   CONFIG_FILES    = $CONFIG_FILES
-   CONFIG_HEADERS  = $CONFIG_HEADERS
-@@ -21175,7 +22009,16 @@ on `(hostname || uname -n) 2>/dev/null |
- 
- _ACEOF
- 
--cat >>$CONFIG_STATUS <<_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"
-@@ -21183,22 +22026,23 @@ config_commands="$ac_config_commands"
- 
- _ACEOF
- 
--cat >>$CONFIG_STATUS <<\_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- ac_cs_usage="\
- \`$as_me' instantiates files from templates according to the
- current configuration.
- 
--Usage: $0 [OPTIONS] [FILE]...
-+Usage: $0 [OPTION]... [FILE]...
- 
-   -h, --help       print this help, then exit
-   -V, --version    print version number and configuration settings, then exit
--  -q, --quiet      do not print progress messages
-+  -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
-+      --file=FILE[:TEMPLATE]
-+                   instantiate the configuration file FILE
-+      --header=FILE[:TEMPLATE]
-+                   instantiate the configuration header FILE
- 
- Configuration files:
- $config_files
-@@ -21212,24 +22056,25 @@ $config_commands
- Report bugs to ."
- 
- _ACEOF
--cat >>$CONFIG_STATUS <<_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- ac_cs_version="\\
- config.status
--configured by $0, generated by GNU Autoconf 2.61,
--  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
-+configured by $0, generated by GNU Autoconf 2.63,
-+  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
- 
--Copyright (C) 2006 Free Software Foundation, Inc.
-+Copyright (C) 2008 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'
-+AWK='$AWK'
-+test -n "\$AWK" || AWK=awk
- _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.
-+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
-@@ -21251,30 +22096,36 @@ do
-   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-     ac_cs_recheck=: ;;
-   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
--    echo "$ac_cs_version"; exit ;;
-+    $as_echo "$ac_cs_version"; exit ;;
-   --debug | --debu | --deb | --de | --d | -d )
-     debug=: ;;
-   --file | --fil | --fi | --f )
-     $ac_shift
--    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
-+    case $ac_optarg in
-+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-+    esac
-+    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
-     ac_need_defaults=false;;
-   --header | --heade | --head | --hea )
-     $ac_shift
--    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
-+    case $ac_optarg in
-+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-+    esac
-+    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
-     ac_need_defaults=false;;
-   --he | --h)
-     # Conflict between --help and --header
--    { echo "$as_me: error: ambiguous option: $1
-+    { $as_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 ;;
-+    $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.
--  -*) { echo "$as_me: error: unrecognized option: $1
-+  -*) { $as_echo "$as_me: error: unrecognized option: $1
- Try \`$0 --help' for more information." >&2
-    { (exit 1); exit 1; }; } ;;
- 
-@@ -21293,30 +22144,32 @@ if $ac_cs_silent; then
- fi
- 
- _ACEOF
--cat >>$CONFIG_STATUS <<_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- if \$ac_cs_recheck; then
--  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
--  CONFIG_SHELL=$SHELL
-+  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 $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-+  exec "\$@"
- fi
- 
- _ACEOF
--cat >>$CONFIG_STATUS <<\_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
--  echo "$ac_log"
-+  $as_echo "$ac_log"
- } >&5
- 
- _ACEOF
--cat >>$CONFIG_STATUS <<_ACEOF
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
- _ACEOF
- 
--cat >>$CONFIG_STATUS <<\_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- 
- # Handling of arguments.
- for ac_config_target in $ac_config_targets
-@@ -21332,8 +22185,8 @@ do
-     "config.modules") CONFIG_COMMANDS="$CONFIG_COMMANDS config.modules" ;;
-     "stamp-h") CONFIG_COMMANDS="$CONFIG_COMMANDS stamp-h" ;;
- 
--  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
--echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-+  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-    { (exit 1); exit 1; }; };;
-   esac
- done
-@@ -21374,235 +22227,180 @@ $debug ||
-   (umask 077 && mkdir "$tmp")
- } ||
- {
--   echo "$me: cannot create a temporary directory in ." >&2
-+   $as_echo "$as_me: cannot create a temporary directory in ." >&2
-    { (exit 1); exit 1; }
- }
- 
--#
--# Set up the sed scripts for CONFIG_FILES section.
--#
--
--# No need to generate the scripts if there are no CONFIG_FILES.
--# This happens for instance when ./config.status config.h
-+# 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
- 
--_ACEOF
--
--# Create sed commands to just substitute file output variables.
--
--# Remaining file output variables are in a fragment that also has non-file
--# output varibles.
--
--
-+if $AWK 'BEGIN { getline <"/dev/null" }' /dev/null; then
-+  ac_cs_awk_getline=:
-+  ac_cs_awk_pipe_init=
-+  ac_cs_awk_read_file='
-+      while ((getline aline < (F[key])) > 0)
-+	print(aline)
-+      close(F[key])'
-+  ac_cs_awk_pipe_fini=
-+else
-+  ac_cs_awk_getline=false
-+  ac_cs_awk_pipe_init="print \"cat <<'|#_!!_#|' &&\""
-+  ac_cs_awk_read_file='
-+      print "|#_!!_#|"
-+      print "cat " F[key] " &&"
-+      '$ac_cs_awk_pipe_init
-+  # The final `:' finishes the AND list.
-+  ac_cs_awk_pipe_fini='END { print "|#_!!_#|"; print ":" }'
-+fi
-+ac_cr='
'
-+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 {' >"$tmp/subs1.awk" &&
-+_ACEOF
-+
-+# Create commands to substitute file output variables.
-+{
-+  echo "cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1" &&
-+  echo 'cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&' &&
-+  echo "$ac_subst_files" | sed 's/.*/F["&"]="$&"/' &&
-+  echo "_ACAWK" &&
-+  echo "_ACEOF"
-+} >conf$$files.sh &&
-+. ./conf$$files.sh ||
-+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-+   { (exit 1); exit 1; }; }
-+rm -f conf$$files.sh
- 
-+{
-+  echo "cat >conf$$subs.awk <<_ACEOF" &&
-+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-+  echo "_ACEOF"
-+} >conf$$subs.sh ||
-+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-+   { (exit 1); exit 1; }; }
-+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
- ac_delim='%!_!# '
- for ac_last_try in false false false false false :; do
--  cat >conf$$subs.sed <<_ACEOF
--SHELL!$SHELL$ac_delim
--PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
--PACKAGE_NAME!$PACKAGE_NAME$ac_delim
--PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
--PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
--PACKAGE_STRING!$PACKAGE_STRING$ac_delim
--PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
--exec_prefix!$exec_prefix$ac_delim
--prefix!$prefix$ac_delim
--program_transform_name!$program_transform_name$ac_delim
--bindir!$bindir$ac_delim
--sbindir!$sbindir$ac_delim
--libexecdir!$libexecdir$ac_delim
--datarootdir!$datarootdir$ac_delim
--datadir!$datadir$ac_delim
--sysconfdir!$sysconfdir$ac_delim
--sharedstatedir!$sharedstatedir$ac_delim
--localstatedir!$localstatedir$ac_delim
--includedir!$includedir$ac_delim
--oldincludedir!$oldincludedir$ac_delim
--docdir!$docdir$ac_delim
--infodir!$infodir$ac_delim
--htmldir!$htmldir$ac_delim
--dvidir!$dvidir$ac_delim
--pdfdir!$pdfdir$ac_delim
--psdir!$psdir$ac_delim
--libdir!$libdir$ac_delim
--localedir!$localedir$ac_delim
--mandir!$mandir$ac_delim
--DEFS!$DEFS$ac_delim
--ECHO_C!$ECHO_C$ac_delim
--ECHO_N!$ECHO_N$ac_delim
--ECHO_T!$ECHO_T$ac_delim
--LIBS!$LIBS$ac_delim
--build_alias!$build_alias$ac_delim
--host_alias!$host_alias$ac_delim
--target_alias!$target_alias$ac_delim
--build!$build$ac_delim
--build_cpu!$build_cpu$ac_delim
--build_vendor!$build_vendor$ac_delim
--build_os!$build_os$ac_delim
--host!$host$ac_delim
--host_cpu!$host_cpu$ac_delim
--host_vendor!$host_vendor$ac_delim
--host_os!$host_os$ac_delim
--tzsh!$tzsh$ac_delim
--zshenv!$zshenv$ac_delim
--zshrc!$zshrc$ac_delim
--zprofile!$zprofile$ac_delim
--zlogin!$zlogin$ac_delim
--zlogout!$zlogout$ac_delim
--fndir!$fndir$ac_delim
--sitefndir!$sitefndir$ac_delim
--FUNCTIONS_SUBDIRS!$FUNCTIONS_SUBDIRS$ac_delim
--scriptdir!$scriptdir$ac_delim
--sitescriptdir!$sitescriptdir$ac_delim
--CC!$CC$ac_delim
--CFLAGS!$CFLAGS$ac_delim
--LDFLAGS!$LDFLAGS$ac_delim
--CPPFLAGS!$CPPFLAGS$ac_delim
--ac_ct_CC!$ac_ct_CC$ac_delim
--EXEEXT!$EXEEXT$ac_delim
--OBJEXT!$OBJEXT$ac_delim
--EXELDFLAGS!$EXELDFLAGS$ac_delim
--LIBLDFLAGS!$LIBLDFLAGS$ac_delim
--CPP!$CPP$ac_delim
--GREP!$GREP$ac_delim
--EGREP!$EGREP$ac_delim
--U!$U$ac_delim
--ALLOCA!$ALLOCA$ac_delim
--SET_MAKE!$SET_MAKE$ac_delim
--INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
--INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
--INSTALL_DATA!$INSTALL_DATA$ac_delim
--AWK!$AWK$ac_delim
--LN!$LN$ac_delim
--YODL!$YODL$ac_delim
--PDFETEX!$PDFETEX$ac_delim
--TEXI2PDF!$TEXI2PDF$ac_delim
--TEXI2HTML!$TEXI2HTML$ac_delim
--ANSI2KNR!$ANSI2KNR$ac_delim
--PCRECONF!$PCRECONF$ac_delim
--SIGNAL_H!$SIGNAL_H$ac_delim
--ERRNO_H!$ERRNO_H$ac_delim
--ZSH_CURSES_H!$ZSH_CURSES_H$ac_delim
--_ACEOF
-+  . ./conf$$subs.sh ||
-+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-+   { (exit 1); exit 1; }; }
- 
--  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 85; then
-+  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
--    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
--echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-    { (exit 1); exit 1; }; }
-   else
-     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-   fi
- done
-+rm -f conf$$subs.sh
- 
--ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
--if test -n "$ac_eof"; then
--  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
--  ac_eof=`expr $ac_eof + 1`
--fi
--
--cat >>$CONFIG_STATUS <<_ACEOF
--cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
--/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
--/^[	 ]*@CLEAN_MK@[	 ]*$/{
--r $CLEAN_MK
--d
--}
--/^[	 ]*@CONFIG_MK@[	 ]*$/{
--r $CONFIG_MK
--d
--}
--/^[	 ]*@DEFS_MK@[	 ]*$/{
--r $DEFS_MK
--d
--}
--/^[	 ]*@VERSION_MK@[	 ]*$/{
--r $VERSION_MK
--d
--}
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
- _ACEOF
--sed '
--s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
--s/^/s,@/; s/!/@,|#_!!_#|/
--:n
--t n
--s/'"$ac_delim"'$/,g/; t
--s/$/\\/; p
--N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
--' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF
--CEOF$ac_eof
--_ACEOF
--
--
--ac_delim='%!_!# '
--for ac_last_try in false false false false false :; do
--  cat >conf$$subs.sed <<_ACEOF
--CURSES_KEYS_H!$CURSES_KEYS_H$ac_delim
--ZSH_TERM_H!$ZSH_TERM_H$ac_delim
--RLIMITS_INC_H!$RLIMITS_INC_H$ac_delim
--SHORTBOOTNAMES!$SHORTBOOTNAMES$ac_delim
--INSTLIB!$INSTLIB$ac_delim
--UNINSTLIB!$UNINSTLIB$ac_delim
--D!$D$ac_delim
--DL_EXT!$DL_EXT$ac_delim
--DLLD!$DLLD$ac_delim
--DLCFLAGS!$DLCFLAGS$ac_delim
--DLLDFLAGS!$DLLDFLAGS$ac_delim
--E!$E$ac_delim
--EXTRA_LDFLAGS!$EXTRA_LDFLAGS$ac_delim
--EXPOPT!$EXPOPT$ac_delim
--IMPOPT!$IMPOPT$ac_delim
--L!$L$ac_delim
--LINKMODS!$LINKMODS$ac_delim
--MOD_EXPORT!$MOD_EXPORT$ac_delim
--MOD_IMPORT_VARIABLE!$MOD_IMPORT_VARIABLE$ac_delim
--MOD_IMPORT_FUNCTION!$MOD_IMPORT_FUNCTION$ac_delim
--EXTRAZSHOBJS!$EXTRAZSHOBJS$ac_delim
--LIBOBJS!$LIBOBJS$ac_delim
--LTLIBOBJS!$LTLIBOBJS$ac_delim
-+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 >>"\$tmp/subs1.awk" <<_ACAWK &&
-+  for (key in S) S_is_set[key] = 1
-+  FS = ""
-+  \$ac_cs_awk_pipe_init
-+}
-+{
-+  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
-+  }
-+  if (nfields == 3 && !substed) {
-+    key = field[2]
-+    if (F[key] != "" && line ~ /^[	 ]*@.*@[	 ]*$/) {
-+      \$ac_cs_awk_read_file
-+      next
-+    }
-+  }
-+  print line
-+}
-+\$ac_cs_awk_pipe_fini
-+_ACAWK
- _ACEOF
--
--  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 23; then
--    break
--  elif $ac_last_try; then
--    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
--echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-+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 < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-+  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-+$as_echo "$as_me: error: could not setup config files machinery" >&2;}
-    { (exit 1); exit 1; }; }
--  else
--    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
--  fi
--done
--
--ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
--if test -n "$ac_eof"; then
--  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
--  ac_eof=`expr $ac_eof + 1`
--fi
--
--cat >>$CONFIG_STATUS <<_ACEOF
--cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
--/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
--_ACEOF
--sed '
--s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
--s/^/s,@/; s/!/@,|#_!!_#|/
--:n
--t n
--s/'"$ac_delim"'$/,g/; t
--s/$/\\/; p
--N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
--' >>$CONFIG_STATUS >$CONFIG_STATUS <<_ACEOF
--:end
--s/|#_!!_#|//g
--CEOF$ac_eof
- _ACEOF
- 
--
- # 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
-@@ -21618,19 +22416,133 @@ s/^[^=]*=[	 ]*$//
- }'
- fi
- 
--cat >>$CONFIG_STATUS <<\_ACEOF
-+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 >"$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_t=`sed -n "/$ac_delim/p" confdefs.h`
-+  if test -z "$ac_t"; then
-+    break
-+  elif $ac_last_try; then
-+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
-+$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
-+   { (exit 1); exit 1; }; }
-+  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_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
-+$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
-+   { (exit 1); exit 1; }; }
-+fi # test -n "$CONFIG_HEADERS"
-+
- 
--for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
-+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*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
--echo "$as_me: error: Invalid tag $ac_tag." >&2;}
-+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
-    { (exit 1); exit 1; }; };;
-   :[FH]-) ac_tag=-:-;;
-   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-@@ -21659,26 +22571,38 @@ echo "$as_me: error: Invalid tag $ac_tag
- 	   [\\/$]*) false;;
- 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
- 	   esac ||
--	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
--echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-+	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-    { (exit 1); exit 1; }; };;
-       esac
--      ac_file_inputs="$ac_file_inputs $ac_f"
-+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-+      ac_file_inputs="$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 "`IFS=:
--	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
-+    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"
--      { echo "$as_me:$LINENO: creating $ac_file" >&5
--echo "$as_me: creating $ac_file" >&6;}
-+      { $as_echo "$as_me:$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 >"$tmp/stdin";;
-+    *:-:* | *:-) cat >"$tmp/stdin" \
-+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-+$as_echo "$as_me: error: could not create $ac_file" >&2;}
-+   { (exit 1); exit 1; }; } ;;
-     esac
-     ;;
-   esac
-@@ -21688,7 +22612,7 @@ $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" |
-+$as_echo X"$ac_file" |
-     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- 	    s//\1/
- 	    q
-@@ -21714,7 +22638,7 @@ echo X"$ac_file" |
-     as_dirs=
-     while :; do
-       case $as_dir in #(
--      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
-+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-       *) as_qdir=$as_dir;;
-       esac
-       as_dirs="'$as_qdir' $as_dirs"
-@@ -21723,7 +22647,7 @@ $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" |
-+$as_echo X"$as_dir" |
-     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
- 	    s//\1/
- 	    q
-@@ -21744,17 +22668,17 @@ echo X"$as_dir" |
-       test -d "$as_dir" && break
-     done
-     test -z "$as_dirs" || eval "mkdir $as_dirs"
--  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
--echo "$as_me: error: cannot create directory $as_dir" >&2;}
-+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-    { (exit 1); exit 1; }; }; }
-   ac_builddir=.
- 
- case "$ac_dir" in
- .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
- *)
--  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
-+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-   # A ".." for each directory in $ac_dir_suffix.
--  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
-+  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/ ;;
-@@ -21794,12 +22718,13 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_
-   esac
- _ACEOF
- 
--cat >>$CONFIG_STATUS <<\_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=
- 
--case `sed -n '/datarootdir/ {
-+ac_sed_dataroot='
-+/datarootdir/ {
-   p
-   q
- }
-@@ -21808,13 +22733,14 @@ case `sed -n '/datarootdir/ {
- /@infodir@/p
- /@localedir@/p
- /@mandir@/p
--' $ac_file_inputs` in
-+'
-+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
- *datarootdir*) ac_datarootdir_seen=yes;;
- *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
--  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
--echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-+  { $as_echo "$as_me:$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
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-   ac_datarootdir_hack='
-   s&@datadir@&$datadir&g
-   s&@docdir@&$docdir&g
-@@ -21828,15 +22754,16 @@ _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
--  sed "$ac_vpsub
-+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-+ac_sed_extra="$ac_vpsub
- $extrasub
- _ACEOF
--cat >>$CONFIG_STATUS <<\_ACEOF
-+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
- :t
- /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
--s&@configure_input@&$configure_input&;t t
-+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
-@@ -21846,123 +22773,67 @@ 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
--" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
-+"
-+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" |
-+if $ac_cs_awk_getline; then
-+  $AWK -f "$tmp/subs.awk"
-+else
-+  $AWK -f "$tmp/subs.awk" | $SHELL
-+fi >$tmp/out \
-+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-+$as_echo "$as_me: error: could not create $ac_file" >&2;}
-+   { (exit 1); exit 1; }; }
- 
- test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
--  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
- which seems to be undefined.  Please make sure it is defined." >&5
--echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-+$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 "$tmp/stdin"
-   case $ac_file in
--  -) cat "$tmp/out"; rm -f "$tmp/out";;
--  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
--  esac
-+  -) cat "$tmp/out" && rm -f "$tmp/out";;
-+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
-+  esac \
-+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-+$as_echo "$as_me: error: could not create $ac_file" >&2;}
-+   { (exit 1); exit 1; }; }
-  ;;
-   :H)
-   #
-   # CONFIG_HEADER
-   #
--_ACEOF
--
--# Transform confdefs.h into a sed script `conftest.defines', that
--# substitutes the proper values into config.h.in to produce config.h.
--rm -f conftest.defines conftest.tail
--# First, append a space to every undef/define line, to ease matching.
--echo 's/$/ /' >conftest.defines
--# Then, protect against being on the right side of a sed subst, or in
--# an unquoted here document, in config.status.  If some macros were
--# called several times there might be several #defines for the same
--# symbol, which is useless.  But do not sort them, since the last
--# AC_DEFINE must be honored.
--ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
--# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
--# NAME is the cpp macro being defined, VALUE is the value it is being given.
--# PARAMS is the parameter list in the macro definition--in most cases, it's
--# just an empty string.
--ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
--ac_dB='\\)[	 (].*,\\1define\\2'
--ac_dC=' '
--ac_dD=' ,'
--
--uniq confdefs.h |
--  sed -n '
--	t rset
--	:rset
--	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
--	t ok
--	d
--	:ok
--	s/[\\&,]/\\&/g
--	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
--	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
--  ' >>conftest.defines
--
--# Remove the space that was appended to ease matching.
--# Then 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.
--# (The regexp can be short, since the line contains either #define or #undef.)
--echo 's/ $//
--s,^[	 #]*u.*,/* & */,' >>conftest.defines
--
--# Break up conftest.defines:
--ac_max_sed_lines=50
--
--# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
--# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
--# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
--# et cetera.
--ac_in='$ac_file_inputs'
--ac_out='"$tmp/out1"'
--ac_nxt='"$tmp/out2"'
--
--while :
--do
--  # Write a here document:
--    cat >>$CONFIG_STATUS <<_ACEOF
--    # First, check the format of the line:
--    cat >"\$tmp/defines.sed" <<\\CEOF
--/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
--/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
--b
--:def
--_ACEOF
--  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
--  echo 'CEOF
--    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
--  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
--  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
--  grep . conftest.tail >/dev/null || break
--  rm -f conftest.defines
--  mv conftest.tail conftest.defines
--done
--rm -f conftest.defines conftest.tail
--
--echo "ac_result=$ac_in" >>$CONFIG_STATUS
--cat >>$CONFIG_STATUS <<\_ACEOF
-   if test x"$ac_file" != x-; then
--    echo "/* $configure_input  */" >"$tmp/config.h"
--    cat "$ac_result" >>"$tmp/config.h"
--    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;}
-+    {
-+      $as_echo "/* $configure_input  */" \
-+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-+    } >"$tmp/config.h" \
-+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-+$as_echo "$as_me: error: could not create $ac_file" >&2;}
-+   { (exit 1); exit 1; }; }
-+    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-+      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-+$as_echo "$as_me: $ac_file is unchanged" >&6;}
-     else
--      rm -f $ac_file
--      mv "$tmp/config.h" $ac_file
-+      rm -f "$ac_file"
-+      mv "$tmp/config.h" "$ac_file" \
-+	|| { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-+$as_echo "$as_me: error: could not create $ac_file" >&2;}
-+   { (exit 1); exit 1; }; }
-     fi
-   else
--    echo "/* $configure_input  */"
--    cat "$ac_result"
-+    $as_echo "/* $configure_input  */" \
-+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-+      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
-+$as_echo "$as_me: error: could not create -" >&2;}
-+   { (exit 1); exit 1; }; }
-   fi
--  rm -f "$tmp/out12"
-  ;;
- 
--  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
--echo "$as_me: executing $ac_file commands" >&6;}
-+  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
-+$as_echo "$as_me: executing $ac_file commands" >&6;}
-  ;;
-   esac
- 
-@@ -21980,6 +22851,11 @@ _ACEOF
- chmod +x $CONFIG_STATUS
- ac_clean_files=$ac_clean_files_save
- 
-+test $ac_write_fail = 0 ||
-+  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
-+   { (exit 1); exit 1; }; }
-+
- 
- # configure is writing to config.log, and then calls config.status.
- # config.status does its own redirection, appending to config.log.
-@@ -22001,6 +22877,10 @@ if test "$no_create" != yes; then
-   # would make configure fail if this is the last instruction.
-   $ac_cs_success || { (exit 1); exit 1; }
- fi
-+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-+fi
- 
- 
- eval "zshbin1=${bindir}"
---- zsh-4.3.10.orig/Src/builtin.c
-+++ zsh-4.3.10/Src/builtin.c
-@@ -794,6 +794,7 @@ bin_cd(char *nam, char **argv, Options o
-     if (stat(unmeta(pwd), &st1) < 0) {
- 	setjobpwd();
- 	zsfree(pwd);
-+	pwd = NULL;
- 	pwd = metafy(zgetcwd(), -1, META_DUP);
-     } else if (stat(".", &st2) < 0) {
- 	if (chdir(unmeta(pwd)) < 0)
-@@ -802,6 +803,7 @@ bin_cd(char *nam, char **argv, Options o
- 	if (chasinglinks) {
- 	    setjobpwd();
- 	    zsfree(pwd);
-+	    pwd = NULL;
- 	    pwd = metafy(zgetcwd(), -1, META_DUP);
- 	} else if (chdir(unmeta(pwd)) < 0)
- 	    zwarn("unable to chdir(%s): %e", pwd, errno);
---- zsh-4.3.10.orig/Src/hist.c
-+++ zsh-4.3.10/Src/hist.c
-@@ -1156,6 +1156,7 @@ hend(Eprog prog)
- 	zfree(chline, hlinesz);
- 	zfree(chwords, chwordlen*sizeof(short));
- 	chline = NULL;
-+	chwords = NULL;
- 	histactive = 0;
- 	unqueue_signals();
- 	return 1;
-@@ -1270,6 +1271,7 @@ hend(Eprog prog)
-     zfree(chline, hlinesz);
-     zfree(chwords, chwordlen*sizeof(short));
-     chline = NULL;
-+    chwords = NULL;
-     histactive = 0;
-     if (isset(SHAREHISTORY)? histfileIsLocked() : isset(INCAPPENDHISTORY))
- 	savehistfile(hf, 0, HFILE_USE_OPTIONS | HFILE_FAST);
---- zsh-4.3.10.orig/Src/system.h
-+++ zsh-4.3.10/Src/system.h
-@@ -37,7 +37,7 @@
- #endif
- #endif
- 
--#if defined(__linux) || defined(__GNU__)
-+#if defined(__linux) || defined(__GNU__) || defined(__GLIBC__)
- /*
-  * Turn on numerous extensions.
-  * This is in order to get the functions for manipulating /dev/ptmx.
---- zsh-4.3.10.orig/Src/compat.c
-+++ zsh-4.3.10/Src/compat.c
-@@ -270,11 +270,7 @@ zgetdir(struct dirsav *d)
-     buf[pos] = '\0';
-     strcpy(nbuf, "../");
-     if (stat(".", &sbuf) < 0) {
--	if (d)
--	    return NULL;
--	buf[0] = '.';
--	buf[1] = '\0';
--	return buf;
-+	return NULL;
-     }
- 
-     /* Record the initial inode and device */
-@@ -349,6 +345,11 @@ zgetdir(struct dirsav *d)
- 	closedir(dir);
- 	if (!de)
- 	    break;		/* Not found */
-+	/*
-+	 * We get the "/" free just by copying from nbuf+2 instead
-+	 * of nbuf+3, which is where we copied the path component.
-+	 * This means buf[pos] is always a "/".
-+	 */
- 	len = strlen(nbuf + 2);
- 	pos -= len;
- 	while (pos <= 1) {
-@@ -366,15 +367,22 @@ zgetdir(struct dirsav *d)
- 	if (chdir(".."))
- 	    break;
-     }
-+
-+    /*
-+     * Fix up the directory, if necessary.
-+     * We're changing back down the hierarchy, ignore the
-+     * "/" at buf[pos].
-+     */
-     if (d) {
- #ifndef HAVE_FCHDIR
--	if (*buf)
-+	if (buf[pos])
- 	    zchdir(buf + pos + 1);
- 	noholdintr();
- #endif
- 	return NULL;
-     }
--    if (*buf)
-+
-+    if (buf[pos])
- 	zchdir(buf + pos + 1);
-     noholdintr();
- 
-@@ -392,16 +400,36 @@ zgetdir(struct dirsav *d)
-     }
- #endif
- 
--    buf[0] = '.';
--    buf[1] = '\0';
--    return buf;
-+    /*
-+     * Something bad happened.
-+     * This has been seen when inside a special directory,
-+     * such as the Netapp .snapshot directory, that doesn't
-+     * appear as a directory entry in the parent directory.
-+     * We'll just need our best guess.
-+     *
-+     * We only get here from zgetcwd(); let that fall back to pwd.
-+     */
-+
-+    return NULL;
- }
- 
-+/*
-+ * Try to find the current directory.
-+ * If it fails, fall back to pwd; if zgetcwd() is being used
-+ * to set pwd, pwd should be NULL and we just return ".".
-+ * We could fall back to getcwd() instead.
-+ */
-+
- /**/
- char *
- zgetcwd(void)
- {
--    return zgetdir(NULL);
-+    char *ret = zgetdir(NULL);
-+    if (!ret)
-+	ret = pwd;
-+    if (!ret)
-+	ret = dupstring(".");
-+    return ret;
- }
- 
- /* chdir with arbitrary long pathname.  Returns 0 on success, -1 on normal *
---- zsh-4.3.10.orig/Src/init.c
-+++ zsh-4.3.10/Src/init.c
-@@ -841,8 +841,10 @@ setupvals(void)
-     else if ((ptr = zgetenv("PWD")) && (strlen(ptr) < PATH_MAX) &&
- 	     (ptr = metafy(ptr, -1, META_STATIC), ispwd(ptr)))
- 	pwd = ztrdup(ptr);
--    else
-+    else {
-+	pwd = NULL;
- 	pwd = metafy(zgetcwd(), -1, META_DUP);
-+    }
- 
-     oldpwd = ztrdup(pwd);  /* initialize `OLDPWD' = `PWD' */
- 
---- zsh-4.3.10.orig/Src/Zle/zle_hist.c
-+++ zsh-4.3.10/Src/Zle/zle_hist.c
-@@ -1454,6 +1454,8 @@ doisearch(char **args, int dir, int patt
- 	    memset(&mbs, 0, sizeof(mbs));
- 	    while (charpos < end_pos) {
- 		ret = mb_metacharlenconv_r(zlemetaline + charpos, &wc, &mbs);
-+		if (ret <= 0) /* Unrecognised, treat as single char */
-+		    ret = 1;
- 		if (charpos <= pos && pos < charpos + ret)
- 		    isearch_startpos = charcount;
- 		charcount++;
---- zsh-4.3.10.orig/Src/Zle/compcore.c
-+++ zsh-4.3.10/Src/Zle/compcore.c
-@@ -2932,7 +2932,7 @@ add_match_data(int alt, char *str, char
- 		comp_setunset(0, 0, CP_EXACTSTR, 0);
- 	    }
- 	    ai->exactm = cm;
--	} else if (useexact && !matcheq(cm, ai->exactm)) {
-+	} else if (useexact && (!ai->exactm || !matcheq(cm, ai->exactm))) {
- 	    ai->exact = 2;
- 	    ai->exactm = NULL;
- 	    if (incompfunc)
---- zsh-4.3.10.orig/Src/Builtins/rlimits.c
-+++ zsh-4.3.10/Src/Builtins/rlimits.c
-@@ -680,7 +680,7 @@ static int
- bin_ulimit(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
- {
-     int res, resmask = 0, hard = 0, soft = 0, nres = 0, all = 0, ret = 0;
--    char *options;
-+    char *options, *eptr, *number;
- 
-     do {
- 	options = *argv;
-@@ -704,13 +704,18 @@ bin_ulimit(char *name, char **argv, UNUS
- 		    continue;
- 		case 'N':
- 		    if (options[1]) {
--			res = (int)zstrtol(options+1, NULL, 10);
-+			number = options + 1;
- 		    } else if (*argv) {
--			res = (int)zstrtol(*argv++, NULL, 10);
-+			number = *argv++;
- 		    } else {
- 			zwarnnam(name, "number required after -N");
- 			return 1;
- 		    }
-+		    res = (int)zstrtol(number, &eptr, 10);
-+		    if (*eptr) {
-+			zwarnnam(name, "invalid number: %s", number);
-+			return 1;
-+		    }
- 		    /*
- 		     * fake it so it looks like we just finished an option...
- 		     */
-@@ -831,35 +836,53 @@ bin_ulimit(char *name, char **argv, UNUS
- 	    /* set limit to specified value */
- 	    rlim_t limit;
- 
--	    limit = zstrtorlimt(*argv, NULL, 10);
--	    /* scale appropriately */
--	    switch (res) {
--	    case RLIMIT_FSIZE:
--	    case RLIMIT_CORE:
--		limit *= 512;
--		break;
--	    case RLIMIT_DATA:
--	    case RLIMIT_STACK:
-+	    if (!strcmp(*argv, "hard")) {
-+		struct rlimit vals;
-+
-+		if (getrlimit(res, &vals) < 0)
-+		{
-+		    zwarnnam(name, "can't read limit: %e", errno);
-+		    return 1;
-+		}
-+		else
-+		{
-+		    limit = vals.rlim_max;
-+		}
-+	    } else {
-+		limit = zstrtorlimt(*argv, &eptr, 10);
-+		if (*eptr) {
-+		    zwarnnam(name, "invalid number: %s", *argv);
-+		    return 1;
-+		}
-+		/* scale appropriately */
-+		switch (res) {
-+		case RLIMIT_FSIZE:
-+		case RLIMIT_CORE:
-+		    limit *= 512;
-+		    break;
-+		case RLIMIT_DATA:
-+		case RLIMIT_STACK:
- # ifdef HAVE_RLIMIT_RSS
--	    case RLIMIT_RSS:
-+		case RLIMIT_RSS:
- # endif /* HAVE_RLIMIT_RSS */
- # ifdef HAVE_RLIMIT_MEMLOCK
--	    case RLIMIT_MEMLOCK:
-+		case RLIMIT_MEMLOCK:
- # endif /* HAVE_RLIMIT_MEMLOCK */
- /* If RLIMIT_VMEM and RLIMIT_RSS are defined and equal, avoid *
-  * duplicate case statement.  Observed on QNX Neutrino 6.1.0. */
- # if defined(HAVE_RLIMIT_VMEM) && !defined(RLIMIT_VMEM_IS_RSS)
--	    case RLIMIT_VMEM:
-+		case RLIMIT_VMEM:
- # endif /* HAVE_RLIMIT_VMEM */
- /* ditto RLIMIT_VMEM and RLIMIT_AS */
- # if defined(HAVE_RLIMIT_AS) && !defined(RLIMIT_VMEM_IS_AS) && !defined(RLIMIT_RSS_IS_AS)
--	    case RLIMIT_AS:
-+		case RLIMIT_AS:
- # endif /* HAVE_RLIMIT_AS */
- # ifdef HAVE_RLIMIT_AIO_MEM
--	    case RLIMIT_AIO_MEM:
-+		case RLIMIT_AIO_MEM:
- # endif /* HAVE_RLIMIT_AIO_MEM */
--		limit *= 1024;
--		break;
-+		    limit *= 1024;
-+		    break;
-+		}
- 	    }
- 	    if (do_limit(name, res, limit, hard, soft, 1))
- 		ret++;
---- zsh-4.3.10.orig/Completion/Linux/Command/_lsusb
-+++ zsh-4.3.10/Completion/Linux/Command/_lsusb
-@@ -25,7 +25,7 @@ _arguments \
-         _lsusb_devices[${pair}]="$match[2]"
-       ;;
-     esac
--  done < <(zcat /var/lib/usbutils/usb.ids)
-+  done < /usr/share/misc/usb.ids
- fi
- 
- compadd -k _lsusb_devices
---- zsh-4.3.10.orig/Completion/Unix/Command/_gpg
-+++ zsh-4.3.10/Completion/Unix/Command/_gpg
-@@ -11,8 +11,8 @@ _arguments -C -s -S -A "-*" \
-   '(-c --symmetric)'{-c,--symmetric}'[encrypt with symmetric cypher only]' \
-   '--store[store only]' \
-   '--decrypt[decrypt file or stdin]' \
--  '--verify[verify a signature]:file attachment:_files' \
--  '--verify-files[verify a list of files]:_files attachment_files' \
-+  '--verify[verify a signature]' \
-+  '--verify-files[verify a list of files]' \
-   '(-f --encrypt-files)'{-f,--encrypt-files}'[encrypt files]' \
-   '--decrypt-files[decrypt files]' \
-   '--list-keys[list all keys]' \
---- zsh-4.3.10.orig/Completion/Unix/Command/_bzr
-+++ zsh-4.3.10/Completion/Unix/Command/_bzr
-@@ -331,6 +331,16 @@ case $cmd in
- 	)
-     ;;
- 
-+(switch)
-+    args+=(
-+	'--force[Switch even if local commits will be lost]'
-+	'(-q --quiet -v --verbose)'{--quiet,-q}'[be quiet]'
-+	'(-v --verbose -q --quiet)'{--verbose,-v}'[display more information]'
-+	'*:local repository:_files -/'
-+	)
-+    _bzr_completeParents
-+    ;;
-+
- (help)
-     args=(
- 	'(-l --long)'{--long,-l}'[use long format]'
---- zsh-4.3.10.orig/Completion/Unix/Command/_mpc
-+++ zsh-4.3.10/Completion/Unix/Command/_mpc
-@@ -26,36 +26,43 @@ _mpc_command() {
- 
-   mpc_cmds=(
-     add:"add a song to the current playlist"
-+    clear:"clear the current playlist"
-     crop:"remove all songs except for the currently playing song"
-+    current:"show the currently playing song"
-+    crossfade:"set and display crossfade settings"
-     del:"remove a song from the current playlist"
--    play:"start playing"
--    next:"play the next song in the current playlist"
--    prev:"play the previous song in the current playlist"
--    pause:"pause the currently playing song"
--    toggle:"toggles Play/Pause, plays if stopped"
--    stop:"stop the currently playing playlists"
--    seek:"seek to the position specified in percent"
--    clear:"clear the current playlist"
--    outputs:"show the current outputs"
--    enable:"enable a output"
-     disable:"disable a output"
--    shuffle:"shuffle the current playlist"
--    move:"move song in playlist"
--    playlist:"print the current playlist"
-+    enable:"enable a output"
-+    idle:"wait until an event occurs"
-+    idleloop:"loop waiting for events"
-     listall:"list all songs in the music directory"
-+    load:"load file as a playlist"
-     ls:"list the contents of specified directory"
-     lsplaylists:"list currently available playlists"
--    load:"load file as a playlist"
--    save:"save a playlist to file"
--    rm:"remove a playlist"
--    volume:"set volume"
--    repeat:"toggle repeat mode, or specify state"
-+    move:"move song in playlist"
-+    next:"play the next song in the current playlist"
-+    outputs:"show the current outputs"
-+    pause:"pause the currently playing song"
-+    play:"start playing"
-+    playlist:"print the current playlist"
-+    prev:"play the previous song in the current playlist"
-     random:"toggle random mode, or specify state"
-+    repeat:"toggle repeat mode, or specify state"
-+    single:"toggle single mode, or specify state"
-+    consume:"toggle consume mode, or specify state"
-+    rm:"remove a playlist"
-+    save:"save a playlist to file"
-     search:"search for a song"
--    crossfade:"set and display crossfade settings"
--    update:"scan music directory for updates"
-+    find:"search for a song, exact match"
-+    list:"list all tags of given type"
-+    seek:"seek to the position specified in percent"
-+    shuffle:"shuffle the current playlist"
-     stats:"display statistics about MPD"
-+    stop:"stop the currently playing playlists"
-+    toggle:"toggles Play/Pause, plays if stopped"
-+    update:"scan music directory for updates"
-     version:"report version of MPD"
-+    volume:"set volume"
-     status:"display MPD status"
-   )
- 
-@@ -234,9 +241,17 @@ _mpc_random() {
-   _mpc_helper_bool
- }
- 
-+_mpc_single() {
-+  _mpc_helper_bool
-+}
-+
-+_mpc_consume() {
-+  _mpc_helper_bool
-+}
-+
- _mpc_search() {
-   local list expl
--  list=(album artist title filename)
-+  list=(album artist title track name genre date composer performer comment disc filename any)
- 
-   if [[ $#words -eq 2 ]]; then
-     _wanted list expl table compadd $expl -a list
-@@ -245,6 +260,14 @@ _mpc_search() {
-   fi
- }
- 
-+_mpc_find() {
-+  _mpc_search "$@"
-+}
-+
-+_mpc_list() {
-+  _mpc_search "$@"
-+}
-+
- _mpc_update() {
-   _mpc_helper_files
- }
---- zsh-4.3.10.orig/Completion/Unix/Command/_django
-+++ zsh-4.3.10/Completion/Unix/Command/_django
-@@ -154,7 +154,7 @@ case $state in
-         )
-         ;;
- 
--      runserver)
-+      runserver|runserver_plus)
-         args+=(
-           '--noreload[do not use auto-reloader]'
-       	  '--adminmedia=[directory from which to serve admin media]:directory:_directories'
-@@ -199,6 +199,10 @@ case $state in
- 
-       validate|runfcgi)
-         ;;
-+
-+      *)
-+        _files
-+        ;;
-     esac
- 
-     _arguments $args && ret=0
---- zsh-4.3.10.orig/Completion/Unix/Command/_xmlsoft
-+++ zsh-4.3.10/Completion/Unix/Command/_xmlsoft
-@@ -14,6 +14,7 @@ case $service in
-       '--debug[dump the tree of the result instead]' \
-       '--dumpextensions[dump registered extension elements and functions]' \
-       '--novalid[skip the DTD loading phase]' \
-+      '--nodtdattr[do not default attributes from the DTD]' \
-       '--noout[do not dump the result]' \
-       '--maxdepth[increase the maximum depth]:depth' \
-       '--maxparsedepth[increase the maximum parser depth]:depth' \
---- zsh-4.3.10.orig/Completion/Unix/Type/_hosts
-+++ zsh-4.3.10/Completion/Unix/Type/_hosts
-@@ -41,9 +41,9 @@ if ! zstyle -a ":completion:${curcontext
- 
-     for khostfile in $khostfiles; do
-       if [[ -r $khostfile ]]; then
--        khosts=(${(s:,:)${(j:,:)${(u)${(f)"$(<$khostfile)"}%%[ |#]*}}})
-+        khosts=(${${(s:,:)${(j:,:)${(u)${(f)"$(<$khostfile)"}%%[ |#]*}}}:#*[\[\]]*})
-         if [[ -z $useip ]]; then
--	  khosts=(${${khosts:#(#s)[0-9]##.[0-9]##.[0-9]##.[0-9]##(#e)}:#(#s)[0-9a-f:]##(#e)})
-+	  khosts=(${${${khosts:#(#s)[0-9]##.[0-9]##.[0-9]##.[0-9]##(#e)}:#(#s)[0-9a-f:]##(#e)}:#*[\[\]]*})
-         fi
-         _cache_hosts+=($khosts)
-       fi
---- /dev/null
-+++ zsh-4.3.10/Completion/Debian/Command/_pbuilder
-@@ -0,0 +1,32 @@
-+#compdef pbuilder
-+
-+local expl
-+
-+if (( CURRENT == 2 )); then
-+  _wanted tag expl 'pbuilder command' \
-+    compadd create update build execute clean login dumpconfig debuild \
-+  	--create --update --build --execute --clean --login --dumpconfig --debuild
-+else
-+  compset -n 1
-+  _arguments \
-+    '--basetgz:location:_files -g "*.tgz"' \
-+    '--buildplace:location:_files -/' \
-+    '--buildresult:location:_files -/' \
-+    '--mirror:URL:_urls' \
-+    '--othermirror:URL:_urls' \
-+    '--distribution:suite:(breezy dapper edgy etch feisty gutsy hardy hoary intrepid jaunty karmic lenny lucid potato sarge sid squeeze warty woody' \
-+    '--architecture:architecture:(alpha amd64 armel hppa hurd-i386 i386 ia64 m68k mips mipsel powerpc s390 sparc)' \
-+    '--components:component:(main contrib non-free)' \
-+    '--override-config' \
-+    '--hookdir:location:_files -/' \
-+    '--debbuildopts:dpkg-buildpackage options:' \
-+    '--logfile:log file:_files' \
-+    '--binary-arch' \
-+    '--bindmounts:bind mountpoints:_files -/' \
-+    '--debootstrapopts:debootstrap options:' \
-+    '--debootstrap:debootstrap implementation:(debootstrap cdebootstrap)' \
-+    '--save-after-login' \
-+    '--save-after-exec' \
-+    '--autocleanaptcache' \
-+    '*:source package:_files -g "*.dsc"'
-+fi
---- zsh-4.3.10.orig/Completion/Debian/Command/_bug
-+++ zsh-4.3.10/Completion/Debian/Command/_bug
-@@ -41,7 +41,6 @@ case "$service" in
-       '(-x --no-cc)'{-x,--no-cc}'[do not cc submitter]' \
-       '(-z --no-compress)'{-z,--no-compress}'[send configs verbatim]' \
-       '(-a --af)'{-a,--af}'[use af instead of editor]' \
--      '(-b --no-bts-query)'{-b,--no-bts-query}'[do not check bts]' \
-       '(-g --gpg --gnupg)'{-g,--gpg,--gnupg}'[sign report with GnuPG]' \
-       '(-i --include)'{-i,--include}'[include text]:include file:_files' \
-       '(-A --attach)'{-A,--attach=}'[attach file]:attachment:_files' \
-@@ -82,7 +81,7 @@ case "$service" in
-       '--list-cc=:carbon copy:' \
-       '--report-quiet' \
-       '(-O --offline)'{-O,--offline}'[disable external queries]' \
--      '(-n --no-query-bts --query-bts)'{-b,--no-query-bts}'[do not query BTS]' \
-+      '(-b --no-query-bts --query-bts)'{-b,--no-query-bts}'[do not query BTS]' \
-       '(-b --no-query-bts)--query-bts' \
-       '(-T --tags)'{-T,--tags=}'[add specified tags]:tags' \
-       '(-m)--maintonly' \
---- zsh-4.3.10.orig/Completion/Debian/Command/_dput
-+++ zsh-4.3.10/Completion/Debian/Command/_dput
-@@ -5,7 +5,7 @@ _arguments \
-   '(-c --config)'{-c,--config}'[specify config file]:config file:_files' \
-   '(-d --debug)'{-d,--debug}'[debug mode]' \
-   '(-D --dinstall)'{-D,--dinstall}'[run dinstall after upload]' \
--  '(-e --delayed)'{-E,--delayed}'number of days in delayed queue:(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)' \
-+  '(-e --delayed)'{-E,--delayed}'[number of days in delayed queue]:number of days:(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15)' \
-   '(-f --force)'{-f,--force}'[force upload of already uploaded package]' \
-   '(-H --host-list)'{-H,--host-list}'[display host list]' \
-   '(-l --lintian)'{-l,--lintian}'[run lintian before upload]' \
---- /dev/null
-+++ zsh-4.3.10/Completion/Debian/Command/_axi-cache
-@@ -0,0 +1,29 @@
-+#compdef axi-cache
-+
-+local expl
-+
-+_arguments \
-+  '--version[version]' \
-+  '(-h --help)'{-h,--help}'[help]' \
-+  '(-s --sort)'{-s,--sort=}':sort value:('${(j: :)${${(M)${(f)"$(args' && return 0
-+
-+if (( CURRENT == 2 )); then
-+  _wanted tag expl 'axi-cache commands' \
-+    compadd help search more last show again
-+else
-+  case "$words[2]" in
-+    (search|show|again)
-+      _wanted tag expl 'terms/query' \
-+        compadd -- $($service $words[2] --tabcomplete=plain -- $words[CURRENT])
-+    ;;
-+    (more|last)
-+      _wanted tag expl 'count' \
-+        compadd -- 1 2 3 4 5 6 7 8 9 0
-+    ;;
-+    (*)
-+      _files
-+    ;;
-+    esac
-+fi
---- zsh-4.3.10.orig/Completion/Debian/Command/_apt
-+++ zsh-4.3.10/Completion/Debian/Command/_apt
-@@ -403,6 +403,7 @@ _apt-get () {
-     -V,--verbose-versions:bool \
-     -m,--ignore-missing,--fix-missing:bool \
-     --no-download:bool \
-+    --no-install-recommends:bool \
-     --ignore-hold:bool \
-     --no-upgrade:bool \
-     --force-yes:bool \
---- zsh-4.3.10.orig/Completion/Debian/Command/_bts
-+++ zsh-4.3.10/Completion/Debian/Command/_bts
-@@ -26,7 +26,7 @@ if [[ CURRENT -eq 1 ]]; then
-       reassign merge unmerge tag tags severity forwarded notforwarded help \
-       clone submitter found notfound block unblock user usertag usertags \
-       package owner noowner reportspam cache cleancache claim unclaim \
--      subscribe unsubscribe
-+      subscribe unsubscribe fixed notfixed affects
-   return
- fi
- 
-@@ -147,7 +147,7 @@ case "$words[1]" in
-       _wanted sep expl 'separator' compadd -S ' ' , .
-     fi
-   ;;
--  (found|notfound)
-+  (found|notfound|fixed|notfixed)
-     if [[ CURRENT -eq 2 ]]; then
-       _message -e bugnum 'bug number'
-     elif [[ CURRENT -eq 3 ]]; then
-@@ -216,6 +216,15 @@ case "$words[1]" in
-       _wanted sep expl 'separator' compadd -S ' ' , .
-     fi
-   ;;
-+  (affects)
-+    if [[ CURRENT -eq 2 ]]; then
-+      _message -e bugnum 'bug number'
-+    elif [[ CURRENT -eq 3 ]]; then
-+      _wanted operator expl 'operator' compadd - '+' '-' '='
-+    else
-+      _wanted package expl 'package' _deb_packages avail
-+    fi
-+  ;;
-   help)
-   ;&
-   *) _wanted sep expl 'separator' compadd -S ' ' , .
---- zsh-4.3.10.orig/Functions/Newuser/zsh-newuser-install
-+++ zsh-4.3.10/Functions/Newuser/zsh-newuser-install
-@@ -19,6 +19,15 @@ if (( EUID == 0 || UID == 0 )); then
-   return 1
- fi
- 
-+# clear is missing in some Cygwin configurations (lacking ncurses)
-+if ! ( clear >/dev/null 2>/dev/null ); then
-+  if zmodload zsh/termcap 2>/dev/null; then
-+    clear() { echotc cl; }
-+  else
-+    clear() { print -n "\e[H\e[J"; }
-+  fi
-+fi
-+
- # The directory in which to look for and save .zshrc.
- local zd=${ZDOTDIR:-$HOME}
- # The same directory in a user friendly form, i.e. with ~ replacement.
-@@ -348,7 +357,7 @@ __zni_apply_defaults() {
-     (-B)
-     shift
-     if [[ -z $state_keymaps[main] ]]; then
--      parsed_keymaps[main] = $1
-+      parsed_keymaps[main]=$1
-       if [[ $1 = none ]]; then
- 	state_keymaps[main]="no value set"
-       else
-@@ -945,6 +954,12 @@ You can:
-   print -r "
- (1)  Continue to the main menu.
- "
-+  if [[ -f /etc/zsh/newuser.zshrc.recommended ]]; then
-+    print -r "(2)  Populate your $zdmsg/.zshrc with the configuration recommended
-+     by the system administrator and exit (you will need to edit
-+     the file by hand, if so desired).
-+"
-+  fi
- 
-   read -k key$longprompt
-   print
-@@ -962,6 +977,12 @@ You can:
-     (1)
-     ;;
- 
-+    (2)
-+    cp /etc/zsh/newuser.zshrc.recommended $zd/.zshrc
-+    source $zd/.zshrc
-+    return 0
-+    ;;
-+
-     (*)
-     print -r "Aborting."
-     if [[ $1 != -f ]]; then
-@@ -1060,7 +1081,7 @@ ${install_state[options]:+  ($install_st
-     if [[ $1 != -f ]]; then
-       print -r "The function will not be run in future, but you can run
- it yourself as follows:
--  autoload $myname
-+  autoload -Uz $myname
-   $myname -f
- 
- The code added to $zdmsg/.zshrc is marked by the lines
---- zsh-4.3.10.orig/Functions/Prompts/prompt_clint_setup
-+++ zsh-4.3.10/Functions/Prompts/prompt_clint_setup
-@@ -17,7 +17,7 @@ prompt_clint_setup () {
- 
-   autoload -Uz vcs_info
- 
--  pcc[1]=${1:-'red'}
-+  pcc[1]=${1:-${${SSH_CLIENT+'yellow'}:-'red'}}
-   pcc[2]=${2:-'cyan'}
-   pcc[3]=${3:-'green'}
-   pcc[4]=${4:-'yellow'}
---- zsh-4.3.10.orig/Doc/zsh.1
-+++ zsh-4.3.10/Doc/zsh.1
-@@ -442,7 +442,7 @@ described above even if the shell still
- files\&.
- .\" Yodl file: Zsh/files.yo
- .SH "STARTUP/SHUTDOWN FILES"
--Commands are first read from \fB/etc/zshenv\fP; this cannot be overridden\&.
-+Commands are first read from \fB/etc/zsh/zshenv\fP; this cannot be overridden\&.
- Subsequent behaviour is modified by the \fBRCS\fP and
- \fBGLOBAL_RCS\fP options; the former affects all startup files, while the
- second only affects global startup files (those shown here with an
-@@ -455,14 +455,14 @@ default\&.
- .PP
- Commands are then read from \fB$ZDOTDIR/\&.zshenv\fP\&.
- If the shell is a login shell, commands
--are read from \fB/etc/zprofile\fP and then \fB$ZDOTDIR/\&.zprofile\fP\&.
-+are read from \fB/etc/zsh/zprofile\fP and then \fB$ZDOTDIR/\&.zprofile\fP\&.
- Then, if the shell is interactive,
--commands are read from \fB/etc/zshrc\fP and then \fB$ZDOTDIR/\&.zshrc\fP\&.
--Finally, if the shell is a login shell, \fB/etc/zlogin\fP and
-+commands are read from \fB/etc/zsh/zshrc\fP and then \fB$ZDOTDIR/\&.zshrc\fP\&.
-+Finally, if the shell is a login shell, \fB/etc/zsh/zlogin\fP and
- \fB$ZDOTDIR/\&.zlogin\fP are read\&.
- .PP
- When a login shell exits, the files \fB$ZDOTDIR/\&.zlogout\fP and then
--\fB/etc/zlogout\fP are read\&.  This happens with either an explicit exit
-+\fB/etc/zsh/zlogout\fP are read\&.  This happens with either an explicit exit
- via the \fBexit\fP or \fBlogout\fP commands, or an implicit exit by reading
- end\-of\-file from the terminal\&.  However, if the shell terminates due
- to \fBexec\fP\&'ing another process, the logout files are not read\&.
-@@ -475,7 +475,7 @@ If \fBZDOTDIR\fP is unset, \fBHOME\fP is
- Files listed above as being in \fB/etc\fP may be in another
- directory, depending on the installation\&.
- .PP
--As \fB/etc/zshenv\fP is run for all instances of zsh, it is important that
-+As \fB/etc/zsh/zshenv\fP is run for all instances of zsh, it is important that
- it be kept as small as possible\&.  In particular, it is a good idea to
- put code that does not need to be run for every single shell behind
- a test of the form `\fBif [[ \-o rcs ]]; then \&.\&.\&.\fP\&' so that it will not
-@@ -501,15 +501,15 @@ file will be used instead\&.
- .TP
- \fB${TMPPREFIX}*\fP   (default is /tmp/zsh*)
- .TP
--\fB/etc/zshenv\fP
-+\fB/etc/zsh/zshenv\fP
- .TP
--\fB/etc/zprofile\fP
-+\fB/etc/zsh/zprofile\fP
- .TP
--\fB/etc/zshrc\fP
-+\fB/etc/zsh/zshrc\fP
- .TP
--\fB/etc/zlogin\fP
-+\fB/etc/zsh/zlogin\fP
- .TP
--\fB/etc/zlogout\fP    (installation\-specific \- \fB/etc\fP is the default)
-+\fB/etc/zsh/zlogout\fP    (installation\-specific \- \fB/etc\fP is the default)
- .PD
- .\" Yodl file: Zsh/seealso.yo
- .SH "SEE ALSO"
---- zsh-4.3.10.orig/Doc/zsh.texi
-+++ zsh-4.3.10/Doc/zsh.texi
-@@ -1,4 +1,3 @@
--
- \input texinfo.tex
- @c %**start of header
- @iftex
-@@ -20,7 +19,7 @@
- @ifinfo
- @dircategory Utilities
- @direntry
--     * ZSH: (zsh).                     The Z Shell Manual.
-+* ZSH: (zsh).                     The Z Shell Manual.
- @end direntry
- @end ifinfo
- 
-@@ -1049,7 +1048,7 @@ files.
- @pindex NO_GLOBAL_RCS, use of
- @vindex ZDOTDIR, use of
- @cindex zshenv
--Commands are first read from @t{/etc/zshenv}; this cannot be overridden.
-+Commands are first read from @t{/etc/zsh/zshenv}; this cannot be overridden.
- Subsequent behaviour is modified by the @t{RCS} and
- @t{GLOBAL_RCS} options; the former affects all startup files, while the
- second only affects global startup files (those shown here with an
-@@ -1065,18 +1064,18 @@ Commands are then read from @t{$ZDOTDIR/
- @pindex LOGIN, use of
- @cindex zprofile
- If the shell is a login shell, commands
--are read from @t{/etc/zprofile} and then @t{$ZDOTDIR/.zprofile}.
-+are read from @t{/etc/zsh/zprofile} and then @t{$ZDOTDIR/.zprofile}.
- @cindex zshrc
- Then, if the shell is interactive,
--commands are read from @t{/etc/zshrc} and then @t{$ZDOTDIR/.zshrc}.
-+commands are read from @t{/etc/zsh/zshrc} and then @t{$ZDOTDIR/.zshrc}.
- @cindex zlogin
--Finally, if the shell is a login shell, @t{/etc/zlogin} and
-+Finally, if the shell is a login shell, @t{/etc/zsh/zlogin} and
- @t{$ZDOTDIR/.zlogin} are read.
- 
- @noindent
- @cindex zlogout
- When a login shell exits, the files @t{$ZDOTDIR/.zlogout} and then
--@t{/etc/zlogout} are read.  This happens with either an explicit exit
-+@t{/etc/zsh/zlogout} are read.  This happens with either an explicit exit
- via the @t{exit} or @t{logout} commands, or an implicit exit by reading
- end-of-file from the terminal.  However, if the shell terminates due
- to @t{exec}'ing another process, the logout files are not read.
-@@ -1092,7 +1091,7 @@ Files listed above as being in @t{/etc}
- directory, depending on the installation.
- 
- @noindent
--As @t{/etc/zshenv} is run for all instances of zsh, it is important that
-+As @t{/etc/zsh/zshenv} is run for all instances of zsh, it is important that
- it be kept as small as possible.  In particular, it is a good idea to
- put code that does not need to be run for every single shell behind
- a test of the form `@t{if [[ -o rcs ]]; then ...}' so that it will not
-@@ -1109,11 +1108,11 @@ be executed when zsh is invoked with the
- @item @t{$ZDOTDIR/.zlogin}
- @item @t{$ZDOTDIR/.zlogout}
- @item @t{$@{TMPPREFIX@}*}   (default is /tmp/zsh*)
--@item @t{/etc/zshenv}
--@item @t{/etc/zprofile}
--@item @t{/etc/zshrc}
--@item @t{/etc/zlogin}
--@item @t{/etc/zlogout}    (installation-specific - @t{/etc} is the default)
-+@item @t{/etc/zsh/zshenv}
-+@item @t{/etc/zsh/zprofile}
-+@item @t{/etc/zsh/zshrc}
-+@item @t{/etc/zsh/zlogin}
-+@item @t{/etc/zsh/zlogout}    (installation-specific - @t{/etc/zsh} is the Debian default)
- @item
- @end table
- @c (avoiding a yodl bug)
-@@ -8796,8 +8795,8 @@ most portable way to achieve this behavi
- @cindex startup files, global, inhibiting
- @cindex files, global startup, inhibiting
- @item @t{GLOBAL_RCS} (@t{-d}) 
--If this option is unset, the startup files @t{/etc/zprofile},
--@t{/etc/zshrc}, @t{/etc/zlogin} and @t{/etc/zlogout} will not be run.  It
-+If this option is unset, the startup files @t{/etc/zsh/zprofile},
-+@t{/etc/zsh/zshrc}, @t{/etc/zsh/zlogin} and @t{/etc/zsh/zlogout} will not be run.  It
- can be disabled and re-enabled at any time, including inside local startup
- files (@t{.zshrc}, etc.).
- 
-@@ -8806,11 +8805,11 @@ files (@t{.zshrc}, etc.).
- @pindex NORCS
- @cindex startup files, sourcing
- @item @t{RCS} (@t{+f}) 
--After @t{/etc/zshenv} is sourced on startup, source the
--@t{.zshenv}, @t{/etc/zprofile}, @t{.zprofile},
--@t{/etc/zshrc}, @t{.zshrc}, @t{/etc/zlogin}, @t{.zlogin}, and @t{.zlogout}
-+After @t{/etc/zsh/zshenv} is sourced on startup, source the
-+@t{.zshenv}, @t{/etc/zsh/zprofile}, @t{.zprofile},
-+@t{/etc/zsh/zshrc}, @t{.zshrc}, @t{/etc/zsh/zlogin}, @t{.zlogin}, and @t{.zlogout}
- files, as described in @ref{Files}.
--If this option is unset, the @t{/etc/zshenv} file is still sourced, but any
-+If this option is unset, the @t{/etc/zsh/zshenv} file is still sourced, but any
- of the others will not be; it can be set at any time to prevent the
- remaining startup files after the currently executing one from
- being sourced.
-@@ -24425,7 +24424,7 @@ The @t{zsh/newuser} module is loaded at
- available, the @t{RCS} option is set, and the @t{PRIVILEGED} option is not
- set (all three are true by default).  This takes
- place immediately after commands in the global @t{zshenv} file (typically
--@t{/etc/zshenv}), if any, have been executed.  If the module is not
-+@t{/etc/zsh/zshenv}), if any, have been executed.  If the module is not
- available it is silently ignored by the shell; the module may safely be
- removed from @t{$MODULE_PATH} by the administrator if it is not required.
- 
-@@ -24459,7 +24458,7 @@ The @t{zsh/newuser} module is then uncon
- 
- @noindent
- Note that it is possible to achieve exactly the same effect as the
--@t{zsh/newuser} module by adding code to @t{/etc/zshenv}.  The module
-+@t{zsh/newuser} module by adding code to @t{/etc/zsh/zshenv}.  The module
- exists simply to allow the shell to make arrangements for new users without
- the need for intervention by package maintainers and system administrators.
- 
-@@ -27394,22 +27393,27 @@ parameter @t{reply} to an empty associat
- it returns status 0 and sets elements of the associative
- array @t{reply} as follows:
- @table @asis
--@item timeNL()The time as a string of digits in the same units as
-+@item time
-+The time as a string of digits in the same units as
- @t{$EPOCHSECONDS}
- @item text1
- The text from the line not including the date and time of the
- event, but including any @t{WARN} or @t{RPT} keywords and values.
--@item warntimeNL()Any warning time given by the @t{WARN} keyword as a string
-+@item warntime
-+Any warning time given by the @t{WARN} keyword as a string
- of digits containing the time at which to warn in the same units as
- @t{$EPOCHSECONDS}.  (Note this is an absolute time, not the relative time
- passed down.)  Not set no @t{WARN} keyword and value were
- matched.
--@item warnstrNL()The raw string matched after the @t{WARN} keyword, else unset.
--@item rpttimeNL()Any recurrence time given by the @t{RPT} keyword as a string
-+@item warnstr
-+The raw string matched after the @t{WARN} keyword, else unset.
-+@item rpttime
-+Any recurrence time given by the @t{RPT} keyword as a string
- of digits containing the time of the recurrence in the same units
- as @t{$EPOCHSECONDS}.  (Note this is an absolute time.)  Not set if
- no @t{RPT} keyword and value were matched.
--@item rptstrNL()The raw string matched after the @t{RPT} keyword, else unset.
-+@item rptstr
-+The raw string matched after the @t{RPT} keyword, else unset.
- @item text2
- The text from the line after removal of the date and any
- keywords and values.
---- zsh-4.3.10.orig/Doc/ztexi.yo
-+++ zsh-4.3.10/Doc/ztexi.yo
-@@ -71,7 +71,7 @@ def(texinfo)(2)(\
-   NOTRANS(@ifinfo)+NL()\
-   NOTRANS(@dircategory Utilities)+NL()\
-   NOTRANS(@direntry)+NL()\
--  NOTRANS(     * ZSH: (zsh).                     The Z Shell Manual.)+NL()\
-+  NOTRANS(* ZSH: (zsh).                     The Z Shell Manual.)+NL()\
-   NOTRANS(@end direntry)+NL()\
-   NOTRANS(@end ifinfo)+NL()\
- )
---- zsh-4.3.10.orig/Doc/zshall.1
-+++ zsh-4.3.10/Doc/zshall.1
-@@ -439,7 +439,7 @@ described above even if the shell still
- files\&.
- .\" Yodl file: Zsh/files.yo
- .SH "STARTUP/SHUTDOWN FILES"
--Commands are first read from \fB/etc/zshenv\fP; this cannot be overridden\&.
-+Commands are first read from \fB/etc/zsh/zshenv\fP; this cannot be overridden\&.
- Subsequent behaviour is modified by the \fBRCS\fP and
- \fBGLOBAL_RCS\fP options; the former affects all startup files, while the
- second only affects global startup files (those shown here with an
-@@ -452,14 +452,14 @@ default\&.
- .PP
- Commands are then read from \fB$ZDOTDIR/\&.zshenv\fP\&.
- If the shell is a login shell, commands
--are read from \fB/etc/zprofile\fP and then \fB$ZDOTDIR/\&.zprofile\fP\&.
-+are read from \fB/etc/zsh/zprofile\fP and then \fB$ZDOTDIR/\&.zprofile\fP\&.
- Then, if the shell is interactive,
--commands are read from \fB/etc/zshrc\fP and then \fB$ZDOTDIR/\&.zshrc\fP\&.
--Finally, if the shell is a login shell, \fB/etc/zlogin\fP and
-+commands are read from \fB/etc/zsh/zshrc\fP and then \fB$ZDOTDIR/\&.zshrc\fP\&.
-+Finally, if the shell is a login shell, \fB/etc/zsh/zlogin\fP and
- \fB$ZDOTDIR/\&.zlogin\fP are read\&.
- .PP
- When a login shell exits, the files \fB$ZDOTDIR/\&.zlogout\fP and then
--\fB/etc/zlogout\fP are read\&.  This happens with either an explicit exit
-+\fB/etc/zsh/zlogout\fP are read\&.  This happens with either an explicit exit
- via the \fBexit\fP or \fBlogout\fP commands, or an implicit exit by reading
- end\-of\-file from the terminal\&.  However, if the shell terminates due
- to \fBexec\fP'ing another process, the logout files are not read\&.
-@@ -472,7 +472,7 @@ If \fBZDOTDIR\fP is unset, \fBHOME\fP is
- Files listed above as being in \fB/etc\fP may be in another
- directory, depending on the installation\&.
- .PP
--As \fB/etc/zshenv\fP is run for all instances of zsh, it is important that
-+As \fB/etc/zsh/zshenv\fP is run for all instances of zsh, it is important that
- it be kept as small as possible\&.  In particular, it is a good idea to
- put code that does not need to be run for every single shell behind
- a test of the form `\fBif [[ \-o rcs ]]; then \&.\&.\&.\fP' so that it will not
-@@ -514,15 +514,15 @@ file will be used instead\&.
- .TP
- \fB${TMPPREFIX}*\fP   (default is /tmp/zsh*)
- .TP
--\fB/etc/zshenv\fP
-+\fB/etc/zsh/zshenv\fP
- .TP
--\fB/etc/zprofile\fP
-+\fB/etc/zsh/zprofile\fP
- .TP
--\fB/etc/zshrc\fP
-+\fB/etc/zsh/zshrc\fP
- .TP
--\fB/etc/zlogin\fP
-+\fB/etc/zsh/zlogin\fP
- .TP
--\fB/etc/zlogout\fP    (installation\-specific \- \fB/etc\fP is the default)
-+\fB/etc/zsh/zlogout\fP    (installation\-specific \- \fB/etc\fP is the default)
- .PD
- .\" Yodl file: Zsh/seealso.yo
- .SH "SEE ALSO"
---- zsh-4.3.10.orig/Doc/zshtcpsys.1
-+++ zsh-4.3.10/Doc/zshtcpsys.1
-@@ -468,7 +468,7 @@ connection first, they may need to be au
- .RE
- .RE
- .PP
--.SH "TCP USER\-DEFINED FUNCTIONS"
-+.SH "TCP USER\e\-DEFINED FUNCTIONS"
- .PP
- Certain functions, if defined by the user, will be called by the function
- system in certain contexts\&.  This facility depends on the module
-@@ -724,7 +724,7 @@ how this is used\&.
- May be set directly\&.  Currently this is only used by the function
- \fBtcp_command\fP, see above\&.
- .PP
--.SH "TCP USER\-DEFINED PARAMETERS"
-+.SH "TCP USER\e\-DEFINED PARAMETERS"
- .PP
- The following parameters are not set by the function system, but have
- a special effect if set by the user\&.
---- zsh-4.3.10.orig/Doc/zshmodules.1
-+++ zsh-4.3.10/Doc/zshmodules.1
-@@ -1435,7 +1435,7 @@ The \fBzsh/newuser\fP module is loaded a
- available, the \fBRCS\fP option is set, and the \fBPRIVILEGED\fP option is not
- set (all three are true by default)\&.  This takes
- place immediately after commands in the global \fBzshenv\fP file (typically
--\fB/etc/zshenv\fP), if any, have been executed\&.  If the module is not
-+\fB/etc/zsh/zshenv\fP), if any, have been executed\&.  If the module is not
- available it is silently ignored by the shell; the module may safely be
- removed from \fB$MODULE_PATH\fP by the administrator if it is not required\&.
- .PP
-@@ -1464,7 +1464,7 @@ files for the user, however any valid sh
- The \fBzsh/newuser\fP module is then unconditionally unloaded\&.
- .PP
- Note that it is possible to achieve exactly the same effect as the
--\fBzsh/newuser\fP module by adding code to \fB/etc/zshenv\fP\&.  The module
-+\fBzsh/newuser\fP module by adding code to \fB/etc/zsh/zshenv\fP\&.  The module
- exists simply to allow the shell to make arrangements for new users without
- the need for intervention by package maintainers and system administrators\&.
- .PP
---- zsh-4.3.10.orig/Doc/zshoptions.1
-+++ zsh-4.3.10/Doc/zshoptions.1
-@@ -579,17 +579,17 @@ most portable way to achieve this behavi
- .RE
- .TP
- \fBGLOBAL_RCS\fP (\fB\-d\fP) 
--If this option is unset, the startup files \fB/etc/zprofile\fP,
--\fB/etc/zshrc\fP, \fB/etc/zlogin\fP and \fB/etc/zlogout\fP will not be run\&.  It
-+If this option is unset, the startup files \fB/etc/zsh/zprofile\fP,
-+\fB/etc/zsh/zshrc\fP, \fB/etc/zsh/zlogin\fP and \fB/etc/zsh/zlogout\fP will not be run\&.  It
- can be disabled and re\-enabled at any time, including inside local startup
- files (\fB\&.zshrc\fP, etc\&.)\&.
- .TP
- \fBRCS\fP (\fB+f\fP) 
--After \fB/etc/zshenv\fP is sourced on startup, source the
--\fB\&.zshenv\fP, \fB/etc/zprofile\fP, \fB\&.zprofile\fP,
--\fB/etc/zshrc\fP, \fB\&.zshrc\fP, \fB/etc/zlogin\fP, \fB\&.zlogin\fP, and \fB\&.zlogout\fP
-+After \fB/etc/zsh/zshenv\fP is sourced on startup, source the
-+\fB\&.zshenv\fP, \fB/etc/zsh/zprofile\fP, \fB\&.zprofile\fP,
-+\fB/etc/zsh/zshrc\fP, \fB\&.zshrc\fP, \fB/etc/zsh/zlogin\fP, \fB\&.zlogin\fP, and \fB\&.zlogout\fP
- files, as described in the section `Files\&'\&.
--If this option is unset, the \fB/etc/zshenv\fP file is still sourced, but any
-+If this option is unset, the \fB/etc/zsh/zshenv\fP file is still sourced, but any
- of the others will not be; it can be set at any time to prevent the
- remaining startup files after the currently executing one from
- being sourced\&.
---- zsh-4.3.10.orig/Doc/Zsh/builtins.yo
-+++ zsh-4.3.10/Doc/Zsh/builtins.yo
-@@ -1703,13 +1703,18 @@ cindex(limits, resource)
- item(tt(ulimit) [ [ tt(-SHacdfilmnpqstvx) | tt(-N) var(resource) [ var(limit) ] ... ])(
- Set or display resource limits of the shell and the processes started by
- the shell.  The value of var(limit) can be a number in the unit specified
--below or the value `tt(unlimited)'.  By default, only soft limits are
--manipulated. If the tt(-H) flag is given use
--hard limits instead of soft limits.  If the tt(-S) flag is given
--together with the tt(-H) flag set both hard and soft limits.  If no
--options are used, the file size limit (tt(-f)) is assumed.  If
--var(limit) is omitted the current value of the specified resources are
--printed.  When more than one resource values are printed the limit name and
-+below or one of the values `tt(unlimited)', which removes the limit on the
-+resource, or `tt(hard)', which uses the current value of the hard limit on
-+the resource.
-+
-+By default, only soft limits are manipulated. If the tt(-H) flag
-+is given use hard limits instead of soft limits.  If the tt(-S) flag is given
-+together with the tt(-H) flag set both hard and soft limits.
-+
-+If no options are used, the file size limit (tt(-f)) is assumed.
-+
-+If var(limit) is omitted the current value of the specified resources are
-+printed.  When more than one resource value is printed, the limit name and
- unit is printed before each value.
- 
- When looping over multiple resources, the shell will abort immediately if
diff -Nru zsh-4.3.10/debian/patches/debian-changes-4.3.11-1 zsh-4.3.11/debian/patches/debian-changes-4.3.11-1
--- zsh-4.3.10/debian/patches/debian-changes-4.3.11-1	1970-01-01 01:00:00.000000000 +0100
+++ zsh-4.3.11/debian/patches/debian-changes-4.3.11-1	2010-12-25 15:47:29.000000000 +0100
@@ -0,0 +1,275 @@
+Description: Upstream changes introduced in version 4.3.11-1
+ This patch has been created by dpkg-source during the package build.
+ Here's the last changelog entry, hopefully it gives details on why
+ those changes were made:
+ .
+ zsh (4.3.11-1) unstable; urgency=low
+ .
+   * New upstream release.
+ .
+ The person named in the Author field signed this changelog entry.
+Author: Clint Adams 
+
+---
+The information above should follow the Patch Tagging Guidelines, please
+checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
+are templates for supplementary fields that you might want to add:
+
+Origin: , 
+Bug: 
+Bug-Debian: http://bugs.debian.org/
+Bug-Ubuntu: https://launchpad.net/bugs/
+Forwarded: 
+Reviewed-By: 
+Last-Update: 
+
+--- zsh-4.3.11.orig/Completion/Debian/Command/_bug
++++ zsh-4.3.11/Completion/Debian/Command/_bug
+@@ -1,5 +1,6 @@
+ #compdef bug reportbug querybts
+ 
++local expl
+ local _bug_commonargs _rb_commonargs
+ 
+ _bug_commonargs=(
+@@ -7,7 +8,7 @@ _bug_commonargs=(
+   '-m[maintainer-only]'
+   '-p[print to stdout instead of mail]'
+   '-h[help]'
+-  '*:package:_deb_packages installed'
++  '*:packageorfile:->pkgorfile'
+ )
+ 
+ _rb_commonargs=(
+@@ -29,7 +30,7 @@ case "$service" in
+       '-v[version]' \
+       '-x[do not cc submitter]' \
+       '-z[send configs verbatim]' \
+-      "$_bug_commonargs[@]"
++      "$_bug_commonargs[@]" && return
+   ;;
+   reportbug)
+     _arguments \
+@@ -93,7 +94,7 @@ case "$service" in
+       '--body=:message body string' \
+       '--body-file=:message body file:_files' \
+       "$_bug_commonargs[@]" \
+-      "$_rb_commonargs[@]"
++      "$_rb_commonargs[@]" && return
+   ;;
+   querybts)
+     _arguments \
+@@ -102,6 +103,15 @@ case "$service" in
+       '(-s --source)'{-s,--source}'[query for source packages rather than binary]' \
+       '(-v --version)'{-v,--version}'[show version]' \
+       "$_rb_commonargs[@]" \
+-      '*:package:_deb_packages avail'
++      '*:package:_deb_packages avail' && return
+   ;;
+ esac
++
++case "$service:$state:${words[CURRENT]}" in
++	(reportbug:pkgorfile:/*)
++	  _wanted tag expl 'file' _files
++	;;
++	(reportbug:pkgorfile:*)
++  	  _wanted tax expl 'package' _deb_packages installed
++	;;
++esac
+--- zsh-4.3.11.orig/Doc/zsh.1
++++ zsh-4.3.11/Doc/zsh.1
+@@ -449,7 +449,7 @@ described above even if the shell still
+ files\&.
+ .\" Yodl file: Zsh/files.yo
+ .SH "STARTUP/SHUTDOWN FILES"
+-Commands are first read from \fB/etc/zshenv\fP; this cannot be overridden\&.
++Commands are first read from \fB/etc/zsh/zshenv\fP; this cannot be overridden\&.
+ Subsequent behaviour is modified by the \fBRCS\fP and
+ \fBGLOBAL_RCS\fP options; the former affects all startup files, while the
+ second only affects global startup files (those shown here with an
+@@ -462,14 +462,14 @@ default\&.
+ .PP
+ Commands are then read from \fB$ZDOTDIR/\&.zshenv\fP\&.
+ If the shell is a login shell, commands
+-are read from \fB/etc/zprofile\fP and then \fB$ZDOTDIR/\&.zprofile\fP\&.
++are read from \fB/etc/zsh/zprofile\fP and then \fB$ZDOTDIR/\&.zprofile\fP\&.
+ Then, if the shell is interactive,
+-commands are read from \fB/etc/zshrc\fP and then \fB$ZDOTDIR/\&.zshrc\fP\&.
+-Finally, if the shell is a login shell, \fB/etc/zlogin\fP and
++commands are read from \fB/etc/zsh/zshrc\fP and then \fB$ZDOTDIR/\&.zshrc\fP\&.
++Finally, if the shell is a login shell, \fB/etc/zsh/zlogin\fP and
+ \fB$ZDOTDIR/\&.zlogin\fP are read\&.
+ .PP
+ When a login shell exits, the files \fB$ZDOTDIR/\&.zlogout\fP and then
+-\fB/etc/zlogout\fP are read\&.  This happens with either an explicit exit
++\fB/etc/zsh/zlogout\fP are read\&.  This happens with either an explicit exit
+ via the \fBexit\fP or \fBlogout\fP commands, or an implicit exit by reading
+ end\-of\-file from the terminal\&.  However, if the shell terminates due
+ to \fBexec\fP\&'ing another process, the logout files are not read\&.
+@@ -482,7 +482,7 @@ If \fBZDOTDIR\fP is unset, \fBHOME\fP is
+ Files listed above as being in \fB/etc\fP may be in another
+ directory, depending on the installation\&.
+ .PP
+-As \fB/etc/zshenv\fP is run for all instances of zsh, it is important that
++As \fB/etc/zsh/zshenv\fP is run for all instances of zsh, it is important that
+ it be kept as small as possible\&.  In particular, it is a good idea to
+ put code that does not need to be run for every single shell behind
+ a test of the form `\fBif [[ \-o rcs ]]; then \&.\&.\&.\fP\&' so that it will not
+@@ -508,15 +508,15 @@ file will be used instead\&.
+ .TP
+ \fB${TMPPREFIX}*\fP   (default is /tmp/zsh*)
+ .TP
+-\fB/etc/zshenv\fP
++\fB/etc/zsh/zshenv\fP
+ .TP
+-\fB/etc/zprofile\fP
++\fB/etc/zsh/zprofile\fP
+ .TP
+-\fB/etc/zshrc\fP
++\fB/etc/zsh/zshrc\fP
+ .TP
+-\fB/etc/zlogin\fP
++\fB/etc/zsh/zlogin\fP
+ .TP
+-\fB/etc/zlogout\fP    (installation\-specific \- \fB/etc\fP is the default)
++\fB/etc/zsh/zlogout\fP    (installation\-specific \- \fB/etc\fP is the default)
+ .PD
+ .\" Yodl file: Zsh/seealso.yo
+ .SH "SEE ALSO"
+--- zsh-4.3.11.orig/Doc/ztexi.yo
++++ zsh-4.3.11/Doc/ztexi.yo
+@@ -71,7 +71,7 @@ def(texinfo)(2)(\
+   NOTRANS(@ifinfo)+NL()\
+   NOTRANS(@dircategory Utilities)+NL()\
+   NOTRANS(@direntry)+NL()\
+-  NOTRANS(     * ZSH: (zsh).                     The Z Shell Manual.)+NL()\
++  NOTRANS(* ZSH: (zsh).                     The Z Shell Manual.)+NL()\
+   NOTRANS(@end direntry)+NL()\
+   NOTRANS(@end ifinfo)+NL()\
+ )
+--- zsh-4.3.11.orig/Doc/zshall.1
++++ zsh-4.3.11/Doc/zshall.1
+@@ -446,7 +446,7 @@ described above even if the shell still
+ files\&.
+ .\" Yodl file: Zsh/files.yo
+ .SH "STARTUP/SHUTDOWN FILES"
+-Commands are first read from \fB/etc/zshenv\fP; this cannot be overridden\&.
++Commands are first read from \fB/etc/zsh/zshenv\fP; this cannot be overridden\&.
+ Subsequent behaviour is modified by the \fBRCS\fP and
+ \fBGLOBAL_RCS\fP options; the former affects all startup files, while the
+ second only affects global startup files (those shown here with an
+@@ -459,14 +459,14 @@ default\&.
+ .PP
+ Commands are then read from \fB$ZDOTDIR/\&.zshenv\fP\&.
+ If the shell is a login shell, commands
+-are read from \fB/etc/zprofile\fP and then \fB$ZDOTDIR/\&.zprofile\fP\&.
++are read from \fB/etc/zsh/zprofile\fP and then \fB$ZDOTDIR/\&.zprofile\fP\&.
+ Then, if the shell is interactive,
+-commands are read from \fB/etc/zshrc\fP and then \fB$ZDOTDIR/\&.zshrc\fP\&.
+-Finally, if the shell is a login shell, \fB/etc/zlogin\fP and
++commands are read from \fB/etc/zsh/zshrc\fP and then \fB$ZDOTDIR/\&.zshrc\fP\&.
++Finally, if the shell is a login shell, \fB/etc/zsh/zlogin\fP and
+ \fB$ZDOTDIR/\&.zlogin\fP are read\&.
+ .PP
+ When a login shell exits, the files \fB$ZDOTDIR/\&.zlogout\fP and then
+-\fB/etc/zlogout\fP are read\&.  This happens with either an explicit exit
++\fB/etc/zsh/zlogout\fP are read\&.  This happens with either an explicit exit
+ via the \fBexit\fP or \fBlogout\fP commands, or an implicit exit by reading
+ end\-of\-file from the terminal\&.  However, if the shell terminates due
+ to \fBexec\fP'ing another process, the logout files are not read\&.
+@@ -479,7 +479,7 @@ If \fBZDOTDIR\fP is unset, \fBHOME\fP is
+ Files listed above as being in \fB/etc\fP may be in another
+ directory, depending on the installation\&.
+ .PP
+-As \fB/etc/zshenv\fP is run for all instances of zsh, it is important that
++As \fB/etc/zsh/zshenv\fP is run for all instances of zsh, it is important that
+ it be kept as small as possible\&.  In particular, it is a good idea to
+ put code that does not need to be run for every single shell behind
+ a test of the form `\fBif [[ \-o rcs ]]; then \&.\&.\&.\fP' so that it will not
+@@ -521,15 +521,15 @@ file will be used instead\&.
+ .TP
+ \fB${TMPPREFIX}*\fP   (default is /tmp/zsh*)
+ .TP
+-\fB/etc/zshenv\fP
++\fB/etc/zsh/zshenv\fP
+ .TP
+-\fB/etc/zprofile\fP
++\fB/etc/zsh/zprofile\fP
+ .TP
+-\fB/etc/zshrc\fP
++\fB/etc/zsh/zshrc\fP
+ .TP
+-\fB/etc/zlogin\fP
++\fB/etc/zsh/zlogin\fP
+ .TP
+-\fB/etc/zlogout\fP    (installation\-specific \- \fB/etc\fP is the default)
++\fB/etc/zsh/zlogout\fP    (installation\-specific \- \fB/etc\fP is the default)
+ .PD
+ .\" Yodl file: Zsh/seealso.yo
+ .SH "SEE ALSO"
+--- zsh-4.3.11.orig/Doc/zshtcpsys.1
++++ zsh-4.3.11/Doc/zshtcpsys.1
+@@ -468,7 +468,7 @@ connection first, they may need to be au
+ .RE
+ .RE
+ .PP
+-.SH "TCP USER\-DEFINED FUNCTIONS"
++.SH "TCP USER\e\-DEFINED FUNCTIONS"
+ .PP
+ Certain functions, if defined by the user, will be called by the function
+ system in certain contexts\&.  This facility depends on the module
+@@ -724,7 +724,7 @@ how this is used\&.
+ May be set directly\&.  Currently this is only used by the function
+ \fBtcp_command\fP, see above\&.
+ .PP
+-.SH "TCP USER\-DEFINED PARAMETERS"
++.SH "TCP USER\e\-DEFINED PARAMETERS"
+ .PP
+ The following parameters are not set by the function system, but have
+ a special effect if set by the user\&.
+--- zsh-4.3.11.orig/Doc/zshmodules.1
++++ zsh-4.3.11/Doc/zshmodules.1
+@@ -1453,7 +1453,7 @@ The \fBzsh/newuser\fP module is loaded a
+ available, the \fBRCS\fP option is set, and the \fBPRIVILEGED\fP option is not
+ set (all three are true by default)\&.  This takes
+ place immediately after commands in the global \fBzshenv\fP file (typically
+-\fB/etc/zshenv\fP), if any, have been executed\&.  If the module is not
++\fB/etc/zsh/zshenv\fP), if any, have been executed\&.  If the module is not
+ available it is silently ignored by the shell; the module may safely be
+ removed from \fB$MODULE_PATH\fP by the administrator if it is not required\&.
+ .PP
+@@ -1482,7 +1482,7 @@ files for the user, however any valid sh
+ The \fBzsh/newuser\fP module is then unconditionally unloaded\&.
+ .PP
+ Note that it is possible to achieve exactly the same effect as the
+-\fBzsh/newuser\fP module by adding code to \fB/etc/zshenv\fP\&.  The module
++\fBzsh/newuser\fP module by adding code to \fB/etc/zsh/zshenv\fP\&.  The module
+ exists simply to allow the shell to make arrangements for new users without
+ the need for intervention by package maintainers and system administrators\&.
+ .PP
+--- zsh-4.3.11.orig/Doc/zshoptions.1
++++ zsh-4.3.11/Doc/zshoptions.1
+@@ -611,17 +611,17 @@ most portable way to achieve this behavi
+ .RE
+ .TP
+ \fBGLOBAL_RCS\fP (\fB\-d\fP) 
+-If this option is unset, the startup files \fB/etc/zprofile\fP,
+-\fB/etc/zshrc\fP, \fB/etc/zlogin\fP and \fB/etc/zlogout\fP will not be run\&.  It
++If this option is unset, the startup files \fB/etc/zsh/zprofile\fP,
++\fB/etc/zsh/zshrc\fP, \fB/etc/zsh/zlogin\fP and \fB/etc/zsh/zlogout\fP will not be run\&.  It
+ can be disabled and re\-enabled at any time, including inside local startup
+ files (\fB\&.zshrc\fP, etc\&.)\&.
+ .TP
+ \fBRCS\fP (\fB+f\fP) 
+-After \fB/etc/zshenv\fP is sourced on startup, source the
+-\fB\&.zshenv\fP, \fB/etc/zprofile\fP, \fB\&.zprofile\fP,
+-\fB/etc/zshrc\fP, \fB\&.zshrc\fP, \fB/etc/zlogin\fP, \fB\&.zlogin\fP, and \fB\&.zlogout\fP
++After \fB/etc/zsh/zshenv\fP is sourced on startup, source the
++\fB\&.zshenv\fP, \fB/etc/zsh/zprofile\fP, \fB\&.zprofile\fP,
++\fB/etc/zsh/zshrc\fP, \fB\&.zshrc\fP, \fB/etc/zsh/zlogin\fP, \fB\&.zlogin\fP, and \fB\&.zlogout\fP
+ files, as described in the section `Files\&'\&.
+-If this option is unset, the \fB/etc/zshenv\fP file is still sourced, but any
++If this option is unset, the \fB/etc/zsh/zshenv\fP file is still sourced, but any
+ of the others will not be; it can be set at any time to prevent the
+ remaining startup files after the currently executing one from
+ being sourced\&.
diff -Nru zsh-4.3.10/debian/patches/series zsh-4.3.11/debian/patches/series
--- zsh-4.3.10/debian/patches/series	2010-08-10 21:01:00.000000000 +0200
+++ zsh-4.3.11/debian/patches/series	2010-12-26 00:59:12.000000000 +0100
@@ -1 +1 @@
-debian-changes-4.3.10-15
+debian-changes-4.3.11-1
diff -Nru zsh-4.3.10/Doc/version.yo zsh-4.3.11/Doc/version.yo
--- zsh-4.3.10/Doc/version.yo	2009-06-01 11:00:16.000000000 +0200
+++ zsh-4.3.11/Doc/version.yo	2010-12-20 16:00:42.000000000 +0100
@@ -1,6 +1,6 @@
 IFDEF(INCWSLEVEL)(INCWSLEVEL())(STARTDEF())
-def(version)(0)(4.3.10)
-def(date)(0)(June 1, 2009)
+def(version)(0)(4.3.11)
+def(date)(0)(December 20, 2010)
 def(zshenv)(0)(/etc/zshenv)
 def(zprofile)(0)(/etc/zprofile)
 def(zshrc)(0)(/etc/zshrc)
diff -Nru zsh-4.3.10/Doc/Zsh/builtins.yo zsh-4.3.11/Doc/Zsh/builtins.yo
--- zsh-4.3.10/Doc/Zsh/builtins.yo	2009-02-26 16:47:23.000000000 +0100
+++ zsh-4.3.11/Doc/Zsh/builtins.yo	2010-12-06 14:51:08.000000000 +0100
@@ -46,7 +46,9 @@
 If any arguments var(arg) are given,
 they become the positional parameters; the old positional
 parameters are restored when the var(file) is done executing.
-The exit status is the exit status of the last command executed.
+If var(file) was not found the return status is 127; if var(file) was found
+but contained a syntax error the return status is 126; else the return
+status is the exit status of the last command executed.
 )
 findex(NOTRANS(:))
 cindex(expanding parameters)
@@ -167,7 +169,7 @@
 Change the current directory.  In the first form, change the
 current directory to var(arg), or to the value of tt($HOME) if
 var(arg) is not specified.  If var(arg) is `tt(-)', change to the
-value of tt($OLDPWD), the previous directory.
+previous directory.
 
 Otherwise, if var(arg) begins with a slash, attempt to change to the
 directory given by var(arg).
@@ -181,6 +183,9 @@
 successful.  If `tt(.)' occurs in tt(cdpath), then tt(cdpath) is searched
 strictly in order so that `tt(.)' is only tried at the appropriate point.
 
+The order of testing tt(cdpath) is modified if the option tt(POSIX_CD)
+is set, as described in the documentation for the option.
+
 If no directory is found, the option tt(CDABLE_VARS) is set, and a
 parameter named var(arg) exists whose value begins with a slash, treat its
 value as the directory.  In that case, the parameter is added to the named
@@ -666,7 +671,7 @@
 Note that a single `tt(-)' is not considered a valid option argument.
 var(optstring) contains the letters that tt(getopts)
 recognizes.  If a letter is followed by a `tt(:)', that option
-is expected to have an argument.  The options can be
+requires an argument.  The options can be
 separated from the argument by blanks.
 
 Each time it is invoked, tt(getopts) places the option letter it finds
@@ -687,7 +692,7 @@
 
 A leading `tt(:)' in var(optstring) causes tt(getopts) to store the
 letter of any invalid option in tt(OPTARG), and to set var(name) to
-`tt(?)' for an unknown option and to `tt(:)' when a required option is
+`tt(?)' for an unknown option and to `tt(:)' when a required argument is
 missing.  Otherwise, tt(getopts) sets var(name) to `tt(?)' and prints
 an error message when an option is invalid.  The exit status is
 nonzero when there are no more options.
@@ -867,6 +872,10 @@
 sitem(var(n)tt(m))(megabytes or minutes)
 sitem([var(mm)tt(:)]var(ss))(minutes and seconds)
 endsitem()
+
+The tt(limit) command is not made available by default when the
+shell starts in a mode emulating another shell.  It can be made available
+with the command `tt(zmodload -F zsh/rlimits b:limit)'.
 )
 findex(local)
 item(tt(local) [ {tt(PLUS())|tt(-)}tt(AEFHUahlprtux) ] \
@@ -1108,9 +1117,10 @@
 Read only one character from the terminal and set var(name) to
 `tt(y)' if this character was `tt(y)' or `tt(Y)' and to `tt(n)' otherwise.
 With this flag set the return status is zero only if the character was
-`tt(y)' or `tt(Y)'.  Note that this always reads from the terminal, even
-if used with the tt(-p) or tt(-u) or tt(-z) flags or with redirected input.
-This option may also be used within zle widgets.
+`tt(y)' or `tt(Y)'.  This option may be used with a timeout; if
+the read times out, or encounters end of file, status 2 is returned.
+Input is read from the terminal unless one of tt(-u)
+or tt(-p) is present.  This option may also be used within zle widgets.
 )
 item(tt(-k) [ var(num) ])(
 Read only one (or var(num)) characters.  All are assigned to the first
@@ -1189,6 +1199,7 @@
 this is not what is wanted.
 )
 enditem()
+
 If the first argument contains a `tt(?)', the remainder of this
 word is used as a var(prompt) on standard error when the shell
 is interactive.
@@ -1279,6 +1290,10 @@
 For historical reasons, `tt(set -)' is treated as `tt(set +xv)'
 and `tt(set -) var(args)' as `tt(set +xv --) var(args)' when in
 any other emulation mode than zsh's native mode.
+
+The tt(sched) builtin is not made available by default when the shell
+starts in a mode emulating another shell.  It can be made available
+with the command `tt(zmodload -F zsh/sched b:sched)'.
 )
 module(setcap)(zsh/cap)
 findex(setopt)
@@ -1409,7 +1424,8 @@
 shell or the return status of the function exiting.
 If var(sig) is tt(0) or tt(EXIT)
 and the tt(trap) statement is not executed inside the body of a function,
-then the command var(arg) is executed when the shell terminates.
+then the command var(arg) is executed when the shell terminates; the
+trap runs before any tt(zshexit) hook functions.
 
 tt(ZERR), tt(DEBUG), and tt(EXIT) traps are not executed inside other
 traps.  tt(ZERR) and tt(DEBUG) traps are kept within subshells, while
@@ -1703,13 +1719,18 @@
 item(tt(ulimit) [ [ tt(-SHacdfilmnpqstvx) | tt(-N) var(resource) [ var(limit) ] ... ])(
 Set or display resource limits of the shell and the processes started by
 the shell.  The value of var(limit) can be a number in the unit specified
-below or the value `tt(unlimited)'.  By default, only soft limits are
-manipulated. If the tt(-H) flag is given use
-hard limits instead of soft limits.  If the tt(-S) flag is given
-together with the tt(-H) flag set both hard and soft limits.  If no
-options are used, the file size limit (tt(-f)) is assumed.  If
-var(limit) is omitted the current value of the specified resources are
-printed.  When more than one resource values are printed the limit name and
+below or one of the values `tt(unlimited)', which removes the limit on the
+resource, or `tt(hard)', which uses the current value of the hard limit on
+the resource.
+
+By default, only soft limits are manipulated. If the tt(-H) flag
+is given use hard limits instead of soft limits.  If the tt(-S) flag is given
+together with the tt(-H) flag set both hard and soft limits.
+
+If no options are used, the file size limit (tt(-f)) is assumed.
+
+If var(limit) is omitted the current value of the specified resources are
+printed.  When more than one resource value is printed, the limit name and
 unit is printed before each value.
 
 When looping over multiple resources, the shell will abort immediately if
@@ -1782,6 +1803,10 @@
 the hard resource limit for each var(resource) is removed.
 The resources of the shell process are only changed if the tt(-s)
 flag is given.
+
+The tt(unlimit) command is not made available by default when the
+shell starts in a mode emulating another shell.  It can be made available
+with the command `tt(zmodload -F zsh/rlimits b:unlimit)'.
 )
 findex(unset)
 cindex(parameters, unsetting)
@@ -1899,7 +1924,7 @@
 file instead of the normal function file when the function
 is autoloaded; see
 ifzman(\
-the section `Autoloading Functions' in zmanref(zshfunc)
+the section `Autoloading Functions' in zmanref(zshmisc)
 )\
 ifnzman(\
 noderef(Functions)
@@ -2049,7 +2074,7 @@
 
 With tt(-u), tt(zmodload) unloads modules.  The same var(name)
 must be given that was given when the module was loaded, but it is not
-necessary for the module to exist in the filesystem.
+necessary for the module to exist in the file system.
 The tt(-i) option suppresses the error if the module is already
 unloaded (or was never loaded).
 
diff -Nru zsh-4.3.10/Doc/Zsh/calsys.yo zsh-4.3.11/Doc/Zsh/calsys.yo
--- zsh-4.3.10/Doc/Zsh/calsys.yo	2009-02-26 16:49:30.000000000 +0100
+++ zsh-4.3.11/Doc/Zsh/calsys.yo	2010-06-14 15:01:41.000000000 +0200
@@ -408,6 +408,49 @@
 for a recurrence of an event in the calendar until the previous event
 has passed.
 
+If tt(RPT) is used, it is also possible to specify that certain
+recurrences of an event are rescheduled or cancelled.  This is
+done with the tt(OCCURRENCE) keyword, followed by whitespace and the
+date and time of the occurrence in the regular sequence, followed by
+whitespace and either the date and time of the rescheduled event or
+the exact string tt(CANCELLED).  In this case the date and time must
+be in exactly the "date with local time" format used by the
+tt(text/calendar) MIME type (RFC 2445),
+var(
)tt(T)var() (note the presence of the literal +character tt(T)). The first word (the regular recurrence) may be +something other than a proper date/time to indicate that the event +is additional to the normal sequence; a convention that retains +the formatting appearance is tt(XXXXXXXXTXXXXXX). + +Furthermore, it is useful to record the next regular recurrence +(as then the displayed date may be for a rescheduled event so cannot +be used for calculating the regular sequence). This is specified by +tt(RECURRENCE) and a time or date in the same format. tt(calendar_add) +adds such an indication when it encounters a recurring event that does not +include one, based on the headline date/time. + +If tt(calendar_add) is used to update occurrences the tt(UID) keyword +described there should be present in both the existing entry and the added +occurrence in order to identify recurring event sequences. + +For example, + +example(Thu May 6, 2010 11:00 Informal chat RPT 1 week + # RECURRENCE 20100506T110000 + # OCCURRENCE 20100513T110000 20100513T120000 + # OCCURRENCE 20100520T110000 CANCELLED) + +The event that occurs at 11:00 on 13th May 2010 is rescheduled an hour +later. The event that occurs a week later is cancelled. The occurrences +are given on a continuation line starting with a tt(#) character so will +not usually be displayed as part of the event. As elsewhere, no account of +time zones is taken with the times. After the next event occurs the headline +date/time will be `tt(Thu May 13, 2010 12:00)' while the tt(RECURRENCE) +date/time will be `tt(20100513T110000)' (note that cancelled and +moved events are not taken account of in the tt(RECURRENCE), which +records what the next regular recurrence is, but they are accounted for in +the headline date/time). + It is safe to run tt(calendar -s) to reschedule an existing event (if the calendar file has changed, for example), and also to have it running in multiples instances of the shell since the calendar file @@ -460,17 +503,40 @@ # UID 045B78A0) The second line will not be shown by the tt(calendar) function. + +It is possible to specify the tt(RPT) keyword followed by tt(CANCELLED) +instead of a relative time. This causes any matched event or series +of events to be cancelled (the original event does not have to be marked +as recurring in order to be cancelled by this method). A tt(UID) is +required in order to match an existing event in the calendar. + +tt(calendar_add) will attempt to manage recurrences and occurrences of +repeating events as described for event scheduling by tt(calendar -s) +above. To reschedule or cancel a single event tt(calendar_add) should be +called with an entry that includes the correct tt(UID) but does em(not) +include the tt(RPT) keyword as this is taken to mean the entry applies to a +series of repeating events and hence replaces all existing information. +Each rescheduled or cancelled occurrence must have an tt(OCCURRENCE) +keyword in the entry passed to tt(calendar_add) which will be merged into +the calendar file. Any existing reference to the occurrence is replaced. +An occurrence that does not refer to a valid existing event is added as a +one-off occurrence to the same calendar entry. ) findex(calendar_edit) item(tt(calendar_edit))( -This calls the user's editor to edit the calendar file. The editor -is given by the variable tt(VISUAL), if set, else the variable tt(EDITOR). +This calls the user's editor to edit the calendar file. If +there are arguments, they are taken as the editor to use (the file name +is appended to the commands); otherwise, the editor is given by the +variable tt(VISUAL), if set, else the variable tt(EDITOR). + If the calendar scheduler was running, then after editing the file tt(calendar -s) is called to update it. This function locks out the calendar system during the edit. Hence it should be used to edit the calendar file if there is any -possibility of a calendar event occurring meanwhile. +possibility of a calendar event occurring meanwhile. Note this +can lead to another shell with calendar functions enabled hanging waiting +for a lock, so it is necessary to quit the editor as soon as possible. ) findex(calendar_parse) item(tt(calendar_parse) var(calendar-entry))( @@ -484,6 +550,10 @@ startsitem() sitem(time)(The time as a string of digits in the same units as tt($EPOCHSECONDS)) +sitem(schedtime)(The regularly scheduled time. This may differ from +the actual event time tt(time) if this is a recurring event and the next +occurrence has been rescheduled. Then tt(time) gives the actual time +and tt(schedtime) the time of the regular recurrence before modification.) sitem(text1)(The text from the line not including the date and time of the event, but including any tt(WARN) or tt(RPT) keywords and values.) sitem(warntime)(Any warning time given by the tt(WARN) keyword as a string @@ -496,6 +566,10 @@ of digits containing the time of the recurrence in the same units as tt($EPOCHSECONDS). (Note this is an absolute time.) Not set if no tt(RPT) keyword and value were matched.) +sitem(schedrpttime)(The next regularly scheduled occurrence of a recurring +event before modification. This may differ from tt(rpttime), which is the +actual time of the event that may have been rescheduled from the regular +time.) sitem(rptstr)(The raw string matched after the tt(RPT) keyword, else unset.) sitem(text2)(The text from the line after removal of the date and any keywords and values.) @@ -534,14 +608,8 @@ The function tt(age) can be autoloaded and use separately from the calendar system, although it uses the function tt(calendar_scandate) -for date formatting. It requires the tt(zsh/stat) builtin, which -makes available the builtin tt(stat). This may conflict with an -external programme of the same name; if it does, the builtin may be -disabled for normal operation by including the following code in -an initialization file: - -example(zmodload -i zsh/stat -disable stat) +for date formatting. It requires the tt(zsh/stat) builtin, but uses +only the builtin tt(zstat). tt(age) selects files having a given modification time for use as a glob qualifier. The format of the date is the same as that diff -Nru zsh-4.3.10/Doc/Zsh/compctl.yo zsh-4.3.11/Doc/Zsh/compctl.yo --- zsh-4.3.10/Doc/Zsh/compctl.yo 2008-07-14 18:48:58.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/compctl.yo 2009-09-09 19:54:25.000000000 +0200 @@ -177,10 +177,10 @@ startitem() item(tt(-f))( -Filenames and filesystem paths. +Filenames and file system paths. ) item(tt(-/))( -Just filesystem paths. +Just file system paths. ) item(tt(-c))( Command names, including aliases, shell functions, builtins diff -Nru zsh-4.3.10/Doc/Zsh/compsys.yo zsh-4.3.11/Doc/Zsh/compsys.yo --- zsh-4.3.10/Doc/Zsh/compsys.yo 2009-05-26 11:41:16.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/compsys.yo 2010-12-17 18:06:13.000000000 +0100 @@ -203,7 +203,7 @@ calling tt(compaudit) or tt(compinit). findex(bashcompinit) -The function tt(bashcompinit) compatibility with bash's programmable +The function tt(bashcompinit) provides compatibility with bash's programmable completion system. When run it will define the functions, tt(compgen) and tt(complete) which correspond to the bash builtins with the same names. It will then be possible to use completion specifications and functions @@ -279,7 +279,7 @@ When one of the var(key-sequences) is typed, the function in the file will be invoked to generate the matches. Note that a key will not be re-bound -if if it already was (that is, was bound to something other than +if it already was (that is, was bound to something other than tt(undefined-key)). The widget created has the same name as the file and can be bound to any other keys using tt(bindkey) as usual. ) @@ -1123,6 +1123,9 @@ directory is accepted without any attempt to complete it further. Hence, in the given example, the path tt(/usr/bin/) is accepted immediately and completion tried in that directory. + +If you wish to inhibit this behaviour entirely, set the tt(path-completion) +style (see below) to tt(false). ) kindex(add-space, completion style) item(tt(add-space))( @@ -1195,7 +1198,7 @@ This style is used in the function for commands such as tt(make) and tt(ant) where calling the command directly to generate matches suffers problems such as being slow or, as in the case of tt(make) can -potentially causes actions in the makefile to be executed. If it is set +potentially cause actions in the makefile to be executed. If it is set to `true' the command is called to generate matches. The default value of this style is `false'. ) @@ -1243,7 +1246,7 @@ kindex(complete, completion style) item(tt(complete))( This is used by the tt(_expand_alias) function when invoked as a -bindable command. If it set to `true' and the word on the command +bindable command. If set to `true' and the word on the command line is not the name of an alias, matching alias names will be completed. ) @@ -1387,16 +1390,16 @@ separated by spaces) as possible matches when completing in the directory var(dir), even if no such files really exist. The dir may be a pattern; pattern characters -or colons in var(dir) should be quote with a backslash to be treated +or colons in var(dir) should be quoted with a backslash to be treated literally. -This can be useful on systems that support special filesystems whose +This can be useful on systems that support special file systems whose top-level pathnames can not be listed or generated with glob patterns. It can also be used for directories for which one does not have read permission. The pattern form can be used to add a certain `magic' entry -to all directories on a particular filing system. +to all directories on a particular file system. ) kindex(fake-parameters, completion style) item(tt(fake-parameters))( @@ -1777,7 +1780,7 @@ The value may also contain the substrings `tt(pending)' or `tt(pending=)var(val)'. In this case, the typed character will be -inserted instead of staring completion when there is unprocessed input +inserted instead of starting completion when there is unprocessed input pending. If a var(val) is given, completion will not be done if there are at least that many characters of unprocessed input. This is often useful when pasting characters into a terminal. Note @@ -1952,7 +1955,7 @@ kindex(local, completion style) item(tt(local))( This is for use with functions that complete URLs for which the -corresponding files are available directly from the filing system. +corresponding files are available directly from the file system. Its value should consist of three strings: a hostname, the path to the default web pages for the server, and the directory name used by a user placing web pages within their home @@ -2010,7 +2013,7 @@ Hence it is possible to create increasingly general specifications without repetition: -example(zstyle ':completion:*' matcher-list '' '+m{a-Z}={A-Z}' '+m{A-Z}={a-z}') +example(zstyle ':completion:*' matcher-list '' '+m{a-z}={A-Z}' '+m{A-Z}={a-z}') It is possible to create match specifications valid for particular completers by using the third field of the context. For example, to @@ -2037,7 +2040,7 @@ If the style is unset in any context no match specification is applied. Note also that some completers such as tt(_correct) and tt(_approximate) do not use the match specifications at all, though these completers will -only ever called once even if the tt(matcher-list) contains more than +only ever be called once even if the tt(matcher-list) contains more than one element. Where multiple specifications are useful, note that the em(entire) @@ -2259,6 +2262,21 @@ the style is not set but this file is found in one of various standard locations it will be used as the default. ) +kindex(path-completion, completion style) +item(tt(path-completion))( +This is used by filename completion. By default, filename completion +examines all components of a path to see if there are completions of +that component. For example, tt(/u/b/z) can be completed to +tt(/usr/bin/zsh). Explicitly setting this style to tt(false) inhibits this +behaviour for path components up to the tt(/) before the cursor; this +overrides the setting of tt(accept-exact-dirs). + +Even with the style set to tt(false), it is still possible to complete +multiple paths by setting the option tt(COMPLETE_IN_WORD) and moving the +cursor back to the first component in the path to be completed. For +example, tt(/u/b/z) can be completed to tt(/usr/bin/zsh) if the cursor is +after the tt(/u). +) kindex(pine-directory, completion style) item(tt(pine-directory))( If set, specifies the directory containing PINE mailbox files. There @@ -2702,7 +2720,7 @@ kindex(use-perl, completion style) item(tt(use-perl))( Various parts of the function system use awk to extract words from -files or command output as this universally available. However, many +files or command output as it is universally available. However, many versions of awk have arbitrary limits on the size of input. If this style is set, perl will be used instead. This is almost always preferable if perl is available on your system. @@ -3404,7 +3422,7 @@ offers usernames and hostnames as possible matches, generated by the tt(_users) and tt(_hosts) functions respectively. -Like tt(_arguments), this functions uses tt(_all_labels) to execute +Like tt(_arguments), this function uses tt(_all_labels) to execute the actions, which will loop over all sets of tags. Special handling is only required if there is an additional valid tag, for example inside a function called from tt(_alternative). @@ -3672,13 +3690,13 @@ choice of resetting these parameters or propagating changes in them. A function calling tt(_arguments) with at least -one action containing a `tt(->)var(string)' therefore must declare +one action containing a `tt(->)var(string)' must therefore declare appropriate local parameters: example(local context state line typeset -A opt_args) -to avoid tt(_arguments) from altering the global environment. +to prevent tt(_arguments) from altering the global environment. ) item(tt({)var(eval-string)tt(}))( vindex(expl, use of) @@ -3869,7 +3887,7 @@ argument for an option is optional. This can be specified explicitly by doubling the colon before the var(message). -If the var(pattern) ends in `tt((-))', this will removed from the +If the var(pattern) ends in `tt((-))', this will be removed from the pattern and the var(action) will be used only directly after the `tt(=)', not in the next word. This is the behaviour of a normal specification defined with the form `tt(=-)'. @@ -3945,8 +3963,8 @@ item(tt(_call_function) var(return) var(name) [ var(args) ... ])( If a function var(name) exists, it is called with the arguments var(args). The var(return) argument gives the name of a parameter in which -the return status from the function var(name); if var(return) is empty or a -single hyphen it is ignored. +the return status from the function var(name) should be stored; if var(return) +is empty or a single hyphen it is ignored. The return status of tt(_call_function) itself is zero if the function var(name) exists and was called and non-zero otherwise. @@ -4031,7 +4049,7 @@ tt(prefix-needed) and tt(verbose) styles to find out if the strings should be added as completions and if the descriptions should be shown. Without the `tt(-o)' option, only the tt(verbose) style is used to decide how -descriptions are shown. If `tt(-O)' is used instead of `tt(-O)', command +descriptions are shown. If `tt(-O)' is used instead of `tt(-o)', command options are completed as above but tt(_describe) will not handle the tt(prefix-needed) style. diff -Nru zsh-4.3.10/Doc/Zsh/compwid.yo zsh-4.3.11/Doc/Zsh/compwid.yo --- zsh-4.3.10/Doc/Zsh/compwid.yo 2009-04-23 12:35:33.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/compwid.yo 2010-12-17 18:06:13.000000000 +0100 @@ -546,7 +546,7 @@ Gives the name of the group of matches the words should be stored in. ) item(tt(-V) var(name))( -Like tt(-J) but naming a unsorted group. These are in a different name +Like tt(-J) but naming an unsorted group. These are in a different name space than groups created with the tt(-J) flag. ) item(tt(-1))( @@ -671,8 +671,8 @@ item(tt(-D) var(array))( As with tt(-O), the var(words) are not added to the set of possible completions. Instead, the completion code tests whether each var(word) -in turn matches what is on the line. If the var(n)'th var(word) does not -match, the var(n)'th element of the var(array) is removed. Elements +in turn matches what is on the line. If the var(n)th var(word) does not +match, the var(n)th element of the var(array) is removed. Elements for which the corresponding var(word) is matched are retained. ) item(tt(-C))( @@ -732,8 +732,8 @@ tt(PREFIX) and appended to tt(IPREFIX). Without the optional var(number), the longest match is taken, but -if var(number) is given, anything up to the var(number)'th match is -moved. If the var(number) is negative, the var(number)'th longest +if var(number) is given, anything up to the var(number)th match is +moved. If the var(number) is negative, the var(number)th longest match is moved. For example, if tt(PREFIX) contains the string `tt(a=b=c)', then tt(compset -P '*\=') will move the string `tt(a=b=)' into the tt(IPREFIX) parameter, but tt(compset -P 1 '*\=') will move only @@ -750,7 +750,7 @@ item(tt(-n) var(begin) [ var(end) ])( If the current word position as specified by the parameter tt(CURRENT) is greater than or equal to var(begin), anything up to the -var(begin)'th word is removed from the tt(words) array and the value +var(begin)th word is removed from the tt(words) array and the value of the parameter tt(CURRENT) is decremented by var(begin). If the optional var(end) is given, the modification is done only if @@ -799,7 +799,7 @@ item(tt(compcall) [ tt(-TD) ])( This allows the use of completions defined with the tt(compctl) builtin from within completion widgets. The list of matches will be generated as -if one of the non-widget completion function (tt(complete-word), etc.) +if one of the non-widget completion functions (tt(complete-word), etc.) had been called, except that only tt(compctl)s given for specific commands are used. To force the code to try completions defined with the tt(-T) option of tt(compctl) and/or the default completion (whether defined by @@ -1051,7 +1051,7 @@ tt(COMPLETE_IN_WORD) is set. In this case the completion code would normally try to match trial completions that end with the string as typed so far, i.e. it will only insert new characters at the cursor -position rather then at the end. However in our example we would like +position rather than at the end. However in our example we would like the code to recognise matches which contain extra characters after the string on the line (the `tt(nix)' in the example). Hence we say that the empty string at the end of the string on the line matches any characters diff -Nru zsh-4.3.10/Doc/Zsh/cond.yo zsh-4.3.11/Doc/Zsh/cond.yo --- zsh-4.3.10/Doc/Zsh/cond.yo 2009-01-15 10:45:15.000000000 +0100 +++ zsh-4.3.11/Doc/Zsh/cond.yo 2010-02-26 12:06:37.000000000 +0100 @@ -117,13 +117,29 @@ extended regular expression using the tt(zsh/regex) module. Upon successful match, some variables will be updated; no variables are changed if the matching fails. + +If the option tt(BASH_REMATCH) is not set the scalar parameter +tt(MATCH) is set to the substring that matched the pattern and +the integer parameters tt(MBEGIN) and tt(MEND) to the index of the start +and end, respectively, of the match in var(string), such that if +var(string) is contained in variable tt(var) the expression +`${var[$MBEGIN,$MEND]}' is identical to `$MATCH'. The setting +of the option tt(KSH_ARRAYS) is respected. Likewise, the array +tt(match) is set to the substrings that matched parenthesised +subexpressions and the arrays tt(mbegin) and tt(mend) to the indices of +the start and end positions, respectively, of the substrings within +var(string). The arrays are not set if there were no parenthesised +subexpresssions. For example, if the string `tt(a short string)' is matched +against the regular expression `tt(s+LPAR()...RPAR()t)', then (assuming the +option tt(KSH_ARRAYS) is not set) tt(MATCH), tt(MBEGIN) +and tt(MEND) are `tt(short)', 3 and 7, respectively, while tt(match), +tt(mbegin) and tt(mend) are single entry arrays containing +the strings `tt(hor)', `tt(4)' and `tt(6), respectively. + If the option tt(BASH_REMATCH) is set the array tt(BASH_REMATCH) is set to the substring that matched the pattern followed by the substrings that matched parenthesised -subexpressions within the pattern; otherwise, the scalar parameter -tt(MATCH) is set to the substring that matched the pattern and -and the array tt(match) to the substrings that matched parenthesised -subexpressions. +subexpressions within the pattern. ) item(var(string1) tt(<) var(string2))( true if var(string1) comes before var(string2) @@ -167,9 +183,10 @@ Normal shell expansion is performed on the var(file), var(string) and var(pattern) arguments, but the result of each expansion is constrained to -be a single word, similar to the effect of double quotes. However, pattern -metacharacters are active for the var(pattern) arguments; the patterns -are the same as those used for filename generation, see +be a single word, similar to the effect of double quotes. +File generation is not performed on any form of argument to conditions. +However, pattern metacharacters are active for the var(pattern) arguments; +the patterns are the same as those used for filename generation, see ifzman(\ zmanref(zshexpn)\ )\ diff -Nru zsh-4.3.10/Doc/Zsh/contrib.yo zsh-4.3.11/Doc/Zsh/contrib.yo --- zsh-4.3.10/Doc/Zsh/contrib.yo 2009-05-22 19:36:36.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/contrib.yo 2010-12-17 18:08:11.000000000 +0100 @@ -11,6 +11,7 @@ startmenu() menu(Utilities) +menu(Recent Directories) menu(Version Control Information) menu(Prompt Themes) menu(ZLE Functions) @@ -21,7 +22,7 @@ menu(Other Functions) endmenu() -texinode(Utilities)(Version Control Information)()(User Contributions) +texinode(Utilities)(Recent Directories)()(User Contributions) sect(Utilities) subsect(Accessing On-Line Help) @@ -305,7 +306,7 @@ the special functions in question. var(functions) is name of an ordinary shell function. If no options -are given this will be added to the array of functions to be executed. +are given this will be added to the array of functions to be executed in the given context. If the option tt(-d) is given, the var(function) is removed from @@ -317,14 +318,292 @@ ) enditem() -texinode(Version Control Information)(Prompt Themes)(Utilities)(User Contributions) +texinode(Recent Directories)(Version Control Information)(Utilities)(User Contributions) +cindex(recent directories, maintaining list of) +cindex(directories, maintaining list of recent) +findex(cdr) +findex(_cdr) +findex(chpwd_recent_add) +findex(chpwd_recent_dirs) +findex(chpwd_recent_filehandler) +sect(Remembering Recent Directories) + +The function tt(cdr) allows you to change the working directory to a +previous working directory from a list maintained automatically. It is +similar in concept to the directory stack controlled by the tt(pushd), +tt(popd) and tt(dirs) builtins, but is more configurable, and as it stores +all entries in files it is maintained across sessions and (by default) +between terminal emulators in the current session. (The tt(pushd) +directory stack is not actually modified or used by tt(cdr) unless you +configure it to do so as described in the configuration section below.) + +subsect(Installation) + +The system works by means of a hook function that is called every time the +directory changes. To install the system, autoload the required functions +and use the tt(add-zsh-hook) function described above: + +example(autoload -Uz chpwd_recent_dirs cdr add-zsh-hook +add-zsh-hook chpwd chpwd_recent_dirs) + +Now every time you change directly interactively, no matter which +command you use, the directory to which you change will be remembered +in most-recent-first order. + +subsect(Use) + +All direct user interaction is via the tt(cdr) function. + +The argument to cdr is a number var(N) corresponding to the var(N)th most +recently changed-to directory. 1 is the immediately preceeding directory; +the current directory is remembered but is not offered as a destination. +Note that if you have multiple windows open 1 may refer to a directory +changed to in another window; you can avoid this by having per-terminal +files for storing directory as described for the +tt(recent-dirs-file) style below. + +If you set the tt(recent-dirs-default) style described below tt(cdr) +will behave the same as tt(cd) if given a non-numeric argument, or more +than one argument. The recent directory list is updated just the same +however you change directory. + +If the argument is omitted, 1 is assumed. This is similar to tt(pushd)'s +behaviour of swapping the two most recent directories on the stack. + +Completion for the argument to tt(cdr) is available if compinit has been +run; menu selection is recommended, using: + +example(zstyle ':completion:*:*:cdr:*:*' menu selection) + +to allow you to cycle through recent directories; the order is preserved, +so the first choice is the most recent directory before the current one. +The verbose style is also recommended to ensure the directory is shown; this +style is on by default so no action is required unless you have changed it. + +subsect(Options) + +The behaviour of tt(cdr) may be modified by the following options. + +startitem() +item(tt(-l))( +lists the numbers and the corresponding directories in +abbreviated form (i.e. with tt(~) substitution reapplied), one per line. +The directories here are not quoted (this would only be an issue if a +directory name contained a newline). This is used by the completion +system. +) +item(tt(-r))( +sets the variable tt(reply) to the current set of directories. Nothing +is printed and the directory is not changed. +) +item(tt(-e))( +allows you to edit the list of directories, one per line. The +list can be edited to any extent you like; no sanity checking is +performed. Completion is available. No quoting is necessary (except for +newlines, where I have in any case no sympathy); directories are in +unabbreviated from and contain an absolute path, i.e. they start with tt(/). +Usually the first entry should be left as the current directory. +) +enditem() + +subsect(Configuration) + +Configuration is by means of the styles mechanism that should be familiar +from completion; if not, see the description of the tt(zstyle) command in +ifzman(see zmanref(zshmodules))\ +ifnzman(noderef(The zsh/zutil Module)). The context for setting styles +should be tt(':chpwd:*') in case the meaning of the context is extended in +future, for example: + +example(zstyle ':chpwd:*' recent-dirs-max 0) + +sets the value of the tt(recent-dirs-max) style to 0. In practice the +style name is specific enough that a context of '*' should be fine. + +An exception is tt(recent-dirs-insert), which is used exclusively by the +completion system and so has the usual completion system context +(tt(':completion:*') if nothing more specific is needed), though again +tt('*') should be fine in practice. + +startitem() +item(tt(recent-dirs-default))( +If true, and the command is expecting a recent directory index, and +either there is more than one argument or the argument is not an +integer, then fall through to "cd". This allows the lazy to use only +one command for directory changing. Completion recognises this, too; +see recent-dirs-insert for how to control completion when this option +is in use. +) +item(tt(recent-dirs-file))( +The file where the list of directories is saved. The default +is tt(${ZDOTDIR:-$HOME}/.chpwd-recent-dirs), i.e. this is in your +home directory unless you have set the variable tt(ZDOTDIR) to point +somewhere else. Directory names are saved in tt($')var(...)tt(') quoted +form, so each line in the file can be supplied directly to the shell as an +argument. + +The value of this style may be an array. In this case, the first +file in the list will always be used for saving directories while any +other files are left untouched. When reading the recent directory +list, if there are fewer than the maximum number of entries in the +first file, the contents of later files in the array will be appended +with duplicates removed from the list shown. The contents of the two +files are not sorted together, i.e. all the entries in the first file +are shown first. The special value tt(+) can appear in the list to +indicate the default file should be read at that point. This allows +effects like the following: + +example(zstyle ':chpwd:*' recent-dirs-file \ +~/.chpwd-recent-dirs-${TTY##*/} +) + +Recent directories are read from a file numbered according to +the terminal. If there are insufficient entries the list +is supplemented from the default file. + +It is possible to use tt(zstyle -e) to make the directory configurable +at run time: + +example(zstyle -e ':chpwd:*' recent-dirs-file pick-recent-dirs-file +pick-recent-dirs-file+LPAR()RPAR() { + if [[ $PWD = ~/text/writing+LPAR()|/*RPAR() ]]; then + reply=(~/.chpwd-recent-dirs-writing) + else + reply=(+) + fi +}) + +In this example, if the current directory is tt(~/text/writing) or a +directory under it, then use a special file for saving recent +directories, else use the default. +) +item(tt(recent-dirs-insert))( +Used by completion. If tt(recent-dirs-default) is true, then setting +this to tt(true) causes the actual directory, rather than its index, to +be inserted on the command line; this has the same effect as using +the corresponding index, but makes the history clearer and the line +easier to edit. With this setting, if part of an argument was +already typed, normal directory completion rather than recent +directory completion is done; this is because recent directory +completion is expected to be done by cycling through entries menu +fashion. + +If the value of the style is tt(always), then only recent directories will +be completed; in that case, use the tt(cd) command when you want to +complete other directories. + +If the value is tt(fallback), recent directories will be tried first, then +normal directory completion is performed if recent directory completion +failed to find a match. + +Finally, if the value is tt(both) then both sets of completions are +presented; the usual tag mechanism can be used to distinguish results, with +recent directories tagged as tt(recent-dirs). Note that the recent +directories inserted are abbreviated with directory names where appropriate. +) +item(tt(recent-dirs-max))( +The maximum number of directories to save to the file. If +this is zero or negative there is no maximum. The default is 20. +Note this includes the current directory, which isn't offered, +so the highest number of directories you will be offered +is one less than the maximum. +) +item(tt(recent-dirs-prune))( +This style is an array determining what directories should (or should +not) be added to the recent list. Elements of the array can include: + +startitem() +item(tt(parent))( +Prune parents (more accurately, ancestors) from the recent list. +If present, changing directly down by any number of directories +causes the current directory to be overwritten. For example, +changing from ~pws to ~pws/some/other/dir causes ~pws not to be +left on the recent directory stack. This only applies to direct +changes to descendant directories; earlier directories on the +list are not pruned. For example, changing from ~pws/yet/another +to ~pws/some/other/dir does not cause ~pws to be pruned. +) +item(tt(pattern:var(pattern)))( +Gives a zsh pattern for directories that should not be +added to the recent list (if not already there). This element +can be repeated to add different patterns. For example, +tt('pattern:/tmp+LPAR()|/*RPAR()') stops tt(/tmp) or its descendants +from being added. The tt(EXTENDED_GLOB) option is always turned on +for these patterns. +) +enditem() +) +item(tt(recent-dirs-pushd))( +If set to true, tt(cdr) will use tt(pushd) instead of tt(cd) to change the +directory, so the directory is saved on the directory stack. As the +directory stack is completely separate from the list of files saved +by the mechanism used in this file there is no obvious reason to do +this. +) +enditem() + +subsect(Use with dynamic directory naming) + +It is possible to refer to recent directories using the dynamic directory +name syntax that appeared in zsh version 4.3.7. If you create and +autoload a function tt(zsh_directory_name) containing the following code, +tt(~[1]) will refer to the most recent directory other than $PWD, and so on. +This also includes completion. + +example(if [[ $1 = n ]]; then + if [[ $2 = <-> ]]; then + # Recent directory + typeset -ga reply + autoload -Uz cdr + cdr -r + if [[ -n ${reply[$2]} ]]; then + reply=LPAR()${reply[$2]}RPAR() + return 0 + else + reply=LPAR()RPAR() + return 1 + fi + fi +elif [[ $1 = c ]]; then + if [[ $PREFIX = <-> || -z $PREFIX ]]; then + typeset -a keys values + values=LPAR()${${(f)"$+LPAR()cdr -l+RPAR()"}/ ##/:}RPAR() + keys=LPAR()${values%%:*}RPAR() + _describe -t dir-index 'recent directory index' \ + values keys -V unsorted -S']' + return + fi +fi +return 1) + +subsect(Details of directory handling) + +This section is for the curious or confused; most users will not +need to know this information. + +Recent directories are saved to a file immediately and hence are +preserved across sessions. Note currently no file locking is applied: +the list is updated immediately on interactive commands and nowhere else +(unlike history), and it is assumed you are only going to change +directory in one window at once. This is not safe on shared accounts, +but in any case the system has limited utility when someone else is +changing to a different set of directories behind your back. + +To make this a little safer, only directory changes instituted from the +command line, either directly or indirectly through shell function calls +(but not through subshells, evals, traps, completion functions and the +like) are saved. Shell functions should use tt(cd -q) or tt(pushd -q) to +avoid side effects if the change to the directory is to be invisible at the +command line. See the contents of the function tt(chpwd_recent_dirs) for +more details. + +texinode(Version Control Information)(Prompt Themes)(Recent Directories)(User Contributions) sect(Gathering information from version control systems) cindex(version control utility) In a lot of cases, it is nice to automatically retrieve information from version control systems (VCSs), such as subversion, CVS or git, to be able to provide it to the user; possibly in the user's prompt. So that you can -instantly tell on which branch you are currently on, for example. +instantly tell which branch you are currently on, for example. In order to do that, you may use the tt(vcs_info) function. @@ -334,16 +613,20 @@ sitem(Bazaar (tt(bzr)))(http://bazaar-vcs.org/) sitem(Codeville (tt(cdv)))(http://codeville.org/) sitem(Concurrent Versioning System (tt(cvs)))(http://www.nongnu.org/cvs/) -sitem(tt(darcs))(http://darcs.net/) -sitem(tt(git))(http://git.or.cz/) +sitem(Darcs (tt(darcs)))(http://darcs.net/) +sitem(Git (tt(git)))(http://git-scm.com/) sitem(GNU arch (tt(tla)))(http://www.gnu.org/software/gnu-arch/) -sitem(Mercurial (tt(hg)))(http://selenic.com/mercurial/) +sitem(Mercurial (tt(hg)))(http://mercurial.selenic.com/) sitem(Monotone (tt(mtn)))(http://monotone.ca/) sitem(Perforce (tt(p4)))(http://www.perforce.com/) sitem(Subversion (tt(svn)))(http://subversion.tigris.org/) sitem(SVK (tt(svk)))(http://svk.bestpractical.com/) endsitem() +There is also support for the patch management system tt(quilt) +(http://savannah.nongnu.org/projects/quilt). See tt(Quilt Support) +below for details. + To load var(vcs_info): example(autoload -Uz vcs_info) @@ -356,15 +639,15 @@ To get this feature working quickly (including colors), you can do the following (assuming, you loaded var(vcs_info) properly - see above): -example(zstyle ':vcs_info:*' actionformats \ +example(zstyle ':vcs_info:*' actionformats \ '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' -zstyle ':vcs_info:*' formats \ +zstyle ':vcs_info:*' formats \ '%F{5}(%f%s%F{5})%F{3}-%F{5}[%F{2}%b%F{5}]%f ' zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' precmd () { vcs_info } PS1='%F{5}[%F{2}%n%F{5}] %F{3}%3~ ${vcs_info_msg_0_}%f%# ') -Obviously, the last two lines are there for demonstration: You need to +Obviously, the last two lines are there for demonstration. You need to call var(vcs_info) from your var(precmd) function. Once that is done you need a tt(single quoted) var('${vcs_info_msg_0_}') in your prompt. @@ -389,9 +672,12 @@ tla ## flavours (cannot be used in the enable or disable styles; they ## are enabled and disabled with their master [git-svn -> git]) -## they *can* be used contexts: ':vcs_info:git-svn:*'. +## they *can* be used in contexts: ':vcs_info:git-svn:*'. git-p4 -git-svn) +git-svn +hg-git +hg-hgsubversion +hg-hgsvn) You may not want all of these because there is no point in running the code to detect systems you do not use. So there is a way to disable @@ -409,6 +695,7 @@ That means the detection of these systems is skipped tt(completely). No wasted time there. + subsect(Configuration) The var(vcs_info) feature can be configured via var(zstyle). @@ -418,8 +705,9 @@ startitem() item(tt())( -is one of: git, git-svn, git-p4, hg, darcs, bzr, -cdv, mtn, svn, cvs, svk, tla or p4. +is one of: git, git-svn, git-p4, hg, hg-git, hg-hgsubversion, hg-hgsvn, +darcs, bzr, cdv, mtn, svn, cvs, svk, tla or p4. When hooks are active the +hooks name is added after a `+'. (See tt(Hooks in vcs_info) below.) ) item(tt())( is a freely configurable string, assignable by @@ -429,13 +717,13 @@ item(tt())( is the name of a repository in which you want a style to match. So, if you want a setting specific to var(/usr/src/zsh), -with that being a cvs checkout, you can set tt() to +with that being a CVS checkout, you can set tt() to var(zsh) to make it so. ) enditem() There are three special values for tt(): The first is named -var(-init-), that is in effect as long as there was no decision what vcs +var(-init-), that is in effect as long as there was no decision what VCS backend to use. The second is var(-preinit-); it is used tt(before) var(vcs_info) is run, when initializing the data exporting variables. The third special value is var(formats) and is used by the tt(vcs_info_lastmsg) @@ -444,7 +732,7 @@ The initial value of tt() is var(-all-) and it is replaced with the actual name, as soon as it is known. Only use this part of the context for defining the var(formats), var(actionformats) or -var(branchformat) styles. As it is guaranteed that tt() is +var(branchformat) styles, as it is guaranteed that tt() is set up correctly for these only. For all other styles, just use tt('*') instead. @@ -467,49 +755,47 @@ ) kindex(actionformats) item(tt(actionformats))( -A list of formats, used if a there is a special -action going on in your current repository; (like an interactive rebase or -a merge conflict). +A list of formats, used if there is a special +action going on in your current repository; like an interactive rebase or +a merge conflict. ) kindex(branchformat) item(tt(branchformat))( Some backends replace var(%b) in the formats and actionformats styles above, not only by a branch name but also by a -revision number. This style let's you modify how that string should look -like. +revision number. This style lets you modify how that string should look. ) kindex(nvcsformats) item(tt(nvcsformats))( -These "formats" are exported, when we didn't detect -a version control system for the current directory. This is useful, if you +These "formats" are exported when we didn't detect +a version control system for the current directory. This is useful if you want var(vcs_info) to completely take over the generation of your prompt. You would do something like tt(PS1='${vcs_info_msg_0_}') to accomplish that. ) -kindex(stgitformat) -item(tt(stgitformat))( -The tt(git) backend replaces var(%m) in the formats and -actionformats styles with tt(stgit)-specific information for -tt(stgit)-initialized branches. This style let's you modify how that string -should look like. +kindex(hgrevformat) +item(tt(hgrevformat))( +tt(hg) uses both a hash and a revision number to reference a specific +changeset in a repository. With this style you can format the revision +string (see var(branchformat)) to include either or both. It's only +useful when var(get-revision) is true. ) kindex(max-exports) item(tt(max-exports))( -Defines the maximum number if +Defines the maximum number of var(vcs_info_msg_*_) variables var(vcs_info) will export. ) kindex(enable) item(tt(enable))( -A list of backends you want to use. Checked in the -var(-init-) context. If this list contains an item called tt(NONE) no -backend is used at all and var(vcs_info) will do nothing. If this list -contains tt(ALL) var(vcs_info) will use all backends known to it. Only with -tt(ALL) in tt(enable), the tt(disable) style has any effect. tt(ALL) and -tt(NONE) are actually tested case insensitively. +A list of backends you want to use. Checked in the var(-init-) context. If +this list contains an item called tt(NONE) no backend is used at all and +var(vcs_info) will do nothing. If this list contains tt(ALL) var(vcs_info) +will use all known backends. Only with tt(ALL) in tt(enable) will the +tt(disable) style have any effect. tt(ALL) and tt(NONE) are case insensitive. ) kindex(disable) item(tt(disable))( -A list of VCSs, you don't want var(vcs_info) to test for +A list of VCSs you don't want var(vcs_info) to test for repositories (checked in the var(-init-) context, too). Only used if tt(enable) contains tt(ALL). ) @@ -523,15 +809,36 @@ not want var(vcs_info) to be active, do: example(zstyle ':vcs_info:*' disable-patterns "$HOME/.zsh+LPAR()|/*+RPAR()") ) +kindex(use-quilt) +item(tt(use-quilt))( +If enabled, the tt(quilt) support code is active in `addon' mode. +See tt(Quilt Support) for details. +) +kindex(quilt-standalone) +item(tt(quilt-standalone))( +If enabled, `standalone' mode detection is attempted if no VCS is active +in a given directory. See tt(Quilt Support) for details. +) +kindex(quilt-patch-dir) +item(tt(quilt-patch-dir))( +Overwrite the value of the var($QUILT_PATCHES) environment variable. See +tt(Quilt Support) for details. +) +kindex(quiltcommand) +item(tt(quiltcommand))( +When tt(quilt) itself is called in quilt support the value of this style +is used as the command name. +) kindex(check-for-changes) item(tt(check-for-changes))( -If enabled, this style (currently only used by the tt(git) backend) causes the -tt(%c) and tt(%u) format escapes to be filled with information. The strings -filled into these escapes can be controlled via the var(stagedstr) and -var(unstagedstr) styles. +If enabled, this style causes the tt(%c) and tt(%u) format escapes to show +when the working directory has uncommitted changes. The strings displayed by +these escapes can be controlled via the var(stagedstr) and var(unstagedstr) +styles. The only backends that currently support this option are tt(git) and +tt(hg) (tt(hg) only supports unstaged). -Note, that the actions taken if this style is enabled are potentially expensive -(read: they take time, depending on how big the current repository is). +Note, the actions taken if this style is enabled are potentially expensive +(read: they may be slow, depending on how big the current repository is). Therefore, it is disabled by default. ) kindex(stagedstr) @@ -541,25 +848,25 @@ ) kindex(unstagedstr) item(tt(unstagedstr))( -This string will be used in the tt(%u) escape if there are unstaged changes in -the repository. +This string will be used in the tt(%u) escape if there are unstaged changes +in the repository. ) kindex(command) item(tt(command))( This style causes var(vcs_info) to use the supplied string as the command -to use as the vcs's binary. Note, that setting this in ':vcs_info:*' is +to use as the VCS's binary. Note, that setting this in ':vcs_info:*' is not a good idea. If the value of this style is empty (which is the default), the used binary -name is the name of the backend in use (e.g. var(svn) is used in a var(svn) +name is the name of the backend in use (e.g. var(svn) is used in an var(svn) repository). The var(repo-root-name) part in the context is always the default tt(-all-) when this style is looked up. For example, this style can be used to use binaries from non-default -installation directories. Assume, var(git) is installed in /usr/bin, but -your sysadmin installed a newer version in /usr/bin/local. Now, instead of +installation directories. Assume, var(git) is installed in /usr/bin but +your sysadmin installed a newer version in /usr/bin/local. Instead of changing the order of your tt($PATH) parameter, you can do this: example(zstyle ':vcs_info:git:*:-all-' command /usr/local/bin/git) ) @@ -570,8 +877,8 @@ by Perforce. This is the only reliable way of doing this, but runs the risk of a delay if the server name cannot be found. If the server (more specifically, the var(host)tt(:)var(port) pair describing the -server) cannot be contacted its name is put into the associative array -tt(vcs_info_p4_dead_servers) and not contacted again during the session +server) cannot be contacted, its name is put into the associative array +tt(vcs_info_p4_dead_servers) and is not contacted again during the session until it is removed by hand. If you do not set this style, the tt(p4) backend is only usable if you have set the environment variable tt(P4CONFIG) to a file name and have corresponding files in the root @@ -583,8 +890,10 @@ If there are two different ways of gathering information, you can select the simpler one by setting this style to true; the default is to use the not-that-simple code, which is potentially a lot -slower but might be more accurate in all possible cases. This style is only -used by the tt(bzr) backend. +slower but might be more accurate in all possible cases. This style is +used by the tt(bzr) and tt(hg) backends. In the case of tt(hg) it will invoke +the external hexdump program to parse the binary dirstate cache file; this +method will not return the local revision number. ) kindex(get-revision) item(tt(get-revision))( @@ -592,10 +901,18 @@ a repository's work tree (currently for the tt(git) and tt(hg) backends, where this kind of information is not always vital). For tt(git), the hash value of the currently checked out commit is available via the tt(%i) -expansion. With tt(hg), the local revision number is available via tt(%i) -and the corresponding global hash is available via tt(%m). -If this style is set in the tt(hg) context, the backend supports the -branchformat style. +expansion. With tt(hg), the local revision number and the corresponding +global hash are available via tt(%i). +) +kindex(get-mq) +item(tt(get-mq))( +If set to true, the tt(hg) backend will look for a Mercurial Queue (tt(mq)) +patch directory. Information will be available via the `tt(%m)' replacement. +) +kindex(get-bookmarks) +item(tt(get-bookmarks))( +If set to true, the tt(hg) backend will try to get a list of current +bookmarks. They will be available via the `tt(%m)' replacement. ) kindex(use-prompt-escapes) item(tt(use-prompt-escapes))( @@ -603,16 +920,26 @@ string from var(vcs_info) includes prompt escapes. (Used by tt(vcs_info_lastmsg).) ) +kindex(debug) +item(tt(debug))( +Enable debugging output to track possible problems. Currently this style +is only used by var(vcs_info)'s hooks system. +) +kindex(hooks) +item(tt(hooks))( +A list style that defines hook-function names. See tt(Hooks in vcs_info) +below for details. +) enditem() The default values for these styles in all contexts are: startsitem() -sitem(tt(formats))(" (%s)-[%b|%a]-") -sitem(tt(actionformats))(" (%s)-[%b]-") -sitem(tt(branchformat))("%b:%r" (for bzr, svn and svk)) +sitem(tt(formats))(" (%s)-[%b]%u%c-") +sitem(tt(actionformats))(" (%s)-[%b|%a]%u%c-") +sitem(tt(branchformat))("%b:%r" (for bzr, svn, svk and hg)) sitem(tt(nvcsformats))("") -sitem(tt(stgitformat))(" %p (%c)") +sitem(tt(hgrevformat))("%r:%h") sitem(tt(max-exports))(2) sitem(tt(enable))(ALL) sitem(tt(disable))((empty list)) @@ -624,77 +951,186 @@ sitem(tt(use-server))(false) sitem(tt(use-simple))(false) sitem(tt(get-revision))(false) +sitem(tt(get-mq))(true) +sitem(tt(get-bookmarks))(false) sitem(tt(use-prompt-escapes))(true) +sitem(tt(debug))(false) +sitem(tt(hooks))((empty list)) +sitem(tt(use-quilt))(false) +sitem(tt(quilt-standalone))(false) +sitem(tt(quilt-patch-dir))(empty - use var($QUILT_PATCHES)) +sitem(tt(quiltcommand))(quilt) endsitem() -In normal tt(formats) and tt(actionformats), the following replacements are +In normal tt(formats) and tt(actionformats) the following replacements are done: startsitem() -sitem(tt(%s))(The vcs in use (git, hg, svn etc.)) +sitem(tt(%s))(The VCS in use (git, hg, svn, etc.).) sitem(tt(%b))(Information about the current branch.) -sitem(tt(%a))(An identifier, that describes the action. Only makes sense in -actionformats.) -sitem(tt(%i))(The current revision number or identifier.) +sitem(tt(%a))(An identifier that describes the action. Only makes sense in +var(actionformats).) +sitem(tt(%i))(The current revision number or identifier. For tt(hg) +the var(hgrevformat) style may be used to customize the output.) sitem(tt(%c))(The string from the var(stagedstr) style if there are staged changes in the repository.) -sitem(tt(%u))(The string from the var(unstagedstr) style if there are unstaged -changes in the repository.) -sitem(tt(%R))(base directory of the repository.) -sitem(tt(%r))(repository name. If tt(%R) is var(/foo/bar/repoXY), tt(%r) is -var(repoXY).) -sitem(tt(%S))(subdirectory within a repository. If tt($PWD) is -var(/foo/bar/reposXY/beer/tasty), tt(%S) is var(beer/tasty).) -sitem(tt(%m))(A "misc" replacement. It is at the discretion of the backend -to decide what this replacement expands to. It is currently used by -the tt(hg) and tt(git) backends. The tt(hg) backend replaces tt(%m) with the -global hash value of the current revision and the tt(git) backend replaces it -with the string from the var(stgitformat) style.) +sitem(tt(%u))(The string from the var(unstagedstr) style if there are +unstaged changes in the repository.) +sitem(tt(%R))(The base directory of the repository.) +sitem(tt(%r))(The repository name. If tt(%R) is var(/foo/bar/repoXY), tt(%r) +is var(repoXY).) +sitem(tt(%S))(A subdirectory within a repository. If tt($PWD) is +var(/foo/bar/repoXY/beer/tasty), tt(%S) is var(beer/tasty).) +sitem(tt(%m))(A "misc" replacement. It is at the discretion of the backend to +decide what this replacement expands to. It is currently used by the tt(hg) +and tt(git) backends to display patch information from the tt(mq) and +tt(stgit) extensions.) endsitem() In tt(branchformat) these replacements are done: startsitem() -sitem(tt(%b))(the branch name) -sitem(tt(%r))(the current revision number) +sitem(tt(%b))(The branch name.) +sitem(tt(%r))(The current revision number or the var(hgrevformat) style for +tt(hg).) +endsitem() + +In tt(hgrevformat) these replacements are done: + +startsitem() +sitem(tt(%r))(The current local revision number.) +sitem(tt(%h))(The current 40-character changeset ID hash identifier.) endsitem() -In tt(stgitformat) these replacements are done: +In tt(patch-format) and tt(nopatch-format) these replacements are done: startsitem() -sitem(tt(%p))(the name of the patch currently on top of the stack) -sitem(tt(%c))(the number of unapplied patches) +sitem(tt(%p))(The name of the top-most applied patch.) +sitem(tt(%u))(The number of unapplied patches.) +sitem(tt(%n))(The number of applied patches.) +sitem(tt(%c))(The number of unapplied patches.) +sitem(tt(%g))(The names of active tt(mq) guards (tt(hg) backend).) +sitem(tt(%G))(The number of active tt(mq) guards (tt(hg) backend).) endsitem() -Not all vcs backends have to support all replacements. For tt(nvcsformats) -no replacements are performed at all. It is just a string. +Not all VCS backends have to support all replacements. For tt(nvcsformats) +no replacements are performed at all, it is just a string. subsect(Oddities) If you want to use the tt(%b) (bold off) prompt expansion in var(formats), which expands tt(%b) itself, use tt(%%b). That will cause the var(vcs_info) -expansion to replace tt(%%b) with tt(%b). So zsh's prompt expansion +expansion to replace tt(%%b) with tt(%b), so that zsh's prompt expansion mechanism can handle it. Similarly, to hand down tt(%b) from var(branchformat), use tt(%%%%b). Sorry for this inconvenience, but it cannot be easily avoided. Luckily we do not clash with a lot of prompt expansions and this only needs to be done for those. -subsect(Function descriptions (public API)) +subsect(Quilt Support) + +tt(Quilt) is not a version control system, therefore this is not implemented +as a backend. It can help keeping track of a series of patches. People use it +to keep a set of changes they want to use on top of software packages (which +is tightly integrated into the package build process - the Debian project +does this for a large number of packages). Quilt can also help individual +developers keep track of their own patches on top of real version control +systems. + +The var(vcs_info) integration tries to support both ways of using quilt by +having two slightly different modes of operation: `addon' mode and +`standalone' mode). + +For `addon' mode to become active var(vcs_info) must have already detected a +real version control system controlling the directory. If that is the case, +a directory that holds quilt's patches needs to be found. That directory is +configurable via the var(`QUILT_PATCHES') environment variable. If that +variable exists its value is used, otherwise the value tt(`patches') is +assumed. The value from var($QUILT_PATCHES) can be overwritten using the +tt(`quilt-patches') style. (Note: you can use var(vcs_info) to keep the value +of var($QUILT_PATCHES) correct all the time via the tt(post-quilt) hook). + +When the directory in question is found, quilt is assumed to be active. To +gather more information, var(vcs_info) looks for a directory called `.pc'; +Quilt uses that directory to track its current state. If this directory does +not exist we know that quilt has not done anything to the working directory +(read: no patches have been applied yet). + +If patches are applied, var(vcs_info) will try to find out which. If you want +to know which patches of a series are not yet applied, you need to activate +the tt(get-unapplied) style in the appropriate context. + +var(vcs_info) allows for very detailed control over how the gathered +information is presented (see the below sections, tt(Styles) and tt(Hooks in +vcs_info)), all of which are documented below. Note there are a number of +other patch tracking systems that work on top of a certain version control +system (like tt(stgit) for tt(git), or tt(mq) for tt(hg)); the configuration +for systems like that are generally configured the same way as the tt(quilt) +support. + +If the tt(quilt) support is working in `addon' mode, the produced string is +available as a simple format replacement (var(%Q) to be precise), which can +be used in tt(formats) and tt(actionformats); see below for details). + +If, on the other hand, the support code is working in `standalone' mode, +var(vcs_info) will pretend as if tt(quilt) were an actual version control +system. That means that the version control system identifier (which +otherwise would be something like `svn' or `cvs') will be set to +`tt(-quilt-)'. This has implications on the used style context where this +identifier is the second element. var(vcs_info) will have filled in a proper +value for the "repository's" root directory and the string containing the +information about quilt's state will be available as the `misc' replacement +(and var(%Q) for compatibility with `addon' mode. + +What is left to discuss is how `standalone' mode is detected. The detection +itself is a series of searches for directories. You can have this detection +enabled all the time in every directory that is not otherwise under version +control. If you know there is only a limited set of trees where you would +like var(vcs_info) to try and look for Quilt in `standalone' mode to minimise +the amount of searching on every call to var(vcs_info), there are a number of +ways to do that: + +Essentially, `standalone' mode detection is controlled by a style called +`tt(quilt-standalone)'. It is a string style and its value can have different +effects. The simplest values are: `tt(always)' to run detection every time +var(vcs_info) is run, and `tt(never)' to turn the detection off entirely. + +If the value of tt(quilt-standalone) is something else, it is interpreted +differently. If the value is the name of a scalar variable the value of that +variable is checked and that value is used in the same `always'/`never' way +as described above. + +If the value of tt(quilt-standalone) is an array, the elements of that array +are used as directory names under which you want the detection to be active. + +If tt(quilt-standalone) is an associative array, the keys are taken as +directory names under which you want the detection to be active, but only if +the corresponding value is the string `tt(true)'. + +Last, but not least, if the value of tt(quilt-standalone) is the name of a +function, the function is called without arguments and the return value +decides whether detection should be active. A `0' return value is true; a +non-zero return value is interpreted as false. + +Note, if there is both a function and a variable by the name of +tt(quilt-standalone), the function will take precedence. + + +subsect(Function Descriptions (Public API)) startitem() findex(vcs_info) item(tt(vcs_info) [var(user-context)])( -The main function, that runs all -backends and assembles all data into var(${vcs_info_msg_*_}). This is the -function you want to call from tt(precmd) if you want to include up-to-date -information in your prompt (see Variable description below). If an argument -is given, that string will be used instead of tt(default) in the -user-context field of the style context. +The main function, that runs all backends and assembles all data into +var(${vcs_info_msg_*_}). This is the function you want to call from +tt(precmd) if you want to include up-to-date information in your prompt (see +tt(Variable description) below). If an argument is given, that string will be +used instead of tt(default) in the tt(user-context) field of the style +context. ) item(tt(vcs_info_lastmsg))( Outputs the last var(${vcs_info_msg_*_}) value. -Takes into account the value of the use-prompt-escapes style in +Takes into account the value of the tt(use-prompt-escapes) style in var(':vcs_info:formats:command:-all-'). It also only prints tt(max-exports) values. ) @@ -713,14 +1149,14 @@ All functions named VCS_INFO_* are for internal use only. -subsect(Variable description) +subsect(Variable Description) startitem() item(tt(${vcs_info_msg_N_}) (Note the trailing underscore)) ( -Where var(N) is an integer, eg: var(vcs_info_msg_0_) These variables +Where var(N) is an integer, e.g., var(vcs_info_msg_0_). These variables are the storage for the informational message the last var(vcs_info) call -has assembled. These are strongly connected to the formats, +has assembled. These are strongly connected to the tt(formats), tt(actionformats) and tt(nvcsformats) styles described above. Those styles are lists. The first member of that list gets expanded into var(${vcs_info_msg_0_}), the second into var(${vcs_info_msg_1_}) @@ -731,9 +1167,198 @@ All variables named VCS_INFO_* are for internal use only. +subsect(Hooks in vcs_info) + +Hooks are places in var(vcs_info) where you can run your own code. That +code can communicate with the code that called it and through that, +change the system's behaviour. + +For configuration, hooks change the style context: +example(:vcs_info:+::) + +To register functions to a hook, you need to list them in the tt(hooks) +style in the appropriate context. + +Example: +example(zstyle ':vcs_info:*+foo:*' hooks bar baz) + +This registers functions to the hook `foo' for all backends. In order to +avoid namespace problems, all registered function names are prepended by +a `+vi-', so the actual functions called for the `foo' hook are +`tt(+vi-bar)' and `tt(+vi-baz)'. + +If something seems weird, you can enable the `debug' boolean style in +the proper context and the hook-calling code will print what it tried +to execute and whether the function in question existed. + +When you register more than one function to a hook, all functions are +executed one after another until one function returns non-zero or until +all functions have been called. + +You may pass data between functions via an associative array, tt(user_data). +For example: +example( ++vi-git-myfirsthook+LPAR()RPAR(){ + user_data[myval]=$myval +} ++vi-git-mysecondhook+LPAR()RPAR(){ + # do something with ${user_data[myval]} +}) + +There are a number of variables that are special in hook contexts: + +startitem() +item(tt(ret))( +The return value that the hooks system will return to the caller. The +default is an integer `zero'. If and how a changed tt(ret) value changes +the execution of the caller depends on the specific hook. See the hook +documentation below for details. +) +item(tt(hook_com))( +An associated array which is used for bidirectional communication from +the caller to hook functions. The used keys depend on the specific hook. +) +item(tt(context))( +The active context of the hook. Functions that wish to change this +variable should make it local scope first. +) +item(tt(vcs))( +The current VCS after it was detected. The same values as in the +enable/disable style are used. Available in all hooks except tt(start-up). +) +enditem() + +Finally, the full list of currently available hooks: + +startitem() +item(tt(start-up))( +Called after starting var(vcs_info) but before the VCS in this directory is +determined. It can be used to deactivate var(vcs_info) temporarily if +necessary. When tt(ret) is set to var(1), var(vcs_info) aborts and does +nothing; when set to var(2), var(vcs_info) sets up everything as if no +version control were active and exits. +) +item(tt(pre-get-data))( +Same as tt(start-up) but after the VCS was detected. +) +item(tt(gen-hg-bookmark-string))( +Called in the Mercurial backend when a bookmark string is generated; the +tt(get-revision) and tt(get-bookmarks) styles must be true. + +This hook gets the names of the Mercurial bookmarks that +var(vcs_info) collected from `hg'. + +When setting tt(ret) to non-zero, the string in +tt(${hook_com[hg-bookmark-string]}) will be used in the var(%m) escape in +tt(formats) and tt(actionformats) and will be availabe in the global +var(backend_misc) array as tt(${backend_misc[bookmarks]}). +) +item(tt(gen-applied-string))( +Called in the tt(git) (with tt(stgit)), and tt(hg) (with tt(mq)) backends +and in tt(quilt) support when the var(applied-string) is generated; the +tt(use-quilt) zstyle must be true for tt(quilt) (the tt(mq) and tt(stgit) +backends are active by default). + +This hook gets the names of all applied patches which var(vcs_info) collected +so far in the opposite order, which means that the first argument is the +top-most patch and so forth. + +When setting tt(ret) to non-zero, the string in +tt(${hook_com[applied-string]}) will be used in the var(%m) escape in +tt(formats) and tt(actionformats); it will be available in the global +var(backend_misc) array as tt($backend_misc[patches]}); and it will be +available as var(%p) in the tt(patch-format) and tt(nopatch-format) styles. +) +item(tt(gen-unapplied-string))( +Called in the tt(git) (with tt(stgit)), and tt(hg) (with tt(mq)) backend +and in tt(quilt) support when the var(unapplied-string) is generated; the +tt(get-unapplied) style must be true. + +This hook gets the names of all unapplied patches which var(vcs_info) +collected so far in the opposite order, which mean that the first argument is +the patch next-in-line to be applied and so forth. + +When setting tt(ret) to non-zero, the string in +tt(${hook_com[unapplied-string]}) will be available as var(%u) in the +tt(patch-format) and tt(nopatch-format) styles. +) +item(tt(gen-mqguards-string))( +Called in the tt(hg) backend when tt(guards-string) is generated; the +tt(get-mq) style must be true (default). + +This hook gets the names of any active tt(mq) guards. + +When setting tt(ret) to non-zero, the string in +tt(${hook_com[guards-string]}) will be used in the var(%g) escape in the +tt(patch-format) and tt(nopatch-format) styles. +) +item(tt(post-quilt))( +Called after the tt(quilt) support is done. The following information +is passed as arguments to the hook: 1. the quilt-support mode (`addon' or +`standalone'); 2. the directory that contains the patch series; 3. the +directory that holds quilt's status information (the `.pc' directory) or +the string tt("-nopc-") if that directory wasn't found. + +The `hook_com' parameter is not used. +) +item(tt(set-branch-format))( +Called before `tt(branchformat)' is set. The only argument to the +hook is the format that is configured at this point. + +The `tt(hook_com)' keys considered are `tt(branch)' and `tt(revision)'. +They are set to the values figured out so far by var(vcs_info) and any +change will be used directly when the actual replacement is done. + +If tt(ret) is set to to non-zero, the string in +tt(${hook_com[branch-replace]}) will be used unchanged as the +`tt(%b)' replacement in the variables set by var(vcs_info). +) +item(tt(set-hgrev-format))( +Called before a `tt(hgrevformat)' is set. The only argument to the +hook is the format that is configured at this point. + +The `tt(hook_com)' keys considered are `tt(hash)' and `tt(localrev)'. +They are set to the values figured out so far by var(vcs_info) and any +change will be used directly when the actual replacement is done. + +If tt(ret) is set to to non-zero, the string in +tt(${hook_com[rev-replace]}) will be used unchanged as the +`tt(%i)' replacement in the variables set by var(vcs_info). +) +item(tt(set-message))( +Called each time before a `tt(vcs_info_msg_N_)' message is set. +It takes two arguments; the first being the `N' in the message +variable name, the second is the currently configured tt(formats) or +tt(actionformats). + +There are a number of `tt(hook_com)' keys, that are used here: +`tt(action)', `tt(branch)', `tt(base)', `tt(base-name)', `tt(subdir)', +`tt(staged)', `tt(unstaged)', `tt(revision)', `tt(misc)', `tt(vcs)' +and one `tt(miscN)' entry for each backend-specific data field (tt(N) +starting at zero). They are set to the values figured out so far by +var(vcs_info) and any change will be used directly when the actual +replacement is done. + +Since this hook is triggered multiple times (once for each configured +tt(formats) or tt(actionformats)), each of the `tt(hook_com)' keys mentioned +above (except for the tt(miscN) entries) has an `tt(_orig)' counterpart, +so even if you changed a value to your liking you can still get the +original value in the next run. Changing the `tt(_orig)' values is +probably not a good idea. + +If tt(ret) is set to to non-zero, the string in +tt(${hook_com[message]}) will be used unchanged as the message by +var(vcs_info). +) +enditem() + +If all of this sounds rather confusing, take a look at the tt(Examples) +section below and also in the Misc/vcs_info-examples file in the Zsh source. +They contain some explanatory code. + subsect(Examples) -Don't use tt(vcs_info) at all (even though it's in your prompt): +Don't use var(vcs_info) at all (even though it's in your prompt): example(zstyle ':vcs_info:*' enable NONE) Disable the backends for tt(bzr) and tt(svk): @@ -746,6 +1371,17 @@ example(zstyle ':vcs_info:git:*' formats ' GIT, BABY! [%b]' zstyle ':vcs_info:git:*' actionformats ' GIT ACTION! [%b|%a]') +All tt(%x) expansion in all sorts of formats ("formats", "actionformats", +branchformat, you name it) are done using the `tt(zformat)' builtin from +the `tt(zsh/zutil)' module. That means you can do everything with these +tt(%x) items what zformat supports. In particular, if you want something +that is really long to have a fixed width, like a hash in a mercurial +branchformat, you can do this: tt(%12.12i). That'll shrink the 40 character +hash to its 12 leading characters. The form is actually +`tt(%)var(min)tt(.)var(max)tt(x)'. More is possible. +See ifzman(the section `The zsh/zutil Module' in zmanref(zshmodules))\ +ifnzman(noderef(The zsh/zutil Module)) for details. + Use the quicker tt(bzr) backend example(zstyle ':vcs_info:bzr:*' use-simple true) @@ -754,14 +1390,96 @@ Display the revision number in yellow for tt(bzr) and tt(svn): example(zstyle ':vcs_info:(svn|bzr):*' branchformat '%b%{'${fg[yellow]}'%}:%r') -If you want colors, make sure you enclose the color codes in tt(%{...%}), -if you want to use the string provided by tt(vcs_info) in prompts. +If you want colors, make sure you enclose the color codes in tt(%{...%}) +if you want to use the string provided by var(vcs_info) in prompts. -Here is how to print the vcs information as a command (not in a prompt): +Here is how to print the VCS information as a command (not in a prompt): example(alias vcsi='vcs_info command; vcs_info_lastmsg') This way, you can even define different formats for output via -tt(vcs_info_lastmsg) in the ':vcs_info:formats:command:*' namespace. +tt(vcs_info_lastmsg) in the ':vcs_info:*:command:*' namespace. + +Now as promised, some code that uses hooks: +say, you'd like to replace the string `svn' by `subversion' in +var(vcs_info)'s tt(%s) tt(formats) replacement. + +First, we will tell var(vcs_info) to call a function when populating +the message variables with the gathered information: +example(zstyle ':vcs_info:*+set-message:*' hooks svn2subversion) + +Nothing happens. Which is reasonable, since we didn't define the actual +function yet. To see what the hooks subsystem is trying to do, enable the +`tt(debug)' style: +example(zstyle ':vcs_info:*+*:*' debug true) + +That should give you an idea what is going on. Specifically, the function +that we are looking for is `tt(+vi-svn2subversion)'. Note, the `tt(+vi-)' +prefix. So, everything is in order, just as documented. When you are done +checking out the debugging output, disable it again: +example(zstyle ':vcs_info:*+*:*' debug false) + +Now, let's define the function: +example( +function +vi-svn2subversion+LPAR()RPAR() { + [[ ${hook_com[vcs_orig]} == svn ]] && hook_com[vcs]=subversion +}) + +Simple enough. And it could have even been simpler, if only we had +registered our function in a less generic context. If we do it only in +the `tt(svn)' backend's context, we don't need to test which the active +backend is: +example(zstyle ':vcs_info:svn+set-message:*' hooks svn2subversion) +example( +function +vi-svn2subversion+LPAR()RPAR() { + hook_com[vcs]=subversion +}) + +And finally a little more elaborate example, that uses a hook to create +a customised bookmark string for the tt(hg) backend. + +Again, we start off by registering a function: +example(zstyle ':vcs_info:hg+gen-hg-bookmark-string:*' hooks hgbookmarks) + +And then we define the `tt(+vi-hgbookmarks) function: +example( +function +vi-hgbookmarks+LPAR()RPAR() { + # The default is to connect all bookmark names by + # commas. This mixes things up a little. + # Imagine, there's one type of bookmarks that is + # special to you. Say, because it's *your* work. + # Those bookmarks look always like this: "sh/*" + # (because your initials are sh, for example). + # This makes the bookmarks string use only those + # bookmarks. If there's more than one, it + # concatenates them using commas. + local s i + # The bookmarks returned by `hg' are available in + # the functions positional parameters. + (( $# == 0 )) && return 0 + for i in "$@"; do + if [[ $i == sh/* ]]; then + [[ -n $s ]] && s=$s, + s=${s}$i + fi + done + # Now, the communication with the code that calls + # the hook functions is done via the hook_com[] + # hash. The key, at which the `gen-hg-bookmark-string' + # hook looks at is `hg-bookmark-string'. So: + hook_com[hg-bookmark-string]=$s + # And to signal, that we want to use the sting we + # just generated, set the special variable `ret' to + # something other than the default zero: + ret=1 + return 0 +} +) + +Some longer examples and code snippets which might be useful are available in +the examples file located at Misc/vcs_info-examples in the Zsh source +directory. + +This concludes our guided tour through zsh's var(vcs_info). texinode(Prompt Themes)(ZLE Functions)(Version Control Information)(User Contributions) @@ -1249,7 +1967,7 @@ character U+0180, the set of special characters less so. However, it it is very sporadic from that point. Adding new characters is easy, however; see the function tt(define-composed-chars). Please send any -additions to tt(zsh-workers@sunsite.dk). +additions to tt(zsh-workers@zsh.org). The codes for the second character when used to accent the first are as follows. Note that not every character can take every accent. @@ -1301,7 +2019,7 @@ item(Special letters)( Characters found in various variants of the Latin alphabet: startsitem() -sitem(tt(ss))(Eszett (scafes S)) +sitem(tt(ss))(Eszett (scharfes S)) sitem(tt(D-), tt(d-))(Eth) sitem(tt(TH), tt(th))(Thorn) sitem(tt(kk))(Kra) @@ -1554,14 +2272,14 @@ tindex(replace-pattern) xitem(tt(replace-string), tt(replace-pattern)) item(tt(replace-string-again), tt(replace-pattern-again))( -The function tt(replace-string) implements two widgets. +The function tt(replace-string) implements three widgets. If defined under the same name as the function, it prompts for two strings; the first (source) string will be replaced by the second everywhere it occurs in the line editing buffer. If the widget name contains the word `tt(pattern)', for example by defining the widget using the command `tt(zle -N replace-pattern -replace-string)', then the replacement is done by pattern matching. All +replace-string)', then the matching is performed using zsh patterns. All zsh extended globbing patterns can be used in the source string; note that unlike filename generation the pattern does not need to match an entire word, nor do glob qualifiers have any effect. In addition, the @@ -1572,6 +2290,12 @@ `tt(\{)var(N)tt(})' may be used to protect the digit from following digits. +If the widget instead contains the word `tt(regex)' (or `tt(regexp)'), +then the matching is performed using regular expressions, respecting +the setting of the option tt(RE_MATCH_PCRE) (see the description of the +function tt(regexp-replace) below). The special replacement facilities +described above for pattern matching are available. + By default the previous source or replacement string will not be offered for editing. However, this feature can be activated by setting the style tt(edit-previous) in the context tt(:zle:)var(widget) (for example, @@ -1579,12 +2303,12 @@ numeric argument forces the previous values to be offered, a negative or zero argument forces them not to be. -The function tt(replace-string-again) can be used to repeat the -previous replacement; no prompting is done. As with tt(replace-string), if -the name of the widget contains the word `tt(pattern)', pattern matching -is performed, else a literal string replacement. Note that the -previous source and replacement text are the same whether pattern or string -matching is used. +The function tt(replace-string-again) can be used to repeat the previous +replacement; no prompting is done. As with tt(replace-string), if the name +of the widget contains the word `tt(pattern)' or `tt(regex)', pattern or +regular expression matching is performed, else a literal string +replacement. Note that the previous source and replacement text are the +same whether pattern, regular expression or string matching is used. For example, starting from the line: @@ -1628,6 +2352,23 @@ tt(auto-previous) is unset or false (the default), the widget must be invoked repeatedly in order to search earlier history lines. ) +tindex(transpose-lines) +item(tt(transpose-lines))( +Only useful with a multi-line editing buffer; the lines here are +lines within the current on-screen buffer, not history lines. +The effect is similar to the function of the same name in Emacs. + +Transpose the current line with the previous line and move the cursor +to the start of the next line. Repeating this (which can be done by +providing a positive numeric prefix argument) has the effect of moving +the line above the cursor down by a number of lines. + +With a negative numeric prefix argument, requires two lines above the +cursor. These two lines are transposed and the cursor moved to the +start of the previous line. Using a numeric prefix less than -1 +has the effect of moving the line above the cursor up by minus that +number of lines. +) tindex(which-command) item(tt(which-command))( This function is a drop-in replacement for the builtin widget @@ -1967,7 +2708,7 @@ findex(zsh-mime-setup) findex(zsh-mime-handler) xitem(tt(zsh-mime-setup) [ tt(-fv) ] [ tt(-l) [ var(suffix ...) ] ]) -item(tt(zsh-mime-handler))( +item(tt(zsh-mime-handler [-l] var(command arguments ...)))( These two functions use the files tt(~/.mime.types) and tt(/etc/mime.types), which associate types and extensions, as well as tt(~/.mailcap) and tt(/etc/mailcap) files, which associate types and the programs that @@ -2191,6 +2932,12 @@ An example of a suitable tt(mailcap) entry for such a program is: example(text/html; /usr/bin/lynx '%s'; needsterminal) + +Running `tt(zsh-mime-handler -l) var(command line)' prints the command +line that would be executed, simplified to remove the effect of any +flags, and quoted so that the output can be run as a complete zsh +command line. This is used by the completion system to decide how to +complete after a file handled by tt(zsh-mime-setup). ) findex(pick-web-browser) item(tt(pick-web-browser))( @@ -2558,6 +3305,27 @@ See also the tt(pager), tt(prompt) and tt(rprompt) styles below. ) +findex(regexp-replace) +item(tt(regexp-replace) var(var) var(regexp) var(replace))( +Use regular expressions to perform a global search and replace operation +on a variable. If the option tt(RE_MATCH_PCRE) is not set, POSIX +extended regular expressions are used, else Perl-compatible regular +expressions (this requires the shell to be linked against the tt(pcre) +library). + +var(var) is the name of the variable containing the string to be matched. +The variable will be modified directly by the function. The +variables tt(MATCH), tt(MBEGIN), tt(MEND), tt(match), tt(mbegin), tt(mend) +should be avoided as these are used by the regular expression code. + +var(regexp) is the regular expression to match against the string. + +var(replace) is the replacement text. This can contain parameter, command +and arithmetic expressions which will be replaced: in particular, a +reference to tt($MATCH) will be replaced by the text matched by the pattern. + +The return status is 0 if at least one match was performed, else 1. +) findex(run-help) item(tt(run-help) var(cmd))( This function is designed to be invoked by the tt(run-help) ZLE widget, @@ -2565,7 +3333,7 @@ ifzman(above)\ ifnzman((noderef(Utilities))) for setup instructions. -In the discussion which follows, if var(cmd) is a filesystem path, it is +In the discussion which follows, if var(cmd) is a file system path, it is first reduced to its rightmost component (the file name). Help is first sought by looking for a file named var(cmd) in the directory diff -Nru zsh-4.3.10/Doc/Zsh/expn.yo zsh-4.3.11/Doc/Zsh/expn.yo --- zsh-4.3.10/Doc/Zsh/expn.yo 2009-03-23 13:46:05.000000000 +0100 +++ zsh-4.3.11/Doc/Zsh/expn.yo 2010-12-17 18:08:11.000000000 +0100 @@ -117,7 +117,7 @@ More precisely, the sequence `tt(^)var(foo)tt(^)var(bar)tt(^)' is synonymous with `tt(!!:s)tt(^)var(foo)tt(^)var(bar)tt(^)', hence other modifiers (see noderef(Modifiers)) may follow the final `tt(^)'. -In particular, `tt(^)var(foo)tt(^)var(bar)tt(:G)' performs a global +In particular, `tt(^)var(foo)tt(^)var(bar)tt(^:G)' performs a global substitution. If the shell encounters the character sequence `tt(!")' @@ -273,6 +273,8 @@ perform global substitution, i.e. substitute every occurrence of var(r) for var(l). Note that the tt(g) or tt(:G) must appear in exactly the position shown. + +See further notes on this form of substitution below. ) item(tt(&))( Repeat the previous tt(s) substitution. Like tt(s), may be preceded @@ -293,18 +295,21 @@ ) enditem() -The tt(s/l/r/) substitution works as follows. By default the left-hand -side of substitutions are not patterns, but character strings. Any -character can be used as the delimiter in place of `tt(/)'. A -backslash quotes the delimiter character. The character `tt(&)', in -the right-hand-side var(r), is replaced by the text from the +The tt(s/)var(l)tt(/)var(r)tt(/) substitution works as follows. By +default the left-hand side of substitutions are not patterns, but +character strings. Any character can be used as the delimiter in place +of `tt(/)'. A backslash quotes the delimiter character. The character +`tt(&)', in the right-hand-side var(r), is replaced by the text from the left-hand-side var(l). The `tt(&)' can be quoted with a backslash. A -null var(l) uses the previous string either from the previous var(l) -or from the contextual scan string var(s) from `tt(!?)var(s)'. You can +null var(l) uses the previous string either from the previous var(l) or +from the contextual scan string var(s) from `tt(!?)var(s)'. You can omit the rightmost delimiter if a newline immediately follows var(r); -the rightmost `tt(?)' in a context scan can similarly be omitted. -Note the same record of the last var(l) and var(r) is maintained -across all forms of expansion. +the rightmost `tt(?)' in a context scan can similarly be omitted. Note +the same record of the last var(l) and var(r) is maintained across all +forms of expansion. + +Note that if a `tt(&)' is used within glob qualifers an extra backslash +is needed as a tt(&) is a special character in this case. If the option tt(HIST_SUBST_PATTERN) is set, var(l) is treated as a pattern of the usual form described in @@ -385,7 +390,8 @@ case, the substitution must appear with no trailing string. In the case of the tt(<) or tt(>) forms, the shell runs the commands in -var(list) asynchronously. If the system supports the tt(/dev/fd) +var(list) as a subprocess of the job executing the shell command line. +If the system supports the tt(/dev/fd) mechanism, the command argument is the name of the device file corresponding to a file descriptor; otherwise, if the system supports named pipes (FIFOs), the command argument will be a named pipe. If the form with @@ -451,7 +457,7 @@ example(tt(paste >LPAR())var(process)tt(RPAR())) (note that no tt(MULTIOS) are involved), var(process) will be run -asynchronously. The workaround is: +asynchronously as far as the parent shell is concerned. The workaround is: example(tt({ paste >LPAR())var(process)tt(RPAR())) @@ -579,6 +585,71 @@ the matching array elements are removed (use the `tt((M))' flag to remove the non-matched elements). ) +xitem(tt(${)var(name)tt(:)var(offset)tt(})) +item(tt(${)var(name)tt(:)var(offset)tt(:)var(length)tt(}))( +This syntax gives effects similar to parameter subscripting +in the form tt($)var(name)tt({)var(start)tt(,)var(end)tt(}), but is +compatible with other shells; note that both var(offset) and var(length) +are interpreted differently from the components of a subscript. + +If var(offset) is non-negative, then if the variable var(name) is a +scalar substitute the contents starting var(offset) characters from the +first character of the string, and if var(name) is an array substitute +elements starting var(offset) elements from the first element. If +var(length) is given, substitute that many characters or elements, +otherwise the entire rest of the scalar or array. + +A positive var(offset) is always treated as the offset of a character or +element in var(name) from the first character or element of the array +(this is different from native zsh subscript notation). Hence 0 +refers to the first character or element regardless of the setting of +the option tt(KSH_ARRAYS). + +A negative offset counts backwards from the end of the scalar or array, +so that -1 corresponds to the last character or element, and so on. + +var(length) is always treated directly as a length and hence may not be +negative. The option tt(MULTIBYTE) is obeyed, i.e. the offset and length +count multibyte characters where appropriate. + +var(offset) and var(length) undergo the same set of shell substitutions +as for scalar assignment; in addition, they are then subject to arithmetic +evaluation. Hence, for example + +example(print ${foo:3} +print ${foo: 1 + 2} +print ${foo:$(( 1 + 2))} +print ${foo:$(echo 1 + 2)}) + +all have the same effect, extracting the string starting at the fourth +character of tt($foo) if the substution would otherwise return a scalar, +or the array starting at the fourth element if tt($foo) would return an +array. Note that with the option tt(KSH_ARRAYS) tt($foo) always returns +a scalar (regardless of the use of the offset syntax) and a form +such as tt($foo[*]:3) is required to extract elements of an array named +tt(foo). + +If var(offset) is negative, the tt(-) may not appear immediately +after the tt(:) as this indicates the +tt(${)var(name)tt(:-)var(word)tt(}) form of substitution. Instead, a space +may be inserted before the tt(-). Furthermore, neither var(offset) nor +var(length) may begin with an alphabetic character or tt(&) as these are +used to indicate history-style modifiers. To substitute a value from a +variable, the recommended approach is to proceed it with a tt($) as this +signifies the intention (parameter substitution can easily be rendered +unreadable); however, as arithmetic substitution is performed, the +expression tt(${var: offs}) does work, retrieving the offset from +tt($offs). + +For further compatibility with other shells there is a special case +for array offset 0. This usually accesses to the +first element of the array. However, if the substitution refers the +positional parameter array, e.g. tt($@) or tt($*), then offset 0 +instead refers to tt($0), offset 1 refers to tt($1), and so on. In +other words, the positional parameter array is effectively extended by +prepending tt($0). Hence tt(${*:0:1}) substitutes tt($0) and +tt(${*:1:1}) substitutes tt($1). +) xitem(tt(${)var(name)tt(/)var(pattern)tt(/)var(repl)tt(})) item(tt(${)var(name)tt(//)var(pattern)tt(/)var(repl)tt(}))( Replace the longest possible match of var(pattern) in the expansion of @@ -766,13 +837,22 @@ of alphanumeric characters separated by non-alphanumerics, em(not) to words that result from field splitting. ) +item(tt(D))( +Assume the string or array elements contain directories and attempt +to substitute the leading part of these by names. The remainder of +the path (the whole of it if the leading part was not subsituted) +is then quoted so that the whole string can be used as a shell +argument. This is the reverse of `tt(~)' substitution: see +ifnzman(noderef(Filename Expansion))\ +ifzman(the section FILENAME EXPANSION below). +) item(tt(e))( Perform em(parameter expansion), em(command substitution) and em(arithmetic expansion) on the result. Such expansions can be nested but too deep recursion may have unpredictable effects. ) item(tt(f))( -Split the result of the expansion to lines. This is a shorthand +Split the result of the expansion at newlines. This is a shorthand for `tt(ps:\n:)'. ) item(tt(F))( @@ -825,14 +905,22 @@ tt(${(P)${foo}}), and tt(${(P)$(echo bar)}) will be expanded to `tt(baz)'. ) item(tt(q))( -Quote the resulting words with backslashes; unprintable or invalid -characters are quoted using the tt($'\)var(NNN)tt(') form, with separate -quotes for each octet. If this flag is given -twice, the resulting words are quoted in single quotes and if it is -given three times, the words are quoted in double quotes; in these forms -no special handling of unprintable or invalid characters is attempted. If -the flag is given four times, the words are quoted in single quotes -preceded by a tt($). +Quote characters that are special to the shell in the resulting words with +backslashes; unprintable or invalid characters are quoted using the +tt($'\)var(NNN)tt(') form, with separate quotes for each octet. + +If this flag is given twice, the resulting words are quoted in single +quotes and if it is given three times, the words are quoted in double +quotes; in these forms no special handling of unprintable or invalid +characters is attempted. If the flag is given four times, the words are +quoted in single quotes preceded by a tt($). Note that in all three of +these forms quoting is done unconditionally, even if this does not change +the way the resulting string would be interpreted by the shell. + +If a tt(q-) is given (only a single tt(q) may appear), a minimal +form of single quoting is used that only quotes the string if needed to +protect special characters. Typically this form gives the most readable +output. ) item(tt(Q))( Remove one level of quotes from the resulting words. @@ -918,6 +1006,8 @@ item(tt(z))( Split the result of the expansion into words using shell parsing to find the words, i.e. taking into account any quoting in the value. +Comments are not treated specially but as ordinary strings, similar +to interactive shells with the tt(INTERACTIVE_COMMENTS) option unset. Note that this is done very late, as for the `tt((s))' flag. So to access single words in the result, one has to use nested expansions as @@ -977,7 +1067,7 @@ padding; otherwise individual multibyte characters are treated as occupying one unit of width. -IF the tt(MULTIBYTE) option is not in effect, each byte in the string is +If the tt(MULTIBYTE) option is not in effect, each byte in the string is treated as occupying one unit of width. Control characters are always assumed to be one unit wide; this allows the @@ -987,10 +1077,18 @@ Only useful together with one of the flags tt(l) or tt(r) or with the tt(#) length operator when the tt(MULTIBYTE) option is in effect. Use the character width reported by the system in -calculating the how much of the string it occupies or the overall +calculating how much of the string it occupies or the overall length of the string. Most printable characters have a width of one unit, however certain Asian character sets and certain special effects use wider characters; combining characters have zero width. +Non-printable characters are arbitrarily counted as zero width; how they +would actually be displayed will vary. + +If the tt(m) is repeated, the character either counts zero (if it has +zero width), else one. For printable character strings this has the +effect of counting the number of glyphs (visibly separate characters), +except for the case where combining characters themselves have non-zero +width (true in certain alphabets). ) item(tt(r:)var(expr)tt(::)var(string1)tt(::)var(string2)tt(:))( As tt(l), but pad the words on the right and insert var(string2) @@ -1019,6 +1117,25 @@ empty field. To override this behaviour, supply the "(@)" flag as well, i.e. tt("${(@s.:.)line}"). ) +item(tt(Z:)var(opts)tt(:))( +As tt(z) but takes a combination of option letters between a following +pair of delimiter characters. tt(LPAR()Z+PLUS()c+PLUS()RPAR()) +causes comments to be parsed as a string and retained; any field in the +resulting array beginning with an unquoted comment character is a +comment. tt(LPAR()Z+PLUS()C+PLUS()RPAR()) causes comments to be parsed +and removed. The rule for comments is standard: anything between a word +starting with the third character of tt($HISTCHARS), default tt(#), up to +the next newline is a comment. tt(LPAR()Z+PLUS()n+PLUS()RPAR()) causes +unquoted newlines to be treated as ordinary whitespace, else they are +treated as if they are shell code delimiters and converted to +semicolons. +) +item(tt(_:)var(flags)tt(:))( +The underscore (tt(_)) flag is reserved for future use. As of this +revision of zsh, there are no valid var(flags); anything following an +underscore, other than an empty pair of delimiters, is treated as an +error, and the flag itself has no effect. +) enditem() The following flags are meaningful with the tt(${)...tt(#)...tt(}) or @@ -1139,7 +1256,7 @@ item(tt(6.) em(Nested Subscripting))( Any remaining subscripts (i.e. of a nested substitution) are evaluated at this point, based on whether the value is an array or a scalar. As with -tt(2.), multiple subscripts can appear. Note that tt(${foo[2,4][2]}) is +tt(3.), multiple subscripts can appear. Note that tt(${foo[2,4][2]}) is thus equivalent to tt(${${foo[2,4]}[2]}) and also to tt("${${(@)foo[2,4]}[2]}") (the nested substitution returns an array in both cases), but not to tt("${${foo[2,4]}[2]}") (the nested substitution @@ -1151,44 +1268,70 @@ noderef(Modifiers) in noderef(History Expansion)), are applied to the words of the value at this level. ) -item(tt(8.) em(Forced Joining))( +item(tt(8.) em(Character evaluation))( +Any tt((#)) flag is applied, evaluating the result so far numerically +as a character. +) +item(tt(9.) em(Length))( +Any initial tt(#) modifier, i.e. in the form tt(${#)var(var)tt(}), is +used to evaluate the length of the expression so far. +) +item(tt(10.) em(Forced Joining))( If the `tt((j))' flag is present, or no `tt((j))' flag is present but -the string is to be split as given by rules tt(8.) or tt(9.), and joining -did not take place at step tt(4.), any words in the value are joined +the string is to be split as given by rules tt(16.) or tt(17.), and joining +did not take place at step tt(5.), any words in the value are joined together using the given string or the first character of tt($IFS) if none. Note that the `tt((F))' flag implicitly supplies a string for joining in this manner. ) -item(tt(9.) em(Forced Splitting))( +item(tt(11.) em(Case modification))( +Any case modification from one of the flags tt((L)), tt((U)) or tt((C)) +is applied. +) +item(tt(12.) em(Prompt evaluation))( +Any prompt-style formatting from the tt((%)) family of flags is applied. +) +item(tt(13.) em(Quote application))( +Any quoting or unquoting using tt((q)) and tt((Q)) and related flags +is applied. +) +item(tt(14.) em(Directory naming))( +Any directory name substitution using tt((D)) flag is applied. +) +item(tt(15.) em(Visibility enhancment))( +Any modifications to make characters visible using the tt((V)) flag +are applied. +) +item(tt(16.) em(Forced Splitting))( If one of the `tt((s))', `tt((f))' or `tt((z))' flags are present, or the `tt(=)' specifier was present (e.g. tt(${=)var(var)tt(})), the word is split on occurrences of the specified string, or (for tt(=) with neither of the two flags present) any of the characters in tt($IFS). ) -item(tt(10.) em(Shell Word Splitting))( +item(tt(17.) em(Shell Word Splitting))( If no `tt((s))', `tt((f))' or `tt(=)' was given, but the word is not quoted and the option tt(SH_WORD_SPLIT) is set, the word is split on occurrences of any of the characters in tt($IFS). Note this step, too, takes place at all levels of a nested substitution. ) -item(tt(11.) em(Uniqueness))( +item(tt(18.) em(Uniqueness))( If the result is an array and the `tt((u))' flag was present, duplicate elements are removed from the array. ) -item(tt(12.) em(Ordering))( +item(tt(19.) em(Ordering))( If the result is still an array and one of the `tt((o))' or `tt((O))' flags was present, the array is reordered. ) -item(tt(13.) em(Re-Evaluation))( +item(tt(20.) em(Re-Evaluation))( Any `tt((e))' flag is applied to the value, forcing it to be re-examined for new parameter substitutions, but also for command and arithmetic substitutions. ) -item(tt(14.) em(Padding))( +item(tt(21.) em(Padding))( Any padding of the value by the `tt(LPAR()l.)var(fill)tt(.RPAR())' or `tt(LPAR()r.)var(fill)tt(.RPAR())' flags is applied. ) -item(tt(15.) em(Semantic Joining))( +item(tt(22.) em(Semantic Joining))( In contexts where expansion semantics requires a single word to result, all words are rejoined with the first character of tt(IFS) between. So in `tt(${LPAR()P)tt(RPAR()${LPAR()f)tt(RPAR()lines}})' @@ -1197,6 +1340,15 @@ If a single word is not required, this rule is skipped. ) +item(tt(23.) em(Empty argument removal))( +If the substitution does not appear in double quotes, any resulting +zero-length argument, whether from a scalar or an element of an array, +is elided from the list of arguments inserted into the command line. + +Strictly speaking, the removal happens later as the same happens with +other forms of substitution; the point to note here is simply that +it occurs after any of the above parameter operations. +) enditem() subsect(Examples) @@ -1288,9 +1440,20 @@ is expanded to every number between var(n1) and var(n2) inclusive. If either number begins with a zero, all the resulting numbers will be padded with leading zeroes to -that minimum width. If the numbers are in decreasing order the +that minimum width, but for negative numbers the tt(-) character is also +included in the width. If the numbers are in decreasing order the resulting sequence will also be in decreasing order. +An expression of the form `tt({)var(n1)tt(..)var(n2)tt(..)var(n3)tt(})', +where var(n1), var(n2), and var(n3) are integers, +is expanded as above, but only every var(n3)th number starting from var(n1) +is output. If var(n3) is negative the numbers are output in reverse order, +this is slightly different from simply swapping var(n1) and var(n2) in the case +that the step var(n3) doesn't evenly divide the range. Zero padding can be +specified in any of the three numbers, specifying it in the third can be useful +to pad for example `tt({-99..100..01})' which is not possible to specify by putting a +0 on either of the first two numbers (i.e. pad to two characters). + If a brace expression matches none of the above forms, it is left unchanged, unless the option tt(BRACE_CCL) (an abbreviation for `brace character class') is set. @@ -1330,8 +1493,8 @@ replaced with the appropriate substitute value. A `tt(~)' by itself is replaced by the value of tt($HOME). -A `tt(~)' followed by a `tt(PLUS())' or a `tt(-)' is replaced by the value of -tt($PWD) or tt($OLDPWD), respectively. +A `tt(~)' followed by a `tt(PLUS())' or a `tt(-)' is replaced by current +or previous working directory, respectively. A `tt(~)' followed by a number is replaced by the directory at that position in the directory stack. @@ -1388,6 +1551,12 @@ length matched (16 in the example) is longer than that matched by any static name. +The completion system calls `tt(zsh_directory_name c)' in order to +complete dynamic names for directories. The code for this should be +as for any other completion function as described in +ifnzman(noderef(Completion System))\ +ifzman(zmanref(zshcompsys)). + As a working example, here is a function that expands any dynamic names beginning with the string tt(p:) to directories below tt(/home/pws/perforce). In this simple case a static name for the @@ -1398,16 +1567,28 @@ setopt extendedglob local -a match mbegin mend if [[ $1 = d ]]; then + # turn the directory into a name if [[ $2 = (#b)(/home/pws/perforce/)([^/]##)* ]]; then typeset -ga reply reply=(p:$match[2] $(( ${#match[1]} + ${#match[2]} )) ) else return 1 fi - else + elif [[ $1 = n ]]; then + # turn the name into a directory [[ $2 != (#b)p:(?*) ]] && return 1 typeset -ga reply reply=(/home/pws/perforce/$match[1]) + elif [[ $1 = c ]]; then + # complete names + local expl + local -a dirs + dirs=(/home/pws/perforce/*(/:t)) + dirs=(p:${^dirs}) + _wanted dynamic-dirs expl 'dynamic directory' compadd -S\] -a dirs + return + else + return 1 fi return 0 }) @@ -2019,7 +2200,7 @@ `full' (i.e. non-empty) directories. Note that the opposite sense tt(LPAR()^F)tt(RPAR()) expands to empty directories and all non-directories. Use tt(LPAR()/^F)tt(RPAR()) for -empty directories +empty directories. ) item(tt(.))( plain files @@ -2128,12 +2309,17 @@ item(tt(PLUS())var(cmd))( The var(string) will be executed as shell code. The filename will be included in the list if and only if the code returns a zero status (usually -the status of the last command). The first character after the `tt(e)' +the status of the last command). + +In the first form, the first character after the `tt(e)' will be used as a separator and anything up to the next matching separator will be taken as the var(string); `tt([)', `tt({)', and `tt(<)' match `tt(])', `tt(})', and `tt(>)', respectively, while any other character matches itself. Note that expansions must be quoted in the var(string) to prevent them from being expanded before globbing is done. +var(string) is then executed as shell code. The string tt(globqual) +is appended to the array tt(zsh_eval_context) the duration of +execution. vindex(REPLY, use of) vindex(reply, use of) @@ -2215,10 +2401,17 @@ ) item(tt(L)[tt(PLUS())|tt(-)]var(n))( files less than var(n) bytes (tt(-)), more than var(n) bytes (tt(PLUS())), or -exactly var(n) bytes in length. If this flag is directly followed by a `tt(k)' -(`tt(K)'), `tt(m)' (`tt(M)'), or `tt(p)' (`tt(P)') (e.g. `tt(Lk-50)') -the check is performed with kilobytes, megabytes, or blocks (of 512 bytes) -instead. +exactly var(n) bytes in length. + +If this flag is directly followed by a `tt(k)' (`tt(K)'), `tt(m)' +(`tt(M)'), or `tt(p)' (`tt(P)') (e.g. `tt(Lk-50)') the check is performed +with kilobytes, megabytes, or blocks (of 512 bytes) instead. In this +case a file is regarded as "exactly" the size if the file size rounded up +to the next unit is equal to the test size. Hence `tt(*LPAR()Lm1+RPAR())' +matches files from 1 byte up to 1 Megabyte inclusive. Note also that +the set of files "less than" the test size only includes files that would +not match the equality test; hence `tt(*LPAR()Lm-1+RPAR())' only matches +files of zero size. ) item(tt(^))( negates all qualifiers following it @@ -2267,12 +2460,13 @@ tt(oe) and tt(o+) are special cases; they are each followed by shell code, delimited as for the tt(e) glob qualifier and the tt(+) glob qualifier respectively (see above). The code is executed for each matched file with -the parameter tt(REPLY) set to the name of the file on entry. The code -should modify the parameter tt(REPLY) in some fashion. On return, the value -of the parameter is used instead of the file name as the string on which to -sort. Unlike other sort operators, tt(oe) and tt(o+) may be repeated, but -note that the maximum number of sort operators of any kind that may appear -in any glob expression is 12. +the parameter tt(REPLY) set to the name of the file on entry and +tt(globsort) appended to tt(zsh_eval_context). The code +should modify the parameter tt(REPLY) in some fashion. On return, the +value of the parameter is used instead of the file name as the string on +which to sort. Unlike other sort operators, tt(oe) and tt(o+) may be +repeated, but note that the maximum number of sort operators of any kind +that may appear in any glob expression is 12. ) item(tt(O)var(c))( like `tt(o)', but sorts in descending order; i.e. `tt(*(^oc))' is the @@ -2288,6 +2482,18 @@ them count from the last match backward. E.g.: `tt(*(-OL[1,3]))' gives a list of the names of the three largest files. ) +item(tt(P)var(string))( +The var(string) will be prepended to each glob match as a separate +word. var(string) is delimited in the same way as arguments to the +tt(e) glob qualifier described above. The qualifier can be repeated; +the words are prepended separately so that the resulting command +line contains the words in the same order they were given in the +list of glob qualifiers. + +A typical use for this is to prepend an option before all occurrences +of a file name; for example, the pattern `tt(*(P:-f:))' produces the +command line arguments `tt(-f) var(file1) tt(-f) var(file2) ...' +) enditem() More than one of these lists can be combined, separated by commas. The diff -Nru zsh-4.3.10/Doc/Zsh/grammar.yo zsh-4.3.11/Doc/Zsh/grammar.yo --- zsh-4.3.10/Doc/Zsh/grammar.yo 2008-06-10 10:44:45.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/grammar.yo 2010-10-27 14:47:44.000000000 +0200 @@ -222,6 +222,10 @@ var(word) is expanded and treated as an arithmetic expression, which must evaluate to a number var(n). var(list) is then executed var(n) times. + +The tt(repeat) syntax is disabled by default when the +shell starts in a mode emulating another shell. It can be enabled +with the command `tt(enable -r repeat)' ) findex(case) cindex(case selection) @@ -366,10 +370,10 @@ sect(Alternate Forms For Complex Commands) cindex(alternate forms for complex commands) cindex(commands, alternate forms for complex) -Many of zsh's complex commands have alternate forms. These particular -versions of complex commands should be considered deprecated and may be -removed in the future. The versions in the previous section should be -preferred instead. +Many of zsh's complex commands have alternate forms. These are +non-standard and are likely not to be obvious even to seasoned shell +programmers; they should not be used anywhere that portability of shell +code is a concern. The short versions below only work if var(sublist) is of the form `tt({) var(list) tt(})' or if the tt(SHORT_LOOPS) option is set. For the tt(if), @@ -473,12 +477,16 @@ An alias is defined using the tt(alias) builtin; global aliases may be defined using the tt(-g) option to that builtin. -Alias expansion is done on the shell input before any -other expansion except history expansion. Therefore, -if an alias is defined for the word tt(foo), alias expansion -may be avoided by quoting part of the word, e.g. tt(\foo). -But there is nothing to prevent an alias being defined -for tt(\foo) as well. +Alias expansion is done on the shell input before any other expansion +except history expansion. Therefore, if an alias is defined for the +word tt(foo), alias expansion may be avoided by quoting part of the +word, e.g. tt(\foo). Any form of quoting works, although there is +nothing to prevent an alias being defined for the quoted form such as +tt(\foo) as well. For use with completion, which would remove an +initial backslash followed by a character that isn't special, it may be +more convenient to quote the word by starting with a single quote, +i.e. tt('foo); completion will automatically add the trailing single +quote. There is a commonly encountered problem with aliases illustrated by the following code: @@ -492,6 +500,27 @@ a problem in shell scripts, functions, and code executed with `tt(source)' or `tt(.)'. Consequently, use of functions rather than aliases is recommended in non-interactive code. + +Note also the unhelpful interaction of aliases and function definitions: + +example(alias func='noglob func' +func+LPAR()RPAR() { + echo Do something with $* +}) + +Because aliases are expanded in function defintions, this causes the +following command to be executed: + +example(noglob func+LPAR()RPAR() { + echo Do something with $* +}) + +which defines tt(noglob) as well as tt(func) as functions with the +body given. To avoid this, either quote the name tt(func) or use the +alternative function definition form `tt(function func)'. Ensuring the +alias is defined after the function works but is problematic if the +code fragment might be re-executed. + texinode(Quoting)()(Aliasing)(Shell Grammar) sect(Quoting) cindex(quoting) diff -Nru zsh-4.3.10/Doc/Zsh/invoke.yo zsh-4.3.11/Doc/Zsh/invoke.yo --- zsh-4.3.10/Doc/Zsh/invoke.yo 2005-10-17 12:44:19.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/invoke.yo 2010-03-16 10:44:48.000000000 +0100 @@ -1,7 +1,7 @@ texinode(Invocation)(Files)(Roadmap)(Top) chapter(Invocation) cindex(invocation) -sect(Invocation Options) +sect(Invocation) cindex(shell options) cindex(options, shell) cindex(shell flags) @@ -17,7 +17,8 @@ parameter. ) item(tt(-i))( -Force shell to be interactive. +Force shell to be interactive. It is still possible to specify a +script to execute. ) item(tt(-s))( Force shell to read commands from the standard input. @@ -27,6 +28,15 @@ ) enditem() +If there are any remaining arguments after option processing, and neither +of the options tt(-c) or tt(-s) was supplied, the first argument is taken +as the file name of a script containing shell commands to be executed. If +the option tt(PATH_SCRIPT) is set, and the file name does not contain a +directory path (i.e. there is no `tt(/)' in the name), first the current +directory and then the command path given by the variable tt(PATH) are +searched for the script. If the option is not set or the file name +contains a `tt(/)' it is used directly. + After the first one or two arguments have been appropriated as described above, the remaining arguments are assigned to the positional parameters. diff -Nru zsh-4.3.10/Doc/Zsh/manual.yo zsh-4.3.11/Doc/Zsh/manual.yo --- zsh-4.3.10/Doc/Zsh/manual.yo 2009-04-17 15:13:16.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/manual.yo 2010-09-23 11:56:19.000000000 +0200 @@ -184,7 +184,7 @@ item(The HTML manual)( An HTML version of this manual is available at the Zsh web site via: -tt(http://zsh.sunsite.dk/Doc/). +tt(http://zsh.sourceforge.net/Doc/). (The HTML version is produced with bf(texi2html), which may be obtained from tt(http://www.nongnu.org/texi2html/). The command is diff -Nru zsh-4.3.10/Doc/Zsh/metafaq.yo zsh-4.3.11/Doc/Zsh/metafaq.yo --- zsh-4.3.10/Doc/Zsh/metafaq.yo 2006-10-16 19:01:39.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/metafaq.yo 2010-10-18 11:31:36.000000000 +0200 @@ -12,7 +12,7 @@ cindex(author) Zsh was originally written by Paul Falstad tt(). Zsh is now maintained by the members of the zsh-workers mailing -list tt(). The development is currently +list tt(). The development is currently coordinated by Peter Stephenson tt(). The coordinator can be contacted at tt(), but matters relating to the code should generally go to the mailing list. @@ -34,9 +34,6 @@ nofill(tt(ftp://ftp.zsh.org/pub/zsh/) tt(http://www.zsh.org/pub/zsh/)) ) -item(Denmark)( -nofill(tt(ftp://sunsite.dk/pub/unix/shells/zsh/)) -) item(Finland)( nofill(tt(ftp://ftp.funet.fi/pub/unix/shells/zsh/)) ) @@ -88,8 +85,10 @@ ) enditem() -The up-to-date source code is available via anonymous CVS from Sourceforge. -See tt(http://sourceforge.net/projects/zsh/) for details. +The up-to-date source code is available via anonymous CVS and Git from +Sourceforge. See tt(http://sourceforge.net/projects/zsh/) for details. +A summary of instructions for the CVS and Git archives can be found at +tt(http://zsh.sourceforget.net/). texinode(Mailing Lists)(The Zsh FAQ)(Availability)(Introduction) sect(Mailing Lists) @@ -97,14 +96,14 @@ Zsh has 3 mailing lists: startitem() -item(tt())( +item(tt())( Announcements about releases, major changes in the shell and the monthly posting of the Zsh FAQ. (moderated) ) -item(tt())( +item(tt())( User discussions. ) -item(tt())( +item(tt())( Hacking, development, bug reports and patches. ) enditem() @@ -113,13 +112,13 @@ to the associated administrative address for the mailing list. startlist() -list(tt()) -list(tt()) -list(tt()) - -list(tt()) -list(tt()) -list(tt()) +list(tt()) +list(tt()) +list(tt()) + +list(tt()) +list(tt()) +list(tt()) endlist() YOU ONLY NEED TO JOIN ONE OF THE MAILING LISTS AS THEY ARE NESTED. @@ -154,7 +153,7 @@ manual, with explanations and hints on issues where the manual can be cabbalistic, hierographic, or downright mystifying (for example, the word `hierographic' does not exist). It can be viewed in its current state at -tt(http://zsh.sunsite.dk/Guide/). At the time of writing, chapters +tt(http://zsh.sourceforge.net/Guide/). At the time of writing, chapters dealing with startup files and their contents and the new completion system were essentially complete. sect(The Zsh Wiki) diff -Nru zsh-4.3.10/Doc/Zsh/mod_attr.yo zsh-4.3.11/Doc/Zsh/mod_attr.yo --- zsh-4.3.10/Doc/Zsh/mod_attr.yo 2009-03-03 15:51:04.000000000 +0100 +++ zsh-4.3.11/Doc/Zsh/mod_attr.yo 2010-09-12 20:56:40.000000000 +0200 @@ -2,33 +2,40 @@ Builtins for manipulating extended attributes (xattr). !MOD!) The tt(zsh/attr) module is used for manipulating extended attributes. +The tt(-h) option causes all commands to operate on symbolic links instead +of their targets. The builtins in this module are: startitem() findex(zgetattr) cindex(extended attributes, xattr, getting from files) -item(tt(zgetattr) var(filename) var(attribute) [ var(parameter) ])( +item(tt(zgetattr) [ tt(-h) ] var(filename) var(attribute) [ var(parameter) ])( Get the extended attribute var(attribute) from the specified var(filename). If the optional argument var(parameter) is given, the attribute is set on that parameter instead of being printed to stdout. ) findex(zsetattr) cindex(extended attributes, xattr, setting on files) -item(tt(zsetattr) var(filename) var(attribute) var(value))( +item(tt(zsetattr) [ tt(-h) ] var(filename) var(attribute) var(value))( Set the extended attribute var(attribute) on the specified var(filename) to var(value). ) findex(zdelattr) cindex(extended attributes, xattr, removing, deleting) -item(tt(zdelattr) var(filename) var(attribute))( +item(tt(zdelattr) [ tt(-h) ] var(filename) var(attribute))( Remove the extended attribute var(attribute) from the specified var(filename). ) findex(zlistattr) cindex(extended attributes, xattr, listing) -item(tt(zlistattr) var(filename) [ var(parameter) ])( +item(tt(zlistattr) [ tt(-h) ] var(filename) [ var(parameter) ])( List the extended attributes currently set on the specified var(filename). If the optional argument var(parameter) is given, the list of attributes is set on that parameter instead of being printed to stdout. ) enditem() + +tt(zgetattr) and tt(zlistattr) allocate memory dynamically. If the +attribute or list of attributes grows between the allocation and the call +to get them, they return 2. On all other errors, 1 is returned. This +allows the calling function to check for this case and retry. diff -Nru zsh-4.3.10/Doc/Zsh/mod_clone.yo zsh-4.3.11/Doc/Zsh/mod_clone.yo --- zsh-4.3.10/Doc/Zsh/mod_clone.yo 2005-04-01 13:52:16.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/mod_clone.yo 2010-12-16 14:51:24.000000000 +0100 @@ -37,7 +37,7 @@ This does not apply when cloning to an bf(unused) vc. -Cloning to an used (and unprepared) terminal will result in two +Cloning to a used (and unprepared) terminal will result in two processes reading simultaneously from the same terminal, with input bytes going randomly to either process. diff -Nru zsh-4.3.10/Doc/Zsh/mod_complist.yo zsh-4.3.11/Doc/Zsh/mod_complist.yo --- zsh-4.3.10/Doc/Zsh/mod_complist.yo 2008-08-06 10:44:37.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/mod_complist.yo 2010-09-01 18:39:32.000000000 +0200 @@ -72,6 +72,10 @@ item(tt(ow 34;43))( for world writable directories without sticky bit set ) +item(tt(sa) var(none))( +for files with an associated suffix alias; this is only tested +after specific suffixes, as described below +) item(tt(st 37;44))( for directories with sticky bit set but not world writable ) @@ -193,6 +197,9 @@ item(tt(expand-or-complete-prefix), tt(menu-complete-or-expand))( scrolls forward one screenful ) +item(tt(accept-search))( +stop listing but take no other action +) enditem() Every other character stops listing and immediately processes the key @@ -284,11 +291,15 @@ functions. When not all matches can be shown on the screen at the same time, the list will scroll up and down when crossing the top or bottom line. The following zle functions have special meaning during -menu selection: +menu selection. Note that the following always +perform the same task within the menu selection map and cannot be +replaced by user defined widgets, nor can the set of functions +be extended: startitem() -item(tt(accept-line))( -accepts the current match and leaves menu selection +item(tt(accept-line), tt(accept-search))( +accept the current match and leave menu selection (but do +not cause the command line to be accepted) ) item(tt(send-break))( leaves menu selection and restores the previous contents of the diff -Nru zsh-4.3.10/Doc/Zsh/mod_system.yo zsh-4.3.11/Doc/Zsh/mod_system.yo --- zsh-4.3.10/Doc/Zsh/mod_system.yo 2009-01-26 10:48:14.000000000 +0100 +++ zsh-4.3.11/Doc/Zsh/mod_system.yo 2010-02-25 12:16:06.000000000 +0100 @@ -1,8 +1,8 @@ COMMENT(!MOD!zsh/system A builtin interface to various low-level system features. !MOD!) -The tt(zsh/system) module makes available three builtin commands and -two parameters. +The tt(zsh/system) module makes available various builtin commands and +parameters. subsect(Builtins) @@ -109,6 +109,55 @@ printed in the last case, but the parameter tt(ERRNO) will reflect the error that occurred. ) +xitem(tt(zsystem flock [ -t) var(timeout) tt(] [ -f) var(var) tt(] [-er]) var(file)) +item(tt(zsystem flock -u) var(fd_expr))( +The builtin tt(zsystem)'s subcommand tt(flock) performs advisory file +locking (via the manref(fcntl)(2) system call) over the entire contents +of the given file. This form of locking requires the processes +accessing the file to cooperate; its most obvious use is between two +instances of the shell itself. + +In the first form the named var(file), which must already exist, is +locked by opening a file descriptor to the file and applying a lock to +the file descriptor. The lock terminates when the shell process that +created the lock exits; it is therefore often convenient to create file +locks within subshells, since the lock is automatically released when +the subshell exits. Status 0 is returned if the lock succeeds, else +status 1. + +In the second form the file descriptor given by the arithmetic +expression tt(fd_expr) is closed, releasing a lock. The file descriptor +can be queried by using the `tt(-f) var(var)' form during the lock; +on a successful lock, the shell variable var(var) is set to the file +descriptor used for locking. The lock will be released if the +file descriptor is closed by any other means, for example using +`tt(exec {)var(var)tt(}>&-)'; however, the form described here performs +a safety check that the file descriptor is in use for file locking. + +By default the shell waits indefinitely for the lock to succeed. +The option tt(-t) var(timeout) specifies a timeout for the lock in +seconds; currently this must be an integer. The shell will attempt +to lock the file once a second during this period. If the attempt +times out, status 2 is returned. + +If the option tt(-e) is given, the file descriptor for the lock is +preserved when the shell uses tt(exec) to start a new process; +otherwise it is closed at that point and the lock released. + +If the option tt(-r) is given, the lock is only for reading, otherwise +it is for reading and writing. The file descriptor is opened +accordingly. +) +item(tt(zsystem supports) var(subcommand))( +The builtin tt(zsystem)'s subcommand tt(supports) tests whether a +given subcommand is supported. It returns status 0 if so, else +status 1. It operates silently unless there was a syntax error +(i.e. the wrong number of arguments), in which case status 255 +is returned. Status 1 can indicate one of two things: var(subcommand) +is known but not supported by the current operating system, or +var(subcommand) is not known (possibly because this is an older +version of the shell before it was implemented). +) enditem() subsect(Parameters) diff -Nru zsh-4.3.10/Doc/Zsh/mod_zprof.yo zsh-4.3.11/Doc/Zsh/mod_zprof.yo --- zsh-4.3.10/Doc/Zsh/mod_zprof.yo 2008-06-11 10:35:05.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/mod_zprof.yo 2010-08-21 11:35:49.000000000 +0200 @@ -19,7 +19,7 @@ amount of time spent in each. The lines contain the number of the function in order, which is used in other parts of the list in suffixes of the form -`tt([)var(num)tt(])'), then the number of calls made to the function. +`tt([)var(num)tt(])', then the number of calls made to the function. The next three columns list the time in milliseconds spent in the function and its descendants, the average time in milliseconds spent in the function and its descendants per diff -Nru zsh-4.3.10/Doc/Zsh/mod_zselect.yo zsh-4.3.11/Doc/Zsh/mod_zselect.yo --- zsh-4.3.10/Doc/Zsh/mod_zselect.yo 2006-03-17 20:19:17.000000000 +0100 +++ zsh-4.3.11/Doc/Zsh/mod_zselect.yo 2009-09-18 11:50:57.000000000 +0200 @@ -36,7 +36,7 @@ second. This may be zero, in which case the file descriptors will simply be polled and tt(zselect) will return immediately. It is possible to call zselect with no file descriptors and a non-zero timeout for use as a -finer-grained replacement for `sleep'; not, however, the return status is +finer-grained replacement for `sleep'; note, however, the return status is always 1 for a timeout. The option `tt(-a) var(array)' indicates that tt(array) should be set to diff -Nru zsh-4.3.10/Doc/Zsh/options.yo zsh-4.3.11/Doc/Zsh/options.yo --- zsh-4.3.10/Doc/Zsh/options.yo 2009-05-19 10:39:03.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/options.yo 2010-12-16 14:51:34.000000000 +0100 @@ -93,9 +93,9 @@ When changing to a directory containing a path segment `tt(..)' which would otherwise be treated as canceling the previous segment in the path (in other words, `tt(foo/..)' would be removed from the path, or if `tt(..)' is -the first part of the path, the last part of tt($PWD) would be deleted), -instead resolve the path to the physical directory. This option is -overridden by tt(CHASE_LINKS). +the first part of the path, the last part of the current working directory +would be removed), instead resolve the path to the physical directory. +This option is overridden by tt(CHASE_LINKS). For example, suppose tt(/foo/bar) is a link to the directory tt(/alt/rod). Without this option set, `tt(cd /foo/bar/..)' changes to tt(/foo); with it @@ -115,6 +115,30 @@ will be treated as referring to the physical parent, even if the preceding path segment is a symbolic link. ) +pindex(POSIX_CD) +pindex(POSIXCD) +pindex(NO_POSIX_CD) +pindex(NOPOSIXCD) +cindex(CDPATH, order of checking) +item(tt(POSIX_CD))( +Modifies the behaviour of tt(cd), tt(chdir) and tt(pushd) commands +to make them more compatible with the POSIX standard. The behaviour with +the option unset is described in the documentation for the tt(cd) +builtin in +ifzman(zmanref(zshbuiltins))\ +ifnzman(noderef(Shell Builtin Commands)). +If the option is set, the shell does not test for directories beneath +the local directory (`tt(.)') until after all directories in tt(cdpath) +have been tested. + +Also, if the option is set, the conditions under which the shell +prints the new directory after changing to it are modified. It is +no longer restricted to interactive shells (although printing of +the directory stack with tt(pushd) is still limited to interactive +shells); and any use of a component of tt(CDPATH), including a `tt(.)' but +excluding an empty component that is otherwise treated as `tt(.)', causes +the directory to be printed. +) pindex(PUSHD_IGNORE_DUPS) pindex(NO_PUSHD_IGNORE_DUPS) pindex(PUSHDIGNOREDUPS) @@ -513,7 +537,7 @@ with pattern matching instead of string matching. This occurs wherever history modifiers are valid, including glob qualifiers and parameters. See -ifzman(the section Modifiers in zmanref(zshexp))\ +ifzman(the section Modifiers in zmanref(zshexpn))\ ifnzman(noderef(Modifiers)). ) pindex(IGNORE_BRACES) @@ -722,7 +746,7 @@ and the duration (in seconds) to the history file. The format of this prefixed data is: -`tt(:)var()tt(:)var()tt(:)var()'. +`tt(:) var()tt(:)var()tt(;)var()'. ) pindex(HIST_ALLOW_CLOBBER) pindex(NO_HIST_ALLOW_CLOBBER) @@ -805,12 +829,28 @@ item(tt(HIST_IGNORE_SPACE) (tt(-g)))( Remove command lines from the history list when the first character on the line is a space, or when one of the expanded aliases contains a -leading space. +leading space. Only normal aliases (not global or suffix aliases) +have this behaviour. Note that the command lingers in the internal history until the next command is entered before it vanishes, allowing you to briefly reuse or edit the line. If you want to make it vanish right away without entering another command, type a space and press return. ) +pindex(HIST_LEX_WORDS) +pindex(NO_HIST_LEX_WORDS) +pindex(HISTLEXWORDS) +pindex(NOHISTLEXWORDS) +item(tt(HIST_LEX_WORDS))( +By default, shell history that is read in from files is split into +words on all white space. This means that arguments with quoted +whitespace are not correctly handled, with the consequence that +references to words in history lines that have been read from a file +may be inaccurate. When this option is set, words read in from a +history file are divided up in a similar fashion to normal shell +command line handling. Although this produces more accurately delimited +words, if the size of the history file is large this can be slow. Trial +and error is necessary to decide. +) pindex(HIST_NO_FUNCTIONS) pindex(NO_HIST_NO_FUNCTIONS) pindex(HISTNOFUNCTIONS) @@ -1114,6 +1154,20 @@ indicated by this option, and regardless of whether `tt(.)' or the current directory appear in the command search path. ) +pindex(PATH_SCRIPT) +pindex(NO_PATH_SCRIPT) +pindex(PATHSCRIPT) +pindex(NOPATHSCRIPT) +cindex(path search, for script argument to shell) +item(tt(PATH_SCRIPT) )( +If this option is not set, a script passed as the first non-option argument +to the shell must contain the name of the file to open. If this +option is set, and the script does not specify a directory path, +the script is looked for first in the current directory, then in the +command path. See +ifnzman(noderef(Invocation))\ +ifzman(the section INVOCATION in zmanref(zsh)). +) pindex(PRINT_EIGHT_BIT) pindex(NO_PRINT_EIGHT_BIT) pindex(PRINTEIGHTBIT) @@ -1185,6 +1239,8 @@ of backquotes on the line, ignore the trailing backquote. This is useful on some keyboards where the return key is too small, and the backquote key lies annoyingly close to it. +As an alternative the variable tt(KEYBOARD_HACK) lets you choose the +character to be removed. ) enditem() @@ -1274,6 +1330,38 @@ Report the status of background jobs immediately, rather than waiting until just before printing a prompt. ) +pindex(POSIX_JOBS) +pindex(POSIXJOBS) +pindex(NO_POSIX_JOBS) +pindex(NOPOSIXJOBS) +cindex(bg, output in POSIX format) +cindex(fg, output in POSIX format) +cindex(job control, in subshell) +cindex(jobs, output in subshell) +item(tt(POSIX_JOBS) )( +This option makes job control more compliant with the POSIX standard. + +When the option is not set, the tt(MONITOR) option is unset on entry to +subshells, so that job control is no longer active. When the option is +set, the tt(MONITOR) option and job control remain active in the +subshell, but note that the subshell has no access to jobs in the parent +shell. + +When the option is not set, jobs put in the background or foreground +with tt(bg) or tt(fg) are displayed with the same information that would +be reported by tt(jobs). When the option is set, only the text is +printed. The output from tt(jobs) itself is not affected by the option. + +When the option is not set, job information from the parent +shell is saved for output within a subshell (for example, within a +pipeline). When the option is set, the output of tt(jobs) is empty +until a job is started within the subshell. + +When the option is set, it becomes possible to use the tt(wait) builtin to +wait for the last job started in the background (as given by tt($!)) even +if that job has already exited. This works even if the option is turned +on temporarily around the use of the tt(wait) builtin. +) enditem() subsect(Prompting) @@ -1491,7 +1579,7 @@ trap - INT fn+LPAR()RPAR() { setopt localtraps; trap '' INT; sleep 3; }) -will restore normally handling of tt(SIGINT) after the function exits. +will restore normal handling of tt(SIGINT) after the function exits. ) pindex(MULTI_FUNC_DEF) pindex(NO_MULTI_FUNC_DEF) @@ -1526,6 +1614,18 @@ component in `tt(08#77)' are always interpreted as decimal, regardless of leading zeroes. ) +pindex(SOURCE_TRACE) +pindex(NO_SOURCE_TRACE) +pindex(SOURCETRACE) +pindex(NOSOURCETRACE) +item(tt(SOURCE_TRACE))( +If set, zsh will print an informational message announcing the name of +each file it loads. The format of the output is similar to that +for the tt(XTRACE) option, with the message tt(). +A file may be loaded by the shell itself when it +starts up and shuts down (tt(Startup/Shutdown Files)) or by the use of +the `tt(source)' and `tt(dot)' builtin commands. +) pindex(TYPESET_SILENT) pindex(NO_TYPESET_SILENT) pindex(TYPESETSILENT) @@ -1552,7 +1652,11 @@ cindex(tracing, of commands) cindex(commands, tracing) item(tt(XTRACE) (tt(-x), ksh: tt(-x)))( -Print commands and their arguments as they are executed. +Print commands and their arguments as they are executed. The +output is proceded by the value of tt($PS4), formatted as described +in +ifzman(the section EXPANSION OF PROMPT SEQUENCES in zmanref(zshmisc))\ +ifnzman(noderef(Prompt Expansion)). ) enditem() @@ -1787,6 +1891,46 @@ ignored; all octets with the top bit set may be used in identifiers. This is non-standard but is the traditional zsh behaviour. ) +pindex(POSIX_STRINGS) +pindex(NO_POSIX_STRINGS) +pindex(POSIXSTRINGS) +pindex(NOPOSIXSTRINGS) +cindex(discarding embedded nulls in $'...') +cindex(embedded nulls, in $'...') +cindex(nulls, embedded in $'...') +item(tt(POSIX_STRINGS) )( +This option affects processing of quoted strings. Currently it only +affects the behaviour of null characters, i.e. character 0 in the +portable character set corresponding to US ASCII. + +When this option is not set, null characters embedded within strings +of the form tt($')var(...)tt(') are treated as ordinary characters. The +entire string is maintained within the shell and output to files where +necessary, although owing to restrictions of the library interface +the string is truncated at the null character in file names, environment +variables, or in arguments to external programs. + +When this option is set, the tt($')var(...)tt(') expression is truncated at +the null character. Note that remaining parts of the same string +beyond the termination of the quotes are not trunctated. + +For example, the command line argument tt(a$'b\0c'd) is treated with +the option off as the characters tt(a), tt(b), null, tt(c), tt(d), +and with the option on as the characters tt(a), tt(b), tt(d). +) +pindex(POSIX_TRAPS) +pindex(NO_POSIX_TRAPS) +pindex(POSIXTRAPS) +pindex(NOPOSIXTRAPS) +cindex(traps, on function exit) +cindex(traps, POSIX compatibility) +item(tt(POSIX_TRAPS) )( +When the is option is set, the usual zsh behaviour of executing +traps for tt(EXIT) on exit from shell functions is suppressed. +In that case, manipulating tt(EXIT) traps always alters the global +trap for exiting the shell; the tt(LOCAL_TRAPS) option is +ignored for the tt(EXIT) trap. +) pindex(SH_FILE_EXPANSION) pindex(NO_SH_FILE_EXPANSION) pindex(SHFILEEXPANSION) diff -Nru zsh-4.3.10/Doc/Zsh/params.yo zsh-4.3.11/Doc/Zsh/params.yo --- zsh-4.3.10/Doc/Zsh/params.yo 2009-05-19 13:24:24.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/params.yo 2010-12-17 18:08:11.000000000 +0100 @@ -722,6 +722,103 @@ item(tt(VENDOR))( The vendor, as determined at compile time. ) +vindex(zsh_eval_context) +vindex(ZSH_EVAL_CONTEXT) +item(tt(zsh_eval_context) (tt(ZSH_EVAL_CONTEXT) ))( +An array (colon-separated list) indicating the context of shell +code that is being run. Each time a piece of shell code that +is stored within the shell is executed a string is temporarily appended to +the array to indicate the type of operation that is being performed. +Read in order the array gives an indication of the stack of +operations being performed with the most immediate context last. + +Note that the variable does not give information on syntactic context such +as pipelines or subshells. Use tt($ZSH_SUBSHELL) to detect subshells. + +The context is one of the following: +startitem() +item(tt(cmdarg))( +Code specified by the tt(-c) option to the command line that invoked +the shell. +) +item(tt(cmdsubst))( +Command substitution using the tt(`)var(...)tt(`) or +tt($+LPAR())var(...)tt(RPAR()) construct. +) +item(tt(equalsubst))( +File substitution using the tt(=+LPAR())var(...)tt(RPAR()) construct. +) +item(tt(eval))( +Code executed by the tt(eval) builtin. +) +item(tt(evalautofunc))( +Code executed with the tt(KSH_AUTOLOAD) mechanism in order to define +an autoloaded function. +) +item(tt(fc))( +Code from the shell history executed by the tt(-e) option to the tt(fc) +builtin. +) +item(tt(file))( +Lines of code being read directly from a file, for example by +the tt(source) builtin. +) +item(tt(filecode))( +Lines of code being read from a tt(.zwc) file instead of directly +from the source file. +) +item(tt(globqual))( +Code executed by the tt(e) or tt(+) glob qualifier. +) +item(tt(globsort))( +Code executed to order files by the tt(o) glob qualifier. +) +item(tt(insubst))( +File substitution using the tt(LPAR())var(...)tt(RPAR()) construct. +) +item(tt(sched))( +Code executed by the tt(sched) builtin. +) +item(tt(shfunc))( +A shell function. +) +item(tt(stty))( +Code passed to tt(stty) by the tt(STTY) environment variable. +Normally this is passed directly to the system's tt(stty) command, +so this value is unlikely to be seen in practice. +) +item(tt(style))( +Code executed as part of a style retrieved by the tt(zstyle) builtin +from the tt(zsh/zutil) module. +) +item(tt(toplevel))( +The highest execution level of a script or interactive shell. +) +item(tt(trap))( +Code executed as a trap defined by the tt(trap) builtin. Traps +defined as functions have the context tt(shfunc). As traps are +asynchronous they may have a different hierarchy from other +code. +) +item(tt(zpty))( +Code executed by the tt(zpty) builtin from the tt(zsh/zpty) module. +) +item(tt(zregexparse-guard))( +Code executed as a guard by the tt(zregexparse) command from the +tt(zsh/zutil) module. +) +item(tt(zregexparse-action))( +Code executed as an action by the tt(zregexparse) command from the +tt(zsh/zutil) module. +) +enditem() +) vindex(ZSH_NAME) item(tt(ZSH_NAME))( Expands to the basename of the command used to invoke this instance @@ -803,7 +900,7 @@ potential correction that matches the pattern is ignored. For example, if the value is `tt(_*)' then completion functions (which, by convention, have names beginning with `tt(_)') will never be offered -as spelling corrections. The pattern does not apply the correction +as spelling corrections. The pattern does not apply to the correction of file names, as applied by the tt(CORRECT_ALL) option (so with the example just given files beginning with `tt(_)' in the current directory would still be completed). @@ -897,6 +994,16 @@ If the parameter is unset, the default is used. Note this has a different effect from setting the parameter to an empty string. ) +vindex(KEYBOARD_HACK) +item(tt(KEYBOARD_HACK))( +This variable defines a character to be removed from the end of the +command line before interpreting it (interactive shells only). It is +intended to fix the problem with keys placed annoyingly close to return +and replaces the tt(SUNKEYBOARDHACK) option which did this for +backquotes only. Should the chosen character be one of singlequote, +doublequote or backquote, there must also be an odd number of them +on the command line for the last one to be removed. +) vindex(KEYTIMEOUT) item(tt(KEYTIMEOUT))( The time the shell waits, in hundredths of seconds, for another key to @@ -1341,6 +1448,13 @@ The directory to search for shell startup files (.zshrc, etc), if not tt($HOME). ) +vindex(ZLE_LINE_ABORTED) +item(tt(ZLE_LINE_ABORTED))( +This parameter is set by the line editor when an error occurs. It +contains the line that was being edited at the point of the error. +`tt(print -zr -- $ZLE_LINE_ABORTED)' can be used to recover the line. +Only the most recent line of this kind is remembered. +) vindex(ZLE_REMOVE_SUFFIX_CHARS) vindex(ZLE_SPACE_SUFFIX_CHARS) xitem(tt(ZLE_REMOVE_SUFFIX_CHARS)) diff -Nru zsh-4.3.10/Doc/Zsh/prompt.yo zsh-4.3.11/Doc/Zsh/prompt.yo --- zsh-4.3.10/Doc/Zsh/prompt.yo 2009-03-03 10:47:01.000000000 +0100 +++ zsh-4.3.11/Doc/Zsh/prompt.yo 2010-12-06 14:51:08.000000000 +0100 @@ -93,16 +93,17 @@ the latter case it will also work non-interactively. ) xitem(tt(%d)) -item(tt(%/))( -Present working directory (tt($PWD)). If an integer follows the `tt(%)', -it specifies a number of trailing components of tt($PWD) to show; zero -means the whole path. A negative integer specifies leading components, -i.e. tt(%-1d) specifies the first component. +item(tt(/))( +Current working directory. If an integer follows the `tt(%)', +it specifies a number of trailing components of the current working +directory to show; zero means the whole path. A negative integer +specifies leading components, i.e. tt(%-1d) specifies the first component. ) item(tt(%~))( -As tt(%d) and tt(%/), but if tt($PWD) has a named directory as its prefix, -that part is replaced by a `tt(~)' followed by the name of the directory. -If it starts with tt($HOME), that part is replaced by a `tt(~)'. +As tt(%d) and tt(%/), but if the current working directory has a named +directory as its prefix, that part is replaced by a `tt(~)' followed by +the name of the directory. If it starts with tt($HOME), that part is +replaced by a `tt(~)'. ) xitem(tt(%h)) item(tt(%!))( @@ -139,7 +140,7 @@ xitem(tt(%c)) xitem(tt(%.)) item(tt(%C))( -Trailing component of tt($PWD). +Trailing component of the current working directory. An integer may follow the `tt(%)' to get more than one component. Unless `tt(%C)' is used, tilde contraction is performed first. These are deprecated as tt(%c) and tt(%C) are equivalent to tt(%1~) and tt(%1/), diff -Nru zsh-4.3.10/Doc/Zsh/tcpsys.yo zsh-4.3.11/Doc/Zsh/tcpsys.yo --- zsh-4.3.10/Doc/Zsh/tcpsys.yo 2008-06-17 13:22:10.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/tcpsys.yo 2010-02-04 18:40:07.000000000 +0100 @@ -19,7 +19,7 @@ timeouts on read operations. For troubleshooting tips, consult the corresponding advice for the tt(zftp) functions described in ifzman(\ -zmanref(zshftpsys) +zmanref(zshzftpsys) )\ ifnzman(\ noderef(Zftp Function System) diff -Nru zsh-4.3.10/Doc/Zsh/zftpsys.yo zsh-4.3.11/Doc/Zsh/zftpsys.yo --- zsh-4.3.10/Doc/Zsh/zftpsys.yo 2006-03-17 20:17:29.000000000 +0100 +++ zsh-4.3.11/Doc/Zsh/zftpsys.yo 2009-09-11 13:21:30.000000000 +0200 @@ -220,8 +220,7 @@ suppresses remote filename expansion which would otherwise be performed (see below for a more detailed description of that). tt(-t) attempts to set the modification time of the local file to that of the remote file: -this requires version 5 of tt(perl), see the description of the function -tt(zfrtime) below for more information. +see the description of the function tt(zfrtime) below for more information. startitem() findex(zfget) @@ -462,11 +461,9 @@ item(tt(zfrtime var(lfile) var(rfile) [ var(time) ]))( Set the local file var(lfile) to have the same modification time as the remote file var(rfile), or the explicit time var(time) in FTP format -tt(CCYYMMDDhhmmSS) for the GMT timezone. - -Currently this requires tt(perl) version 5 to perform the conversion from -GMT to local time. This is unfortunately difficult to do using shell code -alone. +tt(CCYYMMDDhhmmSS) for the GMT timezone. This uses the shell's +tt(zsh/datetime) module to perform the conversion from +GMT to local time. ) findex(zftp_chpwd, supplied version) item(tt(zftp_chpwd))( diff -Nru zsh-4.3.10/Doc/Zsh/zle.yo zsh-4.3.11/Doc/Zsh/zle.yo --- zsh-4.3.10/Doc/Zsh/zle.yo 2009-04-17 17:10:59.000000000 +0200 +++ zsh-4.3.11/Doc/Zsh/zle.yo 2010-12-17 18:08:11.000000000 +0100 @@ -139,7 +139,7 @@ cindex(keys, binding) cindex(binding keys) cindex(keymaps) -xitem(tt(bindkey) [ var(options) ] tt(-l)) +xitem(tt(bindkey) [ var(options) ] tt(-l) [ tt(-L) ] [ var(keymap) ... ]) xitem(tt(bindkey) [ var(options) ] tt(-d)) xitem(tt(bindkey) [ var(options) ] tt(-D) var(keymap) ...) xitem(tt(bindkey) [ var(options) ] tt(-A) var(old-keymap new-keymap)) @@ -149,21 +149,27 @@ xitem(tt(bindkey) [ var(options) ] tt(-s) var(in-string out-string) ...) xitem(tt(bindkey) [ var(options) ] var(in-string command) ...) item(tt(bindkey) [ var(options) ] [ var(in-string) ])( -tt(bindkey)'s options can be divided into three categories: keymap selection, -operation selection, and others. The keymap selection options are: +tt(bindkey)'s options can be divided into three categories: keymap +selection for the current command, operation selection, and others. The +keymap selection options are: startitem() item(tt(-e))( -Selects keymap `tt(emacs)', and also links it to `tt(main)'. +Selects keymap `tt(emacs)' for any operations by the current command, +and also links `tt(emacs)' to `tt(main)' so that it is selected by +default the next time the editor starts. ) item(tt(-v))( -Selects keymap `tt(viins)', and also links it to `tt(main)'. +Selects keymap `tt(viins)' for any operations by the current command, +and also links `tt(viins)' to `tt(main)' so that it is selected by default +the next time the editor starts. ) item(tt(-a))( -Selects keymap `tt(vicmd)'. +Selects keymap `tt(vicmd)' for any operations by the current command. ) item(tt(-M) var(keymap))( -The var(keymap) specifies a keymap name. +The var(keymap) specifies a keymap name that is selected for any +operations by the current command. ) enditem() @@ -173,9 +179,16 @@ startitem() item(tt(-l))( -List all existing keymap names. If the tt(-L) -option is also used, list in the form of tt(bindkey) -commands to create the keymaps. +List all existing keymap names; if any arguments are given, list just +those keymaps. + +If the tt(-L) option is also used, list in the form of tt(bindkey) +commands to create or link the keymaps. `tt(bindkey -lL +main)' shows which keymap is linked to `tt(main)', if any, and hence if +the standard emacs or vi emulation is in effect. This option does +not show the tt(.safe) keymap because it cannot be created in that +fashion; however, neither is `tt(bindkey -lL .safe)' reported as an +error, it simply outputs nothing. ) item(tt(-d))( Delete all existing keymaps and reset to the default state. @@ -605,7 +618,7 @@ in keymaps are bound to are in fact widgets. Widgets can be user-defined or built in. -The standard widgets built in to ZLE are listed in Standard Widgets below. +The standard widgets built into ZLE are listed in Standard Widgets below. Other built-in widgets can be defined by other modules (see ifzman(zmanref(zshmodules))\ ifnzman(noderef(Zsh Modules))\ @@ -682,8 +695,8 @@ ) vindex(CUTBUFFER) item(tt(CUTBUFFER) (scalar))( -The last item to be cut using one of the `tt(kill-)' commands; the -string which the next yank would insert in the line. Later entries in +The last item cut using one of the `tt(kill-)' commands; the string +which the next yank would insert in the line. Later entries in the kill ring are in the array tt(killring). Note that the command `tt(zle copy-region-as-kill) var(string)' can be used to set the text of the cut buffer from a shell function and cycle the kill @@ -771,7 +784,7 @@ item(tt(PREDISPLAY) (scalar))( Text to be displayed before the start of the editable text buffer. This does not have to be a complete line; to display a complete line, a newline -must be appended explicitly. The text is reset on each new invocation +must be appended explicitly. The text is reset on each new invocation (but not recursive invocation) of zle. ) vindex(POSTDISPLAY) @@ -854,6 +867,17 @@ defined. This is the name of a builtin completion widget. For widgets defined with tt(zle -N) this is set to the empty string. Read-only. ) +vindex(ZLE_STATE) +item(tt(ZLE_STATE) (scalar))( +Contains a set of space-separated words that describe the current tt(zle) +state. + +Currently, the only state shown is the insert mode as set by the +tt(overwrite-mode) or tt(vi-replace) widgets. The string contains +`tt(insert)' if characters to be inserted on the command line move existing +characters to the right, `tt(overwrite)' if characters to be inserted +overwrite existing characters. +) enditem() subsect(Special Widgets) @@ -863,6 +887,28 @@ provided is identical to that for any other editing widget. startitem() +tindex(zle-isearch-exit) +item(tt(zle-isearch-exit))( +Executed at the end of incremental search at the point where the isearch +prompt is removed from the display. See tt(zle-isearch-update) for +an example. +) +tindex(zle-isearch-update) +item(tt(zle-isearch-update))( +Executed within incremental search when the display is about to be +redrawn. Additional output below the incremental search prompt can be +generated by using `tt(zle -M)' within the widget. For example, + +example(zle-isearch-update+LPAR()RPAR() { zle -M "Line $HISTNO"; } +zle -N zle-isearch-update) + +Note the line output by `tt(zle -M)' is not deleted on exit from +incremental search. This can be done from a tt(zle-isearch-exit) +widget: + +example(zle-isearch-exit+LPAR()RPAR() { zle -M ""; } +zle -N zle-isearch-exit) +) tindex(zle-line-init) item(tt(zle-line-init))( Executed every time the line editor is started to read a new line @@ -890,7 +936,7 @@ The value tt($KEYMAP) within the function reflects the new keymap. The old keymap is passed as the sole argument. -This can been used for detecting switches between the vi command +This can be used for detecting switches between the vi command (tt(vicmd)) and insert (usually tt(main)) keymaps. ) enditem() @@ -1135,7 +1181,8 @@ setting, will stop the search and go back to the original line. An undefined key will have the same effect. Note that the following always perform the same task within incremental searches and cannot be -replaced by user defined widgets. The supported functions are: +replaced by user defined widgets, nor can the set of functions +be extended. The supported functions are: startitem() xitem(tt(accept-and-hold)) @@ -1195,11 +1242,10 @@ ) enditem() -Any multi-character string that is not bound to one of the above functions -will beep and interrupt the search, leaving the last found line in the -buffer. Any single character that is not bound to one of the above -functions, or tt(self-insert) or tt(self-insert-unmeta), will have the same -effect but the function will be executed. +Any character that is not bound to one of the above functions, or +tt(self-insert) or tt(self-insert-unmeta), will cause the mode to be +exited. The character is then looked up and executed in the keymap in +effect at that point. When called from a widget function by the tt(zle) command, the incremental search commands can take a string argument. This will be treated as a @@ -1316,11 +1362,11 @@ When called from a shell function invoked from a user-defined widget, the command can take one to three arguments. The first argument specifies a -history offset which applies to successive calls to this widget: if is -1, +history offset which applies to successive calls to this widget: if it is -1, the default behaviour is used, while if it is 1, successive calls will move forwards through the history. The value 0 can be used to indicate that the history line examined by the previous execution of the command will be -reexamined. Note that negative numbers should be preceded with a +reexamined. Note that negative numbers should be preceded by a `tt(-)tt(-)' argument to avoid confusing them with options. If two arguments are given, the second specifies the word on the command @@ -1877,7 +1923,10 @@ mini-buffer. Keys are looked up in the special tt(command) keymap, and if not found there in the main keymap. An interrupt signal, as defined by the stty setting, will -abort the function. The allowed functions are: +abort the function. Note that the following always +perform the same task within the tt(executed-named-cmd) environment and +cannot be replaced by user defined widgets, nor can the set of functions +be extended. The allowed functions are: tt(backward-delete-char), tt(vi-backward-delete-char), tt(clear-screen), @@ -2033,7 +2082,8 @@ item(tt(send-break) (^G ESC-^G) (unbound) (unbound))( Abort the current editor function, e.g. tt(execute-named-command), or the editor itself, e.g. if you are in tt(vared). Otherwise abort the parsing of -the current line. +the current line; in this case the aborted line is available in the shell +variable tt(ZLE_LINE_ABORTED). ) tindex(run-help) item(tt(run-help) (ESC-H ESC-h) (unbound) (unbound))( @@ -2163,6 +2213,17 @@ representation but are shown in a special manner by the line editor. These characters are described below. ) +cindex(completion removable suffix, highlighting) +cindex(suffix, highlighting removable, in completion) +cindex(removable suffix, highlighting in completino) +item(tt(suffix))( +This context is used in completion for characters that are +marked as suffixes that will be removed if the completion ends +at that point, the most obvious example being a slash (tt(/)) after +a directory name. Note that suffix removal is configurable; the +circumstances under which the suffix will be removed may differ +for different completions. +) enditem() tt(zle_highlight) may contain additional fields for controlling how @@ -2235,6 +2296,7 @@ ) item(tt(bold))( The characters in the given context are shown in a bold font. +Not all terminals distinguish bold fonts. ) item(tt(standout))( The characters in the given context are shown in the terminal's standout @@ -2274,13 +2336,27 @@ character set; this may or may not be Unicode, depending on the operating system. ) +item(Invalid multibyte characters)( +If the tt(MULTIBYTE) option is in effect, any sequence of one or more +bytes that does not form a valid character in the current character +set is treated as a series of bytes each shown as a special character. +This case can be distinguished from other unprintable characters +as the bytes are represented as two hexadecimal digits between angle +brackets, as distinct from the four or eight digits that are used for +unprintable characters that are nonetheless valid in the current +character set. + +Not all systems support this: for it to work, the system's representation of +wide characters must be code values from the Universal Character Set, +as defined by IS0 10646 (also known as Unicode). +) enditem() If tt(zle_highlight) is not set or no value applies to a particular context, the defaults applied are equivalent to example(zle_highlight=LPAR()region:standout special:standout -isearch:underline+RPAR()) +suffix:bold isearch:underline+RPAR()) i.e. both the region and special characters are shown in standout mode. diff -Nru zsh-4.3.10/Doc/zsh.1 zsh-4.3.11/Doc/zsh.1 --- zsh-4.3.10/Doc/zsh.1 2009-06-01 11:00:16.000000000 +0200 +++ zsh-4.3.11/Doc/zsh.1 2010-12-20 16:00:42.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSH" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSH" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zsh \- the Z shell .\" Yodl file: Zsh/intro.yo @@ -53,7 +53,7 @@ .SH "AUTHOR" Zsh was originally written by Paul Falstad \fB\fP\&. Zsh is now maintained by the members of the zsh\-workers mailing -list \fB\fP\&. The development is currently +list \fB\fP\&. The development is currently coordinated by Peter Stephenson \fB\fP\&. The coordinator can be contacted at \fB\fP, but matters relating to the code should generally go to the mailing list\&. @@ -77,11 +77,6 @@ \fBhttp://www\&.zsh\&.org/pub/zsh/\fP .fi .TP -Denmark -.nf -\fBftp://sunsite\&.dk/pub/unix/shells/zsh/\fP -.fi -.TP Finland .nf \fBftp://ftp\&.funet\&.fi/pub/unix/shells/zsh/\fP @@ -159,8 +154,10 @@ \fBhttp://zsh\&.open\-mirror\&.com/\fP .fi .PP -The up\-to\-date source code is available via anonymous CVS from Sourceforge\&. -See \fBhttp://sourceforge\&.net/projects/zsh/\fP for details\&. +The up\-to\-date source code is available via anonymous CVS and Git from +Sourceforge\&. See \fBhttp://sourceforge\&.net/projects/zsh/\fP for details\&. +A summary of instructions for the CVS and Git archives can be found at +\fBhttp://zsh\&.sourceforget\&.net/\fP\&. .PP .SH "MAILING LISTS" Zsh has 3 mailing lists: @@ -168,14 +165,14 @@ .PD 0 .TP .PD -\fB\fP +\fB\fP Announcements about releases, major changes in the shell and the monthly posting of the Zsh FAQ\&. (moderated) .TP -\fB\fP +\fB\fP User discussions\&. .TP -\fB\fP +\fB\fP Hacking, development, bug reports and patches\&. .PP To subscribe or unsubscribe, send mail @@ -183,18 +180,18 @@ .PP .PD 0 .TP -\fB\fP +\fB\fP .TP -\fB\fP +\fB\fP .TP -\fB\fP +\fB\fP .PP .TP -\fB\fP +\fB\fP .TP -\fB\fP +\fB\fP .TP -\fB\fP +\fB\fP .PD .PP YOU ONLY NEED TO JOIN ONE OF THE MAILING LISTS AS THEY ARE NESTED\&. @@ -226,7 +223,7 @@ manual, with explanations and hints on issues where the manual can be cabbalistic, hierographic, or downright mystifying (for example, the word `hierographic\&' does not exist)\&. It can be viewed in its current state at -\fBhttp://zsh\&.sunsite\&.dk/Guide/\fP\&. At the time of writing, chapters +\fBhttp://zsh\&.sourceforge\&.net/Guide/\fP\&. At the time of writing, chapters dealing with startup files and their contents and the new completion system were essentially complete\&. .SH "THE ZSH WIKI" @@ -234,7 +231,7 @@ This is a site which can be added to and modified directly by users without any special permission\&. You can add your own zsh tips and configurations\&. .\" Yodl file: Zsh/invoke.yo -.SH "INVOCATION OPTIONS" +.SH "INVOCATION" The following flags are interpreted by the shell when invoked to determine where the shell will read commands from: .PP @@ -248,7 +245,8 @@ parameter\&. .TP \fB\-i\fP -Force shell to be interactive\&. +Force shell to be interactive\&. It is still possible to specify a +script to execute\&. .TP \fB\-s\fP Force shell to read commands from the standard input\&. @@ -256,6 +254,15 @@ the first argument is taken to be the pathname of a script to execute\&. .PP +If there are any remaining arguments after option processing, and neither +of the options \fB\-c\fP or \fB\-s\fP was supplied, the first argument is taken +as the file name of a script containing shell commands to be executed\&. If +the option \fBPATH_SCRIPT\fP is set, and the file name does not contain a +directory path (i\&.e\&. there is no `\fB/\fP\&' in the name), first the current +directory and then the command path given by the variable \fBPATH\fP are +searched for the script\&. If the option is not set or the file name +contains a `\fB/\fP\&' it is used directly\&. +.PP After the first one or two arguments have been appropriated as described above, the remaining arguments are assigned to the positional parameters\&. .PP diff -Nru zsh-4.3.10/Doc/zshall.1 zsh-4.3.11/Doc/zshall.1 --- zsh-4.3.10/Doc/zshall.1 2009-06-01 11:00:22.000000000 +0200 +++ zsh-4.3.11/Doc/zshall.1 2010-12-20 16:00:45.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHALL" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHALL" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshall \- the Z shell meta\-man page .\" Yodl file: Zsh/intro.yo @@ -50,7 +50,7 @@ .SH "AUTHOR" Zsh was originally written by Paul Falstad \fB\fP\&. Zsh is now maintained by the members of the zsh\-workers mailing -list \fB\fP\&. The development is currently +list \fB\fP\&. The development is currently coordinated by Peter Stephenson \fB\fP\&. The coordinator can be contacted at \fB\fP, but matters relating to the code should generally go to the mailing list\&. @@ -74,11 +74,6 @@ \fBhttp://www\&.zsh\&.org/pub/zsh/\fP .fi .TP -Denmark -.nf -\fBftp://sunsite\&.dk/pub/unix/shells/zsh/\fP -.fi -.TP Finland .nf \fBftp://ftp\&.funet\&.fi/pub/unix/shells/zsh/\fP @@ -156,8 +151,10 @@ \fBhttp://zsh\&.open\-mirror\&.com/\fP .fi .PP -The up\-to\-date source code is available via anonymous CVS from Sourceforge\&. -See \fBhttp://sourceforge\&.net/projects/zsh/\fP for details\&. +The up\-to\-date source code is available via anonymous CVS and Git from +Sourceforge\&. See \fBhttp://sourceforge\&.net/projects/zsh/\fP for details\&. +A summary of instructions for the CVS and Git archives can be found at +\fBhttp://zsh\&.sourceforget\&.net/\fP\&. .PP .SH "MAILING LISTS" Zsh has 3 mailing lists: @@ -165,14 +162,14 @@ .PD 0 .TP .PD -\fB\fP +\fB\fP Announcements about releases, major changes in the shell and the monthly posting of the Zsh FAQ\&. (moderated) .TP -\fB\fP +\fB\fP User discussions\&. .TP -\fB\fP +\fB\fP Hacking, development, bug reports and patches\&. .PP To subscribe or unsubscribe, send mail @@ -180,18 +177,18 @@ .PP .PD 0 .TP -\fB\fP +\fB\fP .TP -\fB\fP +\fB\fP .TP -\fB\fP +\fB\fP .PP .TP -\fB\fP +\fB\fP .TP -\fB\fP +\fB\fP .TP -\fB\fP +\fB\fP .PD .PP YOU ONLY NEED TO JOIN ONE OF THE MAILING LISTS AS THEY ARE NESTED\&. @@ -223,7 +220,7 @@ manual, with explanations and hints on issues where the manual can be cabbalistic, hierographic, or downright mystifying (for example, the word `hierographic' does not exist)\&. It can be viewed in its current state at -\fBhttp://zsh\&.sunsite\&.dk/Guide/\fP\&. At the time of writing, chapters +\fBhttp://zsh\&.sourceforge\&.net/Guide/\fP\&. At the time of writing, chapters dealing with startup files and their contents and the new completion system were essentially complete\&. .SH "THE ZSH WIKI" @@ -231,7 +228,7 @@ This is a site which can be added to and modified directly by users without any special permission\&. You can add your own zsh tips and configurations\&. .\" Yodl file: Zsh/invoke.yo -.SH "INVOCATION OPTIONS" +.SH "INVOCATION" The following flags are interpreted by the shell when invoked to determine where the shell will read commands from: .PP @@ -245,7 +242,8 @@ parameter\&. .TP \fB\-i\fP -Force shell to be interactive\&. +Force shell to be interactive\&. It is still possible to specify a +script to execute\&. .TP \fB\-s\fP Force shell to read commands from the standard input\&. @@ -253,6 +251,15 @@ the first argument is taken to be the pathname of a script to execute\&. .PP +If there are any remaining arguments after option processing, and neither +of the options \fB\-c\fP or \fB\-s\fP was supplied, the first argument is taken +as the file name of a script containing shell commands to be executed\&. If +the option \fBPATH_SCRIPT\fP is set, and the file name does not contain a +directory path (i\&.e\&. there is no `\fB/\fP' in the name), first the current +directory and then the command path given by the variable \fBPATH\fP are +searched for the script\&. If the option is not set or the file name +contains a `\fB/\fP' it is used directly\&. +.PP After the first one or two arguments have been appropriated as described above, the remaining arguments are assigned to the positional parameters\&. .PP @@ -497,7 +504,7 @@ .so man1/zshtcpsys.1 .so man1/zshzftpsys.1 .so man1/zshcontrib.1 -.TH "ZSHALL" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHALL" "1" "December 20, 2010" "zsh 4\&.3\&.11" .\" Yodl file: Zsh/filelist.yo .SH "FILES" .PD 0 diff -Nru zsh-4.3.10/Doc/zshbuiltins.1 zsh-4.3.11/Doc/zshbuiltins.1 --- zsh-4.3.10/Doc/zshbuiltins.1 2009-06-01 11:00:16.000000000 +0200 +++ zsh-4.3.11/Doc/zshbuiltins.1 2010-12-20 16:00:42.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHBUILTINS" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHBUILTINS" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshbuiltins \- zsh built\-in commands .\" Yodl file: Zsh/builtins.yo @@ -25,7 +25,9 @@ If any arguments \fIarg\fP are given, they become the positional parameters; the old positional parameters are restored when the \fIfile\fP is done executing\&. -The exit status is the exit status of the last command executed\&. +If \fIfile\fP was not found the return status is 127; if \fIfile\fP was found +but contained a syntax error the return status is 126; else the return +status is the exit status of the last command executed\&. .RE .TP \fB:\fP [ \fIarg\fP \&.\&.\&. ] @@ -150,7 +152,7 @@ Change the current directory\&. In the first form, change the current directory to \fIarg\fP, or to the value of \fB$HOME\fP if \fIarg\fP is not specified\&. If \fIarg\fP is `\fB\-\fP\&', change to the -value of \fB$OLDPWD\fP, the previous directory\&. +previous directory\&. .RS .PP Otherwise, if \fIarg\fP begins with a slash, attempt to change to the @@ -165,6 +167,9 @@ successful\&. If `\fB\&.\fP\&' occurs in \fBcdpath\fP, then \fBcdpath\fP is searched strictly in order so that `\fB\&.\fP\&' is only tried at the appropriate point\&. .PP +The order of testing \fBcdpath\fP is modified if the option \fBPOSIX_CD\fP +is set, as described in the documentation for the option\&. +.PP If no directory is found, the option \fBCDABLE_VARS\fP is set, and a parameter named \fIarg\fP exists whose value begins with a slash, treat its value as the directory\&. In that case, the parameter is added to the named @@ -726,7 +731,7 @@ Note that a single `\fB\-\fP\&' is not considered a valid option argument\&. \fIoptstring\fP contains the letters that \fBgetopts\fP recognizes\&. If a letter is followed by a `\fB:\fP\&', that option -is expected to have an argument\&. The options can be +requires an argument\&. The options can be separated from the argument by blanks\&. .RS .PP @@ -746,7 +751,7 @@ .PP A leading `\fB:\fP\&' in \fIoptstring\fP causes \fBgetopts\fP to store the letter of any invalid option in \fBOPTARG\fP, and to set \fIname\fP to -`\fB?\fP\&' for an unknown option and to `\fB:\fP' when a required option is +`\fB?\fP\&' for an unknown option and to `\fB:\fP' when a required argument is missing\&. Otherwise, \fBgetopts\fP sets \fIname\fP to `\fB?\fP\&' and prints an error message when an option is invalid\&. The exit status is nonzero when there are no more options\&. @@ -975,6 +980,10 @@ [\fImm\fP\fB:\fP]\fIss\fP minutes and seconds .PD +.PP +The \fBlimit\fP command is not made available by default when the +shell starts in a mode emulating another shell\&. It can be made available +with the command `\fBzmodload \-F zsh/rlimits b:limit\fP\&'\&. .RE .TP \fBlocal\fP [ {\fB+\fP|\fB\-\fP}\fBAEFHUahlprtux\fP ] [ \fB\-LRZi\fP [ \fIn\fP ]] [ \fIname\fP[\fB=\fP\fIvalue\fP] ] \&.\&.\&. @@ -1215,9 +1224,10 @@ Read only one character from the terminal and set \fIname\fP to `\fBy\fP\&' if this character was `\fBy\fP' or `\fBY\fP' and to `\fBn\fP' otherwise\&. With this flag set the return status is zero only if the character was -`\fBy\fP\&' or `\fBY\fP'\&. Note that this always reads from the terminal, even -if used with the \fB\-p\fP or \fB\-u\fP or \fB\-z\fP flags or with redirected input\&. -This option may also be used within zle widgets\&. +`\fBy\fP\&' or `\fBY\fP'\&. This option may be used with a timeout; if +the read times out, or encounters end of file, status 2 is returned\&. +Input is read from the terminal unless one of \fB\-u\fP +or \fB\-p\fP is present\&. This option may also be used within zle widgets\&. .TP \fB\-k\fP [ \fInum\fP ] Read only one (or \fInum\fP) characters\&. All are assigned to the first @@ -1300,6 +1310,7 @@ the first character is tested, so that e\&.g\&. `\fBread \-t \-k 2\fP\&' can still block on the second character\&. Use two instances of `\fBread \-t \-k\fP\&' if this is not what is wanted\&. +.PP If the first argument contains a `\fB?\fP\&', the remainder of this word is used as a \fIprompt\fP on standard error when the shell is interactive\&. @@ -1393,6 +1404,10 @@ For historical reasons, `\fBset \-\fP\&' is treated as `\fBset +xv\fP' and `\fBset \-\fP \fIargs\fP\&' as `\fBset +xv \-\-\fP \fIargs\fP' when in any other emulation mode than zsh\&'s native mode\&. +.PP +The \fBsched\fP builtin is not made available by default when the shell +starts in a mode emulating another shell\&. It can be made available +with the command `\fBzmodload \-F zsh/sched b:sched\fP\&'\&. .RE .TP \fBsetcap\fP @@ -1517,7 +1532,8 @@ shell or the return status of the function exiting\&. If \fIsig\fP is \fB0\fP or \fBEXIT\fP and the \fBtrap\fP statement is not executed inside the body of a function, -then the command \fIarg\fP is executed when the shell terminates\&. +then the command \fIarg\fP is executed when the shell terminates; the +trap runs before any \fBzshexit\fP hook functions\&. .PP \fBZERR\fP, \fBDEBUG\fP, and \fBEXIT\fP traps are not executed inside other traps\&. \fBZERR\fP and \fBDEBUG\fP traps are kept within subshells, while @@ -1806,16 +1822,21 @@ \fBulimit\fP [ [ \fB\-SHacdfilmnpqstvx\fP | \fB\-N\fP \fIresource\fP [ \fIlimit\fP ] \&.\&.\&. ] Set or display resource limits of the shell and the processes started by the shell\&. The value of \fIlimit\fP can be a number in the unit specified -below or the value `\fBunlimited\fP\&'\&. By default, only soft limits are -manipulated\&. If the \fB\-H\fP flag is given use -hard limits instead of soft limits\&. If the \fB\-S\fP flag is given -together with the \fB\-H\fP flag set both hard and soft limits\&. If no -options are used, the file size limit (\fB\-f\fP) is assumed\&. If -\fIlimit\fP is omitted the current value of the specified resources are -printed\&. When more than one resource values are printed the limit name and -unit is printed before each value\&. +below or one of the values `\fBunlimited\fP\&', which removes the limit on the +resource, or `\fBhard\fP\&', which uses the current value of the hard limit on +the resource\&. .RS .PP +By default, only soft limits are manipulated\&. If the \fB\-H\fP flag +is given use hard limits instead of soft limits\&. If the \fB\-S\fP flag is given +together with the \fB\-H\fP flag set both hard and soft limits\&. +.PP +If no options are used, the file size limit (\fB\-f\fP) is assumed\&. +.PP +If \fIlimit\fP is omitted the current value of the specified resources are +printed\&. When more than one resource value is printed, the limit name and +unit is printed before each value\&. +.PP When looping over multiple resources, the shell will abort immediately if it detects a badly formed argument\&. However, if it fails to set a limit for some other reason it will continue trying to set the remaining limits\&. @@ -1911,6 +1932,12 @@ the hard resource limit for each \fIresource\fP is removed\&. The resources of the shell process are only changed if the \fB\-s\fP flag is given\&. +.RS +.PP +The \fBunlimit\fP command is not made available by default when the +shell starts in a mode emulating another shell\&. It can be made available +with the command `\fBzmodload \-F zsh/rlimits b:unlimit\fP\&'\&. +.RE .TP \fBunset\fP [ \fB\-fmv\fP ] \fIname\fP \&.\&.\&. Each named parameter is unset\&. @@ -2025,7 +2052,7 @@ the same directory as the \fIfile\fP\&. The shell will load the compiled file instead of the normal function file when the function is autoloaded; see -the section `Autoloading Functions\&' in \fIzshfunc\fP(1) +the section `Autoloading Functions\&' in \fIzshmisc\fP(1) for a description of how autoloaded functions are searched\&. The extension \fB\&.zwc\fP stands for `zsh word code\&'\&. .PP @@ -2198,7 +2225,7 @@ .PP With \fB\-u\fP, \fBzmodload\fP unloads modules\&. The same \fIname\fP must be given that was given when the module was loaded, but it is not -necessary for the module to exist in the filesystem\&. +necessary for the module to exist in the file system\&. The \fB\-i\fP option suppresses the error if the module is already unloaded (or was never loaded)\&. .PP diff -Nru zsh-4.3.10/Doc/zshcalsys.1 zsh-4.3.11/Doc/zshcalsys.1 --- zsh-4.3.10/Doc/zshcalsys.1 2009-06-01 11:00:17.000000000 +0200 +++ zsh-4.3.11/Doc/zshcalsys.1 2010-12-20 16:00:42.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHCALSYS" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHCALSYS" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshcalsys \- zsh calendar system .\" Yodl file: Zsh/calsys.yo @@ -455,6 +455,53 @@ for a recurrence of an event in the calendar until the previous event has passed\&. .PP +If \fBRPT\fP is used, it is also possible to specify that certain +recurrences of an event are rescheduled or cancelled\&. This is +done with the \fBOCCURRENCE\fP keyword, followed by whitespace and the +date and time of the occurrence in the regular sequence, followed by +whitespace and either the date and time of the rescheduled event or +the exact string \fBCANCELLED\fP\&. In this case the date and time must +be in exactly the "date with local time" format used by the +\fBtext/calendar\fP MIME type (RFC 2445), +\fI
\fP\fBT\fP\fI\fP (note the presence of the literal +character \fBT\fP)\&. The first word (the regular recurrence) may be +something other than a proper date/time to indicate that the event +is additional to the normal sequence; a convention that retains +the formatting appearance is \fBXXXXXXXXTXXXXXX\fP\&. +.PP +Furthermore, it is useful to record the next regular recurrence +(as then the displayed date may be for a rescheduled event so cannot +be used for calculating the regular sequence)\&. This is specified by +\fBRECURRENCE\fP and a time or date in the same format\&. \fBcalendar_add\fP +adds such an indication when it encounters a recurring event that does not +include one, based on the headline date/time\&. +.PP +If \fBcalendar_add\fP is used to update occurrences the \fBUID\fP keyword +described there should be present in both the existing entry and the added +occurrence in order to identify recurring event sequences\&. +.PP +For example, +.PP +.RS +.nf +\fBThu May 6, 2010 11:00 Informal chat RPT 1 week + # RECURRENCE 20100506T110000 + # OCCURRENCE 20100513T110000 20100513T120000 + # OCCURRENCE 20100520T110000 CANCELLED\fP +.fi +.RE +.PP +The event that occurs at 11:00 on 13th May 2010 is rescheduled an hour +later\&. The event that occurs a week later is cancelled\&. The occurrences +are given on a continuation line starting with a \fB#\fP character so will +not usually be displayed as part of the event\&. As elsewhere, no account of +time zones is taken with the times\&. After the next event occurs the headline +date/time will be `\fBThu May 13, 2010 12:00\fP\&' while the \fBRECURRENCE\fP +date/time will be `\fB20100513T110000\fP\&' (note that cancelled and +moved events are not taken account of in the \fBRECURRENCE\fP, which +records what the next regular recurrence is, but they are accounted for in +the headline date/time)\&. +.PP It is safe to run \fBcalendar \-s\fP to reschedule an existing event (if the calendar file has changed, for example), and also to have it running in multiples instances of the shell since the calendar file @@ -510,18 +557,41 @@ .RE .PP The second line will not be shown by the \fBcalendar\fP function\&. +.PP +It is possible to specify the \fBRPT\fP keyword followed by \fBCANCELLED\fP +instead of a relative time\&. This causes any matched event or series +of events to be cancelled (the original event does not have to be marked +as recurring in order to be cancelled by this method)\&. A \fBUID\fP is +required in order to match an existing event in the calendar\&. +.PP +\fBcalendar_add\fP will attempt to manage recurrences and occurrences of +repeating events as described for event scheduling by \fBcalendar \-s\fP +above\&. To reschedule or cancel a single event \fBcalendar_add\fP should be +called with an entry that includes the correct \fBUID\fP but does \fInot\fP +include the \fBRPT\fP keyword as this is taken to mean the entry applies to a +series of repeating events and hence replaces all existing information\&. +Each rescheduled or cancelled occurrence must have an \fBOCCURRENCE\fP +keyword in the entry passed to \fBcalendar_add\fP which will be merged into +the calendar file\&. Any existing reference to the occurrence is replaced\&. +An occurrence that does not refer to a valid existing event is added as a +one\-off occurrence to the same calendar entry\&. .RE .TP \fBcalendar_edit\fP -This calls the user\&'s editor to edit the calendar file\&. The editor -is given by the variable \fBVISUAL\fP, if set, else the variable \fBEDITOR\fP\&. +This calls the user\&'s editor to edit the calendar file\&. If +there are arguments, they are taken as the editor to use (the file name +is appended to the commands); otherwise, the editor is given by the +variable \fBVISUAL\fP, if set, else the variable \fBEDITOR\fP\&. +.RS +.PP If the calendar scheduler was running, then after editing the file \fBcalendar \-s\fP is called to update it\&. -.RS .PP This function locks out the calendar system during the edit\&. Hence it should be used to edit the calendar file if there is any -possibility of a calendar event occurring meanwhile\&. +possibility of a calendar event occurring meanwhile\&. Note this +can lead to another shell with calendar functions enabled hanging waiting +for a lock, so it is necessary to quit the editor as soon as possible\&. .RE .TP \fBcalendar_parse\fP \fIcalendar\-entry\fP @@ -538,6 +608,12 @@ The time as a string of digits in the same units as \fB$EPOCHSECONDS\fP .TP +schedtime +The regularly scheduled time\&. This may differ from +the actual event time \fBtime\fP if this is a recurring event and the next +occurrence has been rescheduled\&. Then \fBtime\fP gives the actual time +and \fBschedtime\fP the time of the regular recurrence before modification\&. +.TP text1 The text from the line not including the date and time of the event, but including any \fBWARN\fP or \fBRPT\fP keywords and values\&. @@ -558,6 +634,12 @@ as \fB$EPOCHSECONDS\fP\&. (Note this is an absolute time\&.) Not set if no \fBRPT\fP keyword and value were matched\&. .TP +schedrpttime +The next regularly scheduled occurrence of a recurring +event before modification\&. This may differ from \fBrpttime\fP, which is the +actual time of the event that may have been rescheduled from the regular +time\&. +.TP rptstr The raw string matched after the \fBRPT\fP keyword, else unset\&. .TP @@ -596,18 +678,8 @@ .PP The function \fBage\fP can be autoloaded and use separately from the calendar system, although it uses the function \fBcalendar_scandate\fP -for date formatting\&. It requires the \fBzsh/stat\fP builtin, which -makes available the builtin \fBstat\fP\&. This may conflict with an -external programme of the same name; if it does, the builtin may be -disabled for normal operation by including the following code in -an initialization file: -.PP -.RS -.nf -\fBzmodload \-i zsh/stat -disable stat\fP -.fi -.RE +for date formatting\&. It requires the \fBzsh/stat\fP builtin, but uses +only the builtin \fBzstat\fP\&. .PP \fBage\fP selects files having a given modification time for use as a glob qualifier\&. The format of the date is the same as that diff -Nru zsh-4.3.10/Doc/zshcompctl.1 zsh-4.3.11/Doc/zshcompctl.1 --- zsh-4.3.10/Doc/zshcompctl.1 2009-06-01 11:00:17.000000000 +0200 +++ zsh-4.3.11/Doc/zshcompctl.1 2010-12-20 16:00:42.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHCOMPCTL" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHCOMPCTL" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshcompctl \- zsh programmable completion .\" Yodl file: Zsh/compctl.yo @@ -170,10 +170,10 @@ .TP .PD \fB\-f\fP -Filenames and filesystem paths\&. +Filenames and file system paths\&. .TP \fB\-/\fP -Just filesystem paths\&. +Just file system paths\&. .TP \fB\-c\fP Command names, including aliases, shell functions, builtins diff -Nru zsh-4.3.10/Doc/zshcompsys.1 zsh-4.3.11/Doc/zshcompsys.1 --- zsh-4.3.10/Doc/zshcompsys.1 2009-06-01 11:00:18.000000000 +0200 +++ zsh-4.3.11/Doc/zshcompsys.1 2010-12-20 16:00:43.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHCOMPSYS" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHCOMPSYS" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshcompsys \- zsh completion system .\" Yodl file: Zsh/compsys.yo @@ -187,7 +187,7 @@ currently named in \fBfpath\fP, set \fB_compdir\fP to an empty string before calling \fBcompaudit\fP or \fBcompinit\fP\&. .PP -The function \fBbashcompinit\fP compatibility with bash\&'s programmable +The function \fBbashcompinit\fP provides compatibility with bash\&'s programmable completion system\&. When run it will define the functions, \fBcompgen\fP and \fBcomplete\fP which correspond to the bash builtins with the same names\&. It will then be possible to use completion specifications and functions @@ -264,7 +264,7 @@ .PP When one of the \fIkey\-sequences\fP is typed, the function in the file will be invoked to generate the matches\&. Note that a key will not be re\-bound -if if it already was (that is, was bound to something other than +if it already was (that is, was bound to something other than \fBundefined\-key\fP)\&. The widget created has the same name as the file and can be bound to any other keys using \fBbindkey\fP as usual\&. .RE @@ -1068,6 +1068,9 @@ directory is accepted without any attempt to complete it further\&. Hence, in the given example, the path \fB/usr/bin/\fP is accepted immediately and completion tried in that directory\&. +.PP +If you wish to inhibit this behaviour entirely, set the \fBpath\-completion\fP +style (see below) to \fBfalse\fP\&. .RE .TP \fBadd\-space\fP @@ -1139,7 +1142,7 @@ This style is used in the function for commands such as \fBmake\fP and \fBant\fP where calling the command directly to generate matches suffers problems such as being slow or, as in the case of \fBmake\fP can -potentially causes actions in the makefile to be executed\&. If it is set +potentially cause actions in the makefile to be executed\&. If it is set to `true\&' the command is called to generate matches\&. The default value of this style is `false\&'\&. .TP @@ -1185,7 +1188,7 @@ .TP \fBcomplete\fP This is used by the \fB_expand_alias\fP function when invoked as a -bindable command\&. If it set to `true\&' and the word on the command +bindable command\&. If set to `true\&' and the word on the command line is not the name of an alias, matching alias names will be completed\&. .TP @@ -1336,17 +1339,17 @@ separated by spaces) as possible matches when completing in the directory \fIdir\fP, even if no such files really exist\&. The dir may be a pattern; pattern characters -or colons in \fIdir\fP should be quote with a backslash to be treated +or colons in \fIdir\fP should be quoted with a backslash to be treated literally\&. .RS .PP -This can be useful on systems that support special filesystems whose +This can be useful on systems that support special file systems whose top\-level pathnames can not be listed or generated with glob patterns\&. It can also be used for directories for which one does not have read permission\&. .PP The pattern form can be used to add a certain `magic\&' entry -to all directories on a particular filing system\&. +to all directories on a particular file system\&. .RE .TP \fBfake\-parameters\fP @@ -1758,7 +1761,7 @@ .PP The value may also contain the substrings `\fBpending\fP\&' or `\fBpending=\fP\fIval\fP\&'\&. In this case, the typed character will be -inserted instead of staring completion when there is unprocessed input +inserted instead of starting completion when there is unprocessed input pending\&. If a \fIval\fP is given, completion will not be done if there are at least that many characters of unprocessed input\&. This is often useful when pasting characters into a terminal\&. Note @@ -1928,7 +1931,7 @@ .TP \fBlocal\fP This is for use with functions that complete URLs for which the -corresponding files are available directly from the filing system\&. +corresponding files are available directly from the file system\&. Its value should consist of three strings: a hostname, the path to the default web pages for the server, and the directory name used by a user placing web pages within their home @@ -1991,7 +1994,7 @@ .PP .RS .nf -\fBzstyle \&':completion:*' matcher\-list '' '+m{a\-Z}={A\-Z}' '+m{A\-Z}={a\-z}'\fP +\fBzstyle \&':completion:*' matcher\-list '' '+m{a\-z}={A\-Z}' '+m{A\-Z}={a\-z}'\fP .fi .RE .PP @@ -2028,7 +2031,7 @@ If the style is unset in any context no match specification is applied\&. Note also that some completers such as \fB_correct\fP and \fB_approximate\fP do not use the match specifications at all, though these completers will -only ever called once even if the \fBmatcher\-list\fP contains more than +only ever be called once even if the \fBmatcher\-list\fP contains more than one element\&. .PP Where multiple specifications are useful, note that the \fIentire\fP @@ -2261,6 +2264,22 @@ the style is not set but this file is found in one of various standard locations it will be used as the default\&. .TP +\fBpath\-completion\fP +This is used by filename completion\&. By default, filename completion +examines all components of a path to see if there are completions of +that component\&. For example, \fB/u/b/z\fP can be completed to +\fB/usr/bin/zsh\fP\&. Explicitly setting this style to \fBfalse\fP inhibits this +behaviour for path components up to the \fB/\fP before the cursor; this +overrides the setting of \fBaccept\-exact\-dirs\fP\&. +.RS +.PP +Even with the style set to \fBfalse\fP, it is still possible to complete +multiple paths by setting the option \fBCOMPLETE_IN_WORD\fP and moving the +cursor back to the first component in the path to be completed\&. For +example, \fB/u/b/z\fP can be completed to \fB/usr/bin/zsh\fP if the cursor is +after the \fB/u\fP\&. +.RE +.TP \fBpine\-directory\fP If set, specifies the directory containing PINE mailbox files\&. There is no default, since recursively searching this directory is inconvenient @@ -2726,7 +2745,7 @@ .TP \fBuse\-perl\fP Various parts of the function system use awk to extract words from -files or command output as this universally available\&. However, many +files or command output as it is universally available\&. However, many versions of awk have arbitrary limits on the size of input\&. If this style is set, perl will be used instead\&. This is almost always preferable if perl is available on your system\&. @@ -3470,7 +3489,7 @@ offers usernames and hostnames as possible matches, generated by the \fB_users\fP and \fB_hosts\fP functions respectively\&. .PP -Like \fB_arguments\fP, this functions uses \fB_all_labels\fP to execute +Like \fB_arguments\fP, this function uses \fB_all_labels\fP to execute the actions, which will loop over all sets of tags\&. Special handling is only required if there is an additional valid tag, for example inside a function called from \fB_alternative\fP\&. @@ -3789,7 +3808,7 @@ choice of resetting these parameters or propagating changes in them\&. .PP A function calling \fB_arguments\fP with at least -one action containing a `\fB\->\fP\fIstring\fP\&' therefore must declare +one action containing a `\fB\->\fP\fIstring\fP\&' must therefore declare appropriate local parameters: .PP .RS @@ -3799,7 +3818,7 @@ .fi .RE .PP -to avoid \fB_arguments\fP from altering the global environment\&. +to prevent \fB_arguments\fP from altering the global environment\&. .RE .TP \fB{\fP\fIeval\-string\fP\fB}\fP @@ -4020,7 +4039,7 @@ argument for an option is optional\&. This can be specified explicitly by doubling the colon before the \fImessage\fP\&. .PP -If the \fIpattern\fP ends in `\fB(\-)\fP\&', this will removed from the +If the \fIpattern\fP ends in `\fB(\-)\fP\&', this will be removed from the pattern and the \fIaction\fP will be used only directly after the `\fB=\fP\&', not in the next word\&. This is the behaviour of a normal specification defined with the form `\fB=\-\fP\&'\&. @@ -4113,8 +4132,8 @@ \fB_call_function\fP \fIreturn\fP \fIname\fP [ \fIargs\fP \&.\&.\&. ] If a function \fIname\fP exists, it is called with the arguments \fIargs\fP\&. The \fIreturn\fP argument gives the name of a parameter in which -the return status from the function \fIname\fP; if \fIreturn\fP is empty or a -single hyphen it is ignored\&. +the return status from the function \fIname\fP should be stored; if \fIreturn\fP +is empty or a single hyphen it is ignored\&. .RS .PP The return status of \fB_call_function\fP itself is zero if the function @@ -4201,7 +4220,7 @@ \fBprefix\-needed\fP and \fBverbose\fP styles to find out if the strings should be added as completions and if the descriptions should be shown\&. Without the `\fB\-o\fP\&' option, only the \fBverbose\fP style is used to decide how -descriptions are shown\&. If `\fB\-O\fP\&' is used instead of `\fB\-O\fP', command +descriptions are shown\&. If `\fB\-O\fP\&' is used instead of `\fB\-o\fP', command options are completed as above but \fB_describe\fP will not handle the \fBprefix\-needed\fP style\&. .PP diff -Nru zsh-4.3.10/Doc/zshcompwid.1 zsh-4.3.11/Doc/zshcompwid.1 --- zsh-4.3.10/Doc/zshcompwid.1 2009-06-01 11:00:17.000000000 +0200 +++ zsh-4.3.11/Doc/zshcompwid.1 2010-12-20 16:00:42.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHCOMPWID" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHCOMPWID" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshcompwid \- zsh completion widgets .\" Yodl file: Zsh/compwid.yo @@ -547,7 +547,7 @@ Gives the name of the group of matches the words should be stored in\&. .TP \fB\-V\fP \fIname\fP -Like \fB\-J\fP but naming a unsorted group\&. These are in a different name +Like \fB\-J\fP but naming an unsorted group\&. These are in a different name space than groups created with the \fB\-J\fP flag\&. .TP \fB\-1\fP @@ -674,8 +674,8 @@ \fB\-D\fP \fIarray\fP As with \fB\-O\fP, the \fIwords\fP are not added to the set of possible completions\&. Instead, the completion code tests whether each \fIword\fP -in turn matches what is on the line\&. If the \fIn\fP\&'th \fIword\fP does not -match, the \fIn\fP\&'th element of the \fIarray\fP is removed\&. Elements +in turn matches what is on the line\&. If the \fIn\fPth \fIword\fP does not +match, the \fIn\fPth element of the \fIarray\fP is removed\&. Elements for which the corresponding \fIword\fP is matched are retained\&. .TP \fB\-C\fP @@ -752,8 +752,8 @@ .RS .PP Without the optional \fInumber\fP, the longest match is taken, but -if \fInumber\fP is given, anything up to the \fInumber\fP\&'th match is -moved\&. If the \fInumber\fP is negative, the \fInumber\fP\&'th longest +if \fInumber\fP is given, anything up to the \fInumber\fPth match is +moved\&. If the \fInumber\fP is negative, the \fInumber\fPth longest match is moved\&. For example, if \fBPREFIX\fP contains the string `\fBa=b=c\fP\&', then \fBcompset \-P '*\e='\fP will move the string `\fBa=b=\fP' into the \fBIPREFIX\fP parameter, but \fBcompset \-P 1 \&'*\e='\fP will move only @@ -771,7 +771,7 @@ \fB\-n\fP \fIbegin\fP [ \fIend\fP ] If the current word position as specified by the parameter \fBCURRENT\fP is greater than or equal to \fIbegin\fP, anything up to the -\fIbegin\fP\&'th word is removed from the \fBwords\fP array and the value +\fIbegin\fPth word is removed from the \fBwords\fP array and the value of the parameter \fBCURRENT\fP is decremented by \fIbegin\fP\&. .RS .PP @@ -827,7 +827,7 @@ \fBcompcall\fP [ \fB\-TD\fP ] This allows the use of completions defined with the \fBcompctl\fP builtin from within completion widgets\&. The list of matches will be generated as -if one of the non\-widget completion function (\fBcomplete\-word\fP, etc\&.) +if one of the non\-widget completion functions (\fBcomplete\-word\fP, etc\&.) had been called, except that only \fBcompctl\fPs given for specific commands are used\&. To force the code to try completions defined with the \fB\-T\fP option of \fBcompctl\fP and/or the default completion (whether defined by @@ -1116,7 +1116,7 @@ \fBCOMPLETE_IN_WORD\fP is set\&. In this case the completion code would normally try to match trial completions that end with the string as typed so far, i\&.e\&. it will only insert new characters at the cursor -position rather then at the end\&. However in our example we would like +position rather than at the end\&. However in our example we would like the code to recognise matches which contain extra characters after the string on the line (the `\fBnix\fP\&' in the example)\&. Hence we say that the empty string at the end of the string on the line matches any characters diff -Nru zsh-4.3.10/Doc/zshcontrib.1 zsh-4.3.11/Doc/zshcontrib.1 --- zsh-4.3.10/Doc/zshcontrib.1 2009-06-01 11:00:18.000000000 +0200 +++ zsh-4.3.11/Doc/zshcontrib.1 2010-12-20 16:00:43.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHCONTRIB" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHCONTRIB" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshcontrib \- user contributions to zsh .\" Yodl file: Zsh/contrib.yo @@ -44,7 +44,7 @@ \fBmkdir ~/zsh_help cd ~/zsh_help man zshall | colcrt \- | \e -perl ~/zsh\-4\&.3\&.10/Util/helpfiles\fP +perl ~/zsh\-4\&.3\&.11/Util/helpfiles\fP .fi .RE .PP @@ -179,7 +179,7 @@ .PP .RS .nf -\fBzsh \-f ~/zsh\-4\&.3\&.10/Functions/Misc/zkbd\fP +\fBzsh \-f ~/zsh\-4\&.3\&.11/Functions/Misc/zkbd\fP .fi .RE .PP @@ -235,7 +235,7 @@ .PP .RS .nf -\fB\&. ~/zsh\-4\&.3\&.10/Util/reporter > zsh\&.report\fP +\fB\&. ~/zsh\-4\&.3\&.11/Util/reporter > zsh\&.report\fP .fi .RE .PP @@ -330,7 +330,7 @@ the special functions in question\&. .PP \fIfunctions\fP is name of an ordinary shell function\&. If no options -are given this will be added to the array of functions to be executed\&. +are given this will be added to the array of functions to be executed in the given context\&. .PP If the option \fB\-d\fP is given, the \fIfunction\fP is removed from @@ -342,12 +342,310 @@ .RE .RE .PP +.SH "REMEMBERING RECENT DIRECTORIES" +.PP +The function \fBcdr\fP allows you to change the working directory to a +previous working directory from a list maintained automatically\&. It is +similar in concept to the directory stack controlled by the \fBpushd\fP, +\fBpopd\fP and \fBdirs\fP builtins, but is more configurable, and as it stores +all entries in files it is maintained across sessions and (by default) +between terminal emulators in the current session\&. (The \fBpushd\fP +directory stack is not actually modified or used by \fBcdr\fP unless you +configure it to do so as described in the configuration section below\&.) +.PP +.SS "Installation" +.PP +The system works by means of a hook function that is called every time the +directory changes\&. To install the system, autoload the required functions +and use the \fBadd\-zsh\-hook\fP function described above: +.PP +.RS +.nf +\fBautoload \-Uz chpwd_recent_dirs cdr add\-zsh\-hook +add\-zsh\-hook chpwd chpwd_recent_dirs\fP +.fi +.RE +.PP +Now every time you change directly interactively, no matter which +command you use, the directory to which you change will be remembered +in most\-recent\-first order\&. +.PP +.SS "Use" +.PP +All direct user interaction is via the \fBcdr\fP function\&. +.PP +The argument to cdr is a number \fIN\fP corresponding to the \fIN\fPth most +recently changed\-to directory\&. 1 is the immediately preceeding directory; +the current directory is remembered but is not offered as a destination\&. +Note that if you have multiple windows open 1 may refer to a directory +changed to in another window; you can avoid this by having per\-terminal +files for storing directory as described for the +\fBrecent\-dirs\-file\fP style below\&. +.PP +If you set the \fBrecent\-dirs\-default\fP style described below \fBcdr\fP +will behave the same as \fBcd\fP if given a non\-numeric argument, or more +than one argument\&. The recent directory list is updated just the same +however you change directory\&. +.PP +If the argument is omitted, 1 is assumed\&. This is similar to \fBpushd\fP\&'s +behaviour of swapping the two most recent directories on the stack\&. +.PP +Completion for the argument to \fBcdr\fP is available if compinit has been +run; menu selection is recommended, using: +.PP +.RS +.nf +\fBzstyle \&':completion:*:*:cdr:*:*' menu selection\fP +.fi +.RE +.PP +to allow you to cycle through recent directories; the order is preserved, +so the first choice is the most recent directory before the current one\&. +The verbose style is also recommended to ensure the directory is shown; this +style is on by default so no action is required unless you have changed it\&. +.PP +.SS "Options" +.PP +The behaviour of \fBcdr\fP may be modified by the following options\&. +.PP +.PD 0 +.TP +.PD +\fB\-l\fP +lists the numbers and the corresponding directories in +abbreviated form (i\&.e\&. with \fB~\fP substitution reapplied), one per line\&. +The directories here are not quoted (this would only be an issue if a +directory name contained a newline)\&. This is used by the completion +system\&. +.TP +\fB\-r\fP +sets the variable \fBreply\fP to the current set of directories\&. Nothing +is printed and the directory is not changed\&. +.TP +\fB\-e\fP +allows you to edit the list of directories, one per line\&. The +list can be edited to any extent you like; no sanity checking is +performed\&. Completion is available\&. No quoting is necessary (except for +newlines, where I have in any case no sympathy); directories are in +unabbreviated from and contain an absolute path, i\&.e\&. they start with \fB/\fP\&. +Usually the first entry should be left as the current directory\&. +.PP +.SS "Configuration" +.PP +Configuration is by means of the styles mechanism that should be familiar +from completion; if not, see the description of the \fBzstyle\fP command in +see \fIzshmodules\fP(1)\&. The context for setting styles +should be \fB\&':chpwd:*'\fP in case the meaning of the context is extended in +future, for example: +.PP +.RS +.nf +\fBzstyle \&':chpwd:*' recent\-dirs\-max 0\fP +.fi +.RE +.PP +sets the value of the \fBrecent\-dirs\-max\fP style to 0\&. In practice the +style name is specific enough that a context of \&'*' should be fine\&. +.PP +An exception is \fBrecent\-dirs\-insert\fP, which is used exclusively by the +completion system and so has the usual completion system context +(\fB\&':completion:*'\fP if nothing more specific is needed), though again +\fB\&'*'\fP should be fine in practice\&. +.PP +.PD 0 +.TP +.PD +\fBrecent\-dirs\-default\fP +If true, and the command is expecting a recent directory index, and +either there is more than one argument or the argument is not an +integer, then fall through to "cd"\&. This allows the lazy to use only +one command for directory changing\&. Completion recognises this, too; +see recent\-dirs\-insert for how to control completion when this option +is in use\&. +.TP +\fBrecent\-dirs\-file\fP +The file where the list of directories is saved\&. The default +is \fB${ZDOTDIR:\-$HOME}/\&.chpwd\-recent\-dirs\fP, i\&.e\&. this is in your +home directory unless you have set the variable \fBZDOTDIR\fP to point +somewhere else\&. Directory names are saved in \fB$\&'\fP\fI\&.\&.\&.\fP\fB'\fP quoted +form, so each line in the file can be supplied directly to the shell as an +argument\&. +.RS +.PP +The value of this style may be an array\&. In this case, the first +file in the list will always be used for saving directories while any +other files are left untouched\&. When reading the recent directory +list, if there are fewer than the maximum number of entries in the +first file, the contents of later files in the array will be appended +with duplicates removed from the list shown\&. The contents of the two +files are not sorted together, i\&.e\&. all the entries in the first file +are shown first\&. The special value \fB+\fP can appear in the list to +indicate the default file should be read at that point\&. This allows +effects like the following: +.PP +.RS +.nf +\fBzstyle \&':chpwd:*' recent\-dirs\-file \e +~/\&.chpwd\-recent\-dirs\-${TTY##*/} +\fP +.fi +.RE +.PP +Recent directories are read from a file numbered according to +the terminal\&. If there are insufficient entries the list +is supplemented from the default file\&. +.PP +It is possible to use \fBzstyle \-e\fP to make the directory configurable +at run time: +.PP +.RS +.nf +\fBzstyle \-e \&':chpwd:*' recent\-dirs\-file pick\-recent\-dirs\-file +pick\-recent\-dirs\-file() { + if [[ $PWD = ~/text/writing(|/*) ]]; then + reply=(~/\&.chpwd\-recent\-dirs\-writing) + else + reply=(+) + fi +}\fP +.fi +.RE +.PP +In this example, if the current directory is \fB~/text/writing\fP or a +directory under it, then use a special file for saving recent +directories, else use the default\&. +.RE +.TP +\fBrecent\-dirs\-insert\fP +Used by completion\&. If \fBrecent\-dirs\-default\fP is true, then setting +this to \fBtrue\fP causes the actual directory, rather than its index, to +be inserted on the command line; this has the same effect as using +the corresponding index, but makes the history clearer and the line +easier to edit\&. With this setting, if part of an argument was +already typed, normal directory completion rather than recent +directory completion is done; this is because recent directory +completion is expected to be done by cycling through entries menu +fashion\&. +.RS +.PP +If the value of the style is \fBalways\fP, then only recent directories will +be completed; in that case, use the \fBcd\fP command when you want to +complete other directories\&. +.PP +If the value is \fBfallback\fP, recent directories will be tried first, then +normal directory completion is performed if recent directory completion +failed to find a match\&. +.PP +Finally, if the value is \fBboth\fP then both sets of completions are +presented; the usual tag mechanism can be used to distinguish results, with +recent directories tagged as \fBrecent\-dirs\fP\&. Note that the recent +directories inserted are abbreviated with directory names where appropriate\&. +.RE +.TP +\fBrecent\-dirs\-max\fP +The maximum number of directories to save to the file\&. If +this is zero or negative there is no maximum\&. The default is 20\&. +Note this includes the current directory, which isn\&'t offered, +so the highest number of directories you will be offered +is one less than the maximum\&. +.TP +\fBrecent\-dirs\-prune\fP +This style is an array determining what directories should (or should +not) be added to the recent list\&. Elements of the array can include: +.RS +.PP +.PD 0 +.TP +.PD +\fBparent\fP +Prune parents (more accurately, ancestors) from the recent list\&. +If present, changing directly down by any number of directories +causes the current directory to be overwritten\&. For example, +changing from ~pws to ~pws/some/other/dir causes ~pws not to be +left on the recent directory stack\&. This only applies to direct +changes to descendant directories; earlier directories on the +list are not pruned\&. For example, changing from ~pws/yet/another +to ~pws/some/other/dir does not cause ~pws to be pruned\&. +.TP +\fBpattern:\fIpattern\fP\fP +Gives a zsh pattern for directories that should not be +added to the recent list (if not already there)\&. This element +can be repeated to add different patterns\&. For example, +\fB\&'pattern:/tmp(|/*)'\fP stops \fB/tmp\fP or its descendants +from being added\&. The \fBEXTENDED_GLOB\fP option is always turned on +for these patterns\&. +.RE +.TP +\fBrecent\-dirs\-pushd\fP +If set to true, \fBcdr\fP will use \fBpushd\fP instead of \fBcd\fP to change the +directory, so the directory is saved on the directory stack\&. As the +directory stack is completely separate from the list of files saved +by the mechanism used in this file there is no obvious reason to do +this\&. +.PP +.SS "Use with dynamic directory naming" +.PP +It is possible to refer to recent directories using the dynamic directory +name syntax that appeared in zsh version 4\&.3\&.7\&. If you create and +autoload a function \fBzsh_directory_name\fP containing the following code, +\fB~[1]\fP will refer to the most recent directory other than $PWD, and so on\&. +This also includes completion\&. +.PP +.RS +.nf +\fBif [[ $1 = n ]]; then + if [[ $2 = <\-> ]]; then + # Recent directory + typeset \-ga reply + autoload \-Uz cdr + cdr \-r + if [[ \-n ${reply[$2]} ]]; then + reply=(${reply[$2]}) + return 0 + else + reply=() + return 1 + fi + fi +elif [[ $1 = c ]]; then + if [[ $PREFIX = <\-> || \-z $PREFIX ]]; then + typeset \-a keys values + values=(${${(f)"$(cdr \-l)"}/ ##/:}) + keys=(${values%%:*}) + _describe \-t dir\-index \&'recent directory index' values keys \-V unsorted \-S']' + return + fi +fi +return 1\fP +.fi +.RE +.PP +.SS "Details of directory handling" +.PP +This section is for the curious or confused; most users will not +need to know this information\&. +.PP +Recent directories are saved to a file immediately and hence are +preserved across sessions\&. Note currently no file locking is applied: +the list is updated immediately on interactive commands and nowhere else +(unlike history), and it is assumed you are only going to change +directory in one window at once\&. This is not safe on shared accounts, +but in any case the system has limited utility when someone else is +changing to a different set of directories behind your back\&. +.PP +To make this a little safer, only directory changes instituted from the +command line, either directly or indirectly through shell function calls +(but not through subshells, evals, traps, completion functions and the +like) are saved\&. Shell functions should use \fBcd \-q\fP or \fBpushd \-q\fP to +avoid side effects if the change to the directory is to be invisible at the +command line\&. See the contents of the function \fBchpwd_recent_dirs\fP for +more details\&. +.PP .SH "GATHERING INFORMATION FROM VERSION CONTROL SYSTEMS" .PP In a lot of cases, it is nice to automatically retrieve information from version control systems (VCSs), such as subversion, CVS or git, to be able to provide it to the user; possibly in the user\&'s prompt\&. So that you can -instantly tell on which branch you are currently on, for example\&. +instantly tell which branch you are currently on, for example\&. .PP In order to do that, you may use the \fBvcs_info\fP function\&. .PP @@ -364,17 +662,17 @@ Concurrent Versioning System (\fBcvs\fP) http://www\&.nongnu\&.org/cvs/ .TP -\fBdarcs\fP +Darcs (\fBdarcs\fP) http://darcs\&.net/ .TP -\fBgit\fP -http://git\&.or\&.cz/ +Git (\fBgit\fP) +http://git\-scm\&.com/ .TP GNU arch (\fBtla\fP) http://www\&.gnu\&.org/software/gnu\-arch/ .TP Mercurial (\fBhg\fP) -http://selenic\&.com/mercurial/ +http://mercurial\&.selenic\&.com/ .TP Monotone (\fBmtn\fP) http://monotone\&.ca/ @@ -389,6 +687,10 @@ http://svk\&.bestpractical\&.com/ .PD .PP +There is also support for the patch management system \fBquilt\fP +(http://savannah\&.nongnu\&.org/projects/quilt)\&. See \fBQuilt Support\fP +below for details\&. +.PP To load \fIvcs_info\fP: .PP .RS @@ -407,17 +709,15 @@ .PP .RS .nf -\fBzstyle \&':vcs_info:*' actionformats \e - \&'%F{5}(%f%s%F{5})%F{3}\-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' -zstyle \&':vcs_info:*' formats \e - \&'%F{5}(%f%s%F{5})%F{3}\-%F{5}[%F{2}%b%F{5}]%f ' +\fBzstyle \&':vcs_info:*' actionformats '%F{5}(%f%s%F{5})%F{3}\-%F{5}[%F{2}%b%F{3}|%F{1}%a%F{5}]%f ' +zstyle \&':vcs_info:*' formats '%F{5}(%f%s%F{5})%F{3}\-%F{5}[%F{2}%b%F{5}]%f ' zstyle \&':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F{1}:%F{3}%r' precmd () { vcs_info } PS1=\&'%F{5}[%F{2}%n%F{5}] %F{3}%3~ ${vcs_info_msg_0_}%f%# '\fP .fi .RE .PP -Obviously, the last two lines are there for demonstration: You need to +Obviously, the last two lines are there for demonstration\&. You need to call \fIvcs_info\fP from your \fIprecmd\fP function\&. Once that is done you need a \fBsingle quoted\fP \fI\&'${vcs_info_msg_0_}'\fP in your prompt\&. .PP @@ -444,9 +744,12 @@ tla ## flavours (cannot be used in the enable or disable styles; they ## are enabled and disabled with their master [git\-svn \-> git]) -## they *can* be used contexts: \&':vcs_info:git\-svn:*'\&. +## they *can* be used in contexts: \&':vcs_info:git\-svn:*'\&. git\-p4 -git\-svn\fP +git\-svn +hg\-git +hg\-hgsubversion +hg\-hgsvn\fP .fi .RE .PP @@ -489,8 +792,9 @@ .TP .PD \fB\fP -is one of: git, git\-svn, git\-p4, hg, darcs, bzr, -cdv, mtn, svn, cvs, svk, tla or p4\&. +is one of: git, git\-svn, git\-p4, hg, hg\-git, hg\-hgsubversion, hg\-hgsvn, +darcs, bzr, cdv, mtn, svn, cvs, svk, tla or p4\&. When hooks are active the +hooks name is added after a `+\&'\&. (See \fBHooks in vcs_info\fP below\&.) .TP \fB\fP is a freely configurable string, assignable by @@ -500,11 +804,11 @@ \fB\fP is the name of a repository in which you want a style to match\&. So, if you want a setting specific to \fI/usr/src/zsh\fP, -with that being a cvs checkout, you can set \fB\fP to +with that being a CVS checkout, you can set \fB\fP to \fIzsh\fP to make it so\&. .PP There are three special values for \fB\fP: The first is named -\fI\-init\-\fP, that is in effect as long as there was no decision what vcs +\fI\-init\-\fP, that is in effect as long as there was no decision what VCS backend to use\&. The second is \fI\-preinit\-\fP; it is used \fBbefore\fP \fIvcs_info\fP is run, when initializing the data exporting variables\&. The third special value is \fIformats\fP and is used by the \fBvcs_info_lastmsg\fP @@ -513,7 +817,7 @@ The initial value of \fB\fP is \fI\-all\-\fP and it is replaced with the actual name, as soon as it is known\&. Only use this part of the context for defining the \fIformats\fP, \fIactionformats\fP or -\fIbranchformat\fP styles\&. As it is guaranteed that \fB\fP is +\fIbranchformat\fP styles, as it is guaranteed that \fB\fP is set up correctly for these only\&. For all other styles, just use \fB\&'*'\fP instead\&. .PP @@ -540,43 +844,41 @@ (which is most of the time)\&. .TP \fBactionformats\fP -A list of formats, used if a there is a special -action going on in your current repository; (like an interactive rebase or -a merge conflict)\&. +A list of formats, used if there is a special +action going on in your current repository; like an interactive rebase or +a merge conflict\&. .TP \fBbranchformat\fP Some backends replace \fI%b\fP in the formats and actionformats styles above, not only by a branch name but also by a -revision number\&. This style let\&'s you modify how that string should look -like\&. +revision number\&. This style lets you modify how that string should look\&. .TP \fBnvcsformats\fP -These "formats" are exported, when we didn\&'t detect -a version control system for the current directory\&. This is useful, if you +These "formats" are exported when we didn\&'t detect +a version control system for the current directory\&. This is useful if you want \fIvcs_info\fP to completely take over the generation of your prompt\&. You would do something like \fBPS1=\&'${vcs_info_msg_0_}'\fP to accomplish that\&. .TP -\fBstgitformat\fP -The \fBgit\fP backend replaces \fI%m\fP in the formats and -actionformats styles with \fBstgit\fP\-specific information for -\fBstgit\fP\-initialized branches\&. This style let\&'s you modify how that string -should look like\&. +\fBhgrevformat\fP +\fBhg\fP uses both a hash and a revision number to reference a specific +changeset in a repository\&. With this style you can format the revision +string (see \fIbranchformat\fP) to include either or both\&. It\&'s only +useful when \fIget\-revision\fP is true\&. .TP \fBmax\-exports\fP -Defines the maximum number if +Defines the maximum number of \fIvcs_info_msg_*_\fP variables \fIvcs_info\fP will export\&. .TP \fBenable\fP -A list of backends you want to use\&. Checked in the -\fI\-init\-\fP context\&. If this list contains an item called \fBNONE\fP no -backend is used at all and \fIvcs_info\fP will do nothing\&. If this list -contains \fBALL\fP \fIvcs_info\fP will use all backends known to it\&. Only with -\fBALL\fP in \fBenable\fP, the \fBdisable\fP style has any effect\&. \fBALL\fP and -\fBNONE\fP are actually tested case insensitively\&. +A list of backends you want to use\&. Checked in the \fI\-init\-\fP context\&. If +this list contains an item called \fBNONE\fP no backend is used at all and +\fIvcs_info\fP will do nothing\&. If this list contains \fBALL\fP \fIvcs_info\fP +will use all known backends\&. Only with \fBALL\fP in \fBenable\fP will the +\fBdisable\fP style have any effect\&. \fBALL\fP and \fBNONE\fP are case insensitive\&. .TP \fBdisable\fP -A list of VCSs, you don\&'t want \fIvcs_info\fP to test for +A list of VCSs you don\&'t want \fIvcs_info\fP to test for repositories (checked in the \fI\-init\-\fP context, too)\&. Only used if \fBenable\fP contains \fBALL\fP\&. .TP @@ -595,15 +897,32 @@ .RE .RE .TP +\fBuse\-quilt\fP +If enabled, the \fBquilt\fP support code is active in `addon\&' mode\&. +See \fBQuilt Support\fP for details\&. +.TP +\fBquilt\-standalone\fP +If enabled, `standalone\&' mode detection is attempted if no VCS is active +in a given directory\&. See \fBQuilt Support\fP for details\&. +.TP +\fBquilt\-patch\-dir\fP +Overwrite the value of the \fI$QUILT_PATCHES\fP environment variable\&. See +\fBQuilt Support\fP for details\&. +.TP +\fBquiltcommand\fP +When \fBquilt\fP itself is called in quilt support the value of this style +is used as the command name\&. +.TP \fBcheck\-for\-changes\fP -If enabled, this style (currently only used by the \fBgit\fP backend) causes the -\fB%c\fP and \fB%u\fP format escapes to be filled with information\&. The strings -filled into these escapes can be controlled via the \fIstagedstr\fP and -\fIunstagedstr\fP styles\&. +If enabled, this style causes the \fB%c\fP and \fB%u\fP format escapes to show +when the working directory has uncommitted changes\&. The strings displayed by +these escapes can be controlled via the \fIstagedstr\fP and \fIunstagedstr\fP +styles\&. The only backends that currently support this option are \fBgit\fP and +\fBhg\fP (\fBhg\fP only supports unstaged)\&. .RS .PP -Note, that the actions taken if this style is enabled are potentially expensive -(read: they take time, depending on how big the current repository is)\&. +Note, the actions taken if this style is enabled are potentially expensive +(read: they may be slow, depending on how big the current repository is)\&. Therefore, it is disabled by default\&. .RE .TP @@ -612,25 +931,25 @@ the repository\&. .TP \fBunstagedstr\fP -This string will be used in the \fB%u\fP escape if there are unstaged changes in -the repository\&. +This string will be used in the \fB%u\fP escape if there are unstaged changes +in the repository\&. .TP \fBcommand\fP This style causes \fIvcs_info\fP to use the supplied string as the command -to use as the vcs\&'s binary\&. Note, that setting this in ':vcs_info:*' is +to use as the VCS\&'s binary\&. Note, that setting this in ':vcs_info:*' is not a good idea\&. .RS .PP If the value of this style is empty (which is the default), the used binary -name is the name of the backend in use (e\&.g\&. \fIsvn\fP is used in a \fIsvn\fP +name is the name of the backend in use (e\&.g\&. \fIsvn\fP is used in an \fIsvn\fP repository)\&. .PP The \fIrepo\-root\-name\fP part in the context is always the default \fB\-all\-\fP when this style is looked up\&. .PP For example, this style can be used to use binaries from non\-default -installation directories\&. Assume, \fIgit\fP is installed in /usr/bin, but -your sysadmin installed a newer version in /usr/bin/local\&. Now, instead of +installation directories\&. Assume, \fIgit\fP is installed in /usr/bin but +your sysadmin installed a newer version in /usr/bin/local\&. Instead of changing the order of your \fB$PATH\fP parameter, you can do this: .RS .nf @@ -645,8 +964,8 @@ by Perforce\&. This is the only reliable way of doing this, but runs the risk of a delay if the server name cannot be found\&. If the server (more specifically, the \fIhost\fP\fB:\fP\fIport\fP pair describing the -server) cannot be contacted its name is put into the associative array -\fBvcs_info_p4_dead_servers\fP and not contacted again during the session +server) cannot be contacted, its name is put into the associative array +\fBvcs_info_p4_dead_servers\fP and is not contacted again during the session until it is removed by hand\&. If you do not set this style, the \fBp4\fP backend is only usable if you have set the environment variable \fBP4CONFIG\fP to a file name and have corresponding files in the root @@ -657,42 +976,58 @@ If there are two different ways of gathering information, you can select the simpler one by setting this style to true; the default is to use the not\-that\-simple code, which is potentially a lot -slower but might be more accurate in all possible cases\&. This style is only -used by the \fBbzr\fP backend\&. +slower but might be more accurate in all possible cases\&. This style is +used by the \fBbzr\fP and \fBhg\fP backends\&. In the case of \fBhg\fP it will invoke +the external hexdump program to parse the binary dirstate cache file; this +method will not return the local revision number\&. .TP \fBget\-revision\fP If set to true, vcs_info goes the extra mile to figure out the revision of a repository\&'s work tree (currently for the \fBgit\fP and \fBhg\fP backends, where this kind of information is not always vital)\&. For \fBgit\fP, the hash value of the currently checked out commit is available via the \fB%i\fP -expansion\&. With \fBhg\fP, the local revision number is available via \fB%i\fP -and the corresponding global hash is available via \fB%m\fP\&. -If this style is set in the \fBhg\fP context, the backend supports the -branchformat style\&. +expansion\&. With \fBhg\fP, the local revision number and the corresponding +global hash are available via \fB%i\fP\&. +.TP +\fBget\-mq\fP +If set to true, the \fBhg\fP backend will look for a Mercurial Queue (\fBmq\fP) +patch directory\&. Information will be available via the `\fB%m\fP\&' replacement\&. +.TP +\fBget\-bookmarks\fP +If set to true, the \fBhg\fP backend will try to get a list of current +bookmarks\&. They will be available via the `\fB%m\fP\&' replacement\&. .TP \fBuse\-prompt\-escapes\fP Determines if we assume that the assembled string from \fIvcs_info\fP includes prompt escapes\&. (Used by \fBvcs_info_lastmsg\fP\&.) +.TP +\fBdebug\fP +Enable debugging output to track possible problems\&. Currently this style +is only used by \fIvcs_info\fP\&'s hooks system\&. +.TP +\fBhooks\fP +A list style that defines hook\-function names\&. See \fBHooks in vcs_info\fP +below for details\&. .PP The default values for these styles in all contexts are: .PP .PD 0 .TP \fBformats\fP -" (%s)\-[%b|%a]\-" +" (%s)\-[%b]%u%c\-" .TP \fBactionformats\fP -" (%s)\-[%b]\-" +" (%s)\-[%b|%a]%u%c\-" .TP \fBbranchformat\fP -"%b:%r" (for bzr, svn and svk) +"%b:%r" (for bzr, svn, svk and hg) .TP \fBnvcsformats\fP "" .TP -\fBstgitformat\fP -" %p (%c)" +\fBhgrevformat\fP +"%r:%h" .TP \fBmax\-exports\fP 2 @@ -727,53 +1062,77 @@ \fBget\-revision\fP false .TP +\fBget\-mq\fP +true +.TP +\fBget\-bookmarks\fP +false +.TP \fBuse\-prompt\-escapes\fP true +.TP +\fBdebug\fP +false +.TP +\fBhooks\fP +(empty list) +.TP +\fBuse\-quilt\fP +false +.TP +\fBquilt\-standalone\fP +false +.TP +\fBquilt\-patch\-dir\fP +empty \- use \fI$QUILT_PATCHES\fP +.TP +\fBquiltcommand\fP +quilt .PD .PP -In normal \fBformats\fP and \fBactionformats\fP, the following replacements are +In normal \fBformats\fP and \fBactionformats\fP the following replacements are done: .PP .PD 0 .TP \fB%s\fP -The vcs in use (git, hg, svn etc\&.) +The VCS in use (git, hg, svn, etc\&.)\&. .TP \fB%b\fP Information about the current branch\&. .TP \fB%a\fP -An identifier, that describes the action\&. Only makes sense in -actionformats\&. +An identifier that describes the action\&. Only makes sense in +\fIactionformats\fP\&. .TP \fB%i\fP -The current revision number or identifier\&. +The current revision number or identifier\&. For \fBhg\fP +the \fIhgrevformat\fP style may be used to customize the output\&. .TP \fB%c\fP The string from the \fIstagedstr\fP style if there are staged changes in the repository\&. .TP \fB%u\fP -The string from the \fIunstagedstr\fP style if there are unstaged -changes in the repository\&. +The string from the \fIunstagedstr\fP style if there are +unstaged changes in the repository\&. .TP \fB%R\fP -base directory of the repository\&. +The base directory of the repository\&. .TP \fB%r\fP -repository name\&. If \fB%R\fP is \fI/foo/bar/repoXY\fP, \fB%r\fP is -\fIrepoXY\fP\&. +The repository name\&. If \fB%R\fP is \fI/foo/bar/repoXY\fP, \fB%r\fP +is \fIrepoXY\fP\&. .TP \fB%S\fP -subdirectory within a repository\&. If \fB$PWD\fP is -\fI/foo/bar/reposXY/beer/tasty\fP, \fB%S\fP is \fIbeer/tasty\fP\&. +A subdirectory within a repository\&. If \fB$PWD\fP is +\fI/foo/bar/repoXY/beer/tasty\fP, \fB%S\fP is \fIbeer/tasty\fP\&. .TP \fB%m\fP -A "misc" replacement\&. It is at the discretion of the backend -to decide what this replacement expands to\&. It is currently used by -the \fBhg\fP and \fBgit\fP backends\&. The \fBhg\fP backend replaces \fB%m\fP with the -global hash value of the current revision and the \fBgit\fP backend replaces it -with the string from the \fIstgitformat\fP style\&. +A "misc" replacement\&. It is at the discretion of the backend to +decide what this replacement expands to\&. It is currently used by the \fBhg\fP +and \fBgit\fP backends to display patch information from the \fBmq\fP and +\fBstgit\fP extensions\&. .PD .PP In \fBbranchformat\fP these replacements are done: @@ -781,52 +1140,164 @@ .PD 0 .TP \fB%b\fP -the branch name +The branch name\&. .TP \fB%r\fP -the current revision number +The current revision number or the \fIhgrevformat\fP style for +\fBhg\fP\&. .PD .PP -In \fBstgitformat\fP these replacements are done: +In \fBhgrevformat\fP these replacements are done: +.PP +.PD 0 +.TP +\fB%r\fP +The current local revision number\&. +.TP +\fB%h\fP +The current 40\-character changeset ID hash identifier\&. +.PD +.PP +In \fBpatch\-format\fP and \fBnopatch\-format\fP these replacements are done: .PP .PD 0 .TP \fB%p\fP -the name of the patch currently on top of the stack +The name of the top\-most applied patch\&. +.TP +\fB%u\fP +The number of unapplied patches\&. +.TP +\fB%n\fP +The number of applied patches\&. .TP \fB%c\fP -the number of unapplied patches +The number of unapplied patches\&. +.TP +\fB%g\fP +The names of active \fBmq\fP guards (\fBhg\fP backend)\&. +.TP +\fB%G\fP +The number of active \fBmq\fP guards (\fBhg\fP backend)\&. .PD .PP -Not all vcs backends have to support all replacements\&. For \fBnvcsformats\fP -no replacements are performed at all\&. It is just a string\&. +Not all VCS backends have to support all replacements\&. For \fBnvcsformats\fP +no replacements are performed at all, it is just a string\&. .PP .SS "Oddities" .PP If you want to use the \fB%b\fP (bold off) prompt expansion in \fIformats\fP, which expands \fB%b\fP itself, use \fB%%b\fP\&. That will cause the \fIvcs_info\fP -expansion to replace \fB%%b\fP with \fB%b\fP\&. So zsh\&'s prompt expansion +expansion to replace \fB%%b\fP with \fB%b\fP, so that zsh\&'s prompt expansion mechanism can handle it\&. Similarly, to hand down \fB%b\fP from \fIbranchformat\fP, use \fB%%%%b\fP\&. Sorry for this inconvenience, but it cannot be easily avoided\&. Luckily we do not clash with a lot of prompt expansions and this only needs to be done for those\&. .PP -.SS "Function descriptions (public API)" +.SS "Quilt Support" +.PP +\fBQuilt\fP is not a version control system, therefore this is not implemented +as a backend\&. It can help keeping track of a series of patches\&. People use it +to keep a set of changes they want to use on top of software packages (which +is tightly integrated into the package build process \- the Debian project +does this for a large number of packages)\&. Quilt can also help individual +developers keep track of their own patches on top of real version control +systems\&. +.PP +The \fIvcs_info\fP integration tries to support both ways of using quilt by +having two slightly different modes of operation: `addon\&' mode and +`standalone\&' mode)\&. +.PP +For `addon\&' mode to become active \fIvcs_info\fP must have already detected a +real version control system controlling the directory\&. If that is the case, +a directory that holds quilt\&'s patches needs to be found\&. That directory is +configurable via the \fI`QUILT_PATCHES\&'\fP environment variable\&. If that +variable exists its value is used, otherwise the value \fB`patches\&'\fP is +assumed\&. The value from \fI$QUILT_PATCHES\fP can be overwritten using the +\fB`quilt\-patches\&'\fP style\&. (Note: you can use \fIvcs_info\fP to keep the value +of \fI$QUILT_PATCHES\fP correct all the time via the \fBpost\-quilt\fP hook)\&. +.PP +When the directory in question is found, quilt is assumed to be active\&. To +gather more information, \fIvcs_info\fP looks for a directory called `\&.pc\&'; +Quilt uses that directory to track its current state\&. If this directory does +not exist we know that quilt has not done anything to the working directory +(read: no patches have been applied yet)\&. +.PP +If patches are applied, \fIvcs_info\fP will try to find out which\&. If you want +to know which patches of a series are not yet applied, you need to activate +the \fBget\-unapplied\fP style in the appropriate context\&. +.PP +\fIvcs_info\fP allows for very detailed control over how the gathered +information is presented (see the below sections, \fBStyles\fP and \fBHooks in +vcs_info\fP), all of which are documented below\&. Note there are a number of +other patch tracking systems that work on top of a certain version control +system (like \fBstgit\fP for \fBgit\fP, or \fBmq\fP for \fBhg\fP); the configuration +for systems like that are generally configured the same way as the \fBquilt\fP +support\&. +.PP +If the \fBquilt\fP support is working in `addon\&' mode, the produced string is +available as a simple format replacement (\fI%Q\fP to be precise), which can +be used in \fBformats\fP and \fBactionformats\fP; see below for details)\&. +.PP +If, on the other hand, the support code is working in `standalone\&' mode, +\fIvcs_info\fP will pretend as if \fBquilt\fP were an actual version control +system\&. That means that the version control system identifier (which +otherwise would be something like `svn\&' or `cvs') will be set to +`\fB\-quilt\-\fP\&'\&. This has implications on the used style context where this +identifier is the second element\&. \fIvcs_info\fP will have filled in a proper +value for the "repository\&'s" root directory and the string containing the +information about quilt\&'s state will be available as the `misc' replacement +(and \fI%Q\fP for compatibility with `addon\&' mode\&. +.PP +What is left to discuss is how `standalone\&' mode is detected\&. The detection +itself is a series of searches for directories\&. You can have this detection +enabled all the time in every directory that is not otherwise under version +control\&. If you know there is only a limited set of trees where you would +like \fIvcs_info\fP to try and look for Quilt in `standalone\&' mode to minimise +the amount of searching on every call to \fIvcs_info\fP, there are a number of +ways to do that: +.PP +Essentially, `standalone\&' mode detection is controlled by a style called +`\fBquilt\-standalone\fP\&'\&. It is a string style and its value can have different +effects\&. The simplest values are: `\fBalways\fP\&' to run detection every time +\fIvcs_info\fP is run, and `\fBnever\fP\&' to turn the detection off entirely\&. +.PP +If the value of \fBquilt\-standalone\fP is something else, it is interpreted +differently\&. If the value is the name of a scalar variable the value of that +variable is checked and that value is used in the same `always\&'/`never' way +as described above\&. +.PP +If the value of \fBquilt\-standalone\fP is an array, the elements of that array +are used as directory names under which you want the detection to be active\&. +.PP +If \fBquilt\-standalone\fP is an associative array, the keys are taken as +directory names under which you want the detection to be active, but only if +the corresponding value is the string `\fBtrue\fP\&'\&. +.PP +Last, but not least, if the value of \fBquilt\-standalone\fP is the name of a +function, the function is called without arguments and the return value +decides whether detection should be active\&. A `0\&' return value is true; a +non\-zero return value is interpreted as false\&. +.PP +Note, if there is both a function and a variable by the name of +\fBquilt\-standalone\fP, the function will take precedence\&. +.PP +.SS "Function Descriptions (Public API)" .PP .PD 0 .TP .PD \fBvcs_info\fP [\fIuser\-context\fP] -The main function, that runs all -backends and assembles all data into \fI${vcs_info_msg_*_}\fP\&. This is the -function you want to call from \fBprecmd\fP if you want to include up\-to\-date -information in your prompt (see Variable description below)\&. If an argument -is given, that string will be used instead of \fBdefault\fP in the -user\-context field of the style context\&. +The main function, that runs all backends and assembles all data into +\fI${vcs_info_msg_*_}\fP\&. This is the function you want to call from +\fBprecmd\fP if you want to include up\-to\-date information in your prompt (see +\fBVariable description\fP below)\&. If an argument is given, that string will be +used instead of \fBdefault\fP in the \fBuser\-context\fP field of the style +context\&. .TP \fBvcs_info_lastmsg\fP Outputs the last \fI${vcs_info_msg_*_}\fP value\&. -Takes into account the value of the use\-prompt\-escapes style in +Takes into account the value of the \fBuse\-prompt\-escapes\fP style in \fI\&':vcs_info:formats:command:\-all\-'\fP\&. It also only prints \fBmax\-exports\fP values\&. .TP @@ -842,15 +1313,15 @@ .PP All functions named VCS_INFO_* are for internal use only\&. .PP -.SS "Variable description" +.SS "Variable Description" .PP .PD 0 .TP .PD \fB${vcs_info_msg_N_}\fP (Note the trailing underscore) -Where \fIN\fP is an integer, eg: \fIvcs_info_msg_0_\fP These variables +Where \fIN\fP is an integer, e\&.g\&., \fIvcs_info_msg_0_\fP\&. These variables are the storage for the informational message the last \fIvcs_info\fP call -has assembled\&. These are strongly connected to the formats, +has assembled\&. These are strongly connected to the \fBformats\fP, \fBactionformats\fP and \fBnvcsformats\fP styles described above\&. Those styles are lists\&. The first member of that list gets expanded into \fI${vcs_info_msg_0_}\fP, the second into \fI${vcs_info_msg_1_}\fP @@ -859,9 +1330,227 @@ .PP All variables named VCS_INFO_* are for internal use only\&. .PP +.SS "Hooks in vcs_info" +.PP +Hooks are places in \fIvcs_info\fP where you can run your own code\&. That +code can communicate with the code that called it and through that, +change the system\&'s behaviour\&. +.PP +For configuration, hooks change the style context: +.RS +.nf +\fB:vcs_info:+::\fP +.fi +.RE +.PP +To register functions to a hook, you need to list them in the \fBhooks\fP +style in the appropriate context\&. +.PP +Example: +.RS +.nf +\fBzstyle \&':vcs_info:*+foo:*' hooks bar baz\fP +.fi +.RE +.PP +This registers functions to the hook `foo\&' for all backends\&. In order to +avoid namespace problems, all registered function names are prepended by +a `+vi\-\&', so the actual functions called for the `foo' hook are +`\fB+vi\-bar\fP\&' and `\fB+vi\-baz\fP'\&. +.PP +If something seems weird, you can enable the `debug\&' boolean style in +the proper context and the hook\-calling code will print what it tried +to execute and whether the function in question existed\&. +.PP +When you register more than one function to a hook, all functions are +executed one after another until one function returns non\-zero or until +all functions have been called\&. +.PP +You may pass data between functions via an associative array, \fBuser_data\fP\&. +For example: +.RS +.nf +\fB ++vi\-git\-myfirsthook(){ + user_data[myval]=$myval +} ++vi\-git\-mysecondhook(){ + # do something with ${user_data[myval]} +}\fP +.fi +.RE +.PP +There are a number of variables that are special in hook contexts: +.PP +.PD 0 +.TP +.PD +\fBret\fP +The return value that the hooks system will return to the caller\&. The +default is an integer `zero\&'\&. If and how a changed \fBret\fP value changes +the execution of the caller depends on the specific hook\&. See the hook +documentation below for details\&. +.TP +\fBhook_com\fP +An associated array which is used for bidirectional communication from +the caller to hook functions\&. The used keys depend on the specific hook\&. +.TP +\fBcontext\fP +The active context of the hook\&. Functions that wish to change this +variable should make it local scope first\&. +.TP +\fBvcs\fP +The current VCS after it was detected\&. The same values as in the +enable/disable style are used\&. Available in all hooks except \fBstart\-up\fP\&. +.PP +Finally, the full list of currently available hooks: +.PP +.PD 0 +.TP +.PD +\fBstart\-up\fP +Called after starting \fIvcs_info\fP but before the VCS in this directory is +determined\&. It can be used to deactivate \fIvcs_info\fP temporarily if +necessary\&. When \fBret\fP is set to \fI1\fP, \fIvcs_info\fP aborts and does +nothing; when set to \fI2\fP, \fIvcs_info\fP sets up everything as if no +version control were active and exits\&. +.TP +\fBpre\-get\-data\fP +Same as \fBstart\-up\fP but after the VCS was detected\&. +.TP +\fBgen\-hg\-bookmark\-string\fP +Called in the Mercurial backend when a bookmark string is generated; the +\fBget\-revision\fP and \fBget\-bookmarks\fP styles must be true\&. +.RS +.PP +This hook gets the names of the Mercurial bookmarks that +\fIvcs_info\fP collected from `hg\&'\&. +.PP +When setting \fBret\fP to non\-zero, the string in +\fB${hook_com[hg\-bookmark\-string]}\fP will be used in the \fI%m\fP escape in +\fBformats\fP and \fBactionformats\fP and will be availabe in the global +\fIbackend_misc\fP array as \fB${backend_misc[bookmarks]}\fP\&. +.RE +.TP +\fBgen\-applied\-string\fP +Called in the \fBgit\fP (with \fBstgit\fP), and \fBhg\fP (with \fBmq\fP) backends +and in \fBquilt\fP support when the \fIapplied\-string\fP is generated; the +\fBuse\-quilt\fP zstyle must be true for \fBquilt\fP (the \fBmq\fP and \fBstgit\fP +backends are active by default)\&. +.RS +.PP +This hook gets the names of all applied patches which \fIvcs_info\fP collected +so far in the opposite order, which means that the first argument is the +top\-most patch and so forth\&. +.PP +When setting \fBret\fP to non\-zero, the string in +\fB${hook_com[applied\-string]}\fP will be used in the \fI%m\fP escape in +\fBformats\fP and \fBactionformats\fP; it will be available in the global +\fIbackend_misc\fP array as \fB$backend_misc[patches]}\fP; and it will be +available as \fI%p\fP in the \fBpatch\-format\fP and \fBnopatch\-format\fP styles\&. +.RE +.TP +\fBgen\-unapplied\-string\fP +Called in the \fBgit\fP (with \fBstgit\fP), and \fBhg\fP (with \fBmq\fP) backend +and in \fBquilt\fP support when the \fIunapplied\-string\fP is generated; the +\fBget\-unapplied\fP style must be true\&. +.RS +.PP +This hook gets the names of all unapplied patches which \fIvcs_info\fP +collected so far in the opposite order, which mean that the first argument is +the patch next\-in\-line to be applied and so forth\&. +.PP +When setting \fBret\fP to non\-zero, the string in +\fB${hook_com[unapplied\-string]}\fP will be available as \fI%u\fP in the +\fBpatch\-format\fP and \fBnopatch\-format\fP styles\&. +.RE +.TP +\fBgen\-mqguards\-string\fP +Called in the \fBhg\fP backend when \fBguards\-string\fP is generated; the +\fBget\-mq\fP style must be true (default)\&. +.RS +.PP +This hook gets the names of any active \fBmq\fP guards\&. +.PP +When setting \fBret\fP to non\-zero, the string in +\fB${hook_com[guards\-string]}\fP will be used in the \fI%g\fP escape in the +\fBpatch\-format\fP and \fBnopatch\-format\fP styles\&. +.RE +.TP +\fBpost\-quilt\fP +Called after the \fBquilt\fP support is done\&. The following information +is passed as arguments to the hook: 1\&. the quilt\-support mode (`addon\&' or +`standalone\&'); 2\&. the directory that contains the patch series; 3\&. the +directory that holds quilt\&'s status information (the `\&.pc' directory) or +the string \fB"\-nopc\-"\fP if that directory wasn\&'t found\&. +.RS +.PP +The `hook_com\&' parameter is not used\&. +.RE +.TP +\fBset\-branch\-format\fP +Called before `\fBbranchformat\fP\&' is set\&. The only argument to the +hook is the format that is configured at this point\&. +.RS +.PP +The `\fBhook_com\fP\&' keys considered are `\fBbranch\fP' and `\fBrevision\fP'\&. +They are set to the values figured out so far by \fIvcs_info\fP and any +change will be used directly when the actual replacement is done\&. +.PP +If \fBret\fP is set to to non\-zero, the string in +\fB${hook_com[branch\-replace]}\fP will be used unchanged as the +`\fB%b\fP\&' replacement in the variables set by \fIvcs_info\fP\&. +.RE +.TP +\fBset\-hgrev\-format\fP +Called before a `\fBhgrevformat\fP\&' is set\&. The only argument to the +hook is the format that is configured at this point\&. +.RS +.PP +The `\fBhook_com\fP\&' keys considered are `\fBhash\fP' and `\fBlocalrev\fP'\&. +They are set to the values figured out so far by \fIvcs_info\fP and any +change will be used directly when the actual replacement is done\&. +.PP +If \fBret\fP is set to to non\-zero, the string in +\fB${hook_com[rev\-replace]}\fP will be used unchanged as the +`\fB%i\fP\&' replacement in the variables set by \fIvcs_info\fP\&. +.RE +.TP +\fBset\-message\fP +Called each time before a `\fBvcs_info_msg_N_\fP\&' message is set\&. +It takes two arguments; the first being the `N\&' in the message +variable name, the second is the currently configured \fBformats\fP or +\fBactionformats\fP\&. +.RS +.PP +There are a number of `\fBhook_com\fP\&' keys, that are used here: +`\fBaction\fP\&', `\fBbranch\fP', `\fBbase\fP', `\fBbase\-name\fP', `\fBsubdir\fP', +`\fBstaged\fP\&', `\fBunstaged\fP', `\fBrevision\fP', `\fBmisc\fP', `\fBvcs\fP' +and one `\fBmiscN\fP\&' entry for each backend\-specific data field (\fBN\fP +starting at zero)\&. They are set to the values figured out so far by +\fIvcs_info\fP and any change will be used directly when the actual +replacement is done\&. +.PP +Since this hook is triggered multiple times (once for each configured +\fBformats\fP or \fBactionformats\fP), each of the `\fBhook_com\fP\&' keys mentioned +above (except for the \fBmiscN\fP entries) has an `\fB_orig\fP\&' counterpart, +so even if you changed a value to your liking you can still get the +original value in the next run\&. Changing the `\fB_orig\fP\&' values is +probably not a good idea\&. +.PP +If \fBret\fP is set to to non\-zero, the string in +\fB${hook_com[message]}\fP will be used unchanged as the message by +\fIvcs_info\fP\&. +.RE +.RE +.PP +If all of this sounds rather confusing, take a look at the \fBExamples\fP +section below and also in the Misc/vcs_info\-examples file in the Zsh source\&. +They contain some explanatory code\&. +.PP .SS "Examples" .PP -Don\&'t use \fBvcs_info\fP at all (even though it's in your prompt): +Don\&'t use \fIvcs_info\fP at all (even though it's in your prompt): .RS .nf \fBzstyle \&':vcs_info:*' enable NONE\fP @@ -890,6 +1579,16 @@ .fi .RE .PP +All \fB%x\fP expansion in all sorts of formats ("formats", "actionformats", +branchformat, you name it) are done using the `\fBzformat\fP\&' builtin from +the `\fBzsh/zutil\fP\&' module\&. That means you can do everything with these +\fB%x\fP items what zformat supports\&. In particular, if you want something +that is really long to have a fixed width, like a hash in a mercurial +branchformat, you can do this: \fB%12\&.12i\fP\&. That\&'ll shrink the 40 character +hash to its 12 leading characters\&. The form is actually +`\fB%\fP\fImin\fP\fB\&.\fP\fImax\fP\fBx\fP\&'\&. More is possible\&. +See the section `The zsh/zutil Module\&' in \fIzshmodules\fP(1) for details\&. +.PP Use the quicker \fBbzr\fP backend .RS .nf @@ -906,10 +1605,10 @@ .fi .RE .PP -If you want colors, make sure you enclose the color codes in \fB%{\&.\&.\&.%}\fP, -if you want to use the string provided by \fBvcs_info\fP in prompts\&. +If you want colors, make sure you enclose the color codes in \fB%{\&.\&.\&.%}\fP +if you want to use the string provided by \fIvcs_info\fP in prompts\&. .PP -Here is how to print the vcs information as a command (not in a prompt): +Here is how to print the VCS information as a command (not in a prompt): .RS .nf \fBalias vcsi=\&'vcs_info command; vcs_info_lastmsg'\fP @@ -917,7 +1616,121 @@ .RE .PP This way, you can even define different formats for output via -\fBvcs_info_lastmsg\fP in the \&':vcs_info:formats:command:*' namespace\&. +\fBvcs_info_lastmsg\fP in the \&':vcs_info:*:command:*' namespace\&. +.PP +Now as promised, some code that uses hooks: +say, you\&'d like to replace the string `svn' by `subversion' in +\fIvcs_info\fP\&'s \fB%s\fP \fBformats\fP replacement\&. +.PP +First, we will tell \fIvcs_info\fP to call a function when populating +the message variables with the gathered information: +.RS +.nf +\fBzstyle \&':vcs_info:*+set\-message:*' hooks svn2subversion\fP +.fi +.RE +.PP +Nothing happens\&. Which is reasonable, since we didn\&'t define the actual +function yet\&. To see what the hooks subsystem is trying to do, enable the +`\fBdebug\fP\&' style: +.RS +.nf +\fBzstyle \&':vcs_info:*+*:*' debug true\fP +.fi +.RE +.PP +That should give you an idea what is going on\&. Specifically, the function +that we are looking for is `\fB+vi\-svn2subversion\fP\&'\&. Note, the `\fB+vi\-\fP' +prefix\&. So, everything is in order, just as documented\&. When you are done +checking out the debugging output, disable it again: +.RS +.nf +\fBzstyle \&':vcs_info:*+*:*' debug false\fP +.fi +.RE +.PP +Now, let\&'s define the function: +.RS +.nf +\fB +function +vi\-svn2subversion() { + [[ ${hook_com[vcs_orig]} == svn ]] && hook_com[vcs]=subversion +}\fP +.fi +.RE +.PP +Simple enough\&. And it could have even been simpler, if only we had +registered our function in a less generic context\&. If we do it only in +the `\fBsvn\fP\&' backend's context, we don't need to test which the active +backend is: +.RS +.nf +\fBzstyle \&':vcs_info:svn+set\-message:*' hooks svn2subversion\fP +.fi +.RE +.RS +.nf +\fB +function +vi\-svn2subversion() { + hook_com[vcs]=subversion +}\fP +.fi +.RE +.PP +And finally a little more elaborate example, that uses a hook to create +a customised bookmark string for the \fBhg\fP backend\&. +.PP +Again, we start off by registering a function: +.RS +.nf +\fBzstyle \&':vcs_info:hg+gen\-hg\-bookmark\-string:*' hooks hgbookmarks\fP +.fi +.RE +.PP +And then we define the `\fB+vi\-hgbookmarks\fP function: +.RS +.nf +\fB +function +vi\-hgbookmarks() { + # The default is to connect all bookmark names by + # commas\&. This mixes things up a little\&. + # Imagine, there\&'s one type of bookmarks that is + # special to you\&. Say, because it\&'s *your* work\&. + # Those bookmarks look always like this: "sh/*" + # (because your initials are sh, for example)\&. + # This makes the bookmarks string use only those + # bookmarks\&. If there\&'s more than one, it + # concatenates them using commas\&. + local s i + # The bookmarks returned by `hg\&' are available in + # the functions positional parameters\&. + (( $# == 0 )) && return 0 + for i in "$@"; do + if [[ $i == sh/* ]]; then + [[ \-n $s ]] && s=$s, + s=${s}$i + fi + done + # Now, the communication with the code that calls + # the hook functions is done via the hook_com[] + # hash\&. The key, at which the `gen\-hg\-bookmark\-string\&' + # hook looks at is `hg\-bookmark\-string\&'\&. So: + hook_com[hg\-bookmark\-string]=$s + # And to signal, that we want to use the sting we + # just generated, set the special variable `ret\&' to + # something other than the default zero: + ret=1 + return 0 +} +\fP +.fi +.RE +.PP +Some longer examples and code snippets which might be useful are available in +the examples file located at Misc/vcs_info\-examples in the Zsh source +directory\&. +.PP +This concludes our guided tour through zsh\&'s \fIvcs_info\fP\&. .PP .SH "PROMPT THEMES" .PP @@ -1486,7 +2299,7 @@ character U+0180, the set of special characters less so\&. However, it it is very sporadic from that point\&. Adding new characters is easy, however; see the function \fBdefine\-composed\-chars\fP\&. Please send any -additions to \fBzsh\-workers@sunsite\&.dk\fP\&. +additions to \fBzsh\-workers@zsh\&.org\fP\&. .PP The codes for the second character when used to accent the first are as follows\&. Note that not every character can take every accent\&. @@ -1590,7 +2403,7 @@ .PD 0 .TP \fBss\fP -Eszett (scafes S) +Eszett (scharfes S) .TP \fBD\-\fP, \fBd\-\fP Eth @@ -2010,7 +2823,7 @@ .TP .PD \fBreplace\-string\-again\fP, \fBreplace\-pattern\-again\fP -The function \fBreplace\-string\fP implements two widgets\&. +The function \fBreplace\-string\fP implements three widgets\&. If defined under the same name as the function, it prompts for two strings; the first (source) string will be replaced by the second everywhere it occurs in the line editing buffer\&. @@ -2018,7 +2831,7 @@ .PP If the widget name contains the word `\fBpattern\fP\&', for example by defining the widget using the command `\fBzle \-N replace\-pattern -replace\-string\fP\&', then the replacement is done by pattern matching\&. All +replace\-string\fP\&', then the matching is performed using zsh patterns\&. All zsh extended globbing patterns can be used in the source string; note that unlike filename generation the pattern does not need to match an entire word, nor do glob qualifiers have any effect\&. In addition, the @@ -2029,6 +2842,12 @@ `\fB\e{\fP\fIN\fP\fB}\fP\&' may be used to protect the digit from following digits\&. .PP +If the widget instead contains the word `\fBregex\fP\&' (or `\fBregexp\fP'), +then the matching is performed using regular expressions, respecting +the setting of the option \fBRE_MATCH_PCRE\fP (see the description of the +function \fBregexp\-replace\fP below)\&. The special replacement facilities +described above for pattern matching are available\&. +.PP By default the previous source or replacement string will not be offered for editing\&. However, this feature can be activated by setting the style \fBedit\-previous\fP in the context \fB:zle:\fP\fIwidget\fP (for example, @@ -2036,12 +2855,12 @@ numeric argument forces the previous values to be offered, a negative or zero argument forces them not to be\&. .PP -The function \fBreplace\-string\-again\fP can be used to repeat the -previous replacement; no prompting is done\&. As with \fBreplace\-string\fP, if -the name of the widget contains the word `\fBpattern\fP\&', pattern matching -is performed, else a literal string replacement\&. Note that the -previous source and replacement text are the same whether pattern or string -matching is used\&. +The function \fBreplace\-string\-again\fP can be used to repeat the previous +replacement; no prompting is done\&. As with \fBreplace\-string\fP, if the name +of the widget contains the word `\fBpattern\fP\&' or `\fBregex\fP', pattern or +regular expression matching is performed, else a literal string +replacement\&. Note that the previous source and replacement text are the +same whether pattern, regular expression or string matching is used\&. .PP For example, starting from the line: .PP @@ -2103,6 +2922,24 @@ invoked repeatedly in order to search earlier history lines\&. .RE .TP +\fBtranspose\-lines\fP +Only useful with a multi\-line editing buffer; the lines here are +lines within the current on\-screen buffer, not history lines\&. +The effect is similar to the function of the same name in Emacs\&. +.RS +.PP +Transpose the current line with the previous line and move the cursor +to the start of the next line\&. Repeating this (which can be done by +providing a positive numeric prefix argument) has the effect of moving +the line above the cursor down by a number of lines\&. +.PP +With a negative numeric prefix argument, requires two lines above the +cursor\&. These two lines are transposed and the cursor moved to the +start of the previous line\&. Using a numeric prefix less than \-1 +has the effect of moving the line above the cursor up by minus that +number of lines\&. +.RE +.TP \fBwhich\-command\fP This function is a drop\-in replacement for the builtin widget \fBwhich\-command\fP\&. It has enhanced behaviour, in that it correctly @@ -2481,7 +3318,7 @@ \fBzsh\-mime\-setup\fP [ \fB\-fv\fP ] [ \fB\-l\fP [ \fIsuffix \&.\&.\&.\fP ] ] .TP .PD -\fBzsh\-mime\-handler\fP +\fBzsh\-mime\-handler [\-l] \fIcommand arguments \&.\&.\&.\fP\fP These two functions use the files \fB~/\&.mime\&.types\fP and \fB/etc/mime\&.types\fP, which associate types and extensions, as well as \fB~/\&.mailcap\fP and \fB/etc/mailcap\fP files, which associate types and the programs that @@ -2701,6 +3538,12 @@ \fBtext/html; /usr/bin/lynx \&'%s'; needsterminal\fP .fi .RE +.PP +Running `\fBzsh\-mime\-handler \-l\fP \fIcommand line\fP\&' prints the command +line that would be executed, simplified to remove the effect of any +flags, and quoted so that the output can be run as a complete zsh +command line\&. This is used by the completion system to decide how to +complete after a file handled by \fBzsh\-mime\-setup\fP\&. .RE .TP \fBpick\-web\-browser\fP @@ -3107,13 +3950,35 @@ See also the \fBpager\fP, \fBprompt\fP and \fBrprompt\fP styles below\&. .RE .TP +\fBregexp\-replace\fP \fIvar\fP \fIregexp\fP \fIreplace\fP +Use regular expressions to perform a global search and replace operation +on a variable\&. If the option \fBRE_MATCH_PCRE\fP is not set, POSIX +extended regular expressions are used, else Perl\-compatible regular +expressions (this requires the shell to be linked against the \fBpcre\fP +library)\&. +.RS +.PP +\fIvar\fP is the name of the variable containing the string to be matched\&. +The variable will be modified directly by the function\&. The +variables \fBMATCH\fP, \fBMBEGIN\fP, \fBMEND\fP, \fBmatch\fP, \fBmbegin\fP, \fBmend\fP +should be avoided as these are used by the regular expression code\&. +.PP +\fIregexp\fP is the regular expression to match against the string\&. +.PP +\fIreplace\fP is the replacement text\&. This can contain parameter, command +and arithmetic expressions which will be replaced: in particular, a +reference to \fB$MATCH\fP will be replaced by the text matched by the pattern\&. +.PP +The return status is 0 if at least one match was performed, else 1\&. +.RE +.TP \fBrun\-help\fP \fIcmd\fP This function is designed to be invoked by the \fBrun\-help\fP ZLE widget, in place of the default alias\&. See `Accessing On\-Line Help\&' above for setup instructions\&. .RS .PP -In the discussion which follows, if \fIcmd\fP is a filesystem path, it is +In the discussion which follows, if \fIcmd\fP is a file system path, it is first reduced to its rightmost component (the file name)\&. .PP Help is first sought by looking for a file named \fIcmd\fP in the directory diff -Nru zsh-4.3.10/Doc/zshexpn.1 zsh-4.3.11/Doc/zshexpn.1 --- zsh-4.3.10/Doc/zshexpn.1 2009-06-01 11:00:19.000000000 +0200 +++ zsh-4.3.11/Doc/zshexpn.1 2010-12-20 16:00:44.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHEXPN" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHEXPN" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshexpn \- zsh expansion and substitution .\" Yodl file: Zsh/expn.yo @@ -98,7 +98,7 @@ More precisely, the sequence `\fB^\fP\fIfoo\fP\fB^\fP\fIbar\fP\fB^\fP\&' is synonymous with `\fB!!:s\fP\fB^\fP\fIfoo\fP\fB^\fP\fIbar\fP\fB^\fP\&', hence other modifiers (see the section `Modifiers\&') may follow the final `\fB^\fP'\&. -In particular, `\fB^\fP\fIfoo\fP\fB^\fP\fIbar\fP\fB:G\fP\&' performs a global +In particular, `\fB^\fP\fIfoo\fP\fB^\fP\fIbar\fP\fB^:G\fP\&' performs a global substitution\&. .PP If the shell encounters the character sequence `\fB!"\fP\&' @@ -260,6 +260,8 @@ perform global substitution, i\&.e\&. substitute every occurrence of \fIr\fP for \fIl\fP\&. Note that the \fBg\fP or \fB:G\fP must appear in exactly the position shown\&. +.PP +See further notes on this form of substitution below\&. .RE .TP \fB&\fP @@ -279,18 +281,21 @@ Like \fBq\fP, but break into words at whitespace\&. Does not work with parameter expansion\&. .PP -The \fBs/l/r/\fP substitution works as follows\&. By default the left\-hand -side of substitutions are not patterns, but character strings\&. Any -character can be used as the delimiter in place of `\fB/\fP\&'\&. A -backslash quotes the delimiter character\&. The character `\fB&\fP\&', in -the right\-hand\-side \fIr\fP, is replaced by the text from the +The \fBs/\fP\fIl\fP\fB/\fP\fIr\fP\fB/\fP substitution works as follows\&. By +default the left\-hand side of substitutions are not patterns, but +character strings\&. Any character can be used as the delimiter in place +of `\fB/\fP\&'\&. A backslash quotes the delimiter character\&. The character +`\fB&\fP\&', in the right\-hand\-side \fIr\fP, is replaced by the text from the left\-hand\-side \fIl\fP\&. The `\fB&\fP\&' can be quoted with a backslash\&. A -null \fIl\fP uses the previous string either from the previous \fIl\fP -or from the contextual scan string \fIs\fP from `\fB!?\fP\fIs\fP\&'\&. You can +null \fIl\fP uses the previous string either from the previous \fIl\fP or +from the contextual scan string \fIs\fP from `\fB!?\fP\fIs\fP\&'\&. You can omit the rightmost delimiter if a newline immediately follows \fIr\fP; -the rightmost `\fB?\fP\&' in a context scan can similarly be omitted\&. -Note the same record of the last \fIl\fP and \fIr\fP is maintained -across all forms of expansion\&. +the rightmost `\fB?\fP\&' in a context scan can similarly be omitted\&. Note +the same record of the last \fIl\fP and \fIr\fP is maintained across all +forms of expansion\&. +.PP +Note that if a `\fB&\fP\&' is used within glob qualifers an extra backslash +is needed as a \fB&\fP is a special character in this case\&. .PP If the option \fBHIST_SUBST_PATTERN\fP is set, \fIl\fP is treated as a pattern of the usual form described in @@ -371,7 +376,8 @@ case, the substitution must appear with no trailing string\&. .PP In the case of the \fB<\fP or \fB>\fP forms, the shell runs the commands in -\fIlist\fP asynchronously\&. If the system supports the \fB/dev/fd\fP +\fIlist\fP as a subprocess of the job executing the shell command line\&. +If the system supports the \fB/dev/fd\fP mechanism, the command argument is the name of the device file corresponding to a file descriptor; otherwise, if the system supports named pipes (FIFOs), the command argument will be a named pipe\&. If the form with @@ -448,7 +454,7 @@ .RE .PP (note that no \fBMULTIOS\fP are involved), \fIprocess\fP will be run -asynchronously\&. The workaround is: +asynchronously as far as the parent shell is concerned\&. The workaround is: .PP .RS .nf @@ -596,6 +602,80 @@ remove the non\-matched elements)\&. .TP .PD 0 +\fB${\fP\fIname\fP\fB:\fP\fIoffset\fP\fB}\fP +.TP +.PD +\fB${\fP\fIname\fP\fB:\fP\fIoffset\fP\fB:\fP\fIlength\fP\fB}\fP +This syntax gives effects similar to parameter subscripting +in the form \fB$\fP\fIname\fP\fB{\fP\fIstart\fP\fB,\fP\fIend\fP\fB}\fP, but is +compatible with other shells; note that both \fIoffset\fP and \fIlength\fP +are interpreted differently from the components of a subscript\&. +.RS +.PP +If \fIoffset\fP is non\-negative, then if the variable \fIname\fP is a +scalar substitute the contents starting \fIoffset\fP characters from the +first character of the string, and if \fIname\fP is an array substitute +elements starting \fIoffset\fP elements from the first element\&. If +\fIlength\fP is given, substitute that many characters or elements, +otherwise the entire rest of the scalar or array\&. +.PP +A positive \fIoffset\fP is always treated as the offset of a character or +element in \fIname\fP from the first character or element of the array +(this is different from native zsh subscript notation)\&. Hence 0 +refers to the first character or element regardless of the setting of +the option \fBKSH_ARRAYS\fP\&. +.PP +A negative offset counts backwards from the end of the scalar or array, +so that \-1 corresponds to the last character or element, and so on\&. +.PP +\fIlength\fP is always treated directly as a length and hence may not be +negative\&. The option \fBMULTIBYTE\fP is obeyed, i\&.e\&. the offset and length +count multibyte characters where appropriate\&. +.PP +\fIoffset\fP and \fIlength\fP undergo the same set of shell substitutions +as for scalar assignment; in addition, they are then subject to arithmetic +evaluation\&. Hence, for example +.PP +.RS +.nf +\fBprint ${foo:3} +print ${foo: 1 + 2} +print ${foo:$(( 1 + 2))} +print ${foo:$(echo 1 + 2)}\fP +.fi +.RE +.PP +all have the same effect, extracting the string starting at the fourth +character of \fB$foo\fP if the substution would otherwise return a scalar, +or the array starting at the fourth element if \fB$foo\fP would return an +array\&. Note that with the option \fBKSH_ARRAYS\fP \fB$foo\fP always returns +a scalar (regardless of the use of the offset syntax) and a form +such as \fB$foo[*]:3\fP is required to extract elements of an array named +\fBfoo\fP\&. +.PP +If \fIoffset\fP is negative, the \fB\-\fP may not appear immediately +after the \fB:\fP as this indicates the +\fB${\fP\fIname\fP\fB:\-\fP\fIword\fP\fB}\fP form of substitution\&. Instead, a space +may be inserted before the \fB\-\fP\&. Furthermore, neither \fIoffset\fP nor +\fIlength\fP may begin with an alphabetic character or \fB&\fP as these are +used to indicate history\-style modifiers\&. To substitute a value from a +variable, the recommended approach is to proceed it with a \fB$\fP as this +signifies the intention (parameter substitution can easily be rendered +unreadable); however, as arithmetic substitution is performed, the +expression \fB${var: offs}\fP does work, retrieving the offset from +\fB$offs\fP\&. +.PP +For further compatibility with other shells there is a special case +for array offset 0\&. This usually accesses to the +first element of the array\&. However, if the substitution refers the +positional parameter array, e\&.g\&. \fB$@\fP or \fB$*\fP, then offset 0 +instead refers to \fB$0\fP, offset 1 refers to \fB$1\fP, and so on\&. In +other words, the positional parameter array is effectively extended by +prepending \fB$0\fP\&. Hence \fB${*:0:1}\fP substitutes \fB$0\fP and +\fB${*:1:1}\fP substitutes \fB$1\fP\&. +.RE +.TP +.PD 0 \fB${\fP\fIname\fP\fB/\fP\fIpattern\fP\fB/\fP\fIrepl\fP\fB}\fP .TP .PD @@ -787,13 +867,21 @@ of alphanumeric characters separated by non\-alphanumerics, \fInot\fP to words that result from field splitting\&. .TP +\fBD\fP +Assume the string or array elements contain directories and attempt +to substitute the leading part of these by names\&. The remainder of +the path (the whole of it if the leading part was not subsituted) +is then quoted so that the whole string can be used as a shell +argument\&. This is the reverse of `\fB~\fP\&' substitution: see +the section FILENAME EXPANSION below\&. +.TP \fBe\fP Perform \fIparameter expansion\fP, \fIcommand substitution\fP and \fIarithmetic expansion\fP on the result\&. Such expansions can be nested but too deep recursion may have unpredictable effects\&. .TP \fBf\fP -Split the result of the expansion to lines\&. This is a shorthand +Split the result of the expansion at newlines\&. This is a shorthand for `\fBps:\en:\fP\&'\&. .TP \fBF\fP @@ -848,14 +936,24 @@ .RE .TP \fBq\fP -Quote the resulting words with backslashes; unprintable or invalid -characters are quoted using the \fB$\&'\e\fP\fINNN\fP\fB'\fP form, with separate -quotes for each octet\&. If this flag is given -twice, the resulting words are quoted in single quotes and if it is -given three times, the words are quoted in double quotes; in these forms -no special handling of unprintable or invalid characters is attempted\&. If -the flag is given four times, the words are quoted in single quotes -preceded by a \fB$\fP\&. +Quote characters that are special to the shell in the resulting words with +backslashes; unprintable or invalid characters are quoted using the +\fB$\&'\e\fP\fINNN\fP\fB'\fP form, with separate quotes for each octet\&. +.RS +.PP +If this flag is given twice, the resulting words are quoted in single +quotes and if it is given three times, the words are quoted in double +quotes; in these forms no special handling of unprintable or invalid +characters is attempted\&. If the flag is given four times, the words are +quoted in single quotes preceded by a \fB$\fP\&. Note that in all three of +these forms quoting is done unconditionally, even if this does not change +the way the resulting string would be interpreted by the shell\&. +.PP +If a \fBq\-\fP is given (only a single \fBq\fP may appear), a minimal +form of single quoting is used that only quotes the string if needed to +protect special characters\&. Typically this form gives the most readable +output\&. +.RE .TP \fBQ\fP Remove one level of quotes from the resulting words\&. @@ -943,6 +1041,8 @@ \fBz\fP Split the result of the expansion into words using shell parsing to find the words, i\&.e\&. taking into account any quoting in the value\&. +Comments are not treated specially but as ordinary strings, similar +to interactive shells with the \fBINTERACTIVE_COMMENTS\fP option unset\&. .RS .PP Note that this is done very late, as for the `\fB(s)\fP\&' flag\&. So to @@ -1008,7 +1108,7 @@ padding; otherwise individual multibyte characters are treated as occupying one unit of width\&. .PP -IF the \fBMULTIBYTE\fP option is not in effect, each byte in the string is +If the \fBMULTIBYTE\fP option is not in effect, each byte in the string is treated as occupying one unit of width\&. .PP Control characters are always assumed to be one unit wide; this allows the @@ -1019,10 +1119,20 @@ Only useful together with one of the flags \fBl\fP or \fBr\fP or with the \fB#\fP length operator when the \fBMULTIBYTE\fP option is in effect\&. Use the character width reported by the system in -calculating the how much of the string it occupies or the overall +calculating how much of the string it occupies or the overall length of the string\&. Most printable characters have a width of one unit, however certain Asian character sets and certain special effects use wider characters; combining characters have zero width\&. +Non\-printable characters are arbitrarily counted as zero width; how they +would actually be displayed will vary\&. +.RS +.PP +If the \fBm\fP is repeated, the character either counts zero (if it has +zero width), else one\&. For printable character strings this has the +effect of counting the number of glyphs (visibly separate characters), +except for the case where combining characters themselves have non\-zero +width (true in certain alphabets)\&. +.RE .TP \fBr:\fP\fIexpr\fP\fB::\fP\fIstring1\fP\fB::\fP\fIstring2\fP\fB:\fP As \fBl\fP, but pad the words on the right and insert \fIstring2\fP @@ -1058,7 +1168,25 @@ empty field\&. To override this behaviour, supply the "(@)" flag as well, i\&.e\&. \fB"${(@s\&.:\&.)line}"\fP\&. .RE -.RE +.TP +\fBZ:\fP\fIopts\fP\fB:\fP +As \fBz\fP but takes a combination of option letters between a following +pair of delimiter characters\&. \fB(Z+c+)\fP +causes comments to be parsed as a string and retained; any field in the +resulting array beginning with an unquoted comment character is a +comment\&. \fB(Z+C+)\fP causes comments to be parsed +and removed\&. The rule for comments is standard: anything between a word +starting with the third character of \fB$HISTCHARS\fP, default \fB#\fP, up to +the next newline is a comment\&. \fB(Z+n+)\fP causes +unquoted newlines to be treated as ordinary whitespace, else they are +treated as if they are shell code delimiters and converted to +semicolons\&. +.TP +\fB_:\fP\fIflags\fP\fB:\fP +The underscore (\fB_\fP) flag is reserved for future use\&. As of this +revision of zsh, there are no valid \fIflags\fP; anything following an +underscore, other than an empty pair of delimiters, is treated as an +error, and the flag itself has no effect\&. .PP The following flags are meaningful with the \fB${\fP\&.\&.\&.\fB#\fP\&.\&.\&.\fB}\fP or \fB${\fP\&.\&.\&.\fB%\fP\&.\&.\&.\fB}\fP forms\&. The \fBS\fP and \fBI\fP flags may also be @@ -1188,7 +1316,7 @@ \fB6\&.\fP \fINested Subscripting\fP Any remaining subscripts (i\&.e\&. of a nested substitution) are evaluated at this point, based on whether the value is an array or a scalar\&. As with -\fB2\&.\fP, multiple subscripts can appear\&. Note that \fB${foo[2,4][2]}\fP is +\fB3\&.\fP, multiple subscripts can appear\&. Note that \fB${foo[2,4][2]}\fP is thus equivalent to \fB${${foo[2,4]}[2]}\fP and also to \fB"${${(@)foo[2,4]}[2]}"\fP (the nested substitution returns an array in both cases), but not to \fB"${${foo[2,4]}[2]}"\fP (the nested substitution @@ -1200,44 +1328,70 @@ the section `Modifiers\&' in the section `History Expansion'), are applied to the words of the value at this level\&. .TP -\fB8\&.\fP \fIForced Joining\fP +\fB8\&.\fP \fICharacter evaluation\fP +Any \fB(#)\fP flag is applied, evaluating the result so far numerically +as a character\&. +.TP +\fB9\&.\fP \fILength\fP +Any initial \fB#\fP modifier, i\&.e\&. in the form \fB${#\fP\fIvar\fP\fB}\fP, is +used to evaluate the length of the expression so far\&. +.TP +\fB10\&.\fP \fIForced Joining\fP If the `\fB(j)\fP\&' flag is present, or no `\fB(j)\fP' flag is present but -the string is to be split as given by rules \fB8\&.\fP or \fB9\&.\fP, and joining -did not take place at step \fB4\&.\fP, any words in the value are joined +the string is to be split as given by rules \fB16\&.\fP or \fB17\&.\fP, and joining +did not take place at step \fB5\&.\fP, any words in the value are joined together using the given string or the first character of \fB$IFS\fP if none\&. Note that the `\fB(F)\fP\&' flag implicitly supplies a string for joining in this manner\&. .TP -\fB9\&.\fP \fIForced Splitting\fP +\fB11\&.\fP \fICase modification\fP +Any case modification from one of the flags \fB(L)\fP, \fB(U)\fP or \fB(C)\fP +is applied\&. +.TP +\fB12\&.\fP \fIPrompt evaluation\fP +Any prompt\-style formatting from the \fB(%)\fP family of flags is applied\&. +.TP +\fB13\&.\fP \fIQuote application\fP +Any quoting or unquoting using \fB(q)\fP and \fB(Q)\fP and related flags +is applied\&. +.TP +\fB14\&.\fP \fIDirectory naming\fP +Any directory name substitution using \fB(D)\fP flag is applied\&. +.TP +\fB15\&.\fP \fIVisibility enhancment\fP +Any modifications to make characters visible using the \fB(V)\fP flag +are applied\&. +.TP +\fB16\&.\fP \fIForced Splitting\fP If one of the `\fB(s)\fP\&', `\fB(f)\fP' or `\fB(z)\fP' flags are present, or the `\fB=\fP' specifier was present (e\&.g\&. \fB${=\fP\fIvar\fP\fB}\fP), the word is split on occurrences of the specified string, or (for \fB=\fP with neither of the two flags present) any of the characters in \fB$IFS\fP\&. .TP -\fB10\&.\fP \fIShell Word Splitting\fP +\fB17\&.\fP \fIShell Word Splitting\fP If no `\fB(s)\fP\&', `\fB(f)\fP' or `\fB=\fP' was given, but the word is not quoted and the option \fBSH_WORD_SPLIT\fP is set, the word is split on occurrences of any of the characters in \fB$IFS\fP\&. Note this step, too, takes place at all levels of a nested substitution\&. .TP -\fB11\&.\fP \fIUniqueness\fP +\fB18\&.\fP \fIUniqueness\fP If the result is an array and the `\fB(u)\fP\&' flag was present, duplicate elements are removed from the array\&. .TP -\fB12\&.\fP \fIOrdering\fP +\fB19\&.\fP \fIOrdering\fP If the result is still an array and one of the `\fB(o)\fP\&' or `\fB(O)\fP' flags was present, the array is reordered\&. .TP -\fB13\&.\fP \fIRe\-Evaluation\fP +\fB20\&.\fP \fIRe\-Evaluation\fP Any `\fB(e)\fP\&' flag is applied to the value, forcing it to be re\-examined for new parameter substitutions, but also for command and arithmetic substitutions\&. .TP -\fB14\&.\fP \fIPadding\fP +\fB21\&.\fP \fIPadding\fP Any padding of the value by the `\fB(l\&.\fP\fIfill\fP\fB\&.)\fP\&' or `\fB(r\&.\fP\fIfill\fP\fB\&.)\fP\&' flags is applied\&. .TP -\fB15\&.\fP \fISemantic Joining\fP +\fB22\&.\fP \fISemantic Joining\fP In contexts where expansion semantics requires a single word to result, all words are rejoined with the first character of \fBIFS\fP between\&. So in `\fB${(P\fP\fB)${(f\fP\fB)lines}}\fP\&' @@ -1247,6 +1401,17 @@ .PP If a single word is not required, this rule is skipped\&. .RE +.TP +\fB23\&.\fP \fIEmpty argument removal\fP +If the substitution does not appear in double quotes, any resulting +zero\-length argument, whether from a scalar or an element of an array, +is elided from the list of arguments inserted into the command line\&. +.RS +.PP +Strictly speaking, the removal happens later as the same happens with +other forms of substitution; the point to note here is simply that +it occurs after any of the above parameter operations\&. +.RE .RE .PP .SS "Examples" @@ -1328,9 +1493,20 @@ is expanded to every number between \fIn1\fP and \fIn2\fP inclusive\&. If either number begins with a zero, all the resulting numbers will be padded with leading zeroes to -that minimum width\&. If the numbers are in decreasing order the +that minimum width, but for negative numbers the \fB\-\fP character is also +included in the width\&. If the numbers are in decreasing order the resulting sequence will also be in decreasing order\&. .PP +An expression of the form `\fB{\fP\fIn1\fP\fB\&.\&.\fP\fIn2\fP\fB\&.\&.\fP\fIn3\fP\fB}\fP\&', +where \fIn1\fP, \fIn2\fP, and \fIn3\fP are integers, +is expanded as above, but only every \fIn3\fPth number starting from \fIn1\fP +is output\&. If \fIn3\fP is negative the numbers are output in reverse order, +this is slightly different from simply swapping \fIn1\fP and \fIn2\fP in the case +that the step \fIn3\fP doesn\&'t evenly divide the range\&. Zero padding can be +specified in any of the three numbers, specifying it in the third can be useful +to pad for example `\fB{\-99\&.\&.100\&.\&.01}\fP\&' which is not possible to specify by putting a +0 on either of the first two numbers (i\&.e\&. pad to two characters)\&. +.PP If a brace expression matches none of the above forms, it is left unchanged, unless the option \fBBRACE_CCL\fP (an abbreviation for `brace character class\&') is set\&. @@ -1365,8 +1541,8 @@ replaced with the appropriate substitute value\&. .PP A `\fB~\fP\&' by itself is replaced by the value of \fB$HOME\fP\&. -A `\fB~\fP\&' followed by a `\fB+\fP' or a `\fB\-\fP' is replaced by the value of -\fB$PWD\fP or \fB$OLDPWD\fP, respectively\&. +A `\fB~\fP\&' followed by a `\fB+\fP' or a `\fB\-\fP' is replaced by current +or previous working directory, respectively\&. .PP A `\fB~\fP\&' followed by a number is replaced by the directory at that position in the directory stack\&. @@ -1423,6 +1599,11 @@ length matched (16 in the example) is longer than that matched by any static name\&. .PP +The completion system calls `\fBzsh_directory_name c\fP\&' in order to +complete dynamic names for directories\&. The code for this should be +as for any other completion function as described in +\fIzshcompsys\fP(1)\&. +.PP As a working example, here is a function that expands any dynamic names beginning with the string \fBp:\fP to directories below \fB/home/pws/perforce\fP\&. In this simple case a static name for the @@ -1435,16 +1616,28 @@ setopt extendedglob local \-a match mbegin mend if [[ $1 = d ]]; then + # turn the directory into a name if [[ $2 = (#b)(/home/pws/perforce/)([^/]##)* ]]; then typeset \-ga reply reply=(p:$match[2] $(( ${#match[1]} + ${#match[2]} )) ) else return 1 fi - else + elif [[ $1 = n ]]; then + # turn the name into a directory [[ $2 != (#b)p:(?*) ]] && return 1 typeset \-ga reply reply=(/home/pws/perforce/$match[1]) + elif [[ $1 = c ]]; then + # complete names + local expl + local \-a dirs + dirs=(/home/pws/perforce/*(/:t)) + dirs=(p:${^dirs}) + _wanted dynamic\-dirs expl \&'dynamic directory' compadd \-S\e] \-a dirs + return + else + return 1 fi return 0 }\fP @@ -2072,7 +2265,7 @@ `full\&' (i\&.e\&. non\-empty) directories\&. Note that the opposite sense \fB(^F\fP\fB)\fP expands to empty directories and all non\-directories\&. Use \fB(/^F\fP\fB)\fP for -empty directories +empty directories\&. .TP \fB\&.\fP plain files @@ -2186,13 +2379,18 @@ \fB+\fP\fIcmd\fP The \fIstring\fP will be executed as shell code\&. The filename will be included in the list if and only if the code returns a zero status (usually -the status of the last command)\&. The first character after the `\fBe\fP\&' +the status of the last command)\&. +.RS +.PP +In the first form, the first character after the `\fBe\fP\&' will be used as a separator and anything up to the next matching separator will be taken as the \fIstring\fP; `\fB[\fP\&', `\fB{\fP', and `\fB<\fP' match `\fB]\fP\&', `\fB}\fP', and `\fB>\fP', respectively, while any other character matches itself\&. Note that expansions must be quoted in the \fIstring\fP to prevent them from being expanded before globbing is done\&. -.RS +\fIstring\fP is then executed as shell code\&. The string \fBglobqual\fP +is appended to the array \fBzsh_eval_context\fP the duration of +execution\&. .PP During the execution of \fIstring\fP the filename currently being tested is available in the parameter \fBREPLY\fP; the parameter may be altered to @@ -2279,10 +2477,19 @@ .TP \fBL\fP[\fB+\fP|\fB\-\fP]\fIn\fP files less than \fIn\fP bytes (\fB\-\fP), more than \fIn\fP bytes (\fB+\fP), or -exactly \fIn\fP bytes in length\&. If this flag is directly followed by a `\fBk\fP\&' -(`\fBK\fP\&'), `\fBm\fP' (`\fBM\fP'), or `\fBp\fP' (`\fBP\fP') (e\&.g\&. `\fBLk\-50\fP') -the check is performed with kilobytes, megabytes, or blocks (of 512 bytes) -instead\&. +exactly \fIn\fP bytes in length\&. +.RS +.PP +If this flag is directly followed by a `\fBk\fP\&' (`\fBK\fP'), `\fBm\fP' +(`\fBM\fP\&'), or `\fBp\fP' (`\fBP\fP') (e\&.g\&. `\fBLk\-50\fP') the check is performed +with kilobytes, megabytes, or blocks (of 512 bytes) instead\&. In this +case a file is regarded as "exactly" the size if the file size rounded up +to the next unit is equal to the test size\&. Hence `\fB*(Lm1)\fP\&' +matches files from 1 byte up to 1 Megabyte inclusive\&. Note also that +the set of files "less than" the test size only includes files that would +not match the equality test; hence `\fB*(Lm\-1)\fP\&' only matches +files of zero size\&. +.RE .TP \fB^\fP negates all qualifiers following it @@ -2328,12 +2535,13 @@ \fBoe\fP and \fBo+\fP are special cases; they are each followed by shell code, delimited as for the \fBe\fP glob qualifier and the \fB+\fP glob qualifier respectively (see above)\&. The code is executed for each matched file with -the parameter \fBREPLY\fP set to the name of the file on entry\&. The code -should modify the parameter \fBREPLY\fP in some fashion\&. On return, the value -of the parameter is used instead of the file name as the string on which to -sort\&. Unlike other sort operators, \fBoe\fP and \fBo+\fP may be repeated, but -note that the maximum number of sort operators of any kind that may appear -in any glob expression is 12\&. +the parameter \fBREPLY\fP set to the name of the file on entry and +\fBglobsort\fP appended to \fBzsh_eval_context\fP\&. The code +should modify the parameter \fBREPLY\fP in some fashion\&. On return, the +value of the parameter is used instead of the file name as the string on +which to sort\&. Unlike other sort operators, \fBoe\fP and \fBo+\fP may be +repeated, but note that the maximum number of sort operators of any kind +that may appear in any glob expression is 12\&. .RE .TP \fBO\fP\fIc\fP @@ -2349,6 +2557,21 @@ expressions\&. As in parameter subscripting they may be negative to make them count from the last match backward\&. E\&.g\&.: `\fB*(\-OL[1,3])\fP\&' gives a list of the names of the three largest files\&. +.TP +\fBP\fP\fIstring\fP +The \fIstring\fP will be prepended to each glob match as a separate +word\&. \fIstring\fP is delimited in the same way as arguments to the +\fBe\fP glob qualifier described above\&. The qualifier can be repeated; +the words are prepended separately so that the resulting command +line contains the words in the same order they were given in the +list of glob qualifiers\&. +.RS +.PP +A typical use for this is to prepend an option before all occurrences +of a file name; for example, the pattern `\fB*(P:\-f:)\fP\&' produces the +command line arguments `\fB\-f\fP \fIfile1\fP \fB\-f\fP \fIfile2\fP \&.\&.\&.\&' +.RE +.RE .PP More than one of these lists can be combined, separated by commas\&. The whole list matches if at least one of the sublists matches (they are diff -Nru zsh-4.3.10/Doc/zshmisc.1 zsh-4.3.11/Doc/zshmisc.1 --- zsh-4.3.10/Doc/zshmisc.1 2009-06-01 11:00:19.000000000 +0200 +++ zsh-4.3.11/Doc/zshmisc.1 2010-12-20 16:00:44.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHMISC" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHMISC" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshmisc \- everything and then some .\" Yodl file: Zsh/grammar.yo @@ -196,6 +196,12 @@ \fIword\fP is expanded and treated as an arithmetic expression, which must evaluate to a number \fIn\fP\&. \fIlist\fP is then executed \fIn\fP times\&. +.RS +.PP +The \fBrepeat\fP syntax is disabled by default when the +shell starts in a mode emulating another shell\&. It can be enabled +with the command `\fBenable \-r repeat\fP\&' +.RE .TP \fBcase\fP \fIword\fP \fBin\fP [ [\fB(\fP] \fIpattern\fP [ \fB|\fP \fIpattern\fP ] \&.\&.\&. \fB)\fP \fIlist\fP (\fB;;\fP|\fB;&\fP|\fB;|\fP) ] \&.\&.\&. \fBesac\fP Execute the \fIlist\fP associated with the first \fIpattern\fP @@ -334,10 +340,10 @@ See the section `Conditional Expressions\&' for a description of \fIexp\fP\&. .SH "ALTERNATE FORMS FOR COMPLEX COMMANDS" -Many of zsh\&'s complex commands have alternate forms\&. These particular -versions of complex commands should be considered deprecated and may be -removed in the future\&. The versions in the previous section should be -preferred instead\&. +Many of zsh\&'s complex commands have alternate forms\&. These are +non\-standard and are likely not to be obvious even to seasoned shell +programmers; they should not be used anywhere that portability of shell +code is a concern\&. .PP The short versions below only work if \fIsublist\fP is of the form `\fB{\fP \fIlist\fP \fB}\fP\&' or if the \fBSHORT_LOOPS\fP option is set\&. For the \fBif\fP, @@ -439,12 +445,16 @@ An alias is defined using the \fBalias\fP builtin; global aliases may be defined using the \fB\-g\fP option to that builtin\&. .PP -Alias expansion is done on the shell input before any -other expansion except history expansion\&. Therefore, -if an alias is defined for the word \fBfoo\fP, alias expansion -may be avoided by quoting part of the word, e\&.g\&. \fB\efoo\fP\&. -But there is nothing to prevent an alias being defined -for \fB\efoo\fP as well\&. +Alias expansion is done on the shell input before any other expansion +except history expansion\&. Therefore, if an alias is defined for the +word \fBfoo\fP, alias expansion may be avoided by quoting part of the +word, e\&.g\&. \fB\efoo\fP\&. Any form of quoting works, although there is +nothing to prevent an alias being defined for the quoted form such as +\fB\efoo\fP as well\&. For use with completion, which would remove an +initial backslash followed by a character that isn\&'t special, it may be +more convenient to quote the word by starting with a single quote, +i\&.e\&. \fB\&'foo\fP; completion will automatically add the trailing single +quote\&. .PP There is a commonly encountered problem with aliases illustrated by the following code: @@ -462,6 +472,35 @@ a problem in shell scripts, functions, and code executed with `\fBsource\fP\&' or `\fB\&.\fP\&'\&. Consequently, use of functions rather than aliases is recommended in non\-interactive code\&. +.PP +Note also the unhelpful interaction of aliases and function definitions: +.PP +.RS +.nf +\fBalias func=\&'noglob func' +func() { + echo Do something with $* +}\fP +.fi +.RE +.PP +Because aliases are expanded in function defintions, this causes the +following command to be executed: +.PP +.RS +.nf +\fBnoglob func() { + echo Do something with $* +}\fP +.fi +.RE +.PP +which defines \fBnoglob\fP as well as \fBfunc\fP as functions with the +body given\&. To avoid this, either quote the name \fBfunc\fP or use the +alternative function definition form `\fBfunction func\fP\&'\&. Ensuring the +alias is defined after the function works but is problematic if the +code fragment might be re\-executed\&. +.PP .SH "QUOTING" A character may be \fIquoted\fP (that is, made to stand for itself) by preceding it with a `\fB\e\fP\&'\&. @@ -1805,13 +1844,31 @@ extended regular expression using the \fBzsh/regex\fP module\&. Upon successful match, some variables will be updated; no variables are changed if the matching fails\&. +.RS +.PP +If the option \fBBASH_REMATCH\fP is not set the scalar parameter +\fBMATCH\fP is set to the substring that matched the pattern and +the integer parameters \fBMBEGIN\fP and \fBMEND\fP to the index of the start +and end, respectively, of the match in \fIstring\fP, such that if +\fIstring\fP is contained in variable \fBvar\fP the expression +`${var[$MBEGIN,$MEND]}\&' is identical to `$MATCH'\&. The setting +of the option \fBKSH_ARRAYS\fP is respected\&. Likewise, the array +\fBmatch\fP is set to the substrings that matched parenthesised +subexpressions and the arrays \fBmbegin\fP and \fBmend\fP to the indices of +the start and end positions, respectively, of the substrings within +\fIstring\fP\&. The arrays are not set if there were no parenthesised +subexpresssions\&. For example, if the string `\fBa short string\fP\&' is matched +against the regular expression `\fBs(\&.\&.\&.)t\fP\&', then (assuming the +option \fBKSH_ARRAYS\fP is not set) \fBMATCH\fP, \fBMBEGIN\fP +and \fBMEND\fP are `\fBshort\fP\&', 3 and 7, respectively, while \fBmatch\fP, +\fBmbegin\fP and \fBmend\fP are single entry arrays containing +the strings `\fBhor\fP\&', `\fB4\fP' and `\fB6\fP, respectively\&. +.PP If the option \fBBASH_REMATCH\fP is set the array \fBBASH_REMATCH\fP is set to the substring that matched the pattern followed by the substrings that matched parenthesised -subexpressions within the pattern; otherwise, the scalar parameter -\fBMATCH\fP is set to the substring that matched the pattern and -and the array \fBmatch\fP to the substrings that matched parenthesised -subexpressions\&. +subexpressions within the pattern\&. +.RE .TP \fIstring1\fP \fB<\fP \fIstring2\fP true if \fIstring1\fP comes before \fIstring2\fP @@ -1853,9 +1910,10 @@ .PP Normal shell expansion is performed on the \fIfile\fP, \fIstring\fP and \fIpattern\fP arguments, but the result of each expansion is constrained to -be a single word, similar to the effect of double quotes\&. However, pattern -metacharacters are active for the \fIpattern\fP arguments; the patterns -are the same as those used for filename generation, see +be a single word, similar to the effect of double quotes\&. +File generation is not performed on any form of argument to conditions\&. +However, pattern metacharacters are active for the \fIpattern\fP arguments; +the patterns are the same as those used for filename generation, see \fIzshexpn\fP(1), but there is no special behaviour of `\fB/\fP\&' nor initial dots, and no glob qualifiers are allowed\&. .PP @@ -1970,16 +2028,17 @@ \fB%d\fP .TP .PD -\fB%/\fP -Present working directory (\fB$PWD\fP)\&. If an integer follows the `\fB%\fP\&', -it specifies a number of trailing components of \fB$PWD\fP to show; zero -means the whole path\&. A negative integer specifies leading components, -i\&.e\&. \fB%\-1d\fP specifies the first component\&. +\fB/\fP +Current working directory\&. If an integer follows the `\fB%\fP\&', +it specifies a number of trailing components of the current working +directory to show; zero means the whole path\&. A negative integer +specifies leading components, i\&.e\&. \fB%\-1d\fP specifies the first component\&. .TP \fB%~\fP -As \fB%d\fP and \fB%/\fP, but if \fB$PWD\fP has a named directory as its prefix, -that part is replaced by a `\fB~\fP\&' followed by the name of the directory\&. -If it starts with \fB$HOME\fP, that part is replaced by a `\fB~\fP\&'\&. +As \fB%d\fP and \fB%/\fP, but if the current working directory has a named +directory as its prefix, that part is replaced by a `\fB~\fP\&' followed by +the name of the directory\&. If it starts with \fB$HOME\fP, that part is +replaced by a `\fB~\fP\&'\&. .TP .PD 0 \fB%h\fP @@ -2024,7 +2083,7 @@ .TP .PD \fB%C\fP -Trailing component of \fB$PWD\fP\&. +Trailing component of the current working directory\&. An integer may follow the `\fB%\fP\&' to get more than one component\&. Unless `\fB%C\fP\&' is used, tilde contraction is performed first\&. These are deprecated as \fB%c\fP and \fB%C\fP are equivalent to \fB%1~\fP and \fB%1/\fP, diff -Nru zsh-4.3.10/Doc/zshmodules.1 zsh-4.3.11/Doc/zshmodules.1 --- zsh-4.3.10/Doc/zshmodules.1 2009-06-01 11:00:20.000000000 +0200 +++ zsh-4.3.11/Doc/zshmodules.1 2010-12-20 16:00:44.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHMODULES" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHMODULES" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshmodules \- zsh loadable modules .\" Yodl file: Zsh/modules.yo @@ -116,28 +116,35 @@ .\" Yodl file: Zsh/mod_attr.yo The \fBzsh/attr\fP module is used for manipulating extended attributes\&. +The \fB\-h\fP option causes all commands to operate on symbolic links instead +of their targets\&. The builtins in this module are: .PP .PD 0 .TP .PD -\fBzgetattr\fP \fIfilename\fP \fIattribute\fP [ \fIparameter\fP ] +\fBzgetattr\fP [ \fB\-h\fP ] \fIfilename\fP \fIattribute\fP [ \fIparameter\fP ] Get the extended attribute \fIattribute\fP from the specified \fIfilename\fP\&. If the optional argument \fIparameter\fP is given, the attribute is set on that parameter instead of being printed to stdout\&. .TP -\fBzsetattr\fP \fIfilename\fP \fIattribute\fP \fIvalue\fP +\fBzsetattr\fP [ \fB\-h\fP ] \fIfilename\fP \fIattribute\fP \fIvalue\fP Set the extended attribute \fIattribute\fP on the specified \fIfilename\fP to \fIvalue\fP\&. .TP -\fBzdelattr\fP \fIfilename\fP \fIattribute\fP +\fBzdelattr\fP [ \fB\-h\fP ] \fIfilename\fP \fIattribute\fP Remove the extended attribute \fIattribute\fP from the specified \fIfilename\fP\&. .TP -\fBzlistattr\fP \fIfilename\fP [ \fIparameter\fP ] +\fBzlistattr\fP [ \fB\-h\fP ] \fIfilename\fP [ \fIparameter\fP ] List the extended attributes currently set on the specified \fIfilename\fP\&. If the optional argument \fIparameter\fP is given, the list of attributes is set on that parameter instead of being printed to stdout\&. +.PP +\fBzgetattr\fP and \fBzlistattr\fP allocate memory dynamically\&. If the +attribute or list of attributes grows between the allocation and the call +to get them, they return 2\&. On all other errors, 1 is returned\&. This +allows the calling function to check for this case and retry\&. .SH "THE ZSH/CAP MODULE" .\" Yodl file: Zsh/mod_cap.yo @@ -199,7 +206,7 @@ .PP This does not apply when cloning to an \fBunused\fP vc\&. .PP -Cloning to an used (and unprepared) terminal will result in two +Cloning to a used (and unprepared) terminal will result in two processes reading simultaneously from the same terminal, with input bytes going randomly to either process\&. .PP @@ -293,6 +300,10 @@ \fBow 34;43\fP for world writable directories without sticky bit set .TP +\fBsa\fP \fInone\fP +for files with an associated suffix alias; this is only tested +after specific suffixes, as described below +.TP \fBst 37;44\fP for directories with sticky bit set but not world writable .TP @@ -415,6 +426,9 @@ .PD \fBexpand\-or\-complete\-prefix\fP, \fBmenu\-complete\-or\-expand\fP scrolls forward one screenful +.TP +\fBaccept\-search\fP +stop listing but take no other action .PP Every other character stops listing and immediately processes the key as usual\&. Any key that is not bound in the \fBlistscroll\fP keymap or @@ -499,13 +513,17 @@ functions\&. When not all matches can be shown on the screen at the same time, the list will scroll up and down when crossing the top or bottom line\&. The following zle functions have special meaning during -menu selection: +menu selection\&. Note that the following always +perform the same task within the menu selection map and cannot be +replaced by user defined widgets, nor can the set of functions +be extended: .PP .PD 0 .TP .PD -\fBaccept\-line\fP -accepts the current match and leaves menu selection +\fBaccept\-line\fP, \fBaccept\-search\fP +accept the current match and leave menu selection (but do +not cause the command line to be accepted) .TP \fBsend\-break\fP leaves menu selection and restores the previous contents of the @@ -2093,8 +2111,8 @@ .SH "THE ZSH/SYSTEM MODULE" .\" Yodl file: Zsh/mod_system.yo -The \fBzsh/system\fP module makes available three builtin commands and -two parameters\&. +The \fBzsh/system\fP module makes available various builtin commands and +parameters\&. .PP .SS "Builtins" .PP @@ -2209,7 +2227,60 @@ printed in the last case, but the parameter \fBERRNO\fP will reflect the error that occurred\&. .RE -.RE +.TP +.PD 0 +\fBzsystem flock [ \-t\fP \fItimeout\fP \fB] [ \-f\fP \fIvar\fP \fB] [\-er]\fP \fIfile\fP +.TP +.PD +\fBzsystem flock \-u\fP \fIfd_expr\fP +The builtin \fBzsystem\fP\&'s subcommand \fBflock\fP performs advisory file +locking (via the \fIfcntl\fP(2) system call) over the entire contents +of the given file\&. This form of locking requires the processes +accessing the file to cooperate; its most obvious use is between two +instances of the shell itself\&. +.RS +.PP +In the first form the named \fIfile\fP, which must already exist, is +locked by opening a file descriptor to the file and applying a lock to +the file descriptor\&. The lock terminates when the shell process that +created the lock exits; it is therefore often convenient to create file +locks within subshells, since the lock is automatically released when +the subshell exits\&. Status 0 is returned if the lock succeeds, else +status 1\&. +.PP +In the second form the file descriptor given by the arithmetic +expression \fBfd_expr\fP is closed, releasing a lock\&. The file descriptor +can be queried by using the `\fB\-f\fP \fIvar\fP\&' form during the lock; +on a successful lock, the shell variable \fIvar\fP is set to the file +descriptor used for locking\&. The lock will be released if the +file descriptor is closed by any other means, for example using +`\fBexec {\fP\fIvar\fP\fB}>&\-\fP\&'; however, the form described here performs +a safety check that the file descriptor is in use for file locking\&. +.PP +By default the shell waits indefinitely for the lock to succeed\&. +The option \fB\-t\fP \fItimeout\fP specifies a timeout for the lock in +seconds; currently this must be an integer\&. The shell will attempt +to lock the file once a second during this period\&. If the attempt +times out, status 2 is returned\&. +.PP +If the option \fB\-e\fP is given, the file descriptor for the lock is +preserved when the shell uses \fBexec\fP to start a new process; +otherwise it is closed at that point and the lock released\&. +.PP +If the option \fB\-r\fP is given, the lock is only for reading, otherwise +it is for reading and writing\&. The file descriptor is opened +accordingly\&. +.RE +.TP +\fBzsystem supports\fP \fIsubcommand\fP +The builtin \fBzsystem\fP\&'s subcommand \fBsupports\fP tests whether a +given subcommand is supported\&. It returns status 0 if so, else +status 1\&. It operates silently unless there was a syntax error +(i\&.e\&. the wrong number of arguments), in which case status 255 +is returned\&. Status 1 can indicate one of two things: \fIsubcommand\fP +is known but not supported by the current operating system, or +\fIsubcommand\fP is not known (possibly because this is an older +version of the shell before it was implemented)\&. .PP .SS "Parameters" .PP @@ -3060,7 +3131,7 @@ amount of time spent in each\&. The lines contain the number of the function in order, which is used in other parts of the list in suffixes of the form -`\fB[\fP\fInum\fP\fB]\fP\&'.RE, then the number of calls made to the function\&. +`\fB[\fP\fInum\fP\fB]\fP\&', then the number of calls made to the function\&. The next three columns list the time in milliseconds spent in the function and its descendants, the average time in milliseconds spent in the function and its descendants per @@ -3098,7 +3169,7 @@ times and numbers of calls since the module was loaded\&. With the \fB\-c\fP option, the \fBzprof\fP builtin command will reset its internal counters and will not show the listing\&. -) +.RE .RE .SH "THE ZSH/ZPTY MODULE" .\" Yodl file: Zsh/mod_zpty.yo @@ -3226,7 +3297,7 @@ second\&. This may be zero, in which case the file descriptors will simply be polled and \fBzselect\fP will return immediately\&. It is possible to call zselect with no file descriptors and a non\-zero timeout for use as a -finer\-grained replacement for `sleep\&'; not, however, the return status is +finer\-grained replacement for `sleep\&'; note, however, the return status is always 1 for a timeout\&. .PP The option `\fB\-a\fP \fIarray\fP\&' indicates that \fBarray\fP should be set to diff -Nru zsh-4.3.10/Doc/zshoptions.1 zsh-4.3.11/Doc/zshoptions.1 --- zsh-4.3.10/Doc/zshoptions.1 2009-06-01 11:00:21.000000000 +0200 +++ zsh-4.3.11/Doc/zshoptions.1 2010-12-20 16:00:45.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHOPTIONS" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHOPTIONS" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshoptions \- zsh options .\" Yodl file: Zsh/options.yo @@ -65,9 +65,9 @@ When changing to a directory containing a path segment `\fB\&.\&.\fP\&' which would otherwise be treated as canceling the previous segment in the path (in other words, `\fBfoo/\&.\&.\fP\&' would be removed from the path, or if `\fB\&.\&.\fP' is -the first part of the path, the last part of \fB$PWD\fP would be deleted), -instead resolve the path to the physical directory\&. This option is -overridden by \fBCHASE_LINKS\fP\&. +the first part of the path, the last part of the current working directory +would be removed), instead resolve the path to the physical directory\&. +This option is overridden by \fBCHASE_LINKS\fP\&. .RS .PP For example, suppose \fB/foo/bar\fP is a link to the directory \fB/alt/rod\fP\&. @@ -83,6 +83,26 @@ will be treated as referring to the physical parent, even if the preceding path segment is a symbolic link\&. .TP +\fBPOSIX_CD\fP +Modifies the behaviour of \fBcd\fP, \fBchdir\fP and \fBpushd\fP commands +to make them more compatible with the POSIX standard\&. The behaviour with +the option unset is described in the documentation for the \fBcd\fP +builtin in +\fIzshbuiltins\fP(1)\&. +If the option is set, the shell does not test for directories beneath +the local directory (`\fB\&.\fP\&') until after all directories in \fBcdpath\fP +have been tested\&. +.RS +.PP +Also, if the option is set, the conditions under which the shell +prints the new directory after changing to it are modified\&. It is +no longer restricted to interactive shells (although printing of +the directory stack with \fBpushd\fP is still limited to interactive +shells); and any use of a component of \fBCDPATH\fP, including a `\fB\&.\fP\&' but +excluding an empty component that is otherwise treated as `\fB\&.\fP\&', causes +the directory to be printed\&. +.RE +.TP \fBPUSHD_IGNORE_DUPS\fP Don\&'t push multiple copies of the same directory onto the directory stack\&. .TP @@ -300,7 +320,7 @@ with pattern matching instead of string matching\&. This occurs wherever history modifiers are valid, including glob qualifiers and parameters\&. See -the section Modifiers in \fIzshexp\fP(1)\&. +the section Modifiers in \fIzshexpn\fP(1)\&. .TP \fBIGNORE_BRACES\fP (\fB\-I\fP) Do not perform brace expansion\&. @@ -429,7 +449,7 @@ this prefixed data is: .RS .PP -`\fB:\fP\fI\fP\fB:\fP\fI\fP\fB:\fP\fI\fP\&'\&. +`\fB:\fP \fI\fP\fB:\fP\fI\fP\fB;\fP\fI\fP\&'\&. .RE .TP \fBHIST_ALLOW_CLOBBER\fP @@ -474,12 +494,24 @@ \fBHIST_IGNORE_SPACE\fP (\fB\-g\fP) Remove command lines from the history list when the first character on the line is a space, or when one of the expanded aliases contains a -leading space\&. +leading space\&. Only normal aliases (not global or suffix aliases) +have this behaviour\&. Note that the command lingers in the internal history until the next command is entered before it vanishes, allowing you to briefly reuse or edit the line\&. If you want to make it vanish right away without entering another command, type a space and press return\&. .TP +\fBHIST_LEX_WORDS\fP +By default, shell history that is read in from files is split into +words on all white space\&. This means that arguments with quoted +whitespace are not correctly handled, with the consequence that +references to words in history lines that have been read from a file +may be inaccurate\&. When this option is set, words read in from a +history file are divided up in a similar fashion to normal shell +command line handling\&. Although this produces more accurately delimited +words, if the size of the history file is large this can be slow\&. Trial +and error is necessary to decide\&. +.TP \fBHIST_NO_FUNCTIONS\fP Remove function definitions from the history list\&. Note that the function lingers in the internal history until the next @@ -681,6 +713,14 @@ directory appear in the command search path\&. .RE .TP +\fBPATH_SCRIPT\fP +If this option is not set, a script passed as the first non\-option argument +to the shell must contain the name of the file to open\&. If this +option is set, and the script does not specify a directory path, +the script is looked for first in the current directory, then in the +command path\&. See +the section INVOCATION in \fIzsh\fP(1)\&. +.TP \fBPRINT_EIGHT_BIT\fP Print eight bit characters literally in completion lists, etc\&. This option is not necessary if your system correctly returns the @@ -714,6 +754,8 @@ of backquotes on the line, ignore the trailing backquote\&. This is useful on some keyboards where the return key is too small, and the backquote key lies annoyingly close to it\&. +As an alternative the variable \fBKEYBOARD_HACK\fP lets you choose the +character to be removed\&. .PP .SS "Job Control" .PD 0 @@ -760,6 +802,33 @@ \fBNOTIFY\fP (\fB\-5\fP, ksh: \fB\-b\fP) Report the status of background jobs immediately, rather than waiting until just before printing a prompt\&. +.TP +\fBPOSIX_JOBS\fP +This option makes job control more compliant with the POSIX standard\&. +.RS +.PP +When the option is not set, the \fBMONITOR\fP option is unset on entry to +subshells, so that job control is no longer active\&. When the option is +set, the \fBMONITOR\fP option and job control remain active in the +subshell, but note that the subshell has no access to jobs in the parent +shell\&. +.PP +When the option is not set, jobs put in the background or foreground +with \fBbg\fP or \fBfg\fP are displayed with the same information that would +be reported by \fBjobs\fP\&. When the option is set, only the text is +printed\&. The output from \fBjobs\fP itself is not affected by the option\&. +.PP +When the option is not set, job information from the parent +shell is saved for output within a subshell (for example, within a +pipeline)\&. When the option is set, the output of \fBjobs\fP is empty +until a job is started within the subshell\&. +.PP +When the option is set, it becomes possible to use the \fBwait\fP builtin to +wait for the last job started in the background (as given by \fB$!\fP) even +if that job has already exited\&. This works even if the option is turned +on temporarily around the use of the \fBwait\fP builtin\&. +.RE +.RE .PP .SS "Prompting" .PD 0 @@ -903,7 +972,7 @@ .fi .RE .PP -will restore normally handling of \fBSIGINT\fP after the function exits\&. +will restore normal handling of \fBSIGINT\fP after the function exits\&. .RE .TP \fBMULTI_FUNC_DEF\fP @@ -929,6 +998,14 @@ of leading zeroes\&. .RE .TP +\fBSOURCE_TRACE\fP +If set, zsh will print an informational message announcing the name of +each file it loads\&. The format of the output is similar to that +for the \fBXTRACE\fP option, with the message \fB\fP\&. +A file may be loaded by the shell itself when it +starts up and shuts down (\fBStartup/Shutdown Files\fP) or by the use of +the `\fBsource\fP\&' and `\fBdot\fP' builtin commands\&. +.TP \fBTYPESET_SILENT\fP If this is unset, executing any of the `\fBtypeset\fP\&' family of commands with no options and a list of parameters that have no values @@ -941,7 +1018,10 @@ Print shell input lines as they are read\&. .TP \fBXTRACE\fP (\fB\-x\fP, ksh: \fB\-x\fP) -Print commands and their arguments as they are executed\&. +Print commands and their arguments as they are executed\&. The +output is proceded by the value of \fB$PS4\fP, formatted as described +in +the section EXPANSION OF PROMPT SEQUENCES in \fIzshmisc\fP(1)\&. .PP .SS "Shell Emulation" .PD 0 @@ -1109,6 +1189,35 @@ This is non\-standard but is the traditional zsh behaviour\&. .RE .TP +\fBPOSIX_STRINGS\fP +This option affects processing of quoted strings\&. Currently it only +affects the behaviour of null characters, i\&.e\&. character 0 in the +portable character set corresponding to US ASCII\&. +.RS +.PP +When this option is not set, null characters embedded within strings +of the form \fB$\&'\fP\fI\&.\&.\&.\fP\fB'\fP are treated as ordinary characters\&. The +entire string is maintained within the shell and output to files where +necessary, although owing to restrictions of the library interface +the string is truncated at the null character in file names, environment +variables, or in arguments to external programs\&. +.PP +When this option is set, the \fB$\&'\fP\fI\&.\&.\&.\fP\fB'\fP expression is truncated at +the null character\&. Note that remaining parts of the same string +beyond the termination of the quotes are not trunctated\&. +.PP +For example, the command line argument \fBa$\&'b\e0c'd\fP is treated with +the option off as the characters \fBa\fP, \fBb\fP, null, \fBc\fP, \fBd\fP, +and with the option on as the characters \fBa\fP, \fBb\fP, \fBd\fP\&. +.RE +.TP +\fBPOSIX_TRAPS\fP +When the is option is set, the usual zsh behaviour of executing +traps for \fBEXIT\fP on exit from shell functions is suppressed\&. +In that case, manipulating \fBEXIT\fP traps always alters the global +trap for exiting the shell; the \fBLOCAL_TRAPS\fP option is +ignored for the \fBEXIT\fP trap\&. +.TP \fBSH_FILE_EXPANSION\fP Perform filename expansion (e\&.g\&., ~ expansion) \fIbefore\fP parameter expansion, command substitution, arithmetic expansion diff -Nru zsh-4.3.10/Doc/zshparam.1 zsh-4.3.11/Doc/zshparam.1 --- zsh-4.3.10/Doc/zshparam.1 2009-06-01 11:00:21.000000000 +0200 +++ zsh-4.3.11/Doc/zshparam.1 2010-12-20 16:00:45.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHPARAM" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHPARAM" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshparam \- zsh parameters .\" Yodl file: Zsh/params.yo @@ -733,6 +733,103 @@ \fBVENDOR\fP The vendor, as determined at compile time\&. .TP +\fBzsh_eval_context\fP (\fBZSH_EVAL_CONTEXT\fP ) +An array (colon\-separated list) indicating the context of shell +code that is being run\&. Each time a piece of shell code that +is stored within the shell is executed a string is temporarily appended to +the array to indicate the type of operation that is being performed\&. +Read in order the array gives an indication of the stack of +operations being performed with the most immediate context last\&. +.RS +.PP +Note that the variable does not give information on syntactic context such +as pipelines or subshells\&. Use \fB$ZSH_SUBSHELL\fP to detect subshells\&. +.PP +The context is one of the following: +.PD 0 +.TP +.PD +\fBcmdarg\fP +Code specified by the \fB\-c\fP option to the command line that invoked +the shell\&. +.TP +\fBcmdsubst\fP +Command substitution using the \fB`\fP\fI\&.\&.\&.\fP\fB`\fP or +\fB$(\fP\fI\&.\&.\&.\fP\fB)\fP construct\&. +.TP +\fBequalsubst\fP +File substitution using the \fB=(\fP\fI\&.\&.\&.\fP\fB)\fP construct\&. +.TP +\fBeval\fP +Code executed by the \fBeval\fP builtin\&. +.TP +\fBevalautofunc\fP +Code executed with the \fBKSH_AUTOLOAD\fP mechanism in order to define +an autoloaded function\&. +.TP +\fBfc\fP +Code from the shell history executed by the \fB\-e\fP option to the \fBfc\fP +builtin\&. +.TP +\fBfile\fP +Lines of code being read directly from a file, for example by +the \fBsource\fP builtin\&. +.TP +\fBfilecode\fP +Lines of code being read from a \fB\&.zwc\fP file instead of directly +from the source file\&. +.TP +\fBglobqual\fP +Code executed by the \fBe\fP or \fB+\fP glob qualifier\&. +.TP +\fBglobsort\fP +Code executed to order files by the \fBo\fP glob qualifier\&. +.TP +\fBinsubst\fP +File substitution using the \fB<(\fP\fI\&.\&.\&.\fP\fB)\fP construct\&. +.TP +\fBloadautofunc\fP +Code read directly from a file to define an autoloaded function\&. +.TP +\fBoutsubst\fP +File substitution using the \fB>(\fP\fI\&.\&.\&.\fP\fB)\fP construct\&. +.TP +\fBsched\fP +Code executed by the \fBsched\fP builtin\&. +.TP +\fBshfunc\fP +A shell function\&. +.TP +\fBstty\fP +Code passed to \fBstty\fP by the \fBSTTY\fP environment variable\&. +Normally this is passed directly to the system\&'s \fBstty\fP command, +so this value is unlikely to be seen in practice\&. +.TP +\fBstyle\fP +Code executed as part of a style retrieved by the \fBzstyle\fP builtin +from the \fBzsh/zutil\fP module\&. +.TP +\fBtoplevel\fP +The highest execution level of a script or interactive shell\&. +.TP +\fBtrap\fP +Code executed as a trap defined by the \fBtrap\fP builtin\&. Traps +defined as functions have the context \fBshfunc\fP\&. As traps are +asynchronous they may have a different hierarchy from other +code\&. +.TP +\fBzpty\fP +Code executed by the \fBzpty\fP builtin from the \fBzsh/zpty\fP module\&. +.TP +\fBzregexparse\-guard\fP +Code executed as a guard by the \fBzregexparse\fP command from the +\fBzsh/zutil\fP module\&. +.TP +\fBzregexparse\-action\fP +Code executed as an action by the \fBzregexparse\fP command from the +\fBzsh/zutil\fP module\&. +.RE +.TP \fBZSH_NAME\fP Expands to the basename of the command used to invoke this instance of zsh\&. @@ -802,7 +899,7 @@ potential correction that matches the pattern is ignored\&. For example, if the value is `\fB_*\fP\&' then completion functions (which, by convention, have names beginning with `\fB_\fP\&') will never be offered -as spelling corrections\&. The pattern does not apply the correction +as spelling corrections\&. The pattern does not apply to the correction of file names, as applied by the \fBCORRECT_ALL\fP option (so with the example just given files beginning with `\fB_\fP\&' in the current directory would still be completed)\&. @@ -886,6 +983,15 @@ a different effect from setting the parameter to an empty string\&. .RE .TP +\fBKEYBOARD_HACK\fP +This variable defines a character to be removed from the end of the +command line before interpreting it (interactive shells only)\&. It is +intended to fix the problem with keys placed annoyingly close to return +and replaces the \fBSUNKEYBOARDHACK\fP option which did this for +backquotes only\&. Should the chosen character be one of singlequote, +doublequote or backquote, there must also be an odd number of them +on the command line for the last one to be removed\&. +.TP \fBKEYTIMEOUT\fP The time the shell waits, in hundredths of seconds, for another key to be pressed when reading bound multi\-character sequences\&. @@ -1335,6 +1441,12 @@ The directory to search for shell startup files (\&.zshrc, etc), if not \fB$HOME\fP\&. .TP +\fBZLE_LINE_ABORTED\fP +This parameter is set by the line editor when an error occurs\&. It +contains the line that was being edited at the point of the error\&. +`\fBprint \-zr \-\- $ZLE_LINE_ABORTED\fP\&' can be used to recover the line\&. +Only the most recent line of this kind is remembered\&. +.TP .PD 0 \fBZLE_REMOVE_SUFFIX_CHARS\fP .TP diff -Nru zsh-4.3.10/Doc/zshroadmap.1 zsh-4.3.11/Doc/zshroadmap.1 --- zsh-4.3.10/Doc/zshroadmap.1 2009-06-01 11:00:21.000000000 +0200 +++ zsh-4.3.11/Doc/zshroadmap.1 2010-12-20 16:00:45.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHROADMAP" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHROADMAP" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshroadmap \- informal introduction to the zsh manual .\" Yodl file: Zsh/roadmap.yo diff -Nru zsh-4.3.10/Doc/zshtcpsys.1 zsh-4.3.11/Doc/zshtcpsys.1 --- zsh-4.3.10/Doc/zshtcpsys.1 2009-06-01 11:00:21.000000000 +0200 +++ zsh-4.3.11/Doc/zshtcpsys.1 2010-12-20 16:00:45.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHTCPSYS" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHTCPSYS" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshtcpsys \- zsh tcp system .\" Yodl file: Zsh/tcpsys.yo @@ -14,7 +14,7 @@ \fBzsh/net/tcp\fP module, the \fBzsh/zselect\fP module is used to implement timeouts on read operations\&. For troubleshooting tips, consult the corresponding advice for the \fBzftp\fP functions described in -\fIzshftpsys\fP(1) +\fIzshzftpsys\fP(1) \&. .PP There are functions corresponding to the basic I/O operations open, close, diff -Nru zsh-4.3.10/Doc/zsh.texi zsh-4.3.11/Doc/zsh.texi --- zsh-4.3.10/Doc/zsh.texi 2009-06-01 11:00:26.000000000 +0200 +++ zsh-4.3.11/Doc/zsh.texi 2010-12-20 16:00:48.000000000 +0100 @@ -29,8 +29,8 @@ @end iftex @titlepage @title The Z Shell Manual -@subtitle Version 4.3.10 -@subtitle Updated June 1, 2009 +@subtitle Version 4.3.11 +@subtitle Updated December 20, 2010 @author Original documentation by Paul Falstad @page This is a texinfo version of the documentation for the Z Shell, originally by @@ -63,7 +63,7 @@ @noindent @cindex version -Version 4.3.10, last updated June 1, 2009. +Version 4.3.11, last updated December 20, 2010. @end ifinfo @menu @@ -311,7 +311,7 @@ An HTML version of this manual is available at the Zsh web site via: @noindent -@t{http://zsh.sunsite.dk/Doc/}. +@t{http://zsh.sourceforge.net/Doc/}. @noindent (The HTML version is produced with @cite{texi2html}, which may be obtained @@ -356,7 +356,7 @@ @cindex author Zsh was originally written by Paul Falstad @t{}. Zsh is now maintained by the members of the zsh-workers mailing -list @t{}. The development is currently +list @t{}. The development is currently coordinated by Peter Stephenson @t{}. The coordinator can be contacted at @t{}, but matters relating to the code should generally go to the mailing list. @@ -381,9 +381,6 @@ @t{ftp://ftp.zsh.org/pub/zsh/}@* @t{http://www.zsh.org/pub/zsh/} -@item Denmark -@t{ftp://sunsite.dk/pub/unix/shells/zsh/} - @item Finland @t{ftp://ftp.funet.fi/pub/unix/shells/zsh/} @@ -436,8 +433,10 @@ @end table @noindent -The up-to-date source code is available via anonymous CVS from Sourceforge. -See @t{http://sourceforge.net/projects/zsh/} for details. +The up-to-date source code is available via anonymous CVS and Git from +Sourceforge. See @t{http://sourceforge.net/projects/zsh/} for details. +A summary of instructions for the CVS and Git archives can be found at +@t{http://zsh.sourceforget.net/}. @noindent @node Mailing Lists, The Zsh FAQ, Availability, Introduction @@ -449,14 +448,14 @@ @noindent @table @asis -@item @t{} +@item @t{} Announcements about releases, major changes in the shell and the monthly posting of the Zsh FAQ. (moderated) -@item @t{} +@item @t{} User discussions. -@item @t{} +@item @t{} Hacking, development, bug reports and patches. @end table @@ -467,14 +466,14 @@ @noindent @table @asis -@item @t{} -@item @t{} -@item @t{} +@item @t{} +@item @t{} +@item @t{} @noindent -@item @t{} -@item @t{} -@item @t{} +@item @t{} +@item @t{} +@item @t{} @item @end table @@ -519,7 +518,7 @@ manual, with explanations and hints on issues where the manual can be cabbalistic, hierographic, or downright mystifying (for example, the word `hierographic' does not exist). It can be viewed in its current state at -@t{http://zsh.sunsite.dk/Guide/}. At the time of writing, chapters +@t{http://zsh.sourceforge.net/Guide/}. At the time of writing, chapters dealing with startup files and their contents and the new completion system were essentially complete. @@ -790,7 +789,7 @@ @noindent @cindex invocation -@section Invocation Options +@section Invocation @noindent @cindex shell options @cindex options, shell @@ -808,7 +807,8 @@ parameter. @item @t{-i} -Force shell to be interactive. +Force shell to be interactive. It is still possible to specify a +script to execute. @item @t{-s} Force shell to read commands from the standard input. @@ -819,6 +819,16 @@ @end table @noindent +If there are any remaining arguments after option processing, and neither +of the options @t{-c} or @t{-s} was supplied, the first argument is taken +as the file name of a script containing shell commands to be executed. If +the option @t{PATH_SCRIPT} is set, and the file name does not contain a +directory path (i.e. there is no `@t{/}' in the name), first the current +directory and then the command path given by the variable @t{PATH} are +searched for the script. If the option is not set or the file name +contains a `@t{/}' it is used directly. + +@noindent After the first one or two arguments have been appropriated as described above, the remaining arguments are assigned to the positional parameters. @@ -1381,6 +1391,11 @@ which must evaluate to a number @var{n}. @var{list} is then executed @var{n} times. +@noindent +The @t{repeat} syntax is disabled by default when the +shell starts in a mode emulating another shell. It can be enabled +with the command `@t{enable -r repeat}' + @findex case @cindex case selection @cindex selection, case @@ -1538,10 +1553,10 @@ @noindent @cindex alternate forms for complex commands @cindex commands, alternate forms for complex -Many of zsh's complex commands have alternate forms. These particular -versions of complex commands should be considered deprecated and may be -removed in the future. The versions in the previous section should be -preferred instead. +Many of zsh's complex commands have alternate forms. These are +non-standard and are likely not to be obvious even to seasoned shell +programmers; they should not be used anywhere that portability of shell +code is a concern. @noindent The short versions below only work if @var{sublist} is of the form `@t{@{} @@ -1664,12 +1679,16 @@ may be defined using the @t{-g} option to that builtin. @noindent -Alias expansion is done on the shell input before any -other expansion except history expansion. Therefore, -if an alias is defined for the word @t{foo}, alias expansion -may be avoided by quoting part of the word, e.g. @t{\foo}. -But there is nothing to prevent an alias being defined -for @t{\foo} as well. +Alias expansion is done on the shell input before any other expansion +except history expansion. Therefore, if an alias is defined for the +word @t{foo}, alias expansion may be avoided by quoting part of the +word, e.g. @t{\foo}. Any form of quoting works, although there is +nothing to prevent an alias being defined for the quoted form such as +@t{\foo} as well. For use with completion, which would remove an +initial backslash followed by a character that isn't special, it may be +more convenient to quote the word by starting with a single quote, +i.e. @t{'foo}; completion will automatically add the trailing single +quote. @noindent There is a commonly encountered problem with aliases @@ -1688,6 +1707,37 @@ a problem in shell scripts, functions, and code executed with `@t{source}' or `@t{.}'. Consequently, use of functions rather than aliases is recommended in non-interactive code. + +@noindent +Note also the unhelpful interaction of aliases and function definitions: + +@noindent +@example +alias func='noglob func' +func() @{ + echo Do something with $* +@} +@end example + +@noindent +Because aliases are expanded in function defintions, this causes the +following command to be executed: + +@noindent +@example +noglob func() @{ + echo Do something with $* +@} +@end example + +@noindent +which defines @t{noglob} as well as @t{func} as functions with the +body given. To avoid this, either quote the name @t{func} or use the +alternative function definition form `@t{function func}'. Ensuring the +alias is defined after the function works but is problematic if the +code fragment might be re-executed. + +@noindent @node Quoting, , Aliasing, Shell Grammar @section Quoting @@ -3169,13 +3219,31 @@ extended regular expression using the @t{zsh/regex} module. Upon successful match, some variables will be updated; no variables are changed if the matching fails. + +@noindent +If the option @t{BASH_REMATCH} is not set the scalar parameter +@t{MATCH} is set to the substring that matched the pattern and +the integer parameters @t{MBEGIN} and @t{MEND} to the index of the start +and end, respectively, of the match in @var{string}, such that if +@var{string} is contained in variable @t{var} the expression +`$@{var[$MBEGIN,$MEND]@}' is identical to `$MATCH'. The setting +of the option @t{KSH_ARRAYS} is respected. Likewise, the array +@t{match} is set to the substrings that matched parenthesised +subexpressions and the arrays @t{mbegin} and @t{mend} to the indices of +the start and end positions, respectively, of the substrings within +@var{string}. The arrays are not set if there were no parenthesised +subexpresssions. For example, if the string `@t{a short string}' is matched +against the regular expression `@t{s(...)t}', then (assuming the +option @t{KSH_ARRAYS} is not set) @t{MATCH}, @t{MBEGIN} +and @t{MEND} are `@t{short}', 3 and 7, respectively, while @t{match}, +@t{mbegin} and @t{mend} are single entry arrays containing +the strings `@t{hor}', `@t{4}' and `@t{6}, respectively. + +@noindent If the option @t{BASH_REMATCH} is set the array @t{BASH_REMATCH} is set to the substring that matched the pattern followed by the substrings that matched parenthesised -subexpressions within the pattern; otherwise, the scalar parameter -@t{MATCH} is set to the substring that matched the pattern and -and the array @t{match} to the substrings that matched parenthesised -subexpressions. +subexpressions within the pattern. @item @var{string1} @t{<} @var{string2} true if @var{string1} comes before @var{string2} @@ -3220,9 +3288,10 @@ @noindent Normal shell expansion is performed on the @var{file}, @var{string} and @var{pattern} arguments, but the result of each expansion is constrained to -be a single word, similar to the effect of double quotes. However, pattern -metacharacters are active for the @var{pattern} arguments; the patterns -are the same as those used for filename generation, see +be a single word, similar to the effect of double quotes. +File generation is not performed on any form of argument to conditions. +However, pattern metacharacters are active for the @var{pattern} arguments; +the patterns are the same as those used for filename generation, see @ref{Filename Generation}, but there is no special behaviour of `@t{/}' nor initial dots, and no glob qualifiers are allowed. @@ -3363,16 +3432,17 @@ the latter case it will also work non-interactively. @item @t{%d} -@itemx @t{%/} -Present working directory (@t{$PWD}). If an integer follows the `@t{%}', -it specifies a number of trailing components of @t{$PWD} to show; zero -means the whole path. A negative integer specifies leading components, -i.e. @t{%-1d} specifies the first component. +@itemx @t{/} +Current working directory. If an integer follows the `@t{%}', +it specifies a number of trailing components of the current working +directory to show; zero means the whole path. A negative integer +specifies leading components, i.e. @t{%-1d} specifies the first component. @item @t{%~} -As @t{%d} and @t{%/}, but if @t{$PWD} has a named directory as its prefix, -that part is replaced by a `@t{~}' followed by the name of the directory. -If it starts with @t{$HOME}, that part is replaced by a `@t{~}'. +As @t{%d} and @t{%/}, but if the current working directory has a named +directory as its prefix, that part is replaced by a `@t{~}' followed by +the name of the directory. If it starts with @t{$HOME}, that part is +replaced by a `@t{~}'. @item @t{%h} @itemx @t{%!} @@ -3409,7 +3479,7 @@ @item @t{%c} @itemx @t{%.} @itemx @t{%C} -Trailing component of @t{$PWD}. +Trailing component of the current working directory. An integer may follow the `@t{%}' to get more than one component. Unless `@t{%C}' is used, tilde contraction is performed first. These are deprecated as @t{%c} and @t{%C} are equivalent to @t{%1~} and @t{%1/}, @@ -3781,7 +3851,7 @@ More precisely, the sequence `@t{^}@var{foo}@t{^}@var{bar}@t{^}' is synonymous with `@t{!!:s}@t{^}@var{foo}@t{^}@var{bar}@t{^}', hence other modifiers (see @ref{Modifiers}) may follow the final `@t{^}'. -In particular, `@t{^}@var{foo}@t{^}@var{bar}@t{:G}' performs a global +In particular, `@t{^}@var{foo}@t{^}@var{bar}@t{^:G}' performs a global substitution. @noindent @@ -3958,6 +4028,9 @@ for @var{l}. Note that the @t{g} or @t{:G} must appear in exactly the position shown. +@noindent +See further notes on this form of substitution below. + @item @t{&} Repeat the previous @t{s} substitution. Like @t{s}, may be preceded immediately by a @t{g}. In parameter expansion the @t{&} must appear @@ -3978,18 +4051,22 @@ @end table @noindent -The @t{s/l/r/} substitution works as follows. By default the left-hand -side of substitutions are not patterns, but character strings. Any -character can be used as the delimiter in place of `@t{/}'. A -backslash quotes the delimiter character. The character `@t{&}', in -the right-hand-side @var{r}, is replaced by the text from the +The @t{s/}@var{l}@t{/}@var{r}@t{/} substitution works as follows. By +default the left-hand side of substitutions are not patterns, but +character strings. Any character can be used as the delimiter in place +of `@t{/}'. A backslash quotes the delimiter character. The character +`@t{&}', in the right-hand-side @var{r}, is replaced by the text from the left-hand-side @var{l}. The `@t{&}' can be quoted with a backslash. A -null @var{l} uses the previous string either from the previous @var{l} -or from the contextual scan string @var{s} from `@t{!?}@var{s}'. You can +null @var{l} uses the previous string either from the previous @var{l} or +from the contextual scan string @var{s} from `@t{!?}@var{s}'. You can omit the rightmost delimiter if a newline immediately follows @var{r}; -the rightmost `@t{?}' in a context scan can similarly be omitted. -Note the same record of the last @var{l} and @var{r} is maintained -across all forms of expansion. +the rightmost `@t{?}' in a context scan can similarly be omitted. Note +the same record of the last @var{l} and @var{r} is maintained across all +forms of expansion. + +@noindent +Note that if a `@t{&}' is used within glob qualifers an extra backslash +is needed as a @t{&} is a special character in this case. @noindent If the option @t{HIST_SUBST_PATTERN} is set, @var{l} is treated as @@ -4081,7 +4158,8 @@ @noindent In the case of the @t{<} or @t{>} forms, the shell runs the commands in -@var{list} asynchronously. If the system supports the @t{/dev/fd} +@var{list} as a subprocess of the job executing the shell command line. +If the system supports the @t{/dev/fd} mechanism, the command argument is the name of the device file corresponding to a file descriptor; otherwise, if the system supports named pipes (FIFOs), the command argument will be a named pipe. If the form with @@ -4162,7 +4240,7 @@ @noindent (note that no @t{MULTIOS} are involved), @var{process} will be run -asynchronously. The workaround is: +asynchronously as far as the parent shell is concerned. The workaround is: @noindent @example @@ -4299,6 +4377,82 @@ the matching array elements are removed (use the `@t{(M)}' flag to remove the non-matched elements). +@item @t{$@{}@var{name}@t{:}@var{offset}@t{@}} +@itemx @t{$@{}@var{name}@t{:}@var{offset}@t{:}@var{length}@t{@}} +This syntax gives effects similar to parameter subscripting +in the form @t{$}@var{name}@t{@{}@var{start}@t{,}@var{end}@t{@}}, but is +compatible with other shells; note that both @var{offset} and @var{length} +are interpreted differently from the components of a subscript. + +@noindent +If @var{offset} is non-negative, then if the variable @var{name} is a +scalar substitute the contents starting @var{offset} characters from the +first character of the string, and if @var{name} is an array substitute +elements starting @var{offset} elements from the first element. If +@var{length} is given, substitute that many characters or elements, +otherwise the entire rest of the scalar or array. + +@noindent +A positive @var{offset} is always treated as the offset of a character or +element in @var{name} from the first character or element of the array +(this is different from native zsh subscript notation). Hence 0 +refers to the first character or element regardless of the setting of +the option @t{KSH_ARRAYS}. + +@noindent +A negative offset counts backwards from the end of the scalar or array, +so that -1 corresponds to the last character or element, and so on. + +@noindent +@var{length} is always treated directly as a length and hence may not be +negative. The option @t{MULTIBYTE} is obeyed, i.e. the offset and length +count multibyte characters where appropriate. + +@noindent +@var{offset} and @var{length} undergo the same set of shell substitutions +as for scalar assignment; in addition, they are then subject to arithmetic +evaluation. Hence, for example + +@noindent +@example +print $@{foo:3@} +print $@{foo: 1 + 2@} +print $@{foo:$(( 1 + 2))@} +print $@{foo:$(echo 1 + 2)@} +@end example + +@noindent +all have the same effect, extracting the string starting at the fourth +character of @t{$foo} if the substution would otherwise return a scalar, +or the array starting at the fourth element if @t{$foo} would return an +array. Note that with the option @t{KSH_ARRAYS} @t{$foo} always returns +a scalar (regardless of the use of the offset syntax) and a form +such as @t{$foo[*]:3} is required to extract elements of an array named +@t{foo}. + +@noindent +If @var{offset} is negative, the @t{-} may not appear immediately +after the @t{:} as this indicates the +@t{$@{}@var{name}@t{:-}@var{word}@t{@}} form of substitution. Instead, a space +may be inserted before the @t{-}. Furthermore, neither @var{offset} nor +@var{length} may begin with an alphabetic character or @t{&} as these are +used to indicate history-style modifiers. To substitute a value from a +variable, the recommended approach is to proceed it with a @t{$} as this +signifies the intention (parameter substitution can easily be rendered +unreadable); however, as arithmetic substitution is performed, the +expression @t{$@{var: offs@}} does work, retrieving the offset from +@t{$offs}. + +@noindent +For further compatibility with other shells there is a special case +for array offset 0. This usually accesses to the +first element of the array. However, if the substitution refers the +positional parameter array, e.g. @t{$@@} or @t{$*}, then offset 0 +instead refers to @t{$0}, offset 1 refers to @t{$1}, and so on. In +other words, the positional parameter array is effectively extended by +prepending @t{$0}. Hence @t{$@{*:0:1@}} substitutes @t{$0} and +@t{$@{*:1:1@}} substitutes @t{$1}. + @item @t{$@{}@var{name}@t{/}@var{pattern}@t{/}@var{repl}@t{@}} @itemx @t{$@{}@var{name}@t{//}@var{pattern}@t{/}@var{repl}@t{@}} Replace the longest possible match of @var{pattern} in the expansion of @@ -4501,13 +4655,21 @@ of alphanumeric characters separated by non-alphanumerics, @emph{not} to words that result from field splitting. +@item @t{D} +Assume the string or array elements contain directories and attempt +to substitute the leading part of these by names. The remainder of +the path (the whole of it if the leading part was not subsituted) +is then quoted so that the whole string can be used as a shell +argument. This is the reverse of `@t{~}' substitution: see +@ref{Filename Expansion}. + @item @t{e} Perform @emph{parameter expansion}, @emph{command substitution} and @emph{arithmetic expansion} on the result. Such expansions can be nested but too deep recursion may have unpredictable effects. @item @t{f} -Split the result of the expansion to lines. This is a shorthand +Split the result of the expansion at newlines. This is a shorthand for `@t{ps:\n:}'. @item @t{F} @@ -4561,14 +4723,24 @@ @t{$@{(P)$@{foo@}@}}, and @t{$@{(P)$(echo bar)@}} will be expanded to `@t{baz}'. @item @t{q} -Quote the resulting words with backslashes; unprintable or invalid -characters are quoted using the @t{$'\}@var{NNN}@t{'} form, with separate -quotes for each octet. If this flag is given -twice, the resulting words are quoted in single quotes and if it is -given three times, the words are quoted in double quotes; in these forms -no special handling of unprintable or invalid characters is attempted. If -the flag is given four times, the words are quoted in single quotes -preceded by a @t{$}. +Quote characters that are special to the shell in the resulting words with +backslashes; unprintable or invalid characters are quoted using the +@t{$'\}@var{NNN}@t{'} form, with separate quotes for each octet. + +@noindent +If this flag is given twice, the resulting words are quoted in single +quotes and if it is given three times, the words are quoted in double +quotes; in these forms no special handling of unprintable or invalid +characters is attempted. If the flag is given four times, the words are +quoted in single quotes preceded by a @t{$}. Note that in all three of +these forms quoting is done unconditionally, even if this does not change +the way the resulting string would be interpreted by the shell. + +@noindent +If a @t{q-} is given (only a single @t{q} may appear), a minimal +form of single quoting is used that only quotes the string if needed to +protect special characters. Typically this form gives the most readable +output. @item @t{Q} Remove one level of quotes from the resulting words. @@ -4655,6 +4827,8 @@ @item @t{z} Split the result of the expansion into words using shell parsing to find the words, i.e. taking into account any quoting in the value. +Comments are not treated specially but as ordinary strings, similar +to interactive shells with the @t{INTERACTIVE_COMMENTS} option unset. @noindent Note that this is done very late, as for the `@t{(s)}' flag. So to @@ -4722,7 +4896,7 @@ one unit of width. @noindent -IF the @t{MULTIBYTE} option is not in effect, each byte in the string is +If the @t{MULTIBYTE} option is not in effect, each byte in the string is treated as occupying one unit of width. @noindent @@ -4733,10 +4907,19 @@ Only useful together with one of the flags @t{l} or @t{r} or with the @t{#} length operator when the @t{MULTIBYTE} option is in effect. Use the character width reported by the system in -calculating the how much of the string it occupies or the overall +calculating how much of the string it occupies or the overall length of the string. Most printable characters have a width of one unit, however certain Asian character sets and certain special effects use wider characters; combining characters have zero width. +Non-printable characters are arbitrarily counted as zero width; how they +would actually be displayed will vary. + +@noindent +If the @t{m} is repeated, the character either counts zero (if it has +zero width), else one. For printable character strings this has the +effect of counting the number of glyphs (visibly separate characters), +except for the case where combining characters themselves have non-zero +width (true in certain alphabets). @item @t{r:}@var{expr}@t{::}@var{string1}@t{::}@var{string2}@t{:} As @t{l}, but pad the words on the right and insert @var{string2} @@ -4771,6 +4954,25 @@ empty field. To override this behaviour, supply the "(@@)" flag as well, i.e. @t{"$@{(@@s.:.)line@}"}. +@item @t{Z:}@var{opts}@t{:} +As @t{z} but takes a combination of option letters between a following +pair of delimiter characters. @t{(Z+c+)} +causes comments to be parsed as a string and retained; any field in the +resulting array beginning with an unquoted comment character is a +comment. @t{(Z+C+)} causes comments to be parsed +and removed. The rule for comments is standard: anything between a word +starting with the third character of @t{$HISTCHARS}, default @t{#}, up to +the next newline is a comment. @t{(Z+n+)} causes +unquoted newlines to be treated as ordinary whitespace, else they are +treated as if they are shell code delimiters and converted to +semicolons. + +@item @t{_:}@var{flags}@t{:} +The underscore (@t{_}) flag is reserved for future use. As of this +revision of zsh, there are no valid @var{flags}; anything following an +underscore, other than an empty pair of delimiters, is treated as an +error, and the flag itself has no effect. + @end table @noindent @@ -4903,7 +5105,7 @@ @item @t{6.} @emph{Nested Subscripting} Any remaining subscripts (i.e. of a nested substitution) are evaluated at this point, based on whether the value is an array or a scalar. As with -@t{2.}, multiple subscripts can appear. Note that @t{$@{foo[2,4][2]@}} is +@t{3.}, multiple subscripts can appear. Note that @t{$@{foo[2,4][2]@}} is thus equivalent to @t{$@{$@{foo[2,4]@}[2]@}} and also to @t{"$@{$@{(@@)foo[2,4]@}[2]@}"} (the nested substitution returns an array in both cases), but not to @t{"$@{$@{foo[2,4]@}[2]@}"} (the nested substitution @@ -4915,44 +5117,70 @@ @ref{Modifiers} in @ref{History Expansion}), are applied to the words of the value at this level. -@item @t{8.} @emph{Forced Joining} +@item @t{8.} @emph{Character evaluation} +Any @t{(#)} flag is applied, evaluating the result so far numerically +as a character. + +@item @t{9.} @emph{Length} +Any initial @t{#} modifier, i.e. in the form @t{$@{#}@var{var}@t{@}}, is +used to evaluate the length of the expression so far. + +@item @t{10.} @emph{Forced Joining} If the `@t{(j)}' flag is present, or no `@t{(j)}' flag is present but -the string is to be split as given by rules @t{8.} or @t{9.}, and joining -did not take place at step @t{4.}, any words in the value are joined +the string is to be split as given by rules @t{16.} or @t{17.}, and joining +did not take place at step @t{5.}, any words in the value are joined together using the given string or the first character of @t{$IFS} if none. Note that the `@t{(F)}' flag implicitly supplies a string for joining in this manner. -@item @t{9.} @emph{Forced Splitting} +@item @t{11.} @emph{Case modification} +Any case modification from one of the flags @t{(L)}, @t{(U)} or @t{(C)} +is applied. + +@item @t{12.} @emph{Prompt evaluation} +Any prompt-style formatting from the @t{(%)} family of flags is applied. + +@item @t{13.} @emph{Quote application} +Any quoting or unquoting using @t{(q)} and @t{(Q)} and related flags +is applied. + +@item @t{14.} @emph{Directory naming} +Any directory name substitution using @t{(D)} flag is applied. + +@item @t{15.} @emph{Visibility enhancment} +Any modifications to make characters visible using the @t{(V)} flag +are applied. + +@item @t{16.} @emph{Forced Splitting} If one of the `@t{(s)}', `@t{(f)}' or `@t{(z)}' flags are present, or the `@t{=}' specifier was present (e.g. @t{$@{=}@var{var}@t{@}}), the word is split on occurrences of the specified string, or (for @t{=} with neither of the two flags present) any of the characters in @t{$IFS}. -@item @t{10.} @emph{Shell Word Splitting} +@item @t{17.} @emph{Shell Word Splitting} If no `@t{(s)}', `@t{(f)}' or `@t{=}' was given, but the word is not quoted and the option @t{SH_WORD_SPLIT} is set, the word is split on occurrences of any of the characters in @t{$IFS}. Note this step, too, takes place at all levels of a nested substitution. -@item @t{11.} @emph{Uniqueness} +@item @t{18.} @emph{Uniqueness} If the result is an array and the `@t{(u)}' flag was present, duplicate elements are removed from the array. -@item @t{12.} @emph{Ordering} +@item @t{19.} @emph{Ordering} If the result is still an array and one of the `@t{(o)}' or `@t{(O)}' flags was present, the array is reordered. -@item @t{13.} @emph{Re-Evaluation} +@item @t{20.} @emph{Re-Evaluation} Any `@t{(e)}' flag is applied to the value, forcing it to be re-examined for new parameter substitutions, but also for command and arithmetic substitutions. -@item @t{14.} @emph{Padding} +@item @t{21.} @emph{Padding} Any padding of the value by the `@t{(l.}@var{fill}@t{.)}' or `@t{(r.}@var{fill}@t{.)}' flags is applied. -@item @t{15.} @emph{Semantic Joining} +@item @t{22.} @emph{Semantic Joining} In contexts where expansion semantics requires a single word to result, all words are rejoined with the first character of @t{IFS} between. So in `@t{$@{(P}@t{)$@{(f}@t{)lines@}@}}' @@ -4962,6 +5190,16 @@ @noindent If a single word is not required, this rule is skipped. +@item @t{23.} @emph{Empty argument removal} +If the substitution does not appear in double quotes, any resulting +zero-length argument, whether from a scalar or an element of an array, +is elided from the list of arguments inserted into the command line. + +@noindent +Strictly speaking, the removal happens later as the same happens with +other forms of substitution; the point to note here is simply that +it occurs after any of the above parameter operations. + @end table @noindent @@ -5068,10 +5306,22 @@ is expanded to every number between @var{n1} and @var{n2} inclusive. If either number begins with a zero, all the resulting numbers will be padded with leading zeroes to -that minimum width. If the numbers are in decreasing order the +that minimum width, but for negative numbers the @t{-} character is also +included in the width. If the numbers are in decreasing order the resulting sequence will also be in decreasing order. @noindent +An expression of the form `@t{@{}@var{n1}@t{..}@var{n2}@t{..}@var{n3}@t{@}}', +where @var{n1}, @var{n2}, and @var{n3} are integers, +is expanded as above, but only every @var{n3}th number starting from @var{n1} +is output. If @var{n3} is negative the numbers are output in reverse order, +this is slightly different from simply swapping @var{n1} and @var{n2} in the case +that the step @var{n3} doesn't evenly divide the range. Zero padding can be +specified in any of the three numbers, specifying it in the third can be useful +to pad for example `@t{@{-99..100..01@}}' which is not possible to specify by putting a +0 on either of the first two numbers (i.e. pad to two characters). + +@noindent If a brace expression matches none of the above forms, it is left unchanged, unless the option @t{BRACE_CCL} (an abbreviation for `brace character class') is set. @@ -5116,8 +5366,8 @@ @noindent A `@t{~}' by itself is replaced by the value of @t{$HOME}. -A `@t{~}' followed by a `@t{+}' or a `@t{-}' is replaced by the value of -@t{$PWD} or @t{$OLDPWD}, respectively. +A `@t{~}' followed by a `@t{+}' or a `@t{-}' is replaced by current +or previous working directory, respectively. @noindent A `@t{~}' followed by a number is replaced by the directory at that @@ -5186,6 +5436,12 @@ static name. @noindent +The completion system calls `@t{zsh_directory_name c}' in order to +complete dynamic names for directories. The code for this should be +as for any other completion function as described in +@ref{Completion System}. + +@noindent As a working example, here is a function that expands any dynamic names beginning with the string @t{p:} to directories below @t{/home/pws/perforce}. In this simple case a static name for the @@ -5198,16 +5454,28 @@ setopt extendedglob local -a match mbegin mend if [[ $1 = d ]]; then + # turn the directory into a name if [[ $2 = (#b)(/home/pws/perforce/)([^/]##)* ]]; then typeset -ga reply reply=(p:$match[2] $(( $@{#match[1]@} + $@{#match[2]@} )) ) else return 1 fi - else + elif [[ $1 = n ]]; then + # turn the name into a directory [[ $2 != (#b)p:(?*) ]] && return 1 typeset -ga reply reply=(/home/pws/perforce/$match[1]) + elif [[ $1 = c ]]; then + # complete names + local expl + local -a dirs + dirs=(/home/pws/perforce/*(/:t)) + dirs=(p:$@{^dirs@}) + _wanted dynamic-dirs expl 'dynamic directory' compadd -S\] -a dirs + return + else + return 1 fi return 0 @} @@ -5898,7 +6166,7 @@ `full' (i.e. non-empty) directories. Note that the opposite sense @t{(^F}@t{)} expands to empty directories and all non-directories. Use @t{(/^F}@t{)} for -empty directories +empty directories. @item @t{.} plain files @@ -6009,12 +6277,18 @@ @itemx @t{+}@var{cmd} The @var{string} will be executed as shell code. The filename will be included in the list if and only if the code returns a zero status (usually -the status of the last command). The first character after the `@t{e}' +the status of the last command). + +@noindent +In the first form, the first character after the `@t{e}' will be used as a separator and anything up to the next matching separator will be taken as the @var{string}; `@t{[}', `@t{@{}', and `@t{<}' match `@t{]}', `@t{@}}', and `@t{>}', respectively, while any other character matches itself. Note that expansions must be quoted in the @var{string} to prevent them from being expanded before globbing is done. +@var{string} is then executed as shell code. The string @t{globqual} +is appended to the array @t{zsh_eval_context} the duration of +execution. @noindent @vindex REPLY, use of @@ -6104,10 +6378,18 @@ @item @t{L}[@t{+}|@t{-}]@var{n} files less than @var{n} bytes (@t{-}), more than @var{n} bytes (@t{+}), or -exactly @var{n} bytes in length. If this flag is directly followed by a `@t{k}' -(`@t{K}'), `@t{m}' (`@t{M}'), or `@t{p}' (`@t{P}') (e.g. `@t{Lk-50}') -the check is performed with kilobytes, megabytes, or blocks (of 512 bytes) -instead. +exactly @var{n} bytes in length. + +@noindent +If this flag is directly followed by a `@t{k}' (`@t{K}'), `@t{m}' +(`@t{M}'), or `@t{p}' (`@t{P}') (e.g. `@t{Lk-50}') the check is performed +with kilobytes, megabytes, or blocks (of 512 bytes) instead. In this +case a file is regarded as "exactly" the size if the file size rounded up +to the next unit is equal to the test size. Hence `@t{*(Lm1)}' +matches files from 1 byte up to 1 Megabyte inclusive. Note also that +the set of files "less than" the test size only includes files that would +not match the equality test; hence `@t{*(Lm-1)}' only matches +files of zero size. @item @t{^} negates all qualifiers following it @@ -6157,12 +6439,13 @@ @t{oe} and @t{o+} are special cases; they are each followed by shell code, delimited as for the @t{e} glob qualifier and the @t{+} glob qualifier respectively (see above). The code is executed for each matched file with -the parameter @t{REPLY} set to the name of the file on entry. The code -should modify the parameter @t{REPLY} in some fashion. On return, the value -of the parameter is used instead of the file name as the string on which to -sort. Unlike other sort operators, @t{oe} and @t{o+} may be repeated, but -note that the maximum number of sort operators of any kind that may appear -in any glob expression is 12. +the parameter @t{REPLY} set to the name of the file on entry and +@t{globsort} appended to @t{zsh_eval_context}. The code +should modify the parameter @t{REPLY} in some fashion. On return, the +value of the parameter is used instead of the file name as the string on +which to sort. Unlike other sort operators, @t{oe} and @t{o+} may be +repeated, but note that the maximum number of sort operators of any kind +that may appear in any glob expression is 12. @item @t{O}@var{c} like `@t{o}', but sorts in descending order; i.e. `@t{*(^oc)}' is the @@ -6178,6 +6461,19 @@ them count from the last match backward. E.g.: `@t{*(-OL[1,3])}' gives a list of the names of the three largest files. +@item @t{P}@var{string} +The @var{string} will be prepended to each glob match as a separate +word. @var{string} is delimited in the same way as arguments to the +@t{e} glob qualifier described above. The qualifier can be repeated; +the words are prepended separately so that the resulting command +line contains the words in the same order they were given in the +list of glob qualifiers. + +@noindent +A typical use for this is to prepend an option before all occurrences +of a file name; for example, the pattern `@t{*(P:-f:)}' produces the +command line arguments `@t{-f} @var{file1} @t{-f} @var{file2} ...' + @end table @noindent @@ -7095,6 +7391,105 @@ @item @t{VENDOR} The vendor, as determined at compile time. +@vindex zsh_eval_context +@vindex ZSH_EVAL_CONTEXT +@item @t{zsh_eval_context} (@t{ZSH_EVAL_CONTEXT} ) +An array (colon-separated list) indicating the context of shell +code that is being run. Each time a piece of shell code that +is stored within the shell is executed a string is temporarily appended to +the array to indicate the type of operation that is being performed. +Read in order the array gives an indication of the stack of +operations being performed with the most immediate context last. + +@noindent +Note that the variable does not give information on syntactic context such +as pipelines or subshells. Use @t{$ZSH_SUBSHELL} to detect subshells. + +@noindent +The context is one of the following: +@table @asis +@item @t{cmdarg} +Code specified by the @t{-c} option to the command line that invoked +the shell. + +@item @t{cmdsubst} +Command substitution using the @t{`}@var{...}@t{`} or +@t{$(}@var{...}@t{)} construct. + +@item @t{equalsubst} +File substitution using the @t{=(}@var{...}@t{)} construct. + +@item @t{eval} +Code executed by the @t{eval} builtin. + +@item @t{evalautofunc} +Code executed with the @t{KSH_AUTOLOAD} mechanism in order to define +an autoloaded function. + +@item @t{fc} +Code from the shell history executed by the @t{-e} option to the @t{fc} +builtin. + +@item @t{file} +Lines of code being read directly from a file, for example by +the @t{source} builtin. + +@item @t{filecode} +Lines of code being read from a @t{.zwc} file instead of directly +from the source file. + +@item @t{globqual} +Code executed by the @t{e} or @t{+} glob qualifier. + +@item @t{globsort} +Code executed to order files by the @t{o} glob qualifier. + +@item @t{insubst} +File substitution using the @t{<(}@var{...}@t{)} construct. + +@item @t{loadautofunc} +Code read directly from a file to define an autoloaded function. + +@item @t{outsubst} +File substitution using the @t{>(}@var{...}@t{)} construct. + +@item @t{sched} +Code executed by the @t{sched} builtin. + +@item @t{shfunc} +A shell function. + +@item @t{stty} +Code passed to @t{stty} by the @t{STTY} environment variable. +Normally this is passed directly to the system's @t{stty} command, +so this value is unlikely to be seen in practice. + +@item @t{style} +Code executed as part of a style retrieved by the @t{zstyle} builtin +from the @t{zsh/zutil} module. + +@item @t{toplevel} +The highest execution level of a script or interactive shell. + +@item @t{trap} +Code executed as a trap defined by the @t{trap} builtin. Traps +defined as functions have the context @t{shfunc}. As traps are +asynchronous they may have a different hierarchy from other +code. + +@item @t{zpty} +Code executed by the @t{zpty} builtin from the @t{zsh/zpty} module. + +@item @t{zregexparse-guard} +Code executed as a guard by the @t{zregexparse} command from the +@t{zsh/zutil} module. + +@item @t{zregexparse-action} +Code executed as an action by the @t{zregexparse} command from the +@t{zsh/zutil} module. + +@end table + @vindex ZSH_NAME @item @t{ZSH_NAME} Expands to the basename of the command used to invoke this instance @@ -7180,7 +7575,7 @@ potential correction that matches the pattern is ignored. For example, if the value is `@t{_*}' then completion functions (which, by convention, have names beginning with `@t{_}') will never be offered -as spelling corrections. The pattern does not apply the correction +as spelling corrections. The pattern does not apply to the correction of file names, as applied by the @t{CORRECT_ALL} option (so with the example just given files beginning with `@t{_}' in the current directory would still be completed). @@ -7276,6 +7671,16 @@ If the parameter is unset, the default is used. Note this has a different effect from setting the parameter to an empty string. +@vindex KEYBOARD_HACK +@item @t{KEYBOARD_HACK} +This variable defines a character to be removed from the end of the +command line before interpreting it (interactive shells only). It is +intended to fix the problem with keys placed annoyingly close to return +and replaces the @t{SUNKEYBOARDHACK} option which did this for +backquotes only. Should the chosen character be one of singlequote, +doublequote or backquote, there must also be an odd number of them +on the command line for the last one to be removed. + @vindex KEYTIMEOUT @item @t{KEYTIMEOUT} The time the shell waits, in hundredths of seconds, for another key to @@ -7744,6 +8149,13 @@ The directory to search for shell startup files (.zshrc, etc), if not @t{$HOME}. +@vindex ZLE_LINE_ABORTED +@item @t{ZLE_LINE_ABORTED} +This parameter is set by the line editor when an error occurs. It +contains the line that was being edited at the point of the error. +`@t{print -zr -- $ZLE_LINE_ABORTED}' can be used to recover the line. +Only the most recent line of this kind is remembered. + @vindex ZLE_REMOVE_SUFFIX_CHARS @vindex ZLE_SPACE_SUFFIX_CHARS @item @t{ZLE_REMOVE_SUFFIX_CHARS} @@ -7910,9 +8322,9 @@ When changing to a directory containing a path segment `@t{..}' which would otherwise be treated as canceling the previous segment in the path (in other words, `@t{foo/..}' would be removed from the path, or if `@t{..}' is -the first part of the path, the last part of @t{$PWD} would be deleted), -instead resolve the path to the physical directory. This option is -overridden by @t{CHASE_LINKS}. +the first part of the path, the last part of the current working directory +would be removed), instead resolve the path to the physical directory. +This option is overridden by @t{CHASE_LINKS}. @noindent For example, suppose @t{/foo/bar} is a link to the directory @t{/alt/rod}. @@ -7933,6 +8345,30 @@ will be treated as referring to the physical parent, even if the preceding path segment is a symbolic link. +@pindex POSIX_CD +@pindex POSIXCD +@pindex NO_POSIX_CD +@pindex NOPOSIXCD +@cindex CDPATH, order of checking +@item @t{POSIX_CD} +Modifies the behaviour of @t{cd}, @t{chdir} and @t{pushd} commands +to make them more compatible with the POSIX standard. The behaviour with +the option unset is described in the documentation for the @t{cd} +builtin in +@ref{Shell Builtin Commands}. +If the option is set, the shell does not test for directories beneath +the local directory (`@t{.}') until after all directories in @t{cdpath} +have been tested. + +@noindent +Also, if the option is set, the conditions under which the shell +prints the new directory after changing to it are modified. It is +no longer restricted to interactive shells (although printing of +the directory stack with @t{pushd} is still limited to interactive +shells); and any use of a component of @t{CDPATH}, including a `@t{.}' but +excluding an empty component that is otherwise treated as `@t{.}', causes +the directory to be printed. + @pindex PUSHD_IGNORE_DUPS @pindex NO_PUSHD_IGNORE_DUPS @pindex PUSHDIGNOREDUPS @@ -8554,7 +8990,7 @@ this prefixed data is: @noindent -`@t{:}@var{}@t{:}@var{}@t{:}@var{}'. +`@t{:} @var{}@t{:}@var{}@t{;}@var{}'. @pindex HIST_ALLOW_CLOBBER @pindex NO_HIST_ALLOW_CLOBBER @@ -8637,12 +9073,28 @@ @item @t{HIST_IGNORE_SPACE} (@t{-g}) Remove command lines from the history list when the first character on the line is a space, or when one of the expanded aliases contains a -leading space. +leading space. Only normal aliases (not global or suffix aliases) +have this behaviour. Note that the command lingers in the internal history until the next command is entered before it vanishes, allowing you to briefly reuse or edit the line. If you want to make it vanish right away without entering another command, type a space and press return. +@pindex HIST_LEX_WORDS +@pindex NO_HIST_LEX_WORDS +@pindex HISTLEXWORDS +@pindex NOHISTLEXWORDS +@item @t{HIST_LEX_WORDS} +By default, shell history that is read in from files is split into +words on all white space. This means that arguments with quoted +whitespace are not correctly handled, with the consequence that +references to words in history lines that have been read from a file +may be inaccurate. When this option is set, words read in from a +history file are divided up in a similar fashion to normal shell +command line handling. Although this produces more accurately delimited +words, if the size of the history file is large this can be slow. Trial +and error is necessary to decide. + @pindex HIST_NO_FUNCTIONS @pindex NO_HIST_NO_FUNCTIONS @pindex HISTNOFUNCTIONS @@ -8960,6 +9412,19 @@ indicated by this option, and regardless of whether `@t{.}' or the current directory appear in the command search path. +@pindex PATH_SCRIPT +@pindex NO_PATH_SCRIPT +@pindex PATHSCRIPT +@pindex NOPATHSCRIPT +@cindex path search, for script argument to shell +@item @t{PATH_SCRIPT} +If this option is not set, a script passed as the first non-option argument +to the shell must contain the name of the file to open. If this +option is set, and the script does not specify a directory path, +the script is looked for first in the current directory, then in the +command path. See +@ref{Invocation}. + @pindex PRINT_EIGHT_BIT @pindex NO_PRINT_EIGHT_BIT @pindex PRINTEIGHTBIT @@ -9031,6 +9496,8 @@ of backquotes on the line, ignore the trailing backquote. This is useful on some keyboards where the return key is too small, and the backquote key lies annoyingly close to it. +As an alternative the variable @t{KEYBOARD_HACK} lets you choose the +character to be removed. @end table @@ -9123,6 +9590,42 @@ Report the status of background jobs immediately, rather than waiting until just before printing a prompt. +@pindex POSIX_JOBS +@pindex POSIXJOBS +@pindex NO_POSIX_JOBS +@pindex NOPOSIXJOBS +@cindex bg, output in POSIX format +@cindex fg, output in POSIX format +@cindex job control, in subshell +@cindex jobs, output in subshell +@item @t{POSIX_JOBS} +This option makes job control more compliant with the POSIX standard. + +@noindent +When the option is not set, the @t{MONITOR} option is unset on entry to +subshells, so that job control is no longer active. When the option is +set, the @t{MONITOR} option and job control remain active in the +subshell, but note that the subshell has no access to jobs in the parent +shell. + +@noindent +When the option is not set, jobs put in the background or foreground +with @t{bg} or @t{fg} are displayed with the same information that would +be reported by @t{jobs}. When the option is set, only the text is +printed. The output from @t{jobs} itself is not affected by the option. + +@noindent +When the option is not set, job information from the parent +shell is saved for output within a subshell (for example, within a +pipeline). When the option is set, the output of @t{jobs} is empty +until a job is started within the subshell. + +@noindent +When the option is set, it becomes possible to use the @t{wait} builtin to +wait for the last job started in the background (as given by @t{$!}) even +if that job has already exited. This works even if the option is turned +on temporarily around the use of the @t{wait} builtin. + @end table @noindent @@ -9350,7 +9853,7 @@ @end example @noindent -will restore normally handling of @t{SIGINT} after the function exits. +will restore normal handling of @t{SIGINT} after the function exits. @pindex MULTI_FUNC_DEF @pindex NO_MULTI_FUNC_DEF @@ -9386,6 +9889,18 @@ component in `@t{08#77}' are always interpreted as decimal, regardless of leading zeroes. +@pindex SOURCE_TRACE +@pindex NO_SOURCE_TRACE +@pindex SOURCETRACE +@pindex NOSOURCETRACE +@item @t{SOURCE_TRACE} +If set, zsh will print an informational message announcing the name of +each file it loads. The format of the output is similar to that +for the @t{XTRACE} option, with the message @t{}. +A file may be loaded by the shell itself when it +starts up and shuts down (@t{Startup/Shutdown Files}) or by the use of +the `@t{source}' and `@t{dot}' builtin commands. + @pindex TYPESET_SILENT @pindex NO_TYPESET_SILENT @pindex TYPESETSILENT @@ -9412,7 +9927,10 @@ @cindex tracing, of commands @cindex commands, tracing @item @t{XTRACE} (@t{-x}, ksh: @t{-x}) -Print commands and their arguments as they are executed. +Print commands and their arguments as they are executed. The +output is proceded by the value of @t{$PS4}, formatted as described +in +@ref{Prompt Expansion}. @end table @@ -9662,6 +10180,49 @@ ignored; all octets with the top bit set may be used in identifiers. This is non-standard but is the traditional zsh behaviour. +@pindex POSIX_STRINGS +@pindex NO_POSIX_STRINGS +@pindex POSIXSTRINGS +@pindex NOPOSIXSTRINGS +@cindex discarding embedded nulls in $'...' +@cindex embedded nulls, in $'...' +@cindex nulls, embedded in $'...' +@item @t{POSIX_STRINGS} +This option affects processing of quoted strings. Currently it only +affects the behaviour of null characters, i.e. character 0 in the +portable character set corresponding to US ASCII. + +@noindent +When this option is not set, null characters embedded within strings +of the form @t{$'}@var{...}@t{'} are treated as ordinary characters. The +entire string is maintained within the shell and output to files where +necessary, although owing to restrictions of the library interface +the string is truncated at the null character in file names, environment +variables, or in arguments to external programs. + +@noindent +When this option is set, the @t{$'}@var{...}@t{'} expression is truncated at +the null character. Note that remaining parts of the same string +beyond the termination of the quotes are not trunctated. + +@noindent +For example, the command line argument @t{a$'b\0c'd} is treated with +the option off as the characters @t{a}, @t{b}, null, @t{c}, @t{d}, +and with the option on as the characters @t{a}, @t{b}, @t{d}. + +@pindex POSIX_TRAPS +@pindex NO_POSIX_TRAPS +@pindex POSIXTRAPS +@pindex NOPOSIXTRAPS +@cindex traps, on function exit +@cindex traps, POSIX compatibility +@item @t{POSIX_TRAPS} +When the is option is set, the usual zsh behaviour of executing +traps for @t{EXIT} on exit from shell functions is suppressed. +In that case, manipulating @t{EXIT} traps always alters the global +trap for exiting the shell; the @t{LOCAL_TRAPS} option is +ignored for the @t{EXIT} trap. + @pindex SH_FILE_EXPANSION @pindex NO_SH_FILE_EXPANSION @pindex SHFILEEXPANSION @@ -10219,7 +10780,9 @@ If any arguments @var{arg} are given, they become the positional parameters; the old positional parameters are restored when the @var{file} is done executing. -The exit status is the exit status of the last command executed. +If @var{file} was not found the return status is 127; if @var{file} was found +but contained a syntax error the return status is 126; else the return +status is the exit status of the last command executed. @findex : @cindex expanding parameters @@ -10358,7 +10921,7 @@ Change the current directory. In the first form, change the current directory to @var{arg}, or to the value of @t{$HOME} if @var{arg} is not specified. If @var{arg} is `@t{-}', change to the -value of @t{$OLDPWD}, the previous directory. +previous directory. @noindent Otherwise, if @var{arg} begins with a slash, attempt to change to the @@ -10375,6 +10938,10 @@ strictly in order so that `@t{.}' is only tried at the appropriate point. @noindent +The order of testing @t{cdpath} is modified if the option @t{POSIX_CD} +is set, as described in the documentation for the option. + +@noindent If no directory is found, the option @t{CDABLE_VARS} is set, and a parameter named @var{arg} exists whose value begins with a slash, treat its value as the directory. In that case, the parameter is added to the named @@ -10945,7 +11512,7 @@ Note that a single `@t{-}' is not considered a valid option argument. @var{optstring} contains the letters that @t{getopts} recognizes. If a letter is followed by a `@t{:}', that option -is expected to have an argument. The options can be +requires an argument. The options can be separated from the argument by blanks. @noindent @@ -10969,7 +11536,7 @@ @noindent A leading `@t{:}' in @var{optstring} causes @t{getopts} to store the letter of any invalid option in @t{OPTARG}, and to set @var{name} to -`@t{?}' for an unknown option and to `@t{:}' when a required option is +`@t{?}' for an unknown option and to `@t{:}' when a required argument is missing. Otherwise, @t{getopts} sets @var{name} to `@t{?}' and prints an error message when an option is invalid. The exit status is nonzero when there are no more options. @@ -11191,6 +11758,11 @@ minutes and seconds @end table +@noindent +The @t{limit} command is not made available by default when the +shell starts in a mode emulating another shell. It can be made available +with the command `@t{zmodload -F zsh/rlimits b:limit}'. + @findex local @item @t{local} [ @{@t{+}|@t{-}@}@t{AEFHUahlprtux} ] [ @t{-LRZi} [ @var{n} ]] [ @var{name}[@t{=}@var{value}] ] ... Same as @t{typeset}, except that the options @t{-g}, and @@ -11440,9 +12012,10 @@ Read only one character from the terminal and set @var{name} to `@t{y}' if this character was `@t{y}' or `@t{Y}' and to `@t{n}' otherwise. With this flag set the return status is zero only if the character was -`@t{y}' or `@t{Y}'. Note that this always reads from the terminal, even -if used with the @t{-p} or @t{-u} or @t{-z} flags or with redirected input. -This option may also be used within zle widgets. +`@t{y}' or `@t{Y}'. This option may be used with a timeout; if +the read times out, or encounters end of file, status 2 is returned. +Input is read from the terminal unless one of @t{-u} +or @t{-p} is present. This option may also be used within zle widgets. @item @t{-k} [ @var{num} ] Read only one (or @var{num}) characters. All are assigned to the first @@ -11520,6 +12093,8 @@ this is not what is wanted. @end table + +@noindent If the first argument contains a `@t{?}', the remainder of this word is used as a @var{prompt} on standard error when the shell is interactive. @@ -11631,6 +12206,11 @@ and `@t{set -} @var{args}' as `@t{set +xv --} @var{args}' when in any other emulation mode than zsh's native mode. +@noindent +The @t{sched} builtin is not made available by default when the shell +starts in a mode emulating another shell. It can be made available +with the command `@t{zmodload -F zsh/sched b:sched}'. + @item @t{setcap} See @ref{The zsh/cap Module}. @@ -11770,7 +12350,8 @@ shell or the return status of the function exiting. If @var{sig} is @t{0} or @t{EXIT} and the @t{trap} statement is not executed inside the body of a function, -then the command @var{arg} is executed when the shell terminates. +then the command @var{arg} is executed when the shell terminates; the +trap runs before any @t{zshexit} hook functions. @noindent @t{ZERR}, @t{DEBUG}, and @t{EXIT} traps are not executed inside other @@ -12079,13 +12660,21 @@ @item @t{ulimit} [ [ @t{-SHacdfilmnpqstvx} | @t{-N} @var{resource} [ @var{limit} ] ... ] Set or display resource limits of the shell and the processes started by the shell. The value of @var{limit} can be a number in the unit specified -below or the value `@t{unlimited}'. By default, only soft limits are -manipulated. If the @t{-H} flag is given use -hard limits instead of soft limits. If the @t{-S} flag is given -together with the @t{-H} flag set both hard and soft limits. If no -options are used, the file size limit (@t{-f}) is assumed. If -@var{limit} is omitted the current value of the specified resources are -printed. When more than one resource values are printed the limit name and +below or one of the values `@t{unlimited}', which removes the limit on the +resource, or `@t{hard}', which uses the current value of the hard limit on +the resource. + +@noindent +By default, only soft limits are manipulated. If the @t{-H} flag +is given use hard limits instead of soft limits. If the @t{-S} flag is given +together with the @t{-H} flag set both hard and soft limits. + +@noindent +If no options are used, the file size limit (@t{-f}) is assumed. + +@noindent +If @var{limit} is omitted the current value of the specified resources are +printed. When more than one resource value is printed, the limit name and unit is printed before each value. @noindent @@ -12183,6 +12772,11 @@ The resources of the shell process are only changed if the @t{-s} flag is given. +@noindent +The @t{unlimit} command is not made available by default when the +shell starts in a mode emulating another shell. It can be made available +with the command `@t{zmodload -F zsh/rlimits b:unlimit}'. + @findex unset @cindex parameters, unsetting @item @t{unset} [ @t{-fmv} ] @var{name} ... @@ -12471,7 +13065,7 @@ @noindent With @t{-u}, @t{zmodload} unloads modules. The same @var{name} must be given that was given when the module was loaded, but it is not -necessary for the module to exist in the filesystem. +necessary for the module to exist in the file system. The @t{-i} option suppresses the error if the module is already unloaded (or was never loaded). @@ -12912,7 +13506,7 @@ @cindex keys, binding @cindex binding keys @cindex keymaps -@item @t{bindkey} [ @var{options} ] @t{-l} +@item @t{bindkey} [ @var{options} ] @t{-l} [ @t{-L} ] [ @var{keymap} ... ] @itemx @t{bindkey} [ @var{options} ] @t{-d} @itemx @t{bindkey} [ @var{options} ] @t{-D} @var{keymap} ... @itemx @t{bindkey} [ @var{options} ] @t{-A} @var{old-keymap new-keymap} @@ -12922,22 +13516,28 @@ @itemx @t{bindkey} [ @var{options} ] @t{-s} @var{in-string out-string} ... @itemx @t{bindkey} [ @var{options} ] @var{in-string command} ... @itemx @t{bindkey} [ @var{options} ] [ @var{in-string} ] -@t{bindkey}'s options can be divided into three categories: keymap selection, -operation selection, and others. The keymap selection options are: +@t{bindkey}'s options can be divided into three categories: keymap +selection for the current command, operation selection, and others. The +keymap selection options are: @noindent @table @asis @item @t{-e} -Selects keymap `@t{emacs}', and also links it to `@t{main}'. +Selects keymap `@t{emacs}' for any operations by the current command, +and also links `@t{emacs}' to `@t{main}' so that it is selected by +default the next time the editor starts. @item @t{-v} -Selects keymap `@t{viins}', and also links it to `@t{main}'. +Selects keymap `@t{viins}' for any operations by the current command, +and also links `@t{viins}' to `@t{main}' so that it is selected by default +the next time the editor starts. @item @t{-a} -Selects keymap `@t{vicmd}'. +Selects keymap `@t{vicmd}' for any operations by the current command. @item @t{-M} @var{keymap} -The @var{keymap} specifies a keymap name. +The @var{keymap} specifies a keymap name that is selected for any +operations by the current command. @end table @@ -12949,9 +13549,17 @@ @noindent @table @asis @item @t{-l} -List all existing keymap names. If the @t{-L} -option is also used, list in the form of @t{bindkey} -commands to create the keymaps. +List all existing keymap names; if any arguments are given, list just +those keymaps. + +@noindent +If the @t{-L} option is also used, list in the form of @t{bindkey} +commands to create or link the keymaps. `@t{bindkey -lL +main}' shows which keymap is linked to `@t{main}', if any, and hence if +the standard emacs or vi emulation is in effect. This option does +not show the @t{.safe} keymap because it cannot be created in that +fashion; however, neither is `@t{bindkey -lL .safe}' reported as an +error, it simply outputs nothing. @item @t{-d} Delete all existing keymaps and reset to the default state. @@ -13450,7 +14058,7 @@ or built in. @noindent -The standard widgets built in to ZLE are listed in Standard Widgets below. +The standard widgets built into ZLE are listed in Standard Widgets below. Other built-in widgets can be defined by other modules (see @ref{Zsh Modules}). Each built-in widget has two names: its normal canonical name, and the same name preceded by a `@t{.}'. The `@t{.}' name is special: it can't be @@ -13531,8 +14139,8 @@ @vindex CUTBUFFER @item @t{CUTBUFFER} (scalar) -The last item to be cut using one of the `@t{kill-}' commands; the -string which the next yank would insert in the line. Later entries in +The last item cut using one of the `@t{kill-}' commands; the string +which the next yank would insert in the line. Later entries in the kill ring are in the array @t{killring}. Note that the command `@t{zle copy-region-as-kill} @var{string}' can be used to set the text of the cut buffer from a shell function and cycle the kill @@ -13621,7 +14229,7 @@ @item @t{PREDISPLAY} (scalar) Text to be displayed before the start of the editable text buffer. This does not have to be a complete line; to display a complete line, a newline -must be appended explicitly. The text is reset on each new invocation +must be appended explicitly. The text is reset on each new invocation (but not recursive invocation) of zle. @vindex POSTDISPLAY @@ -13711,6 +14319,18 @@ defined. This is the name of a builtin completion widget. For widgets defined with @t{zle -N} this is set to the empty string. Read-only. +@vindex ZLE_STATE +@item @t{ZLE_STATE} (scalar) +Contains a set of space-separated words that describe the current @t{zle} +state. + +@noindent +Currently, the only state shown is the insert mode as set by the +@t{overwrite-mode} or @t{vi-replace} widgets. The string contains +`@t{insert}' if characters to be inserted on the command line move existing +characters to the right, `@t{overwrite}' if characters to be inserted +overwrite existing characters. + @end table @noindent @@ -13725,6 +14345,35 @@ @noindent @table @asis +@tindex zle-isearch-exit +@item @t{zle-isearch-exit} +Executed at the end of incremental search at the point where the isearch +prompt is removed from the display. See @t{zle-isearch-update} for +an example. + +@tindex zle-isearch-update +@item @t{zle-isearch-update} +Executed within incremental search when the display is about to be +redrawn. Additional output below the incremental search prompt can be +generated by using `@t{zle -M}' within the widget. For example, + +@noindent +@example +zle-isearch-update() @{ zle -M "Line $HISTNO"; @} +zle -N zle-isearch-update +@end example + +@noindent +Note the line output by `@t{zle -M}' is not deleted on exit from +incremental search. This can be done from a @t{zle-isearch-exit} +widget: + +@noindent +@example +zle-isearch-exit() @{ zle -M ""; @} +zle -N zle-isearch-exit +@end example + @tindex zle-line-init @item @t{zle-line-init} Executed every time the line editor is started to read a new line @@ -13758,7 +14407,7 @@ old keymap is passed as the sole argument. @noindent -This can been used for detecting switches between the vi command +This can be used for detecting switches between the vi command (@t{vicmd}) and insert (usually @t{main}) keymaps. @end table @@ -14012,7 +14661,8 @@ setting, will stop the search and go back to the original line. An undefined key will have the same effect. Note that the following always perform the same task within incremental searches and cannot be -replaced by user defined widgets. The supported functions are: +replaced by user defined widgets, nor can the set of functions +be extended. The supported functions are: @noindent @table @asis @@ -14074,11 +14724,10 @@ @end table @noindent -Any multi-character string that is not bound to one of the above functions -will beep and interrupt the search, leaving the last found line in the -buffer. Any single character that is not bound to one of the above -functions, or @t{self-insert} or @t{self-insert-unmeta}, will have the same -effect but the function will be executed. +Any character that is not bound to one of the above functions, or +@t{self-insert} or @t{self-insert-unmeta}, will cause the mode to be +exited. The character is then looked up and executed in the keymap in +effect at that point. @noindent When called from a widget function by the @t{zle} command, the incremental @@ -14207,11 +14856,11 @@ @noindent When called from a shell function invoked from a user-defined widget, the command can take one to three arguments. The first argument specifies a -history offset which applies to successive calls to this widget: if is -1, +history offset which applies to successive calls to this widget: if it is -1, the default behaviour is used, while if it is 1, successive calls will move forwards through the history. The value 0 can be used to indicate that the history line examined by the previous execution of the command will be -reexamined. Note that negative numbers should be preceded with a +reexamined. Note that negative numbers should be preceded by a `@t{-}@t{-}' argument to avoid confusing them with options. @noindent @@ -14797,7 +15446,10 @@ mini-buffer. Keys are looked up in the special @t{command} keymap, and if not found there in the main keymap. An interrupt signal, as defined by the stty setting, will -abort the function. The allowed functions are: +abort the function. Note that the following always +perform the same task within the @t{executed-named-cmd} environment and +cannot be replaced by user defined widgets, nor can the set of functions +be extended. The allowed functions are: @t{backward-delete-char}, @t{vi-backward-delete-char}, @t{clear-screen}, @@ -14965,7 +15617,8 @@ @item @t{send-break} (^G ESC-^G) (unbound) (unbound) Abort the current editor function, e.g. @t{execute-named-command}, or the editor itself, e.g. if you are in @t{vared}. Otherwise abort the parsing of -the current line. +the current line; in this case the aborted line is available in the shell +variable @t{ZLE_LINE_ABORTED}. @tindex run-help @item @t{run-help} (ESC-H ESC-h) (unbound) (unbound) @@ -15105,6 +15758,17 @@ representation but are shown in a special manner by the line editor. These characters are described below. +@cindex completion removable suffix, highlighting +@cindex suffix, highlighting removable, in completion +@cindex removable suffix, highlighting in completino +@item @t{suffix} +This context is used in completion for characters that are +marked as suffixes that will be removed if the completion ends +at that point, the most obvious example being a slash (@t{/}) after +a directory name. Note that suffix removal is configurable; the +circumstances under which the suffix will be removed may differ +for different completions. + @end table @noindent @@ -15184,6 +15848,7 @@ @item @t{bold} The characters in the given context are shown in a bold font. +Not all terminals distinguish bold fonts. @item @t{standout} The characters in the given context are shown in the terminal's standout @@ -15226,6 +15891,21 @@ character set; this may or may not be Unicode, depending on the operating system. +@item Invalid multibyte characters +If the @t{MULTIBYTE} option is in effect, any sequence of one or more +bytes that does not form a valid character in the current character +set is treated as a series of bytes each shown as a special character. +This case can be distinguished from other unprintable characters +as the bytes are represented as two hexadecimal digits between angle +brackets, as distinct from the four or eight digits that are used for +unprintable characters that are nonetheless valid in the current +character set. + +@noindent +Not all systems support this: for it to work, the system's representation of +wide characters must be code values from the Universal Character Set, +as defined by IS0 10646 (also known as Unicode). + @end table @noindent @@ -15235,7 +15915,7 @@ @noindent @example zle_highlight=(region:standout special:standout -isearch:underline) +suffix:bold isearch:underline) @end example @noindent @@ -15837,7 +16517,7 @@ Gives the name of the group of matches the words should be stored in. @item @t{-V} @var{name} -Like @t{-J} but naming a unsorted group. These are in a different name +Like @t{-J} but naming an unsorted group. These are in a different name space than groups created with the @t{-J} flag. @item @t{-1} @@ -15962,8 +16642,8 @@ @item @t{-D} @var{array} As with @t{-O}, the @var{words} are not added to the set of possible completions. Instead, the completion code tests whether each @var{word} -in turn matches what is on the line. If the @var{n}'th @var{word} does not -match, the @var{n}'th element of the @var{array} is removed. Elements +in turn matches what is on the line. If the @var{n}th @var{word} does not +match, the @var{n}th element of the @var{array} is removed. Elements for which the corresponding @var{word} is matched are retained. @item @t{-C} @@ -16027,8 +16707,8 @@ @noindent Without the optional @var{number}, the longest match is taken, but -if @var{number} is given, anything up to the @var{number}'th match is -moved. If the @var{number} is negative, the @var{number}'th longest +if @var{number} is given, anything up to the @var{number}th match is +moved. If the @var{number} is negative, the @var{number}th longest match is moved. For example, if @t{PREFIX} contains the string `@t{a=b=c}', then @t{compset -P '*\='} will move the string `@t{a=b=}' into the @t{IPREFIX} parameter, but @t{compset -P 1 '*\='} will move only @@ -16045,7 +16725,7 @@ @item @t{-n} @var{begin} [ @var{end} ] If the current word position as specified by the parameter @t{CURRENT} is greater than or equal to @var{begin}, anything up to the -@var{begin}'th word is removed from the @t{words} array and the value +@var{begin}th word is removed from the @t{words} array and the value of the parameter @t{CURRENT} is decremented by @var{begin}. @noindent @@ -16102,7 +16782,7 @@ @item @t{compcall} [ @t{-TD} ] This allows the use of completions defined with the @t{compctl} builtin from within completion widgets. The list of matches will be generated as -if one of the non-widget completion function (@t{complete-word}, etc.) +if one of the non-widget completion functions (@t{complete-word}, etc.) had been called, except that only @t{compctl}s given for specific commands are used. To force the code to try completions defined with the @t{-T} option of @t{compctl} and/or the default completion (whether defined by @@ -16393,7 +17073,7 @@ @t{COMPLETE_IN_WORD} is set. In this case the completion code would normally try to match trial completions that end with the string as typed so far, i.e. it will only insert new characters at the cursor -position rather then at the end. However in our example we would like +position rather than at the end. However in our example we would like the code to recognise matches which contain extra characters after the string on the line (the `@t{nix}' in the example). Hence we say that the empty string at the end of the string on the line matches any characters @@ -16733,7 +17413,7 @@ @noindent @findex bashcompinit -The function @t{bashcompinit} compatibility with bash's programmable +The function @t{bashcompinit} provides compatibility with bash's programmable completion system. When run it will define the functions, @t{compgen} and @t{complete} which correspond to the bash builtins with the same names. It will then be possible to use completion specifications and functions @@ -16819,7 +17499,7 @@ @noindent When one of the @var{key-sequences} is typed, the function in the file will be invoked to generate the matches. Note that a key will not be re-bound -if if it already was (that is, was bound to something other than +if it already was (that is, was bound to something other than @t{undefined-key}). The widget created has the same name as the file and can be bound to any other keys using @t{bindkey} as usual. @@ -17771,6 +18451,10 @@ Hence, in the given example, the path @t{/usr/bin/} is accepted immediately and completion tried in that directory. +@noindent +If you wish to inhibit this behaviour entirely, set the @t{path-completion} +style (see below) to @t{false}. + @kindex add-space, completion style @item @t{add-space} This style is used by the @t{_expand} completer. If it is true (the @@ -17845,7 +18529,7 @@ This style is used in the function for commands such as @t{make} and @t{ant} where calling the command directly to generate matches suffers problems such as being slow or, as in the case of @t{make} can -potentially causes actions in the makefile to be executed. If it is set +potentially cause actions in the makefile to be executed. If it is set to `true' the command is called to generate matches. The default value of this style is `false'. @@ -17895,7 +18579,7 @@ @kindex complete, completion style @item @t{complete} This is used by the @t{_expand_alias} function when invoked as a -bindable command. If it set to `true' and the word on the command +bindable command. If set to `true' and the word on the command line is not the name of an alias, matching alias names will be completed. @@ -18052,18 +18736,18 @@ separated by spaces) as possible matches when completing in the directory @var{dir}, even if no such files really exist. The dir may be a pattern; pattern characters -or colons in @var{dir} should be quote with a backslash to be treated +or colons in @var{dir} should be quoted with a backslash to be treated literally. @noindent -This can be useful on systems that support special filesystems whose +This can be useful on systems that support special file systems whose top-level pathnames can not be listed or generated with glob patterns. It can also be used for directories for which one does not have read permission. @noindent The pattern form can be used to add a certain `magic' entry -to all directories on a particular filing system. +to all directories on a particular file system. @kindex fake-parameters, completion style @item @t{fake-parameters} @@ -18496,7 +19180,7 @@ @noindent The value may also contain the substrings `@t{pending}' or `@t{pending=}@var{val}'. In this case, the typed character will be -inserted instead of staring completion when there is unprocessed input +inserted instead of starting completion when there is unprocessed input pending. If a @var{val} is given, completion will not be done if there are at least that many characters of unprocessed input. This is often useful when pasting characters into a terminal. Note @@ -18680,7 +19364,7 @@ @kindex local, completion style @item @t{local} This is for use with functions that complete URLs for which the -corresponding files are available directly from the filing system. +corresponding files are available directly from the file system. Its value should consist of three strings: a hostname, the path to the default web pages for the server, and the directory name used by a user placing web pages within their home @@ -18745,7 +19429,7 @@ @noindent @example -zstyle ':completion:*' matcher-list @value{dsq} '+m@{a-Z@}=@{A-Z@}' '+m@{A-Z@}=@{a-z@}' +zstyle ':completion:*' matcher-list @value{dsq} '+m@{a-z@}=@{A-Z@}' '+m@{A-Z@}=@{a-z@}' @end example @noindent @@ -18782,7 +19466,7 @@ If the style is unset in any context no match specification is applied. Note also that some completers such as @t{_correct} and @t{_approximate} do not use the match specifications at all, though these completers will -only ever called once even if the @t{matcher-list} contains more than +only ever be called once even if the @t{matcher-list} contains more than one element. @noindent @@ -19032,6 +19716,22 @@ the style is not set but this file is found in one of various standard locations it will be used as the default. +@kindex path-completion, completion style +@item @t{path-completion} +This is used by filename completion. By default, filename completion +examines all components of a path to see if there are completions of +that component. For example, @t{/u/b/z} can be completed to +@t{/usr/bin/zsh}. Explicitly setting this style to @t{false} inhibits this +behaviour for path components up to the @t{/} before the cursor; this +overrides the setting of @t{accept-exact-dirs}. + +@noindent +Even with the style set to @t{false}, it is still possible to complete +multiple paths by setting the option @t{COMPLETE_IN_WORD} and moving the +cursor back to the first component in the path to be completed. For +example, @t{/u/b/z} can be completed to @t{/usr/bin/zsh} if the cursor is +after the @t{/u}. + @kindex pine-directory, completion style @item @t{pine-directory} If set, specifies the directory containing PINE mailbox files. There @@ -19532,7 +20232,7 @@ @kindex use-perl, completion style @item @t{use-perl} Various parts of the function system use awk to extract words from -files or command output as this universally available. However, many +files or command output as it is universally available. However, many versions of awk have arbitrary limits on the size of input. If this style is set, perl will be used instead. This is almost always preferable if perl is available on your system. @@ -20336,7 +21036,7 @@ generated by the @t{_users} and @t{_hosts} functions respectively. @noindent -Like @t{_arguments}, this functions uses @t{_all_labels} to execute +Like @t{_arguments}, this function uses @t{_all_labels} to execute the actions, which will loop over all sets of tags. Special handling is only required if there is an additional valid tag, for example inside a function called from @t{_alternative}. @@ -20640,7 +21340,7 @@ @noindent A function calling @t{_arguments} with at least -one action containing a `@t{->}@var{string}' therefore must declare +one action containing a `@t{->}@var{string}' must therefore declare appropriate local parameters: @noindent @@ -20650,7 +21350,7 @@ @end example @noindent -to avoid @t{_arguments} from altering the global environment. +to prevent @t{_arguments} from altering the global environment. @item @t{@{}@var{eval-string}@t{@}} @vindex expl, use of @@ -20882,7 +21582,7 @@ doubling the colon before the @var{message}. @noindent -If the @var{pattern} ends in `@t{(-)}', this will removed from the +If the @var{pattern} ends in `@t{(-)}', this will be removed from the pattern and the @var{action} will be used only directly after the `@t{=}', not in the next word. This is the behaviour of a normal specification defined with the form `@t{=-}'. @@ -20979,8 +21679,8 @@ @item @t{_call_function} @var{return} @var{name} [ @var{args} ... ] If a function @var{name} exists, it is called with the arguments @var{args}. The @var{return} argument gives the name of a parameter in which -the return status from the function @var{name}; if @var{return} is empty or a -single hyphen it is ignored. +the return status from the function @var{name} should be stored; if @var{return} +is empty or a single hyphen it is ignored. @noindent The return status of @t{_call_function} itself is zero if the function @@ -21074,7 +21774,7 @@ @t{prefix-needed} and @t{verbose} styles to find out if the strings should be added as completions and if the descriptions should be shown. Without the `@t{-o}' option, only the @t{verbose} style is used to decide how -descriptions are shown. If `@t{-O}' is used instead of `@t{-O}', command +descriptions are shown. If `@t{-O}' is used instead of `@t{-o}', command options are completed as above but @t{_describe} will not handle the @t{prefix-needed} style. @@ -22222,10 +22922,10 @@ @noindent @table @asis @item @t{-f} -Filenames and filesystem paths. +Filenames and file system paths. @item @t{-/} -Just filesystem paths. +Just file system paths. @item @t{-c} Command names, including aliases, shell functions, builtins @@ -22966,37 +23666,45 @@ @c Yodl file: Zsh/mod_attr.yo The @t{zsh/attr} module is used for manipulating extended attributes. +The @t{-h} option causes all commands to operate on symbolic links instead +of their targets. The builtins in this module are: @noindent @table @asis @findex zgetattr @cindex extended attributes, xattr, getting from files -@item @t{zgetattr} @var{filename} @var{attribute} [ @var{parameter} ] +@item @t{zgetattr} [ @t{-h} ] @var{filename} @var{attribute} [ @var{parameter} ] Get the extended attribute @var{attribute} from the specified @var{filename}. If the optional argument @var{parameter} is given, the attribute is set on that parameter instead of being printed to stdout. @findex zsetattr @cindex extended attributes, xattr, setting on files -@item @t{zsetattr} @var{filename} @var{attribute} @var{value} +@item @t{zsetattr} [ @t{-h} ] @var{filename} @var{attribute} @var{value} Set the extended attribute @var{attribute} on the specified @var{filename} to @var{value}. @findex zdelattr @cindex extended attributes, xattr, removing, deleting -@item @t{zdelattr} @var{filename} @var{attribute} +@item @t{zdelattr} [ @t{-h} ] @var{filename} @var{attribute} Remove the extended attribute @var{attribute} from the specified @var{filename}. @findex zlistattr @cindex extended attributes, xattr, listing -@item @t{zlistattr} @var{filename} [ @var{parameter} ] +@item @t{zlistattr} [ @t{-h} ] @var{filename} [ @var{parameter} ] List the extended attributes currently set on the specified @var{filename}. If the optional argument @var{parameter} is given, the list of attributes is set on that parameter instead of being printed to stdout. @end table + +@noindent +@t{zgetattr} and @t{zlistattr} allocate memory dynamically. If the +attribute or list of attributes grows between the allocation and the call +to get them, they return 2. On all other errors, 1 is returned. This +allows the calling function to check for this case and retry. @c (avoiding a yodl bug) @node The zsh/cap Module, The zsh/clone Module, The zsh/attr Module, Zsh Modules @@ -23083,7 +23791,7 @@ This does not apply when cloning to an @cite{unused} vc. @noindent -Cloning to an used (and unprepared) terminal will result in two +Cloning to a used (and unprepared) terminal will result in two processes reading simultaneously from the same terminal, with input bytes going randomly to either process. @@ -23198,6 +23906,10 @@ @item @t{ow 34;43} for world writable directories without sticky bit set +@item @t{sa} @var{none} +for files with an associated suffix alias; this is only tested +after specific suffixes, as described below + @item @t{st 37;44} for directories with sticky bit set but not world writable @@ -23327,6 +24039,9 @@ @itemx @t{expand-or-complete-prefix}, @t{menu-complete-or-expand} scrolls forward one screenful +@item @t{accept-search} +stop listing but take no other action + @end table @noindent @@ -23429,12 +24144,16 @@ functions. When not all matches can be shown on the screen at the same time, the list will scroll up and down when crossing the top or bottom line. The following zle functions have special meaning during -menu selection: +menu selection. Note that the following always +perform the same task within the menu selection map and cannot be +replaced by user defined widgets, nor can the set of functions +be extended: @noindent @table @asis -@item @t{accept-line} -accepts the current match and leaves menu selection +@item @t{accept-line}, @t{accept-search} +accept the current match and leave menu selection (but do +not cause the command line to be accepted) @item @t{send-break} leaves menu selection and restores the previous contents of the @@ -25161,8 +25880,8 @@ @noindent @c Yodl file: Zsh/mod_system.yo -The @t{zsh/system} module makes available three builtin commands and -two parameters. +The @t{zsh/system} module makes available various builtin commands and +parameters. @noindent @@ -25285,6 +26004,60 @@ printed in the last case, but the parameter @t{ERRNO} will reflect the error that occurred. +@item @t{zsystem flock [ -t} @var{timeout} @t{] [ -f} @var{var} @t{] [-er]} @var{file} +@itemx @t{zsystem flock -u} @var{fd_expr} +The builtin @t{zsystem}'s subcommand @t{flock} performs advisory file +locking (via the man page fcntl(2) system call) over the entire contents +of the given file. This form of locking requires the processes +accessing the file to cooperate; its most obvious use is between two +instances of the shell itself. + +@noindent +In the first form the named @var{file}, which must already exist, is +locked by opening a file descriptor to the file and applying a lock to +the file descriptor. The lock terminates when the shell process that +created the lock exits; it is therefore often convenient to create file +locks within subshells, since the lock is automatically released when +the subshell exits. Status 0 is returned if the lock succeeds, else +status 1. + +@noindent +In the second form the file descriptor given by the arithmetic +expression @t{fd_expr} is closed, releasing a lock. The file descriptor +can be queried by using the `@t{-f} @var{var}' form during the lock; +on a successful lock, the shell variable @var{var} is set to the file +descriptor used for locking. The lock will be released if the +file descriptor is closed by any other means, for example using +`@t{exec @{}@var{var}@t{@}>&-}'; however, the form described here performs +a safety check that the file descriptor is in use for file locking. + +@noindent +By default the shell waits indefinitely for the lock to succeed. +The option @t{-t} @var{timeout} specifies a timeout for the lock in +seconds; currently this must be an integer. The shell will attempt +to lock the file once a second during this period. If the attempt +times out, status 2 is returned. + +@noindent +If the option @t{-e} is given, the file descriptor for the lock is +preserved when the shell uses @t{exec} to start a new process; +otherwise it is closed at that point and the lock released. + +@noindent +If the option @t{-r} is given, the lock is only for reading, otherwise +it is for reading and writing. The file descriptor is opened +accordingly. + +@item @t{zsystem supports} @var{subcommand} +The builtin @t{zsystem}'s subcommand @t{supports} tests whether a +given subcommand is supported. It returns status 0 if so, else +status 1. It operates silently unless there was a syntax error +(i.e. the wrong number of arguments), in which case status 255 +is returned. Status 1 can indicate one of two things: @var{subcommand} +is known but not supported by the current operating system, or +@var{subcommand} is not known (possibly because this is an older +version of the shell before it was implemented). + @end table @noindent @@ -26268,7 +27041,7 @@ times and numbers of calls since the module was loaded. With the @t{-c} option, the @t{zprof} builtin command will reset its internal counters and will not show the listing. -) + @end table @c (avoiding a yodl bug) @node The zsh/zpty Module, The zsh/zselect Module, The zsh/zprof Module, Zsh Modules @@ -26412,7 +27185,7 @@ second. This may be zero, in which case the file descriptors will simply be polled and @t{zselect} will return immediately. It is possible to call zselect with no file descriptors and a non-zero timeout for use as a -finer-grained replacement for `sleep'; not, however, the return status is +finer-grained replacement for `sleep'; note, however, the return status is always 1 for a timeout. @noindent @@ -27312,6 +28085,57 @@ has passed. @noindent +If @t{RPT} is used, it is also possible to specify that certain +recurrences of an event are rescheduled or cancelled. This is +done with the @t{OCCURRENCE} keyword, followed by whitespace and the +date and time of the occurrence in the regular sequence, followed by +whitespace and either the date and time of the rescheduled event or +the exact string @t{CANCELLED}. In this case the date and time must +be in exactly the "date with local time" format used by the +@t{text/calendar} MIME type (RFC 2445), +@var{
}@t{T}@var{} (note the presence of the literal +character @t{T}). The first word (the regular recurrence) may be +something other than a proper date/time to indicate that the event +is additional to the normal sequence; a convention that retains +the formatting appearance is @t{XXXXXXXXTXXXXXX}. + +@noindent +Furthermore, it is useful to record the next regular recurrence +(as then the displayed date may be for a rescheduled event so cannot +be used for calculating the regular sequence). This is specified by +@t{RECURRENCE} and a time or date in the same format. @t{calendar_add} +adds such an indication when it encounters a recurring event that does not +include one, based on the headline date/time. + +@noindent +If @t{calendar_add} is used to update occurrences the @t{UID} keyword +described there should be present in both the existing entry and the added +occurrence in order to identify recurring event sequences. + +@noindent +For example, + +@noindent +@example +Thu May 6, 2010 11:00 Informal chat RPT 1 week + # RECURRENCE 20100506T110000 + # OCCURRENCE 20100513T110000 20100513T120000 + # OCCURRENCE 20100520T110000 CANCELLED +@end example + +@noindent +The event that occurs at 11:00 on 13th May 2010 is rescheduled an hour +later. The event that occurs a week later is cancelled. The occurrences +are given on a continuation line starting with a @t{#} character so will +not usually be displayed as part of the event. As elsewhere, no account of +time zones is taken with the times. After the next event occurs the headline +date/time will be `@t{Thu May 13, 2010 12:00}' while the @t{RECURRENCE} +date/time will be `@t{20100513T110000}' (note that cancelled and +moved events are not taken account of in the @t{RECURRENCE}, which +records what the next regular recurrence is, but they are accounted for in +the headline date/time). + +@noindent It is safe to run @t{calendar -s} to reschedule an existing event (if the calendar file has changed, for example), and also to have it running in multiples instances of the shell since the calendar file @@ -27372,17 +28196,43 @@ @noindent The second line will not be shown by the @t{calendar} function. +@noindent +It is possible to specify the @t{RPT} keyword followed by @t{CANCELLED} +instead of a relative time. This causes any matched event or series +of events to be cancelled (the original event does not have to be marked +as recurring in order to be cancelled by this method). A @t{UID} is +required in order to match an existing event in the calendar. + +@noindent +@t{calendar_add} will attempt to manage recurrences and occurrences of +repeating events as described for event scheduling by @t{calendar -s} +above. To reschedule or cancel a single event @t{calendar_add} should be +called with an entry that includes the correct @t{UID} but does @emph{not} +include the @t{RPT} keyword as this is taken to mean the entry applies to a +series of repeating events and hence replaces all existing information. +Each rescheduled or cancelled occurrence must have an @t{OCCURRENCE} +keyword in the entry passed to @t{calendar_add} which will be merged into +the calendar file. Any existing reference to the occurrence is replaced. +An occurrence that does not refer to a valid existing event is added as a +one-off occurrence to the same calendar entry. + @findex calendar_edit @item @t{calendar_edit} -This calls the user's editor to edit the calendar file. The editor -is given by the variable @t{VISUAL}, if set, else the variable @t{EDITOR}. +This calls the user's editor to edit the calendar file. If +there are arguments, they are taken as the editor to use (the file name +is appended to the commands); otherwise, the editor is given by the +variable @t{VISUAL}, if set, else the variable @t{EDITOR}. + +@noindent If the calendar scheduler was running, then after editing the file @t{calendar -s} is called to update it. @noindent This function locks out the calendar system during the edit. Hence it should be used to edit the calendar file if there is any -possibility of a calendar event occurring meanwhile. +possibility of a calendar event occurring meanwhile. Note this +can lead to another shell with calendar functions enabled hanging waiting +for a lock, so it is necessary to quit the editor as soon as possible. @findex calendar_parse @item @t{calendar_parse} @var{calendar-entry} @@ -27396,6 +28246,10 @@ @table @asis @item timeNL()The time as a string of digits in the same units as @t{$EPOCHSECONDS} +@item schedtimeNL()The regularly scheduled time. This may differ from +the actual event time @t{time} if this is a recurring event and the next +occurrence has been rescheduled. Then @t{time} gives the actual time +and @t{schedtime} the time of the regular recurrence before modification. @item text1 The text from the line not including the date and time of the event, but including any @t{WARN} or @t{RPT} keywords and values. @@ -27409,6 +28263,10 @@ of digits containing the time of the recurrence in the same units as @t{$EPOCHSECONDS}. (Note this is an absolute time.) Not set if no @t{RPT} keyword and value were matched. +@item schedrpttimeNL()The next regularly scheduled occurrence of a recurring +event before modification. This may differ from @t{rpttime}, which is the +actual time of the event that may have been rescheduled from the regular +time. @item rptstrNL()The raw string matched after the @t{RPT} keyword, else unset. @item text2 The text from the line after removal of the date and any @@ -27455,17 +28313,8 @@ @noindent The function @t{age} can be autoloaded and use separately from the calendar system, although it uses the function @t{calendar_scandate} -for date formatting. It requires the @t{zsh/stat} builtin, which -makes available the builtin @t{stat}. This may conflict with an -external programme of the same name; if it does, the builtin may be -disabled for normal operation by including the following code in -an initialization file: - -@noindent -@example -zmodload -i zsh/stat -disable stat -@end example +for date formatting. It requires the @t{zsh/stat} builtin, but uses +only the builtin @t{zstat}. @noindent @t{age} selects files having a given modification time for use @@ -28982,8 +29831,7 @@ suppresses remote filename expansion which would otherwise be performed (see below for a more detailed description of that). @t{-t} attempts to set the modification time of the local file to that of the remote file: -this requires version 5 of @t{perl}, see the description of the function -@t{zfrtime} below for more information. +see the description of the function @t{zfrtime} below for more information. @noindent @table @asis @@ -29254,12 +30102,9 @@ @item @t{zfrtime @var{lfile} @var{rfile} [ @var{time} ]} Set the local file @var{lfile} to have the same modification time as the remote file @var{rfile}, or the explicit time @var{time} in FTP format -@t{CCYYMMDDhhmmSS} for the GMT timezone. - -@noindent -Currently this requires @t{perl} version 5 to perform the conversion from -GMT to local time. This is unfortunately difficult to do using shell code -alone. +@t{CCYYMMDDhhmmSS} for the GMT timezone. This uses the shell's +@t{zsh/datetime} module to perform the conversion from +GMT to local time. @findex zftp_chpwd, supplied version @item @t{zftp_chpwd} @@ -29512,6 +30357,7 @@ @noindent @menu * Utilities:: +* Recent Directories:: * Version Control Information:: * Prompt Themes:: * ZLE Functions:: @@ -29523,7 +30369,7 @@ @end menu @noindent -@node Utilities, Version Control Information, , User Contributions +@node Utilities, Recent Directories, , User Contributions @section Utilities @noindent @@ -29567,7 +30413,7 @@ mkdir ~/zsh_help cd ~/zsh_help man zshall | colcrt - | \ -perl ~/zsh-4.3.10/Util/helpfiles +perl ~/zsh-4.3.11/Util/helpfiles @end example @noindent @@ -29723,7 +30569,7 @@ @noindent @example -zsh -f ~/zsh-4.3.10/Functions/Misc/zkbd +zsh -f ~/zsh-4.3.11/Functions/Misc/zkbd @end example @noindent @@ -29788,7 +30634,7 @@ @noindent @example -. ~/zsh-4.3.10/Util/reporter > zsh.report +. ~/zsh-4.3.11/Util/reporter > zsh.report @end example @noindent @@ -29882,7 +30728,7 @@ @noindent @var{functions} is name of an ordinary shell function. If no options -are given this will be added to the array of functions to be executed. +are given this will be added to the array of functions to be executed in the given context. @noindent @@ -29897,95 +30743,440 @@ @end table @noindent -@node Version Control Information, Prompt Themes, Utilities, User Contributions - -@section Gathering information from version control systems +@node Recent Directories, Version Control Information, Utilities, User Contributions +@cindex recent directories, maintaining list of +@cindex directories, maintaining list of recent +@findex cdr +@findex _cdr +@findex chpwd_recent_add +@findex chpwd_recent_dirs +@findex chpwd_recent_filehandler + +@section Remembering Recent Directories @noindent -@cindex version control utility @noindent -In a lot of cases, it is nice to automatically retrieve information from -version control systems (VCSs), such as subversion, CVS or git, to be able -to provide it to the user; possibly in the user's prompt. So that you can -instantly tell on which branch you are currently on, for example. +The function @t{cdr} allows you to change the working directory to a +previous working directory from a list maintained automatically. It is +similar in concept to the directory stack controlled by the @t{pushd}, +@t{popd} and @t{dirs} builtins, but is more configurable, and as it stores +all entries in files it is maintained across sessions and (by default) +between terminal emulators in the current session. (The @t{pushd} +directory stack is not actually modified or used by @t{cdr} unless you +configure it to do so as described in the configuration section below.) @noindent -In order to do that, you may use the @t{vcs_info} function. +@subsection Installation @noindent -The following VCSs are supported, showing the abbreviated name by which -they are referred to within the system: -@table @asis -@item Bazaar (@t{bzr}) -http://bazaar-vcs.org/ -@item Codeville (@t{cdv}) -http://codeville.org/ -@item Concurrent Versioning System (@t{cvs}) -http://www.nongnu.org/cvs/ -@item @t{darcs} -http://darcs.net/ -@item @t{git} -http://git.or.cz/ -@item GNU arch (@t{tla}) -http://www.gnu.org/software/gnu-arch/ -@item Mercurial (@t{hg}) -http://selenic.com/mercurial/ -@item Monotone (@t{mtn}) -http://monotone.ca/ -@item Perforce (@t{p4}) -http://www.perforce.com/ -@item Subversion (@t{svn}) -http://subversion.tigris.org/ -@item SVK (@t{svk}) -http://svk.bestpractical.com/ -@end table @noindent -To load @var{vcs_info}: +The system works by means of a hook function that is called every time the +directory changes. To install the system, autoload the required functions +and use the @t{add-zsh-hook} function described above: @noindent @example -autoload -Uz vcs_info +autoload -Uz chpwd_recent_dirs cdr add-zsh-hook +add-zsh-hook chpwd chpwd_recent_dirs @end example @noindent -It can be used in any existing prompt, because it does not require any -@t{$psvar} entries to be left available. +Now every time you change directly interactively, no matter which +command you use, the directory to which you change will be remembered +in most-recent-first order. @noindent -@subsection Quickstart +@subsection Use @noindent @noindent -To get this feature working quickly (including colors), you can do the -following (assuming, you loaded @var{vcs_info} properly - see above): +All direct user interaction is via the @t{cdr} function. + +@noindent +The argument to cdr is a number @var{N} corresponding to the @var{N}th most +recently changed-to directory. 1 is the immediately preceeding directory; +the current directory is remembered but is not offered as a destination. +Note that if you have multiple windows open 1 may refer to a directory +changed to in another window; you can avoid this by having per-terminal +files for storing directory as described for the +@t{recent-dirs-file} style below. + +@noindent +If you set the @t{recent-dirs-default} style described below @t{cdr} +will behave the same as @t{cd} if given a non-numeric argument, or more +than one argument. The recent directory list is updated just the same +however you change directory. + +@noindent +If the argument is omitted, 1 is assumed. This is similar to @t{pushd}'s +behaviour of swapping the two most recent directories on the stack. + +@noindent +Completion for the argument to @t{cdr} is available if compinit has been +run; menu selection is recommended, using: @noindent @example -zstyle ':vcs_info:*' actionformats \ - '%F@{5@}(%f%s%F@{5@})%F@{3@}-%F@{5@}[%F@{2@}%b%F@{3@}|%F@{1@}%a%F@{5@}]%f ' -zstyle ':vcs_info:*' formats \ - '%F@{5@}(%f%s%F@{5@})%F@{3@}-%F@{5@}[%F@{2@}%b%F@{5@}]%f ' -zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F@{1@}:%F@{3@}%r' -precmd () @{ vcs_info @} -PS1='%F@{5@}[%F@{2@}%n%F@{5@}] %F@{3@}%3~ $@{vcs_info_msg_0_@}%f%# ' +zstyle ':completion:*:*:cdr:*:*' menu selection @end example @noindent -Obviously, the last two lines are there for demonstration: You need to -call @var{vcs_info} from your @var{precmd} function. Once that is done you need -a @t{single quoted} @var{'$@{vcs_info_msg_0_@}'} in your prompt. +to allow you to cycle through recent directories; the order is preserved, +so the first choice is the most recent directory before the current one. +The verbose style is also recommended to ensure the directory is shown; this +style is on by default so no action is required unless you have changed it. @noindent -To be able to use @var{'$@{vcs_info_msg_0_@}'} directly in your prompt like -this, you will need to have the @t{PROMPT_SUBST} option enabled. +@subsection Options @noindent -Now call the @t{vcs_info_printsys} utility from the command line: @noindent -@example +The behaviour of @t{cdr} may be modified by the following options. + +@noindent +@table @asis +@item @t{-l} +lists the numbers and the corresponding directories in +abbreviated form (i.e. with @t{~} substitution reapplied), one per line. +The directories here are not quoted (this would only be an issue if a +directory name contained a newline). This is used by the completion +system. + +@item @t{-r} +sets the variable @t{reply} to the current set of directories. Nothing +is printed and the directory is not changed. + +@item @t{-e} +allows you to edit the list of directories, one per line. The +list can be edited to any extent you like; no sanity checking is +performed. Completion is available. No quoting is necessary (except for +newlines, where I have in any case no sympathy); directories are in +unabbreviated from and contain an absolute path, i.e. they start with @t{/}. +Usually the first entry should be left as the current directory. + +@end table + +@noindent + +@subsection Configuration +@noindent + +@noindent +Configuration is by means of the styles mechanism that should be familiar +from completion; if not, see the description of the @t{zstyle} command in +@ref{The zsh/zutil Module}. The context for setting styles +should be @t{':chpwd:*'} in case the meaning of the context is extended in +future, for example: + +@noindent +@example +zstyle ':chpwd:*' recent-dirs-max 0 +@end example + +@noindent +sets the value of the @t{recent-dirs-max} style to 0. In practice the +style name is specific enough that a context of '*' should be fine. + +@noindent +An exception is @t{recent-dirs-insert}, which is used exclusively by the +completion system and so has the usual completion system context +(@t{':completion:*'} if nothing more specific is needed), though again +@t{'*'} should be fine in practice. + +@noindent +@table @asis +@item @t{recent-dirs-default} +If true, and the command is expecting a recent directory index, and +either there is more than one argument or the argument is not an +integer, then fall through to "cd". This allows the lazy to use only +one command for directory changing. Completion recognises this, too; +see recent-dirs-insert for how to control completion when this option +is in use. + +@item @t{recent-dirs-file} +The file where the list of directories is saved. The default +is @t{$@{ZDOTDIR:-$HOME@}/.chpwd-recent-dirs}, i.e. this is in your +home directory unless you have set the variable @t{ZDOTDIR} to point +somewhere else. Directory names are saved in @t{$'}@var{...}@t{'} quoted +form, so each line in the file can be supplied directly to the shell as an +argument. + +@noindent +The value of this style may be an array. In this case, the first +file in the list will always be used for saving directories while any +other files are left untouched. When reading the recent directory +list, if there are fewer than the maximum number of entries in the +first file, the contents of later files in the array will be appended +with duplicates removed from the list shown. The contents of the two +files are not sorted together, i.e. all the entries in the first file +are shown first. The special value @t{+} can appear in the list to +indicate the default file should be read at that point. This allows +effects like the following: + +@noindent +@example +zstyle ':chpwd:*' recent-dirs-file \ +~/.chpwd-recent-dirs-$@{TTY##*/@} + +@end example + +@noindent +Recent directories are read from a file numbered according to +the terminal. If there are insufficient entries the list +is supplemented from the default file. + +@noindent +It is possible to use @t{zstyle -e} to make the directory configurable +at run time: + +@noindent +@example +zstyle -e ':chpwd:*' recent-dirs-file pick-recent-dirs-file +pick-recent-dirs-file() @{ + if [[ $PWD = ~/text/writing(|/*) ]]; then + reply=(~/.chpwd-recent-dirs-writing) + else + reply=(+) + fi +@} +@end example + +@noindent +In this example, if the current directory is @t{~/text/writing} or a +directory under it, then use a special file for saving recent +directories, else use the default. + +@item @t{recent-dirs-insert} +Used by completion. If @t{recent-dirs-default} is true, then setting +this to @t{true} causes the actual directory, rather than its index, to +be inserted on the command line; this has the same effect as using +the corresponding index, but makes the history clearer and the line +easier to edit. With this setting, if part of an argument was +already typed, normal directory completion rather than recent +directory completion is done; this is because recent directory +completion is expected to be done by cycling through entries menu +fashion. + +@noindent +If the value of the style is @t{always}, then only recent directories will +be completed; in that case, use the @t{cd} command when you want to +complete other directories. + +@noindent +If the value is @t{fallback}, recent directories will be tried first, then +normal directory completion is performed if recent directory completion +failed to find a match. + +@noindent +Finally, if the value is @t{both} then both sets of completions are +presented; the usual tag mechanism can be used to distinguish results, with +recent directories tagged as @t{recent-dirs}. Note that the recent +directories inserted are abbreviated with directory names where appropriate. + +@item @t{recent-dirs-max} +The maximum number of directories to save to the file. If +this is zero or negative there is no maximum. The default is 20. +Note this includes the current directory, which isn't offered, +so the highest number of directories you will be offered +is one less than the maximum. + +@item @t{recent-dirs-prune} +This style is an array determining what directories should (or should +not) be added to the recent list. Elements of the array can include: + +@noindent +@table @asis +@item @t{parent} +Prune parents (more accurately, ancestors) from the recent list. +If present, changing directly down by any number of directories +causes the current directory to be overwritten. For example, +changing from ~pws to ~pws/some/other/dir causes ~pws not to be +left on the recent directory stack. This only applies to direct +changes to descendant directories; earlier directories on the +list are not pruned. For example, changing from ~pws/yet/another +to ~pws/some/other/dir does not cause ~pws to be pruned. + +@item @t{pattern:@var{pattern}} +Gives a zsh pattern for directories that should not be +added to the recent list (if not already there). This element +can be repeated to add different patterns. For example, +@t{'pattern:/tmp(|/*)'} stops @t{/tmp} or its descendants +from being added. The @t{EXTENDED_GLOB} option is always turned on +for these patterns. + +@end table + +@item @t{recent-dirs-pushd} +If set to true, @t{cdr} will use @t{pushd} instead of @t{cd} to change the +directory, so the directory is saved on the directory stack. As the +directory stack is completely separate from the list of files saved +by the mechanism used in this file there is no obvious reason to do +this. + +@end table + +@noindent + +@subsection Use with dynamic directory naming +@noindent + +@noindent +It is possible to refer to recent directories using the dynamic directory +name syntax that appeared in zsh version 4.3.7. If you create and +autoload a function @t{zsh_directory_name} containing the following code, +@t{~[1]} will refer to the most recent directory other than $PWD, and so on. +This also includes completion. + +@noindent +@example +if [[ $1 = n ]]; then + if [[ $2 = <-> ]]; then + # Recent directory + typeset -ga reply + autoload -Uz cdr + cdr -r + if [[ -n $@{reply[$2]@} ]]; then + reply=($@{reply[$2]@}) + return 0 + else + reply=() + return 1 + fi + fi +elif [[ $1 = c ]]; then + if [[ $PREFIX = <-> || -z $PREFIX ]]; then + typeset -a keys values + values=($@{$@{(f)"$(cdr -l)"@}/ ##/:@}) + keys=($@{values%%:*@}) + _describe -t dir-index 'recent directory index' values keys -V unsorted -S']' + return + fi +fi +return 1 +@end example + +@noindent + +@subsection Details of directory handling +@noindent + +@noindent +This section is for the curious or confused; most users will not +need to know this information. + +@noindent +Recent directories are saved to a file immediately and hence are +preserved across sessions. Note currently no file locking is applied: +the list is updated immediately on interactive commands and nowhere else +(unlike history), and it is assumed you are only going to change +directory in one window at once. This is not safe on shared accounts, +but in any case the system has limited utility when someone else is +changing to a different set of directories behind your back. + +@noindent +To make this a little safer, only directory changes instituted from the +command line, either directly or indirectly through shell function calls +(but not through subshells, evals, traps, completion functions and the +like) are saved. Shell functions should use @t{cd -q} or @t{pushd -q} to +avoid side effects if the change to the directory is to be invisible at the +command line. See the contents of the function @t{chpwd_recent_dirs} for +more details. + +@noindent +@node Version Control Information, Prompt Themes, Recent Directories, User Contributions + +@section Gathering information from version control systems +@noindent +@cindex version control utility + +@noindent +In a lot of cases, it is nice to automatically retrieve information from +version control systems (VCSs), such as subversion, CVS or git, to be able +to provide it to the user; possibly in the user's prompt. So that you can +instantly tell which branch you are currently on, for example. + +@noindent +In order to do that, you may use the @t{vcs_info} function. + +@noindent +The following VCSs are supported, showing the abbreviated name by which +they are referred to within the system: +@table @asis +@item Bazaar (@t{bzr}) +http://bazaar-vcs.org/ +@item Codeville (@t{cdv}) +http://codeville.org/ +@item Concurrent Versioning System (@t{cvs}) +http://www.nongnu.org/cvs/ +@item Darcs (@t{darcs}) +http://darcs.net/ +@item Git (@t{git}) +http://git-scm.com/ +@item GNU arch (@t{tla}) +http://www.gnu.org/software/gnu-arch/ +@item Mercurial (@t{hg}) +http://mercurial.selenic.com/ +@item Monotone (@t{mtn}) +http://monotone.ca/ +@item Perforce (@t{p4}) +http://www.perforce.com/ +@item Subversion (@t{svn}) +http://subversion.tigris.org/ +@item SVK (@t{svk}) +http://svk.bestpractical.com/ +@end table + +@noindent +There is also support for the patch management system @t{quilt} +(http://savannah.nongnu.org/projects/quilt). See @t{Quilt Support} +below for details. + +@noindent +To load @var{vcs_info}: + +@noindent +@example +autoload -Uz vcs_info +@end example + +@noindent +It can be used in any existing prompt, because it does not require any +@t{$psvar} entries to be left available. + +@noindent + +@subsection Quickstart +@noindent + +@noindent +To get this feature working quickly (including colors), you can do the +following (assuming, you loaded @var{vcs_info} properly - see above): + +@noindent +@example +zstyle ':vcs_info:*' actionformats '%F@{5@}(%f%s%F@{5@})%F@{3@}-%F@{5@}[%F@{2@}%b%F@{3@}|%F@{1@}%a%F@{5@}]%f ' +zstyle ':vcs_info:*' formats '%F@{5@}(%f%s%F@{5@})%F@{3@}-%F@{5@}[%F@{2@}%b%F@{5@}]%f ' +zstyle ':vcs_info:(sv[nk]|bzr):*' branchformat '%b%F@{1@}:%F@{3@}%r' +precmd () @{ vcs_info @} +PS1='%F@{5@}[%F@{2@}%n%F@{5@}] %F@{3@}%3~ $@{vcs_info_msg_0_@}%f%# ' +@end example + +@noindent +Obviously, the last two lines are there for demonstration. You need to +call @var{vcs_info} from your @var{precmd} function. Once that is done you need +a @t{single quoted} @var{'$@{vcs_info_msg_0_@}'} in your prompt. + +@noindent +To be able to use @var{'$@{vcs_info_msg_0_@}'} directly in your prompt like +this, you will need to have the @t{PROMPT_SUBST} option enabled. + +@noindent +Now call the @t{vcs_info_printsys} utility from the command line: + +@noindent +@example % vcs_info_printsys ## list of supported version control backends: ## disabled systems are prefixed by a hash sign (#) @@ -30002,9 +31193,12 @@ tla ## flavours (cannot be used in the enable or disable styles; they ## are enabled and disabled with their master [git-svn -> git]) -## they *can* be used contexts: ':vcs_info:git-svn:*'. +## they *can* be used in contexts: ':vcs_info:git-svn:*'. git-p4 git-svn +hg-git +hg-hgsubversion +hg-hgsvn @end example @noindent @@ -30049,8 +31243,9 @@ @noindent @table @asis @item @t{} -is one of: git, git-svn, git-p4, hg, darcs, bzr, -cdv, mtn, svn, cvs, svk, tla or p4. +is one of: git, git-svn, git-p4, hg, hg-git, hg-hgsubversion, hg-hgsvn, +darcs, bzr, cdv, mtn, svn, cvs, svk, tla or p4. When hooks are active the +hooks name is added after a `+'. (See @t{Hooks in vcs_info} below.) @item @t{} is a freely configurable string, assignable by @@ -30060,14 +31255,14 @@ @item @t{} is the name of a repository in which you want a style to match. So, if you want a setting specific to @var{/usr/src/zsh}, -with that being a cvs checkout, you can set @t{} to +with that being a CVS checkout, you can set @t{} to @var{zsh} to make it so. @end table @noindent There are three special values for @t{}: The first is named -@var{-init-}, that is in effect as long as there was no decision what vcs +@var{-init-}, that is in effect as long as there was no decision what VCS backend to use. The second is @var{-preinit-}; it is used @t{before} @var{vcs_info} is run, when initializing the data exporting variables. The third special value is @var{formats} and is used by the @t{vcs_info_lastmsg} @@ -30077,7 +31272,7 @@ The initial value of @t{} is @var{-all-} and it is replaced with the actual name, as soon as it is known. Only use this part of the context for defining the @var{formats}, @var{actionformats} or -@var{branchformat} styles. As it is guaranteed that @t{} is +@var{branchformat} styles, as it is guaranteed that @t{} is set up correctly for these only. For all other styles, just use @t{'*'} instead. @@ -30106,49 +31301,47 @@ @kindex actionformats @item @t{actionformats} -A list of formats, used if a there is a special -action going on in your current repository; (like an interactive rebase or -a merge conflict). +A list of formats, used if there is a special +action going on in your current repository; like an interactive rebase or +a merge conflict. @kindex branchformat @item @t{branchformat} Some backends replace @var{%b} in the formats and actionformats styles above, not only by a branch name but also by a -revision number. This style let's you modify how that string should look -like. +revision number. This style lets you modify how that string should look. @kindex nvcsformats @item @t{nvcsformats} -These "formats" are exported, when we didn't detect -a version control system for the current directory. This is useful, if you +These "formats" are exported when we didn't detect +a version control system for the current directory. This is useful if you want @var{vcs_info} to completely take over the generation of your prompt. You would do something like @t{PS1='$@{vcs_info_msg_0_@}'} to accomplish that. -@kindex stgitformat -@item @t{stgitformat} -The @t{git} backend replaces @var{%m} in the formats and -actionformats styles with @t{stgit}-specific information for -@t{stgit}-initialized branches. This style let's you modify how that string -should look like. +@kindex hgrevformat +@item @t{hgrevformat} +@t{hg} uses both a hash and a revision number to reference a specific +changeset in a repository. With this style you can format the revision +string (see @var{branchformat}) to include either or both. It's only +useful when @var{get-revision} is true. @kindex max-exports @item @t{max-exports} -Defines the maximum number if +Defines the maximum number of @var{vcs_info_msg_*_} variables @var{vcs_info} will export. @kindex enable @item @t{enable} -A list of backends you want to use. Checked in the -@var{-init-} context. If this list contains an item called @t{NONE} no -backend is used at all and @var{vcs_info} will do nothing. If this list -contains @t{ALL} @var{vcs_info} will use all backends known to it. Only with -@t{ALL} in @t{enable}, the @t{disable} style has any effect. @t{ALL} and -@t{NONE} are actually tested case insensitively. +A list of backends you want to use. Checked in the @var{-init-} context. If +this list contains an item called @t{NONE} no backend is used at all and +@var{vcs_info} will do nothing. If this list contains @t{ALL} @var{vcs_info} +will use all known backends. Only with @t{ALL} in @t{enable} will the +@t{disable} style have any effect. @t{ALL} and @t{NONE} are case insensitive. @kindex disable @item @t{disable} -A list of VCSs, you don't want @var{vcs_info} to test for +A list of VCSs you don't want @var{vcs_info} to test for repositories (checked in the @var{-init-} context, too). Only used if @t{enable} contains @t{ALL}. @@ -30165,16 +31358,37 @@ zstyle ':vcs_info:*' disable-patterns "$HOME/.zsh(|/*)" @end example +@kindex use-quilt +@item @t{use-quilt} +If enabled, the @t{quilt} support code is active in `addon' mode. +See @t{Quilt Support} for details. + +@kindex quilt-standalone +@item @t{quilt-standalone} +If enabled, `standalone' mode detection is attempted if no VCS is active +in a given directory. See @t{Quilt Support} for details. + +@kindex quilt-patch-dir +@item @t{quilt-patch-dir} +Overwrite the value of the @var{$QUILT_PATCHES} environment variable. See +@t{Quilt Support} for details. + +@kindex quiltcommand +@item @t{quiltcommand} +When @t{quilt} itself is called in quilt support the value of this style +is used as the command name. + @kindex check-for-changes @item @t{check-for-changes} -If enabled, this style (currently only used by the @t{git} backend) causes the -@t{%c} and @t{%u} format escapes to be filled with information. The strings -filled into these escapes can be controlled via the @var{stagedstr} and -@var{unstagedstr} styles. +If enabled, this style causes the @t{%c} and @t{%u} format escapes to show +when the working directory has uncommitted changes. The strings displayed by +these escapes can be controlled via the @var{stagedstr} and @var{unstagedstr} +styles. The only backends that currently support this option are @t{git} and +@t{hg} (@t{hg} only supports unstaged). @noindent -Note, that the actions taken if this style is enabled are potentially expensive -(read: they take time, depending on how big the current repository is). +Note, the actions taken if this style is enabled are potentially expensive +(read: they may be slow, depending on how big the current repository is). Therefore, it is disabled by default. @kindex stagedstr @@ -30184,18 +31398,18 @@ @kindex unstagedstr @item @t{unstagedstr} -This string will be used in the @t{%u} escape if there are unstaged changes in -the repository. +This string will be used in the @t{%u} escape if there are unstaged changes +in the repository. @kindex command @item @t{command} This style causes @var{vcs_info} to use the supplied string as the command -to use as the vcs's binary. Note, that setting this in ':vcs_info:*' is +to use as the VCS's binary. Note, that setting this in ':vcs_info:*' is not a good idea. @noindent If the value of this style is empty (which is the default), the used binary -name is the name of the backend in use (e.g. @var{svn} is used in a @var{svn} +name is the name of the backend in use (e.g. @var{svn} is used in an @var{svn} repository). @noindent @@ -30204,8 +31418,8 @@ @noindent For example, this style can be used to use binaries from non-default -installation directories. Assume, @var{git} is installed in /usr/bin, but -your sysadmin installed a newer version in /usr/bin/local. Now, instead of +installation directories. Assume, @var{git} is installed in /usr/bin but +your sysadmin installed a newer version in /usr/bin/local. Instead of changing the order of your @t{$PATH} parameter, you can do this: @example zstyle ':vcs_info:git:*:-all-' command /usr/local/bin/git @@ -30218,8 +31432,8 @@ by Perforce. This is the only reliable way of doing this, but runs the risk of a delay if the server name cannot be found. If the server (more specifically, the @var{host}@t{:}@var{port} pair describing the -server) cannot be contacted its name is put into the associative array -@t{vcs_info_p4_dead_servers} and not contacted again during the session +server) cannot be contacted, its name is put into the associative array +@t{vcs_info_p4_dead_servers} and is not contacted again during the session until it is removed by hand. If you do not set this style, the @t{p4} backend is only usable if you have set the environment variable @t{P4CONFIG} to a file name and have corresponding files in the root @@ -30231,8 +31445,10 @@ If there are two different ways of gathering information, you can select the simpler one by setting this style to true; the default is to use the not-that-simple code, which is potentially a lot -slower but might be more accurate in all possible cases. This style is only -used by the @t{bzr} backend. +slower but might be more accurate in all possible cases. This style is +used by the @t{bzr} and @t{hg} backends. In the case of @t{hg} it will invoke +the external hexdump program to parse the binary dirstate cache file; this +method will not return the local revision number. @kindex get-revision @item @t{get-revision} @@ -30240,10 +31456,18 @@ a repository's work tree (currently for the @t{git} and @t{hg} backends, where this kind of information is not always vital). For @t{git}, the hash value of the currently checked out commit is available via the @t{%i} -expansion. With @t{hg}, the local revision number is available via @t{%i} -and the corresponding global hash is available via @t{%m}. -If this style is set in the @t{hg} context, the backend supports the -branchformat style. +expansion. With @t{hg}, the local revision number and the corresponding +global hash are available via @t{%i}. + +@kindex get-mq +@item @t{get-mq} +If set to true, the @t{hg} backend will look for a Mercurial Queue (@t{mq}) +patch directory. Information will be available via the `@t{%m}' replacement. + +@kindex get-bookmarks +@item @t{get-bookmarks} +If set to true, the @t{hg} backend will try to get a list of current +bookmarks. They will be available via the `@t{%m}' replacement. @kindex use-prompt-escapes @item @t{use-prompt-escapes} @@ -30251,6 +31475,16 @@ string from @var{vcs_info} includes prompt escapes. (Used by @t{vcs_info_lastmsg}.) +@kindex debug +@item @t{debug} +Enable debugging output to track possible problems. Currently this style +is only used by @var{vcs_info}'s hooks system. + +@kindex hooks +@item @t{hooks} +A list style that defines hook-function names. See @t{Hooks in vcs_info} +below for details. + @end table @noindent @@ -30259,15 +31493,15 @@ @noindent @table @asis @item @t{formats} -" (%s)-[%b|%a]-" +" (%s)-[%b]%u%c-" @item @t{actionformats} -" (%s)-[%b]-" +" (%s)-[%b|%a]%u%c-" @item @t{branchformat} -"%b:%r" (for bzr, svn and svk) +"%b:%r" (for bzr, svn, svk and hg) @item @t{nvcsformats} "" -@item @t{stgitformat} -" %p (%c)" +@item @t{hgrevformat} +"%r:%h" @item @t{max-exports} 2 @item @t{enable} @@ -30290,45 +31524,61 @@ false @item @t{get-revision} false +@item @t{get-mq} +true +@item @t{get-bookmarks} +false @item @t{use-prompt-escapes} true +@item @t{debug} +false +@item @t{hooks} +(empty list) +@item @t{use-quilt} +false +@item @t{quilt-standalone} +false +@item @t{quilt-patch-dir} +empty - use @var{$QUILT_PATCHES} +@item @t{quiltcommand} +quilt @end table @noindent -In normal @t{formats} and @t{actionformats}, the following replacements are +In normal @t{formats} and @t{actionformats} the following replacements are done: @noindent @table @asis @item @t{%s} -The vcs in use (git, hg, svn etc.) +The VCS in use (git, hg, svn, etc.). @item @t{%b} Information about the current branch. @item @t{%a} -An identifier, that describes the action. Only makes sense in -actionformats. +An identifier that describes the action. Only makes sense in +@var{actionformats}. @item @t{%i} -The current revision number or identifier. +The current revision number or identifier. For @t{hg} +the @var{hgrevformat} style may be used to customize the output. @item @t{%c} The string from the @var{stagedstr} style if there are staged changes in the repository. @item @t{%u} -The string from the @var{unstagedstr} style if there are unstaged -changes in the repository. +The string from the @var{unstagedstr} style if there are +unstaged changes in the repository. @item @t{%R} -base directory of the repository. +The base directory of the repository. @item @t{%r} -repository name. If @t{%R} is @var{/foo/bar/repoXY}, @t{%r} is -@var{repoXY}. +The repository name. If @t{%R} is @var{/foo/bar/repoXY}, @t{%r} +is @var{repoXY}. @item @t{%S} -subdirectory within a repository. If @t{$PWD} is -@var{/foo/bar/reposXY/beer/tasty}, @t{%S} is @var{beer/tasty}. +A subdirectory within a repository. If @t{$PWD} is +@var{/foo/bar/repoXY/beer/tasty}, @t{%S} is @var{beer/tasty}. @item @t{%m} -A "misc" replacement. It is at the discretion of the backend -to decide what this replacement expands to. It is currently used by -the @t{hg} and @t{git} backends. The @t{hg} backend replaces @t{%m} with the -global hash value of the current revision and the @t{git} backend replaces it -with the string from the @var{stgitformat} style. +A "misc" replacement. It is at the discretion of the backend to +decide what this replacement expands to. It is currently used by the @t{hg} +and @t{git} backends to display patch information from the @t{mq} and +@t{stgit} extensions. @end table @noindent @@ -30337,25 +31587,45 @@ @noindent @table @asis @item @t{%b} -the branch name +The branch name. @item @t{%r} -the current revision number +The current revision number or the @var{hgrevformat} style for +@t{hg}. @end table @noindent -In @t{stgitformat} these replacements are done: +In @t{hgrevformat} these replacements are done: + +@noindent +@table @asis +@item @t{%r} +The current local revision number. +@item @t{%h} +The current 40-character changeset ID hash identifier. +@end table + +@noindent +In @t{patch-format} and @t{nopatch-format} these replacements are done: @noindent @table @asis @item @t{%p} -the name of the patch currently on top of the stack +The name of the top-most applied patch. +@item @t{%u} +The number of unapplied patches. +@item @t{%n} +The number of applied patches. @item @t{%c} -the number of unapplied patches +The number of unapplied patches. +@item @t{%g} +The names of active @t{mq} guards (@t{hg} backend). +@item @t{%G} +The number of active @t{mq} guards (@t{hg} backend). @end table @noindent -Not all vcs backends have to support all replacements. For @t{nvcsformats} -no replacements are performed at all. It is just a string. +Not all VCS backends have to support all replacements. For @t{nvcsformats} +no replacements are performed at all, it is just a string. @noindent @@ -30365,7 +31635,7 @@ @noindent If you want to use the @t{%b} (bold off) prompt expansion in @var{formats}, which expands @t{%b} itself, use @t{%%b}. That will cause the @var{vcs_info} -expansion to replace @t{%%b} with @t{%b}. So zsh's prompt expansion +expansion to replace @t{%%b} with @t{%b}, so that zsh's prompt expansion mechanism can handle it. Similarly, to hand down @t{%b} from @var{branchformat}, use @t{%%%%b}. Sorry for this inconvenience, but it cannot be easily avoided. Luckily we do not clash with a lot of prompt @@ -30373,23 +31643,129 @@ @noindent -@subsection Function descriptions (public API) +@subsection Quilt Support +@noindent + +@noindent +@t{Quilt} is not a version control system, therefore this is not implemented +as a backend. It can help keeping track of a series of patches. People use it +to keep a set of changes they want to use on top of software packages (which +is tightly integrated into the package build process - the Debian project +does this for a large number of packages). Quilt can also help individual +developers keep track of their own patches on top of real version control +systems. + +@noindent +The @var{vcs_info} integration tries to support both ways of using quilt by +having two slightly different modes of operation: `addon' mode and +`standalone' mode). + +@noindent +For `addon' mode to become active @var{vcs_info} must have already detected a +real version control system controlling the directory. If that is the case, +a directory that holds quilt's patches needs to be found. That directory is +configurable via the @var{`QUILT_PATCHES'} environment variable. If that +variable exists its value is used, otherwise the value @t{`patches'} is +assumed. The value from @var{$QUILT_PATCHES} can be overwritten using the +@t{`quilt-patches'} style. (Note: you can use @var{vcs_info} to keep the value +of @var{$QUILT_PATCHES} correct all the time via the @t{post-quilt} hook). + +@noindent +When the directory in question is found, quilt is assumed to be active. To +gather more information, @var{vcs_info} looks for a directory called `.pc'; +Quilt uses that directory to track its current state. If this directory does +not exist we know that quilt has not done anything to the working directory +(read: no patches have been applied yet). + +@noindent +If patches are applied, @var{vcs_info} will try to find out which. If you want +to know which patches of a series are not yet applied, you need to activate +the @t{get-unapplied} style in the appropriate context. + +@noindent +@var{vcs_info} allows for very detailed control over how the gathered +information is presented (see the below sections, @t{Styles} and @t{Hooks in +vcs_info}), all of which are documented below. Note there are a number of +other patch tracking systems that work on top of a certain version control +system (like @t{stgit} for @t{git}, or @t{mq} for @t{hg}); the configuration +for systems like that are generally configured the same way as the @t{quilt} +support. + +@noindent +If the @t{quilt} support is working in `addon' mode, the produced string is +available as a simple format replacement (@var{%Q} to be precise), which can +be used in @t{formats} and @t{actionformats}; see below for details). + +@noindent +If, on the other hand, the support code is working in `standalone' mode, +@var{vcs_info} will pretend as if @t{quilt} were an actual version control +system. That means that the version control system identifier (which +otherwise would be something like `svn' or `cvs') will be set to +`@t{-quilt-}'. This has implications on the used style context where this +identifier is the second element. @var{vcs_info} will have filled in a proper +value for the "repository's" root directory and the string containing the +information about quilt's state will be available as the `misc' replacement +(and @var{%Q} for compatibility with `addon' mode. + +@noindent +What is left to discuss is how `standalone' mode is detected. The detection +itself is a series of searches for directories. You can have this detection +enabled all the time in every directory that is not otherwise under version +control. If you know there is only a limited set of trees where you would +like @var{vcs_info} to try and look for Quilt in `standalone' mode to minimise +the amount of searching on every call to @var{vcs_info}, there are a number of +ways to do that: + +@noindent +Essentially, `standalone' mode detection is controlled by a style called +`@t{quilt-standalone}'. It is a string style and its value can have different +effects. The simplest values are: `@t{always}' to run detection every time +@var{vcs_info} is run, and `@t{never}' to turn the detection off entirely. + +@noindent +If the value of @t{quilt-standalone} is something else, it is interpreted +differently. If the value is the name of a scalar variable the value of that +variable is checked and that value is used in the same `always'/`never' way +as described above. + +@noindent +If the value of @t{quilt-standalone} is an array, the elements of that array +are used as directory names under which you want the detection to be active. + +@noindent +If @t{quilt-standalone} is an associative array, the keys are taken as +directory names under which you want the detection to be active, but only if +the corresponding value is the string `@t{true}'. + +@noindent +Last, but not least, if the value of @t{quilt-standalone} is the name of a +function, the function is called without arguments and the return value +decides whether detection should be active. A `0' return value is true; a +non-zero return value is interpreted as false. + +@noindent +Note, if there is both a function and a variable by the name of +@t{quilt-standalone}, the function will take precedence. + +@noindent + +@subsection Function Descriptions (Public API) @noindent @noindent @table @asis @findex vcs_info @item @t{vcs_info} [@var{user-context}] -The main function, that runs all -backends and assembles all data into @var{$@{vcs_info_msg_*_@}}. This is the -function you want to call from @t{precmd} if you want to include up-to-date -information in your prompt (see Variable description below). If an argument -is given, that string will be used instead of @t{default} in the -user-context field of the style context. +The main function, that runs all backends and assembles all data into +@var{$@{vcs_info_msg_*_@}}. This is the function you want to call from +@t{precmd} if you want to include up-to-date information in your prompt (see +@t{Variable description} below). If an argument is given, that string will be +used instead of @t{default} in the @t{user-context} field of the style +context. @item @t{vcs_info_lastmsg} Outputs the last @var{$@{vcs_info_msg_*_@}} value. -Takes into account the value of the use-prompt-escapes style in +Takes into account the value of the @t{use-prompt-escapes} style in @var{':vcs_info:formats:command:-all-'}. It also only prints @t{max-exports} values. @@ -30411,15 +31787,15 @@ @noindent -@subsection Variable description +@subsection Variable Description @noindent @noindent @table @asis @item @t{$@{vcs_info_msg_N_@}} (Note the trailing underscore) -Where @var{N} is an integer, eg: @var{vcs_info_msg_0_} These variables +Where @var{N} is an integer, e.g., @var{vcs_info_msg_0_}. These variables are the storage for the informational message the last @var{vcs_info} call -has assembled. These are strongly connected to the formats, +has assembled. These are strongly connected to the @t{formats}, @t{actionformats} and @t{nvcsformats} styles described above. Those styles are lists. The first member of that list gets expanded into @var{$@{vcs_info_msg_0_@}}, the second into @var{$@{vcs_info_msg_1_@}} @@ -30433,11 +31809,238 @@ @noindent +@subsection Hooks in vcs_info +@noindent + +@noindent +Hooks are places in @var{vcs_info} where you can run your own code. That +code can communicate with the code that called it and through that, +change the system's behaviour. + +@noindent +For configuration, hooks change the style context: +@example +:vcs_info:+:: +@end example + +@noindent +To register functions to a hook, you need to list them in the @t{hooks} +style in the appropriate context. + +@noindent +Example: +@example +zstyle ':vcs_info:*+foo:*' hooks bar baz +@end example + +@noindent +This registers functions to the hook `foo' for all backends. In order to +avoid namespace problems, all registered function names are prepended by +a `+vi-', so the actual functions called for the `foo' hook are +`@t{+vi-bar}' and `@t{+vi-baz}'. + +@noindent +If something seems weird, you can enable the `debug' boolean style in +the proper context and the hook-calling code will print what it tried +to execute and whether the function in question existed. + +@noindent +When you register more than one function to a hook, all functions are +executed one after another until one function returns non-zero or until +all functions have been called. + +@noindent +You may pass data between functions via an associative array, @t{user_data}. +For example: +@example + ++vi-git-myfirsthook()@{ + user_data[myval]=$myval +@} ++vi-git-mysecondhook()@{ + # do something with $@{user_data[myval]@} +@} +@end example + +@noindent +There are a number of variables that are special in hook contexts: + +@noindent +@table @asis +@item @t{ret} +The return value that the hooks system will return to the caller. The +default is an integer `zero'. If and how a changed @t{ret} value changes +the execution of the caller depends on the specific hook. See the hook +documentation below for details. + +@item @t{hook_com} +An associated array which is used for bidirectional communication from +the caller to hook functions. The used keys depend on the specific hook. + +@item @t{context} +The active context of the hook. Functions that wish to change this +variable should make it local scope first. + +@item @t{vcs} +The current VCS after it was detected. The same values as in the +enable/disable style are used. Available in all hooks except @t{start-up}. + +@end table + +@noindent +Finally, the full list of currently available hooks: + +@noindent +@table @asis +@item @t{start-up} +Called after starting @var{vcs_info} but before the VCS in this directory is +determined. It can be used to deactivate @var{vcs_info} temporarily if +necessary. When @t{ret} is set to @var{1}, @var{vcs_info} aborts and does +nothing; when set to @var{2}, @var{vcs_info} sets up everything as if no +version control were active and exits. + +@item @t{pre-get-data} +Same as @t{start-up} but after the VCS was detected. + +@item @t{gen-hg-bookmark-string} +Called in the Mercurial backend when a bookmark string is generated; the +@t{get-revision} and @t{get-bookmarks} styles must be true. + +@noindent +This hook gets the names of the Mercurial bookmarks that +@var{vcs_info} collected from `hg'. + +@noindent +When setting @t{ret} to non-zero, the string in +@t{$@{hook_com[hg-bookmark-string]@}} will be used in the @var{%m} escape in +@t{formats} and @t{actionformats} and will be availabe in the global +@var{backend_misc} array as @t{$@{backend_misc[bookmarks]@}}. + +@item @t{gen-applied-string} +Called in the @t{git} (with @t{stgit}), and @t{hg} (with @t{mq}) backends +and in @t{quilt} support when the @var{applied-string} is generated; the +@t{use-quilt} zstyle must be true for @t{quilt} (the @t{mq} and @t{stgit} +backends are active by default). + +@noindent +This hook gets the names of all applied patches which @var{vcs_info} collected +so far in the opposite order, which means that the first argument is the +top-most patch and so forth. + +@noindent +When setting @t{ret} to non-zero, the string in +@t{$@{hook_com[applied-string]@}} will be used in the @var{%m} escape in +@t{formats} and @t{actionformats}; it will be available in the global +@var{backend_misc} array as @t{$backend_misc[patches]@}}; and it will be +available as @var{%p} in the @t{patch-format} and @t{nopatch-format} styles. + +@item @t{gen-unapplied-string} +Called in the @t{git} (with @t{stgit}), and @t{hg} (with @t{mq}) backend +and in @t{quilt} support when the @var{unapplied-string} is generated; the +@t{get-unapplied} style must be true. + +@noindent +This hook gets the names of all unapplied patches which @var{vcs_info} +collected so far in the opposite order, which mean that the first argument is +the patch next-in-line to be applied and so forth. + +@noindent +When setting @t{ret} to non-zero, the string in +@t{$@{hook_com[unapplied-string]@}} will be available as @var{%u} in the +@t{patch-format} and @t{nopatch-format} styles. + +@item @t{gen-mqguards-string} +Called in the @t{hg} backend when @t{guards-string} is generated; the +@t{get-mq} style must be true (default). + +@noindent +This hook gets the names of any active @t{mq} guards. + +@noindent +When setting @t{ret} to non-zero, the string in +@t{$@{hook_com[guards-string]@}} will be used in the @var{%g} escape in the +@t{patch-format} and @t{nopatch-format} styles. + +@item @t{post-quilt} +Called after the @t{quilt} support is done. The following information +is passed as arguments to the hook: 1. the quilt-support mode (`addon' or +`standalone'); 2. the directory that contains the patch series; 3. the +directory that holds quilt's status information (the `.pc' directory) or +the string @t{"-nopc-"} if that directory wasn't found. + +@noindent +The `hook_com' parameter is not used. + +@item @t{set-branch-format} +Called before `@t{branchformat}' is set. The only argument to the +hook is the format that is configured at this point. + +@noindent +The `@t{hook_com}' keys considered are `@t{branch}' and `@t{revision}'. +They are set to the values figured out so far by @var{vcs_info} and any +change will be used directly when the actual replacement is done. + +@noindent +If @t{ret} is set to to non-zero, the string in +@t{$@{hook_com[branch-replace]@}} will be used unchanged as the +`@t{%b}' replacement in the variables set by @var{vcs_info}. + +@item @t{set-hgrev-format} +Called before a `@t{hgrevformat}' is set. The only argument to the +hook is the format that is configured at this point. + +@noindent +The `@t{hook_com}' keys considered are `@t{hash}' and `@t{localrev}'. +They are set to the values figured out so far by @var{vcs_info} and any +change will be used directly when the actual replacement is done. + +@noindent +If @t{ret} is set to to non-zero, the string in +@t{$@{hook_com[rev-replace]@}} will be used unchanged as the +`@t{%i}' replacement in the variables set by @var{vcs_info}. + +@item @t{set-message} +Called each time before a `@t{vcs_info_msg_N_}' message is set. +It takes two arguments; the first being the `N' in the message +variable name, the second is the currently configured @t{formats} or +@t{actionformats}. + +@noindent +There are a number of `@t{hook_com}' keys, that are used here: +`@t{action}', `@t{branch}', `@t{base}', `@t{base-name}', `@t{subdir}', +`@t{staged}', `@t{unstaged}', `@t{revision}', `@t{misc}', `@t{vcs}' +and one `@t{miscN}' entry for each backend-specific data field (@t{N} +starting at zero). They are set to the values figured out so far by +@var{vcs_info} and any change will be used directly when the actual +replacement is done. + +@noindent +Since this hook is triggered multiple times (once for each configured +@t{formats} or @t{actionformats}), each of the `@t{hook_com}' keys mentioned +above (except for the @t{miscN} entries) has an `@t{_orig}' counterpart, +so even if you changed a value to your liking you can still get the +original value in the next run. Changing the `@t{_orig}' values is +probably not a good idea. + +@noindent +If @t{ret} is set to to non-zero, the string in +@t{$@{hook_com[message]@}} will be used unchanged as the message by +@var{vcs_info}. + +@end table + +@noindent +If all of this sounds rather confusing, take a look at the @t{Examples} +section below and also in the Misc/vcs_info-examples file in the Zsh source. +They contain some explanatory code. + +@noindent + @subsection Examples @noindent @noindent -Don't use @t{vcs_info} at all (even though it's in your prompt): +Don't use @var{vcs_info} at all (even though it's in your prompt): @example zstyle ':vcs_info:*' enable NONE @end example @@ -30462,6 +32065,17 @@ @end example @noindent +All @t{%x} expansion in all sorts of formats ("formats", "actionformats", +branchformat, you name it) are done using the `@t{zformat}' builtin from +the `@t{zsh/zutil}' module. That means you can do everything with these +@t{%x} items what zformat supports. In particular, if you want something +that is really long to have a fixed width, like a hash in a mercurial +branchformat, you can do this: @t{%12.12i}. That'll shrink the 40 character +hash to its 12 leading characters. The form is actually +`@t{%}@var{min}@t{.}@var{max}@t{x}'. More is possible. +See @ref{The zsh/zutil Module} for details. + +@noindent Use the quicker @t{bzr} backend @example zstyle ':vcs_info:bzr:*' use-simple true @@ -30477,18 +32091,127 @@ @end example @noindent -If you want colors, make sure you enclose the color codes in @t{%@{...%@}}, -if you want to use the string provided by @t{vcs_info} in prompts. +If you want colors, make sure you enclose the color codes in @t{%@{...%@}} +if you want to use the string provided by @var{vcs_info} in prompts. @noindent -Here is how to print the vcs information as a command (not in a prompt): +Here is how to print the VCS information as a command (not in a prompt): @example alias vcsi='vcs_info command; vcs_info_lastmsg' @end example @noindent This way, you can even define different formats for output via -@t{vcs_info_lastmsg} in the ':vcs_info:formats:command:*' namespace. +@t{vcs_info_lastmsg} in the ':vcs_info:*:command:*' namespace. + +@noindent +Now as promised, some code that uses hooks: +say, you'd like to replace the string `svn' by `subversion' in +@var{vcs_info}'s @t{%s} @t{formats} replacement. + +@noindent +First, we will tell @var{vcs_info} to call a function when populating +the message variables with the gathered information: +@example +zstyle ':vcs_info:*+set-message:*' hooks svn2subversion +@end example + +@noindent +Nothing happens. Which is reasonable, since we didn't define the actual +function yet. To see what the hooks subsystem is trying to do, enable the +`@t{debug}' style: +@example +zstyle ':vcs_info:*+*:*' debug true +@end example + +@noindent +That should give you an idea what is going on. Specifically, the function +that we are looking for is `@t{+vi-svn2subversion}'. Note, the `@t{+vi-}' +prefix. So, everything is in order, just as documented. When you are done +checking out the debugging output, disable it again: +@example +zstyle ':vcs_info:*+*:*' debug false +@end example + +@noindent +Now, let's define the function: +@example + +function +vi-svn2subversion() @{ + [[ $@{hook_com[vcs_orig]@} == svn ]] && hook_com[vcs]=subversion +@} +@end example + +@noindent +Simple enough. And it could have even been simpler, if only we had +registered our function in a less generic context. If we do it only in +the `@t{svn}' backend's context, we don't need to test which the active +backend is: +@example +zstyle ':vcs_info:svn+set-message:*' hooks svn2subversion +@end example +@example + +function +vi-svn2subversion() @{ + hook_com[vcs]=subversion +@} +@end example + +@noindent +And finally a little more elaborate example, that uses a hook to create +a customised bookmark string for the @t{hg} backend. + +@noindent +Again, we start off by registering a function: +@example +zstyle ':vcs_info:hg+gen-hg-bookmark-string:*' hooks hgbookmarks +@end example + +@noindent +And then we define the `@t{+vi-hgbookmarks} function: +@example + +function +vi-hgbookmarks() @{ + # The default is to connect all bookmark names by + # commas. This mixes things up a little. + # Imagine, there's one type of bookmarks that is + # special to you. Say, because it's *your* work. + # Those bookmarks look always like this: "sh/*" + # (because your initials are sh, for example). + # This makes the bookmarks string use only those + # bookmarks. If there's more than one, it + # concatenates them using commas. + local s i + # The bookmarks returned by `hg' are available in + # the functions positional parameters. + (( $# == 0 )) && return 0 + for i in "$@@"; do + if [[ $i == sh/* ]]; then + [[ -n $s ]] && s=$s, + s=$@{s@}$i + fi + done + # Now, the communication with the code that calls + # the hook functions is done via the hook_com[] + # hash. The key, at which the `gen-hg-bookmark-string' + # hook looks at is `hg-bookmark-string'. So: + hook_com[hg-bookmark-string]=$s + # And to signal, that we want to use the sting we + # just generated, set the special variable `ret' to + # something other than the default zero: + ret=1 + return 0 +@} + +@end example + +@noindent +Some longer examples and code snippets which might be useful are available in +the examples file located at Misc/vcs_info-examples in the Zsh source +directory. + +@noindent +This concludes our guided tour through zsh's @var{vcs_info}. @noindent @node Prompt Themes, ZLE Functions, Version Control Information, User Contributions @@ -31084,7 +32807,7 @@ character U+0180, the set of special characters less so. However, it it is very sporadic from that point. Adding new characters is easy, however; see the function @t{define-composed-chars}. Please send any -additions to @t{zsh-workers@@sunsite.dk}. +additions to @t{zsh-workers@@zsh.org}. @noindent The codes for the second character when used to accent the first are as @@ -31165,7 +32888,7 @@ Characters found in various variants of the Latin alphabet: @table @asis @item @t{ss} -Eszett (scafes S) +Eszett (scharfes S) @item @t{D-}, @t{d-} Eth @item @t{TH}, @t{th} @@ -31517,7 +33240,7 @@ @tindex replace-pattern @item @t{replace-string}, @t{replace-pattern} @itemx @t{replace-string-again}, @t{replace-pattern-again} -The function @t{replace-string} implements two widgets. +The function @t{replace-string} implements three widgets. If defined under the same name as the function, it prompts for two strings; the first (source) string will be replaced by the second everywhere it occurs in the line editing buffer. @@ -31525,7 +33248,7 @@ @noindent If the widget name contains the word `@t{pattern}', for example by defining the widget using the command `@t{zle -N replace-pattern -replace-string}', then the replacement is done by pattern matching. All +replace-string}', then the matching is performed using zsh patterns. All zsh extended globbing patterns can be used in the source string; note that unlike filename generation the pattern does not need to match an entire word, nor do glob qualifiers have any effect. In addition, the @@ -31537,6 +33260,13 @@ digits. @noindent +If the widget instead contains the word `@t{regex}' (or `@t{regexp}'), +then the matching is performed using regular expressions, respecting +the setting of the option @t{RE_MATCH_PCRE} (see the description of the +function @t{regexp-replace} below). The special replacement facilities +described above for pattern matching are available. + +@noindent By default the previous source or replacement string will not be offered for editing. However, this feature can be activated by setting the style @t{edit-previous} in the context @t{:zle:}@var{widget} (for example, @@ -31545,12 +33275,12 @@ zero argument forces them not to be. @noindent -The function @t{replace-string-again} can be used to repeat the -previous replacement; no prompting is done. As with @t{replace-string}, if -the name of the widget contains the word `@t{pattern}', pattern matching -is performed, else a literal string replacement. Note that the -previous source and replacement text are the same whether pattern or string -matching is used. +The function @t{replace-string-again} can be used to repeat the previous +replacement; no prompting is done. As with @t{replace-string}, if the name +of the widget contains the word `@t{pattern}' or `@t{regex}', pattern or +regular expression matching is performed, else a literal string +replacement. Note that the previous source and replacement text are the +same whether pattern, regular expression or string matching is used. @noindent For example, starting from the line: @@ -31612,6 +33342,25 @@ @t{auto-previous} is unset or false (the default), the widget must be invoked repeatedly in order to search earlier history lines. +@tindex transpose-lines +@item @t{transpose-lines} +Only useful with a multi-line editing buffer; the lines here are +lines within the current on-screen buffer, not history lines. +The effect is similar to the function of the same name in Emacs. + +@noindent +Transpose the current line with the previous line and move the cursor +to the start of the next line. Repeating this (which can be done by +providing a positive numeric prefix argument) has the effect of moving +the line above the cursor down by a number of lines. + +@noindent +With a negative numeric prefix argument, requires two lines above the +cursor. These two lines are transposed and the cursor moved to the +start of the previous line. Using a numeric prefix less than -1 +has the effect of moving the line above the cursor up by minus that +number of lines. + @tindex which-command @item @t{which-command} This function is a drop-in replacement for the builtin widget @@ -32017,7 +33766,7 @@ @findex zsh-mime-setup @findex zsh-mime-handler @item @t{zsh-mime-setup} [ @t{-fv} ] [ @t{-l} [ @var{suffix ...} ] ] -@itemx @t{zsh-mime-handler} +@itemx @t{zsh-mime-handler [-l] @var{command arguments ...}} These two functions use the files @t{~/.mime.types} and @t{/etc/mime.types}, which associate types and extensions, as well as @t{~/.mailcap} and @t{/etc/mailcap} files, which associate types and the programs that @@ -32261,6 +34010,13 @@ text/html; /usr/bin/lynx '%s'; needsterminal @end example +@noindent +Running `@t{zsh-mime-handler -l} @var{command line}' prints the command +line that would be executed, simplified to remove the effect of any +flags, and quoted so that the output can be run as a complete zsh +command line. This is used by the completion system to decide how to +complete after a file handled by @t{zsh-mime-setup}. + @findex pick-web-browser @item @t{pick-web-browser} This function is separate from the two MIME functions described above @@ -32684,6 +34440,31 @@ @noindent See also the @t{pager}, @t{prompt} and @t{rprompt} styles below. +@findex regexp-replace +@item @t{regexp-replace} @var{var} @var{regexp} @var{replace} +Use regular expressions to perform a global search and replace operation +on a variable. If the option @t{RE_MATCH_PCRE} is not set, POSIX +extended regular expressions are used, else Perl-compatible regular +expressions (this requires the shell to be linked against the @t{pcre} +library). + +@noindent +@var{var} is the name of the variable containing the string to be matched. +The variable will be modified directly by the function. The +variables @t{MATCH}, @t{MBEGIN}, @t{MEND}, @t{match}, @t{mbegin}, @t{mend} +should be avoided as these are used by the regular expression code. + +@noindent +@var{regexp} is the regular expression to match against the string. + +@noindent +@var{replace} is the replacement text. This can contain parameter, command +and arithmetic expressions which will be replaced: in particular, a +reference to @t{$MATCH} will be replaced by the text matched by the pattern. + +@noindent +The return status is 0 if at least one match was performed, else 1. + @findex run-help @item @t{run-help} @var{cmd} This function is designed to be invoked by the @t{run-help} ZLE widget, @@ -32691,7 +34472,7 @@ (@ref{Utilities}) for setup instructions. @noindent -In the discussion which follows, if @var{cmd} is a filesystem path, it is +In the discussion which follows, if @var{cmd} is a file system path, it is first reduced to its rightmost component (the file name). @noindent diff -Nru zsh-4.3.10/Doc/zshzftpsys.1 zsh-4.3.11/Doc/zshzftpsys.1 --- zsh-4.3.10/Doc/zshzftpsys.1 2009-06-01 11:00:21.000000000 +0200 +++ zsh-4.3.11/Doc/zshzftpsys.1 2010-12-20 16:00:45.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHZFTPSYS" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHZFTPSYS" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshzftpsys \- zftp function front\-end .\" Yodl file: Zsh/zftpsys.yo @@ -216,8 +216,7 @@ suppresses remote filename expansion which would otherwise be performed (see below for a more detailed description of that)\&. \fB\-t\fP attempts to set the modification time of the local file to that of the remote file: -this requires version 5 of \fBperl\fP, see the description of the function -\fBzfrtime\fP below for more information\&. +see the description of the function \fBzfrtime\fP below for more information\&. .PP .PD 0 .TP @@ -467,13 +466,9 @@ \fBzfrtime \fIlfile\fP \fIrfile\fP [ \fItime\fP ]\fP Set the local file \fIlfile\fP to have the same modification time as the remote file \fIrfile\fP, or the explicit time \fItime\fP in FTP format -\fBCCYYMMDDhhmmSS\fP for the GMT timezone\&. -.RS -.PP -Currently this requires \fBperl\fP version 5 to perform the conversion from -GMT to local time\&. This is unfortunately difficult to do using shell code -alone\&. -.RE +\fBCCYYMMDDhhmmSS\fP for the GMT timezone\&. This uses the shell\&'s +\fBzsh/datetime\fP module to perform the conversion from +GMT to local time\&. .TP \fBzftp_chpwd\fP This function is called every time a connection is opened, or closed, or diff -Nru zsh-4.3.10/Doc/zshzle.1 zsh-4.3.11/Doc/zshzle.1 --- zsh-4.3.10/Doc/zshzle.1 2009-06-01 11:00:22.000000000 +0200 +++ zsh-4.3.11/Doc/zshzle.1 2010-12-20 16:00:45.000000000 +0100 @@ -1,4 +1,4 @@ -.TH "ZSHZLE" "1" "June 1, 2009" "zsh 4\&.3\&.10" +.TH "ZSHZLE" "1" "December 20, 2010" "zsh 4\&.3\&.11" .SH "NAME" zshzle \- zsh command line editor .\" Yodl file: Zsh/zle.yo @@ -124,7 +124,7 @@ .PD 0 .TP .PD 0 -\fBbindkey\fP [ \fIoptions\fP ] \fB\-l\fP +\fBbindkey\fP [ \fIoptions\fP ] \fB\-l\fP [ \fB\-L\fP ] [ \fIkeymap\fP \&.\&.\&. ] .TP .PD 0 \fBbindkey\fP [ \fIoptions\fP ] \fB\-d\fP @@ -152,24 +152,30 @@ .TP .PD \fBbindkey\fP [ \fIoptions\fP ] [ \fIin\-string\fP ] -\fBbindkey\fP\&'s options can be divided into three categories: keymap selection, -operation selection, and others\&. The keymap selection options are: +\fBbindkey\fP\&'s options can be divided into three categories: keymap +selection for the current command, operation selection, and others\&. The +keymap selection options are: .RS .PP .PD 0 .TP .PD \fB\-e\fP -Selects keymap `\fBemacs\fP\&', and also links it to `\fBmain\fP'\&. +Selects keymap `\fBemacs\fP\&' for any operations by the current command, +and also links `\fBemacs\fP\&' to `\fBmain\fP' so that it is selected by +default the next time the editor starts\&. .TP \fB\-v\fP -Selects keymap `\fBviins\fP\&', and also links it to `\fBmain\fP'\&. +Selects keymap `\fBviins\fP\&' for any operations by the current command, +and also links `\fBviins\fP\&' to `\fBmain\fP' so that it is selected by default +the next time the editor starts\&. .TP \fB\-a\fP -Selects keymap `\fBvicmd\fP\&'\&. +Selects keymap `\fBvicmd\fP\&' for any operations by the current command\&. .TP \fB\-M\fP \fIkeymap\fP -The \fIkeymap\fP specifies a keymap name\&. +The \fIkeymap\fP specifies a keymap name that is selected for any +operations by the current command\&. .PP If a keymap selection is required and none of the options above are used, the `\fBmain\fP\&' keymap is used\&. Some operations do not permit a keymap to be @@ -179,9 +185,18 @@ .TP .PD \fB\-l\fP -List all existing keymap names\&. If the \fB\-L\fP -option is also used, list in the form of \fBbindkey\fP -commands to create the keymaps\&. +List all existing keymap names; if any arguments are given, list just +those keymaps\&. +.RS +.PP +If the \fB\-L\fP option is also used, list in the form of \fBbindkey\fP +commands to create or link the keymaps\&. `\fBbindkey \-lL +main\fP\&' shows which keymap is linked to `\fBmain\fP', if any, and hence if +the standard emacs or vi emulation is in effect\&. This option does +not show the \fB\&.safe\fP keymap because it cannot be created in that +fashion; however, neither is `\fBbindkey \-lL \&.safe\fP\&' reported as an +error, it simply outputs nothing\&. +.RE .TP \fB\-d\fP Delete all existing keymaps and reset to the default state\&. @@ -683,7 +698,7 @@ in keymaps are bound to are in fact widgets\&. Widgets can be user\-defined or built in\&. .PP -The standard widgets built in to ZLE are listed in Standard Widgets below\&. +The standard widgets built into ZLE are listed in Standard Widgets below\&. Other built\-in widgets can be defined by other modules (see \fIzshmodules\fP(1))\&. Each built\-in widget has two names: its normal canonical name, and the same name preceded by a `\fB\&.\fP\&'\&. The `\fB\&.\fP' name is special: it can't be @@ -753,8 +768,8 @@ cursor being moved to the appropriate end of the buffer\&. .TP \fBCUTBUFFER\fP (scalar) -The last item to be cut using one of the `\fBkill\-\fP\&' commands; the -string which the next yank would insert in the line\&. Later entries in +The last item cut using one of the `\fBkill\-\fP\&' commands; the string +which the next yank would insert in the line\&. Later entries in the kill ring are in the array \fBkillring\fP\&. Note that the command `\fBzle copy\-region\-as\-kill\fP \fIstring\fP\&' can be used to set the text of the cut buffer from a shell function and cycle the kill @@ -831,7 +846,7 @@ \fBPREDISPLAY\fP (scalar) Text to be displayed before the start of the editable text buffer\&. This does not have to be a complete line; to display a complete line, a newline -must be appended explicitly\&. The text is reset on each new invocation +must be appended explicitly\&. The text is reset on each new invocation (but not recursive invocation) of zle\&. .TP \fBPOSTDISPLAY\fP (scalar) @@ -914,6 +929,19 @@ executed; the second argument that followed \fBzle \-C\fP when the widget was defined\&. This is the name of a builtin completion widget\&. For widgets defined with \fBzle \-N\fP this is set to the empty string\&. Read\-only\&. +.TP +\fBZLE_STATE\fP (scalar) +Contains a set of space\-separated words that describe the current \fBzle\fP +state\&. +.RS +.PP +Currently, the only state shown is the insert mode as set by the +\fBoverwrite\-mode\fP or \fBvi\-replace\fP widgets\&. The string contains +`\fBinsert\fP\&' if characters to be inserted on the command line move existing +characters to the right, `\fBoverwrite\fP\&' if characters to be inserted +overwrite existing characters\&. +.RE +.RE .PP .SS "Special Widgets" .PP @@ -924,6 +952,36 @@ .PD 0 .TP .PD +\fBzle\-isearch\-exit\fP +Executed at the end of incremental search at the point where the isearch +prompt is removed from the display\&. See \fBzle\-isearch\-update\fP for +an example\&. +.TP +\fBzle\-isearch\-update\fP +Executed within incremental search when the display is about to be +redrawn\&. Additional output below the incremental search prompt can be +generated by using `\fBzle \-M\fP\&' within the widget\&. For example, +.RS +.PP +.RS +.nf +\fBzle\-isearch\-update() { zle \-M "Line $HISTNO"; } +zle \-N zle\-isearch\-update\fP +.fi +.RE +.PP +Note the line output by `\fBzle \-M\fP\&' is not deleted on exit from +incremental search\&. This can be done from a \fBzle\-isearch\-exit\fP +widget: +.PP +.RS +.nf +\fBzle\-isearch\-exit() { zle \-M ""; } +zle \-N zle\-isearch\-exit\fP +.fi +.RE +.RE +.TP \fBzle\-line\-init\fP Executed every time the line editor is started to read a new line of input\&. The following example puts the line editor into vi command @@ -955,7 +1013,7 @@ The value \fB$KEYMAP\fP within the function reflects the new keymap\&. The old keymap is passed as the sole argument\&. .PP -This can been used for detecting switches between the vi command +This can be used for detecting switches between the vi command (\fBvicmd\fP) and insert (usually \fBmain\fP) keymaps\&. .RE .RE @@ -1152,7 +1210,8 @@ setting, will stop the search and go back to the original line\&. An undefined key will have the same effect\&. Note that the following always perform the same task within incremental searches and cannot be -replaced by user defined widgets\&. The supported functions are: +replaced by user defined widgets, nor can the set of functions +be extended\&. The supported functions are: .PP .PD 0 .TP @@ -1232,11 +1291,10 @@ Repeat the search\&. The direction of the search is indicated in the mini\-buffer\&. .PP -Any multi\-character string that is not bound to one of the above functions -will beep and interrupt the search, leaving the last found line in the -buffer\&. Any single character that is not bound to one of the above -functions, or \fBself\-insert\fP or \fBself\-insert\-unmeta\fP, will have the same -effect but the function will be executed\&. +Any character that is not bound to one of the above functions, or +\fBself\-insert\fP or \fBself\-insert\-unmeta\fP, will cause the mode to be +exited\&. The character is then looked up and executed in the keymap in +effect at that point\&. .PP When called from a widget function by the \fBzle\fP command, the incremental search commands can take a string argument\&. This will be treated as a @@ -1360,11 +1418,11 @@ .PP When called from a shell function invoked from a user\-defined widget, the command can take one to three arguments\&. The first argument specifies a -history offset which applies to successive calls to this widget: if is \-1, +history offset which applies to successive calls to this widget: if it is \-1, the default behaviour is used, while if it is 1, successive calls will move forwards through the history\&. The value 0 can be used to indicate that the history line examined by the previous execution of the command will be -reexamined\&. Note that negative numbers should be preceded with a +reexamined\&. Note that negative numbers should be preceded by a `\fB\-\fP\fB\-\fP\&' argument to avoid confusing them with options\&. .PP If two arguments are given, the second specifies the word on the command @@ -1846,7 +1904,10 @@ mini\-buffer\&. Keys are looked up in the special \fBcommand\fP keymap, and if not found there in the main keymap\&. An interrupt signal, as defined by the stty setting, will -abort the function\&. The allowed functions are: +abort the function\&. Note that the following always +perform the same task within the \fBexecuted\-named\-cmd\fP environment and +cannot be replaced by user defined widgets, nor can the set of functions +be extended\&. The allowed functions are: \fBbackward\-delete\-char\fP, \fBvi\-backward\-delete\-char\fP, \fBclear\-screen\fP, @@ -2001,7 +2062,8 @@ \fBsend\-break\fP (^G ESC\-^G) (unbound) (unbound) Abort the current editor function, e\&.g\&. \fBexecute\-named\-command\fP, or the editor itself, e\&.g\&. if you are in \fBvared\fP\&. Otherwise abort the parsing of -the current line\&. +the current line; in this case the aborted line is available in the shell +variable \fBZLE_LINE_ABORTED\fP\&. .TP \fBrun\-help\fP (ESC\-H ESC\-h) (unbound) (unbound) Push the buffer onto the buffer stack, and execute the @@ -2114,6 +2176,14 @@ Individual characters that have no direct printable representation but are shown in a special manner by the line editor\&. These characters are described below\&. +.TP +\fBsuffix\fP +This context is used in completion for characters that are +marked as suffixes that will be removed if the completion ends +at that point, the most obvious example being a slash (\fB/\fP) after +a directory name\&. Note that suffix removal is configurable; the +circumstances under which the suffix will be removed may differ +for different completions\&. .PP \fBzle_highlight\fP may contain additional fields for controlling how terminal sequences to change colours are output\&. Each of the following is @@ -2187,6 +2257,7 @@ .TP \fBbold\fP The characters in the given context are shown in a bold font\&. +Not all terminals distinguish bold fonts\&. .TP \fBstandout\fP The characters in the given context are shown in the terminal\&'s standout @@ -2227,6 +2298,22 @@ character set; this may or may not be Unicode, depending on the operating system\&. .RE +.TP +Invalid multibyte characters +If the \fBMULTIBYTE\fP option is in effect, any sequence of one or more +bytes that does not form a valid character in the current character +set is treated as a series of bytes each shown as a special character\&. +This case can be distinguished from other unprintable characters +as the bytes are represented as two hexadecimal digits between angle +brackets, as distinct from the four or eight digits that are used for +unprintable characters that are nonetheless valid in the current +character set\&. +.RS +.PP +Not all systems support this: for it to work, the system\&'s representation of +wide characters must be code values from the Universal Character Set, +as defined by IS0 10646 (also known as Unicode)\&. +.RE .RE .PP If \fBzle_highlight\fP is not set or no value applies to a particular @@ -2235,7 +2322,7 @@ .RS .nf \fBzle_highlight=(region:standout special:standout -isearch:underline)\fP +suffix:bold isearch:underline)\fP .fi .RE .PP diff -Nru zsh-4.3.10/Etc/changelog2html.pl zsh-4.3.11/Etc/changelog2html.pl --- zsh-4.3.10/Etc/changelog2html.pl 2003-06-20 12:46:53.000000000 +0200 +++ zsh-4.3.11/Etc/changelog2html.pl 2009-10-22 11:28:06.000000000 +0200 @@ -1,7 +1,7 @@ #!/usr/bin/perl -w # This programme turns the ChangeLog into changelog.html for display -# on the website. That lives at http://zsh.sunsite.dk/Etc/changelog.html. +# on the website. That lives at http://zsh.sourceforge.net/Etc/changelog.html. my $out = "changelog.html"; diff -Nru zsh-4.3.10/Etc/CONTRIBUTORS zsh-4.3.11/Etc/CONTRIBUTORS --- zsh-4.3.10/Etc/CONTRIBUTORS 2009-05-22 19:38:20.000000000 +0200 +++ zsh-4.3.11/Etc/CONTRIBUTORS 2010-12-17 18:10:27.000000000 +0100 @@ -4,7 +4,7 @@ Zsh was originally written by Paul Falstad . Zsh is now maintained by the members of the zsh-workers mailing list -. The development is currently coordinated +. The development is currently coordinated by Peter Stephenson . This file credits only the major contributors to the current release. @@ -13,7 +13,7 @@ are included for disambiguation purposes only, and are not guaranteed to be currently accurate. If you feel that you or someone else have been unfairly omitted from this list please mail the list -. +. Version 4.3 ----------- @@ -29,22 +29,23 @@ The VCS_Info function system was written by Frank Terbeck with contributions from Julien Langer. -Contributors to completion and other shell functions include those above -plus Nuno Alexandre, Ralph Amissah, Micah Anderson, arno, Frank Benkstein, -Jay Berkenbilt, Frank Blendinger, Zack Cerza, Brendan Cully, Baptiste -Daroussin, Danek Duvall, Ryan F, Sean Finney, Daniel Friesel, Alexey -I. Froloff, Tobias Gruetzmacher, Pierre Habouzit, Richard Hartmann, -Benjamin R. Haskell, Ag. D. Hatzimanikas, Pete Hollobon, Erik Johansson, -Kohsuke Kawaguchi, Dough Kearns, Hannu Koivisto, Henryk Konsek, Chris Lamb, -Vincent Lefevre, Roger Leigh, Eric Mangold, Max Mikhanosha, Arkadiusz -Miskiewicz, Matthieu Moy, Scott Murray, Alexander Myodov, Kalle Olavi -Niemitalo, Kazuhiro NISHIYAMA, Omari Norman, Mustafa Oezkan, Tomasz Pala, -Peter Palfrader, Carlos Phillips, Daniel Qarras, Jean-Baptiste Quenot, -David Riebenbauer, Haakon Riiser, Ingo Rohlfs, Felix Rosencrantz, Simon -Ruderich, Stephen Rüger, William Scott, Kris Shannon, Jörg Sommer, Travis -Spencer, Vincent Steman, Mårten Svantesson, Evgenii Terechkov, Magnus -Therning, Ingmar Vanhassel, Markus Waldeck, Motoi Washida, Nikolai Weibull, -Jesse Weinstein. +Contributors to documentation and to completion and other shell +functions include those above plus Nuno Alexandre, Ralph Amissah, Micah +Anderson, arno, Frank Benkstein, Jay Berkenbilt, Frank Blendinger, Zack +Cerza, Brendan Cully, Baptiste Daroussin, Danek Duvall, Ryan F, Sean +Finney, Daniel Friesel, Alexey I. Froloff, Tobias Gruetzmacher, Pierre +Habouzit, Richard Hartmann, Benjamin R. Haskell, Ag. D. Hatzimanikas, +Pete Hollobon, Erik Johansson, Kohsuke Kawaguchi, Dough Kearns, Hannu +Koivisto, Henryk Konsek, Chris Lamb, Vincent Lefevre, Roger Leigh, Eric +Mangold, Max Mikhanosha, Arkadiusz Miskiewicz, Matthieu Moy, Scott +Murray, Alexander Myodov, Štěpán Němec, Kalle Olavi Niemitalo, Kazuhiro +NISHIYAMA, Omari Norman, Mustafa Oezkan, Tomasz Pala, Peter Palfrader, +Carlos Phillips, Daniel Qarras, Jean-Baptiste Quenot, David Riebenbauer, +Haakon Riiser, Ingo Rohlfs, Felix Rosencrantz, Simon Ruderich, Stephen +Rüger, William Scott, Kris Shannon, Jörg Sommer, Travis Spencer, Vincent +Steman, Mårten Svantesson, Evgenii Terechkov, Magnus Therning, Ingmar +Vanhassel, Markus Waldeck, Motoi Washida, Nikolai Weibull, Jesse +Weinstein. Version 4.2 ----------- diff -Nru zsh-4.3.10/Etc/FAQ zsh-4.3.11/Etc/FAQ --- zsh-4.3.10/Etc/FAQ 2009-04-24 11:14:52.000000000 +0200 +++ zsh-4.3.11/Etc/FAQ 2010-12-16 11:19:20.000000000 +0100 @@ -1,9 +1,9 @@ Archive-Name: unix-faq/shell/zsh -Last-Modified: 2005/12/14 +Last-Modified: 2010/02/15 Submitted-By: pws@pwstephenson.fsnet.co.uk (Peter Stephenson) Posting-Frequency: Monthly -Copyright: (C) P.W. Stephenson, 1995--2005 (see end of document) +Copyright: (C) P.W. Stephenson, 1995--2010 (see end of document) This document contains a list of frequently-asked (or otherwise significant) questions concerning the Z-shell, a command interpreter @@ -49,7 +49,7 @@ 3.5. How do I get the Meta key to work on my xterm? 3.6. How do I automatically display the directory in my xterm title bar? 3.7. How do I make the completion list use eight bit characters? -3.8. Why do the cursor (arrow) keys not work? +3.8. Why do the cursor (arrow) keys not work? (And other terminal oddities.) 3.9. Why does my terminal act funny in some way? 3.10. Why does zsh not work in an Emacs shell mode any more? 3.11. Why do my autoloaded functions not autoload [the first time]? @@ -100,17 +100,17 @@ 1.1: Sources of information Information on zsh is available via the World Wide Web. The URL - is http://sunsite.dk/zsh/ . + is http://zsh.sourceforge.net/ . The server provides this FAQ and much else and is - now maintained by Karsten Thygesen and others (mail zsh@sunsite.dk - with any related messages). The FAQ is at http://sunsite.dk/zsh/FAQ/ . + now maintained by the zsh workers (email zsh-workers@zsh.org). + The FAQ is at http://zsh.sourceforge.net/FAQ/ . The site also contains some contributed zsh scripts and functions; we are delighted to add more, or simply links to your own collection. This document was originally written in YODL, allowing it to be converted easily into various other formats. The master source file lives at - http://sunsite.dk/zsh/FAQ/zshfaq.yo and the plain text version - can be found at http://sunsite.dk/zsh/FAQ/zshfaq.txt . + http://zsh.sourceforge.net/FAQ/zshfaq.yo and the plain text version + can be found at http://zsh.sourceforge.net/FAQ/zshfaq.txt . Another useful source of information is the collection of FAQ articles posted frequently to the Usenet news groups comp.unix.questions, @@ -134,7 +134,7 @@ I have put together a user guide to complement the manual by explaining the most useful features of zsh in a more easy to read way. This can be found at the zsh web site: - http://zsh.sunsite.dk/Guide/ + http://zsh.sourceforge.net/Guide/ (As a method of reading the following in Emacs, you can type \M-2 \C-x $ to make all the indented text vanish, then \M-0 \C-x $ @@ -232,13 +232,12 @@ 1.5: What's the latest version? Zsh 4.2.7 is the latest production version. The latest development - version is 4.3.10; this contains support for multibyte character strings + version is 4.3.11; this contains support for multibyte character strings (such as UTF-8 locales). All the main features for multibyte - support are now in place, although there is some debugging work - still to be done. + support are now in place and this is likely soon to become the + stable series 4.4. - There will not be any further 4.0 releases now that 4.2 has become - the stable version. + There will not be any further 4.2 releases. A beta of the next version is sometimes available. Development of zsh is patch by patch, with each intermediate version publicly available. Note @@ -287,15 +286,16 @@ UK ftp://sunsite.org.uk/packages/zsh/ USA http://zsh.open-mirror.com/ - A Windows port used to be maintaiend by Amol Deshpandem based on 3.0.5, - but this is rather out of date and hard to find. Various other - attempts have been made to port zsh to Windows but I am not aware - of any current native Windows version. All recent releases of zsh - compile under Cygwin, a freely available UNIX-style environment for the - Win32 API, and a pre-compiled version of zsh can be downloaded by - the Cygwin installer. You can find information about this at - http://www.cygwin.com/. Please email - zsh-workers@sunsite.dk if you have information about other ports. + A Windows port was created by Amol Deshpandem based on 3.0.5 (which + is now rather old). This has now been restored and can be found at + http://zsh-nt.sourceforge.net/. + + All recent releases of zsh compile under Cygwin, a freely available + UNIX-style environment for the Win32 API, and a pre-compiled version of + zsh can be downloaded by the Cygwin installer. You can find information + about this at http://www.cygwin.com/. + Please email zsh-workers@zsh.org if you have information about + other ports. Starting from mid-October 1997, there is an archive of patches sent to the maintainers' mailing list. Note that these may not all be @@ -305,7 +305,7 @@ archive. It can be found on the zsh WWW pages (as described in 1.1) at: - http://sunsite.dk/zsh/Patches/ + http://zsh.sourceforge.net/Patches/ 1.7: I don't have root access: how do I make zsh my login shell? @@ -488,10 +488,11 @@ occurred somewhere in the path (e.g. `users/barstaff/foo' will be excluded by the `~' operator). As the `**' operator cannot be grouped (inside parentheses it is treated as `*'), this is - the way to exclude some subdirectories from matching a `**'. + one way to exclude some subdirectories from matching a `**'. + The form (^foo/)# also works. o Unquoted assignments do file expansion after `:'s (intended for PATHs). - o `typeset' and `integer' have special behaviour for + o * `typeset' and `integer' have special behaviour for assignments in ksh, but not in zsh. For example, this doesn't work in zsh: @@ -505,7 +506,7 @@ o * There is no $ENV variable (use /etc/zshrc, ~/.zshrc; note also $ZDOTDIR). - o $PATH is not searched for commands specified + o * $PATH is not searched for commands specified at invocation without -c. o Aliases and functions: @@ -706,6 +707,17 @@ use in the body of a function, but define the function first if the alias has the same name as the function. + If you aware of the problem, you can always escape part or all of the + name of the function: + + 'l'() { /bin/ls -la "$@" | more } + + Adding the quotes has no effect on the function definition, but + suppresses alias expansion for the function name. Hence this is + guaranteed to be safe---unless you are in the habit of defining + aliases for expressions such as 'l', which is valid, but probably + confusing. + 2.4: Similarities with tcsh (The sections on csh apply too, of course.) Certain features have @@ -804,37 +816,16 @@ ways of supporting character sets beyond ASCII. `UTF-8' is an encoding of Unicode that is particularly natural on Unix-like systems. - Q: Does zsh support UTF-8? - - A: zsh's built-in printf command supports "\u" and "\U" escapes - to output arbitrary Unicode characters. ZLE (the Zsh Line Editor) has + The production branch of zsh, 4.2, has very limited support: + the built-in printf command supports "\u" and "\U" escapes + to output arbitrary Unicode characters; ZLE (the Zsh Line Editor) has no concept of character encodings, and is confused by multi-octet encodings. - Q: Why doesn't zsh have proper UTF-8 support? - - A: The code has not been written yet. - - Q: What makes UTF-8 support difficult to implement? - - A: In order to handle arbitrary encodings the correct way, significant - and intrusive changes must be made to the shell. - - Q: Why can't zsh just use readline? - - A: ZLE is not encapsulated from the rest of the shell. Isolating it - such that it could be replaced by readline would be a significant - effort. Furthermore, using readline would effect a significant loss of - features. - - Q: What changes are planned? - - A: Introduction of Unicode support will be gradual, so if you are - interested in being involved you should join the zsh-workers mailing - list. As a first step ZLE will be rewritten to use wide characters - internally. Character based widgets can then operate on a single wide - character instead of a single byte, and the proper display width can be - calculated with wcswidth(). + However, the 4.3 branch has much better support, and furthermore this + is now fairly stable. (Only a few minor areas need fixing before + this becomes a production release.) This is discussed more + fully below, see `Multibyte input and output'. Chapter 3: How to get various things to work @@ -1105,7 +1096,7 @@ possibility may be to set LC_ALL=en_US. For older versions of the shell, there is no easy way out. -3.8: Why do the cursor (arrow) keys not work? +3.8: Why do the cursor (arrow) keys not work? (And other terminal oddities.) The cursor keys send different codes depending on the terminal; zsh only binds the most well known versions. If you see these problems, @@ -1151,6 +1142,25 @@ instructions are a fairly safe bet for your .zshrc. Of course you can substitute variant functions for the second argument here too. + It should be noted that the `O' / `[' confusion can occur + with other keys such as Home and End. Some systems let you query + the key sequences sent by these keys from the system's terminal + database, terminfo. Unfortunately, the key sequences given there + typically apply to the mode that is not the one zsh uses by default (it's + the "application" mode rather than the "raw" mode). Explaining the use + of terminfo is outside the scope of this FAQ, but if you wish to use the + key sequences given there you can tell the line editor to turn on + "application" mode when it starts and turn it off when it stops: + + function zle-line-init () { echoti smkx } + function zle-line-finish () { echoti rmkx } + zle -N zle-line-init + zle -N zle-line-finish + + If you only have the predecessor to terminfo, called termcap (which is + what we used to get the cursor keys above), replace `echoti smkx' + with `echotc ks' and replace `echoti rmkx' with `echotc ke'. + 3.9: Why does my terminal act funny in some way? If you are using an OpenWindows cmdtool as your terminal, any @@ -1571,14 +1581,31 @@ 3.25: How do I get coloured prompts on my colour xterm? - (Or `color xterm', if you're reading this in black and white.) You need - to find the sequences which generate the various colours from the manual - for your terminal emulator; these are ANSI standard on those I know about - which support colour. With a recent (post 3.1.6) distribution of zsh, - there is a theme system to handle this for you; even if you don't see that, - the installed function ``colors'' (meaning `colours', if you're not - reading this in black and white) gives the escape sequences. You will end - up with code looking like this (borrowed from Oliver Kiddle): + (Or `color xterm', if you're reading this in black and white.) + + Versions of the shell starting with the 4.3 series have this + built in. Use + + PS1='%K{white}%F{red}%f%k' + + to change the prompt. Names are only usable for the colours + black, red, green, yellow, blue, magenta, cyan and white, understood + by most terminals, but if you happen to know the details of how + your terminal implements colours you can specify a number, e.g. + `%20F' to turn the foreground into colour number 20. `echotc + Co' will often output the number of colours the terminal supports. + (Careful: `echotc co' is different; it also outputs a number + but it's the number of columns in the terminal.) If this is 8 + then probably you have the named colours and nothing more. + + In older versions of the shell you need to find the sequences which + generate the various colours from the manual for your terminal + emulator; these are ANSI standard on those I know about which support + colour. With a recent (post 3.1.6) distribution of zsh, there is a + theme system to handle this for you; even if you don't see that, the + installed function ``colors'' (meaning `colours', if you're not + reading this in black and white) gives the escape sequences. You will + end up with code looking like this (borrowed from Oliver Kiddle): PS1=$'%{\e[1;31m%}%{\e[0m%}' @@ -1823,14 +1850,14 @@ just needs to ask the system library how many octets form the next character, and if there's a valid character there at all. (It can also ask the system what width the character takes up on the screen, so that - characters no longer need to be exacxtly one position wide.) + characters no longer need to be exactly one position wide.) The way this is done is called UTF-8. Multibyte encodings of other character sets exist (you might encounter them for Asian character sets); zsh will be able to use any such encoding as long as it contains ASCII as a single-octet subset and the system can provide information about other characters. However, in the case of Unicode, UTF-8 is the only one you - are likely to enounter. + are likely to enounter that is useful in zsh. (In case you're confused: Unicode is the character set, while UTF-8 is an encoding of it. You might hear about other encodings, such as UCS-2 @@ -1862,7 +1889,7 @@ Note that if the shell is emulating a Bourne shell the MULTIBYTE option is unset by default. This allows various POSIX modes to work normally (POSIX does not deal with multibyte characters). If - you use a "sh" or "ksh" emulation interactively you shouldprobably + you use a "sh" or "ksh" emulation interactively you should probably set the MULTIBYTE option. The other option that affects multibyte support is COMBINING_CHARS, @@ -1871,9 +1898,10 @@ assumed to be modifications (accents etc.) to the base character and to be displayed within the same screen area as the base character. As not all terminals handle this, even if they correctly display the base - multibyte character, this option is not on by default. The KDE terminal - emulator konsole, rxvt-unicode, and the Unicode version of - xterm, xterm -u8 or the front-end uxterm, are known to handle + multibyte character, this option is not on by default. Recent versions + of the KDE and GNOME terminal emulators konsole and + gnome-terminal as well as rxvt-unicode, and the Unicode version + of xterm, xterm -u8 or the front-end uxterm, are known to handle combining characters. The COMBINING_CHARS option only affects output; combining characters @@ -1907,12 +1935,12 @@ edit file names that have been created using a different character set it won't work properly.) o The terminal emulator. Those that are supplied with a recent - desktop environment, such as gnome-terminal, are likely to have - extensive support for localization and may work correctly as soon - as they know the locale. You can enable UTF-8 support for - xterm in its application defaults file. The following are - the relevant resources; you don't actually need all of them, as - described below. If you use a `~/.Xdefaults' or + desktop environment, such as konsole and gnome-terminal, are + likely to have extensive support for localization and may work + correctly as soon as they know the locale. You can enable UTF-8 + support for xterm in its application defaults file. The + following are the relevant resources; you don't actually need all of + them, as described below. If you use a `~/.Xdefaults' or `~/.Xresources' file for setting resources, prefix all the lines with `xterm': @@ -1943,7 +1971,12 @@ this feature does.) If your terminal doesn't have characters that need to be input as multibyte, however, you can still use the meta bindings and can ignore the warning message. Use - `bindkey -m 2>/dev/null' to suprress it. + `bindkey -m 2>/dev/null' to suppress it. + + You might also note that the latest version of the Cygwin environment + for Windows supports UTF-8. In previous versions, zsh was able + to compile with the MULTIBYTE option enabled, but the system + didn't provide full support for it. 5.4: How can I input characters that aren't on my keyboard? @@ -1979,6 +2012,9 @@ however, using UTF-8 massively extends the number of valid characters that can be produced. + If you have a recent X Window System installation, you might find + the AltGr key helps you input accented Latin characters; for + example on my keyboard AltGr-; e gives `e' with an acute accent. See also http://www.cl.cam.ac.uk/~mgk25/unicode.html#input for general information on entering Unicode characters from a keyboard. @@ -2001,7 +2037,7 @@ The shell is being maintained by various (entirely self-appointed) subscribers to the mailing list, - zsh-workers@sunsite.dk + zsh-workers@zsh.org so mail on any issues (bug reports, suggestions, complaints...) related to the development of the shell should be sent there. If @@ -2021,12 +2057,12 @@ Two progressively lower volume lists exist, one with messages concerning the use of zsh, - zsh-users@sunsite.dk + zsh-users@zsh.org and one just containing announcements: about releases, about major changes in the shell, or this FAQ, for example, - zsh-announce@sunsite.dk + zsh-announce@zsh.org (posting to the last one is currently restricted). @@ -2040,15 +2076,15 @@ To join zsh-workers, send email to - zsh-workers-subscribe@sunsite.dk + zsh-workers-subscribe@zsh.org (the actual content is unimportant). Replace subscribe with unsubscribe to unsubscribe. The mailing software (ezlm) has various bells and whistles: you can retrieve archived messages. - Mail zsh-workers-help@sunsite.dk for detailed information. + Mail zsh-workers-help@zsh.org for detailed information. Adminstrative matters are best sent to - zsh-workers-owner@sunsite.dk. The list maintainer's - real name is Karsten Thygesen . + zsh-workers-owner@zsh.org. + real name is Geoff Wing . An archive of mailings for the last few years can be found at http://www.zsh.org/mla/ @@ -2092,9 +2128,9 @@ regarding this document. Zsh has been in the hands of archivists Jim Mattson, Bas de Bakker, Richard Coleman, Zoltan Hidvegi and Andrew Main, and the mailing list has been run by Peter Gray, Rick Ohnemus, -Richard Coleman and Karsten Thygesen, all of whom deserve thanks. The -world is eternally in the debt of Paul Falstad for inventing zsh in -the first place (though the wizzo extended completion is by Sven +Richard Coleman, Karsten Thygesen and Geoff Wing, all of whom deserve +thanks. The world is eternally in the debt of Paul Falstad for inventing +zsh in the first place (though the wizzo extended completion is by Sven Wischnowsky). Copyright Information: @@ -2110,4 +2146,4 @@ however, that this document changes monthly and it may be more useful to provide a pointer to it rather than the entire text. A suitable pointer is "information on the Z-shell can be obtained on the World -Wide Web at URL http://sunsite.dk/zsh/". +Wide Web at URL http://zsh.sourceforge.net/". diff -Nru zsh-4.3.10/Etc/FAQ.yo zsh-4.3.11/Etc/FAQ.yo --- zsh-4.3.10/Etc/FAQ.yo 2009-04-20 19:33:15.000000000 +0200 +++ zsh-4.3.11/Etc/FAQ.yo 2010-12-16 11:18:17.000000000 +0100 @@ -43,14 +43,14 @@ whenman(report(ARG1)(ARG2)(ARG3))\ whenms(report(ARG1)(ARG2)(ARG3))\ whensgml(report(ARG1)(ARG2)(ARG3))) -myreport(Z-Shell Frequently-Asked Questions)(Peter Stephenson)(2005/12/14) +myreport(Z-Shell Frequently-Asked Questions)(Peter Stephenson)(2010/02/15) COMMENT(-- the following are for Usenet and must appear first)\ description(\ mydit(Archive-Name:) unix-faq/shell/zsh -mydit(Last-Modified:) 2005/12/14 +mydit(Last-Modified:) 2010/02/15 mydit(Submitted-By:) email(pws@pwstephenson.fsnet.co.uk (Peter Stephenson)) mydit(Posting-Frequency:) Monthly -mydit(Copyright:) (C) P.W. Stephenson, 1995--2005 (see end of document) +mydit(Copyright:) (C) P.W. Stephenson, 1995--2010 (see end of document) ) This document contains a list of frequently-asked (or otherwise @@ -98,7 +98,7 @@ 3.5. How do I get the Meta key to work on my xterm? 3.6. How do I automatically display the directory in my xterm title bar? 3.7. How do I make the completion list use eight bit characters? -3.8. Why do the cursor (arrow) keys not work? +3.8. Why do the cursor (arrow) keys not work? (And other terminal oddities.) 3.9. Why does my terminal act funny in some way? 3.10. Why does zsh not work in an Emacs shell mode any more? 3.11. Why do my autoloaded functions not autoload [the first time]? @@ -151,21 +151,20 @@ label(11) Information on zsh is available via the World Wide Web. The URL - is url(http://sunsite.dk/zsh/)(http://sunsite.dk/zsh/) . + is url(http://zsh.sourceforge.net/)(http://zsh.sourceforge.net/) . The server provides this FAQ and much else and is - now maintained by Karsten Thygesen and others (mail \ - email(zsh@sunsite.dk) - with any related messages). The FAQ is at \ -url(http://sunsite.dk/zsh/FAQ/)(http://sunsite.dk/zsh/FAQ/) . + now maintained by the zsh workers (email email(zsh-workers@zsh.org)). + The FAQ is at \ +url(http://zsh.sourceforge.net/FAQ/)(http://zsh.sourceforge.net/FAQ/) . The site also contains some contributed zsh scripts and functions; we are delighted to add more, or simply links to your own collection. This document was originally written in YODL, allowing it to be converted easily into various other formats. The master source file lives at - url(http://sunsite.dk/zsh/FAQ/zshfaq.yo) -(http://sunsite.dk/zsh/FAQ/zshfaq.yo) and the plain text version - can be found at url(http://sunsite.dk/zsh/FAQ/zshfaq.txt) -(http://sunsite.dk/zsh/FAQ/zshfaq.txt) . + url(http://zsh.sourceforge.net/FAQ/zshfaq.yo) +(http://zsh.sourceforge.net/FAQ/zshfaq.yo) and the plain text version + can be found at url(http://zsh.sourceforge.net/FAQ/zshfaq.txt) +(http://zsh.sourceforge.net/FAQ/zshfaq.txt) . Another useful source of information is the collection of FAQ articles posted frequently to the Usenet news groups comp.unix.questions, @@ -194,7 +193,7 @@ I have put together a user guide to complement the manual by explaining the most useful features of zsh in a more easy to read way. This can be found at the zsh web site: - url(http://zsh.sunsite.dk/Guide/)(http://zsh.sunsite.dk/Guide/) + url(http://zsh.sourceforge.net/Guide/)(http://zsh.sourceforge.net/Guide/) (As a method of reading the following in Emacs, you can type tt(\M-2 \C-x $) to make all the indented text vanish, then tt(\M-0 \C-x $) @@ -298,13 +297,12 @@ sect(What's the latest version?) Zsh 4.2.7 is the latest production version. The latest development - version is 4.3.10; this contains support for multibyte character strings + version is 4.3.11; this contains support for multibyte character strings (such as UTF-8 locales). All the main features for multibyte - support are now in place, although there is some debugging work - still to be done. + support are now in place and this is likely soon to become the + stable series 4.4. - There will not be any further 4.0 releases now that 4.2 has become - the stable version. + There will not be any further 4.2 releases. A beta of the next version is sometimes available. Development of zsh is patch by patch, with each intermediate version publicly available. Note @@ -374,15 +372,16 @@ (http://zsh.open-mirror.com/) ) - A Windows port used to be maintaiend by Amol Deshpandem based on 3.0.5, - but this is rather out of date and hard to find. Various other - attempts have been made to port zsh to Windows but I am not aware - of any current native Windows version. All recent releases of zsh - compile under Cygwin, a freely available UNIX-style environment for the - Win32 API, and a pre-compiled version of zsh can be downloaded by - the Cygwin installer. You can find information about this at - url(http://www.cygwin.com/)(http://www.cygwin.com/). Please email - email(zsh-workers@sunsite.dk) if you have information about other ports. + A Windows port was created by Amol Deshpandem based on 3.0.5 (which + is now rather old). This has now been restored and can be found at + url(http://zsh-nt.sourceforge.net/)(http://zsh-nt.sourceforge.net/). + + All recent releases of zsh compile under Cygwin, a freely available + UNIX-style environment for the Win32 API, and a pre-compiled version of + zsh can be downloaded by the Cygwin installer. You can find information + about this at url(http://www.cygwin.com/)(http://www.cygwin.com/). + Please email email(zsh-workers@zsh.org) if you have information about + other ports. Starting from mid-October 1997, there is an archive of patches sent to the maintainers' mailing list. Note that these may not all be @@ -393,8 +392,8 @@ link(1.1)(11)) at: description( - mydit() url(http://sunsite.dk/zsh/Patches/) -(http://sunsite.dk/zsh/Patches/) + mydit() url(http://zsh.sourceforge.net/Patches/) +(http://zsh.sourceforge.net/Patches/) ) sect(I don't have root access: how do I make zsh my login shell?) @@ -588,10 +587,11 @@ occurred somewhere in the path (e.g. mytt(users/barstaff/foo) will be excluded by the mytt(~) operator). As the mytt(**) operator cannot be grouped (inside parentheses it is treated as mytt(*)), this is - the way to exclude some subdirectories from matching a mytt(**). + one way to exclude some subdirectories from matching a mytt(**). + The form (^foo/)# also works. it() Unquoted assignments do file expansion after mytt(:)s (intended for PATHs). - it() mytt(typeset) and mytt(integer) have special behaviour for + it()* mytt(typeset) and mytt(integer) have special behaviour for assignments in ksh, but not in zsh. For example, this doesn't work in zsh: verb( @@ -605,7 +605,7 @@ itemize( it()* There is no tt($ENV) variable (use tt(/etc/zshrc), tt(~/.zshrc); note also tt($ZDOTDIR)). - it() tt($PATH) is not searched for commands specified + it()* tt($PATH) is not searched for commands specified at invocation without -c. ) it() Aliases and functions: @@ -819,6 +819,16 @@ use in the body of a function, but define the function first if the alias has the same name as the function. + If you aware of the problem, you can always escape part or all of the + name of the function: + verb( + 'l'() { /bin/ls -la "$@" | more } + ) + Adding the quotes has no effect on the function definition, but + suppresses alias expansion for the function name. Hence this is + guaranteed to be safe---unless you are in the habit of defining + aliases for expressions such as tt('l'), which is valid, but probably + confusing. sect(Similarities with tcsh) @@ -923,37 +933,16 @@ ways of supporting character sets beyond ASCII. `UTF-8' is an encoding of Unicode that is particularly natural on Unix-like systems. - Q: Does zsh support UTF-8? - - A: zsh's built-in printf command supports "\u" and "\U" escapes - to output arbitrary Unicode characters. ZLE (the Zsh Line Editor) has + The production branch of zsh, 4.2, has very limited support: + the built-in printf command supports "\u" and "\U" escapes + to output arbitrary Unicode characters; ZLE (the Zsh Line Editor) has no concept of character encodings, and is confused by multi-octet encodings. - Q: Why doesn't zsh have proper UTF-8 support? - - A: The code has not been written yet. - - Q: What makes UTF-8 support difficult to implement? - - A: In order to handle arbitrary encodings the correct way, significant - and intrusive changes must be made to the shell. - - Q: Why can't zsh just use readline? - - A: ZLE is not encapsulated from the rest of the shell. Isolating it - such that it could be replaced by readline would be a significant - effort. Furthermore, using readline would effect a significant loss of - features. - - Q: What changes are planned? - - A: Introduction of Unicode support will be gradual, so if you are - interested in being involved you should join the zsh-workers mailing - list. As a first step ZLE will be rewritten to use wide characters - internally. Character based widgets can then operate on a single wide - character instead of a single byte, and the proper display width can be - calculated with wcswidth(). + However, the 4.3 branch has much better support, and furthermore this + is now fairly stable. (Only a few minor areas need fixing before + this becomes a production release.) This is discussed more + fully below, see `Multibyte input and output'. chapter(How to get various things to work) @@ -1239,7 +1228,7 @@ shell, there is no easy way out. -sect(Why do the cursor (arrow) keys not work?) +sect(Why do the cursor (arrow) keys not work? (And other terminal oddities.)) The cursor keys send different codes depending on the terminal; zsh only binds the most well known versions. If you see these problems, @@ -1251,7 +1240,7 @@ bindkey "$(echotc ku)" up-line-or-history bindkey "$(echotc kd)" down-line-or-history ) - + If you use vi mode, use mytt(vi-backward-char) and mytt(vi-forward-char) where appropriate. As of version 4.0.1, zsh attempts to look up these codes and to set the key bindings for you (both emacs and vi), but in @@ -1287,6 +1276,25 @@ instructions are a fairly safe bet for your tt(.zshrc). Of course you can substitute variant functions for the second argument here too. + It should be noted that the mytt(O) / mytt([) confusion can occur + with other keys such as Home and End. Some systems let you query + the key sequences sent by these keys from the system's terminal + database, terminfo. Unfortunately, the key sequences given there + typically apply to the mode that is not the one zsh uses by default (it's + the "application" mode rather than the "raw" mode). Explaining the use + of terminfo is outside the scope of this FAQ, but if you wish to use the + key sequences given there you can tell the line editor to turn on + "application" mode when it starts and turn it off when it stops: + verb( + function zle-line-init () { echoti smkx } + function zle-line-finish () { echoti rmkx } + zle -N zle-line-init + zle -N zle-line-finish + ) + If you only have the predecessor to terminfo, called termcap (which is + what we used to get the cursor keys above), replace mytt(echoti smkx) + with mytt(echotc ks) and replace mytt(echoti rmkx) with mytt(echotc ke). + sect(Why does my terminal act funny in some way?) @@ -1730,14 +1738,31 @@ sect(How do I get coloured prompts on my colour xterm?) - (Or `color xterm', if you're reading this in black and white.) You need - to find the sequences which generate the various colours from the manual - for your terminal emulator; these are ANSI standard on those I know about - which support colour. With a recent (post 3.1.6) distribution of zsh, - there is a theme system to handle this for you; even if you don't see that, - the installed function `mytt(colors)' (meaning `colours', if you're not - reading this in black and white) gives the escape sequences. You will end - up with code looking like this (borrowed from Oliver Kiddle): + (Or `color xterm', if you're reading this in black and white.) + + Versions of the shell starting with the 4.3 series have this + built in. Use + verb( + PS1='%K{white}%F{red}%f%k' + ) + to change the prompt. Names are only usable for the colours + black, red, green, yellow, blue, magenta, cyan and white, understood + by most terminals, but if you happen to know the details of how + your terminal implements colours you can specify a number, e.g. + mytt(%20F) to turn the foreground into colour number 20. mytt(echotc + Co) will often output the number of colours the terminal supports. + (Careful: mytt(echotc co) is different; it also outputs a number + but it's the number of columns in the terminal.) If this is 8 + then probably you have the named colours and nothing more. + + In older versions of the shell you need to find the sequences which + generate the various colours from the manual for your terminal + emulator; these are ANSI standard on those I know about which support + colour. With a recent (post 3.1.6) distribution of zsh, there is a + theme system to handle this for you; even if you don't see that, the + installed function `mytt(colors)' (meaning `colours', if you're not + reading this in black and white) gives the escape sequences. You will + end up with code looking like this (borrowed from Oliver Kiddle): verb( PS1=$'%{\e[1;31m%}%{\e[0m%}' ) @@ -1994,14 +2019,14 @@ just needs to ask the system library how many octets form the next character, and if there's a valid character there at all. (It can also ask the system what width the character takes up on the screen, so that - characters no longer need to be exacxtly one position wide.) + characters no longer need to be exactly one position wide.) The way this is done is called UTF-8. Multibyte encodings of other character sets exist (you might encounter them for Asian character sets); zsh will be able to use any such encoding as long as it contains ASCII as a single-octet subset and the system can provide information about other characters. However, in the case of Unicode, UTF-8 is the only one you - are likely to enounter. + are likely to enounter that is useful in zsh. (In case you're confused: Unicode is the character set, while UTF-8 is an encoding of it. You might hear about other encodings, such as UCS-2 @@ -2034,7 +2059,7 @@ Note that if the shell is emulating a Bourne shell the tt(MULTIBYTE) option is unset by default. This allows various POSIX modes to work normally (POSIX does not deal with multibyte characters). If - you use a "sh" or "ksh" emulation interactively you shouldprobably + you use a "sh" or "ksh" emulation interactively you should probably set the tt(MULTIBYTE) option. The other option that affects multibyte support is tt(COMBINING_CHARS), @@ -2043,9 +2068,10 @@ assumed to be modifications (accents etc.) to the base character and to be displayed within the same screen area as the base character. As not all terminals handle this, even if they correctly display the base - multibyte character, this option is not on by default. The KDE terminal - emulator tt(konsole), tt(rxvt-unicode), and the Unicode version of - xterm, tt(xterm -u8) or the front-end tt(uxterm), are known to handle + multibyte character, this option is not on by default. Recent versions + of the KDE and GNOME terminal emulators tt(konsole) and + tt(gnome-terminal) as well as tt(rxvt-unicode), and the Unicode version + of xterm, tt(xterm -u8) or the front-end tt(uxterm), are known to handle combining characters. The tt(COMBINING_CHARS) option only affects output; combining characters @@ -2081,12 +2107,12 @@ edit file names that have been created using a different character set it won't work properly.) it() The terminal emulator. Those that are supplied with a recent - desktop environment, such as gnome-terminal, are likely to have - extensive support for localization and may work correctly as soon - as they know the locale. You can enable UTF-8 support for - tt(xterm) in its application defaults file. The following are - the relevant resources; you don't actually need all of them, as - described below. If you use a mytt(~/.Xdefaults) or + desktop environment, such as tt(konsole) and tt(gnome-terminal), are + likely to have extensive support for localization and may work + correctly as soon as they know the locale. You can enable UTF-8 + support for tt(xterm) in its application defaults file. The + following are the relevant resources; you don't actually need all of + them, as described below. If you use a mytt(~/.Xdefaults) or mytt(~/.Xresources) file for setting resources, prefix all the lines with mytt(xterm): verb( @@ -2118,7 +2144,12 @@ this feature does.) If your terminal doesn't have characters that need to be input as multibyte, however, you can still use the meta bindings and can ignore the warning message. Use - mytt(bindkey -m 2>/dev/null) to suprress it. + mytt(bindkey -m 2>/dev/null) to suppress it. + + You might also note that the latest version of the Cygwin environment + for Windows supports UTF-8. In previous versions, zsh was able + to compile with the tt(MULTIBYTE) option enabled, but the system + didn't provide full support for it. sect(How can I input characters that aren't on my keyboard?) @@ -2158,6 +2189,9 @@ however, using UTF-8 massively extends the number of valid characters that can be produced. + If you have a recent X Window System installation, you might find + the tt(AltGr) key helps you input accented Latin characters; for + example on my keyboard tt(AltGr-; e) gives mytt(e) with an acute accent. See also url(http://www.cl.cam.ac.uk/~mgk25/unicode.html#input)(http://www.cl.cam.ac.uk/~mgk25/unicode.html#input) for general information on entering Unicode characters from a keyboard. @@ -2185,7 +2219,7 @@ The shell is being maintained by various (entirely self-appointed) subscribers to the mailing list, verb( - zsh-workers@sunsite.dk + zsh-workers@zsh.org ) so mail on any issues (bug reports, suggestions, complaints...) related to the development of the shell should be sent there. If @@ -2205,12 +2239,12 @@ Two progressively lower volume lists exist, one with messages concerning the use of zsh, verb( - zsh-users@sunsite.dk + zsh-users@zsh.org ) and one just containing announcements: about releases, about major changes in the shell, or this FAQ, for example, verb( - zsh-announce@sunsite.dk + zsh-announce@zsh.org ) (posting to the last one is currently restricted). @@ -2224,15 +2258,15 @@ To join zsh-workers, send email to verb( - zsh-workers-subscribe@sunsite.dk + zsh-workers-subscribe@zsh.org ) (the actual content is unimportant). Replace tt(subscribe) with tt(unsubscribe) to unsubscribe. The mailing software (tt(ezlm)) has various bells and whistles: you can retrieve archived messages. - Mail email(zsh-workers-help@sunsite.dk) for detailed information. + Mail email(zsh-workers-help@zsh.org) for detailed information. Adminstrative matters are best sent to - email(zsh-workers-owner@sunsite.dk). The list maintainer's - real name is email(Karsten Thygesen ). + email(zsh-workers-owner@zsh.org). + real name is email(Geoff Wing ). An archive of mailings for the last few years can be found at url(http://www.zsh.org/mla/)(http://www.zsh.org/mla/) @@ -2280,9 +2314,9 @@ regarding this document. Zsh has been in the hands of archivists Jim Mattson, Bas de Bakker, Richard Coleman, Zoltan Hidvegi and Andrew Main, and the mailing list has been run by Peter Gray, Rick Ohnemus, -Richard Coleman and Karsten Thygesen, all of whom deserve thanks. The -world is eternally in the debt of Paul Falstad for inventing zsh in -the first place (though the wizzo extended completion is by Sven +Richard Coleman, Karsten Thygesen and Geoff Wing, all of whom deserve +thanks. The world is eternally in the debt of Paul Falstad for inventing +zsh in the first place (though the wizzo extended completion is by Sven Wischnowsky). @@ -2299,4 +2333,4 @@ however, that this document changes monthly and it may be more useful to provide a pointer to it rather than the entire text. A suitable pointer is "information on the Z-shell can be obtained on the World -Wide Web at URL http://sunsite.dk/zsh/". +Wide Web at URL http://zsh.sourceforge.net/". diff -Nru zsh-4.3.10/Etc/zsh-development-guide zsh-4.3.11/Etc/zsh-development-guide --- zsh-4.3.10/Etc/zsh-development-guide 2009-05-11 10:51:08.000000000 +0200 +++ zsh-4.3.11/Etc/zsh-development-guide 2010-02-03 19:36:57.000000000 +0100 @@ -198,12 +198,16 @@ - nozshdep non-empty indicates no dependence on the `zsh/main' pseudo-module - alwayslink if non-empty, always link the module into the executable - - autobins builtins defined by the module, for autoloading - - autoinfixconds infix condition codes defined by the module, for - autoloading (without the leading `-') - - autoprefixconds like autoinfixconds, but for prefix condition codes - - autoparams parameters defined by the module, for autoloading - - automathfuncs math functions defined by the module, for autoloading + - autofeatures features defined by the module for autoloading, + a space-separated list. The syntax for features is as + for zmodload -F, e.g. b:mybin refers to the builtin + mybin. This replaces the previous mechanism with + separate variables for builtins, conditions, math + functions and parameters. Note the features are only + available in zsh's native mode, not in emulation modes. + - autofeatures_emu As autofeatures, but the features so presented are + available in modes that are *not* zsh's native mode. + The variable autofeatures must also be present. - objects .o files making up this module (*must* be defined) - proto .syms files for this module (default generated from $objects) - headers extra headers for this module (default none) diff -Nru zsh-4.3.10/FEATURES zsh-4.3.11/FEATURES --- zsh-4.3.10/FEATURES 2005-08-01 11:45:56.000000000 +0200 +++ zsh-4.3.11/FEATURES 2010-01-13 13:05:26.000000000 +0100 @@ -28,7 +28,8 @@ qualifiers in parentheses after globbing expression: ls *(*@) matches executable files/directories or symlinks ls *(L0f.go-w.) matches all zero-length files not group or world writable - ls *(om[2]) matches the two most recently modified files + ls *(om[1,3]) matches the three most recently modified files + ls *(om[2]) matches the second most recently modified file null command shorthands: "< file" is same as "more file" is same as "cat >file" @@ -65,6 +66,7 @@ input line to be brought up for editing instead of being executed with sunkeyboardhack option, accidentally typed trailing ` characters are removed from the input line (for those of you with Sun keyboards :-) ) +with KEYBOARD_HACK, any accidentally typed trailing ascii character can be junked "cd old new" replaces "old" with "new" in directory string generalized argument completion, new system based on shell functions: - highly context sensitive diff -Nru zsh-4.3.10/Functions/Calendar/age zsh-4.3.11/Functions/Calendar/age --- zsh-4.3.10/Functions/Calendar/age 2009-01-28 14:44:37.000000000 +0100 +++ zsh-4.3.11/Functions/Calendar/age 2010-07-28 16:01:12.000000000 +0200 @@ -31,7 +31,7 @@ zmodload -F zsh/stat b:zstat zmodload -i zsh/parameter -autoload -U calendar_scandate +autoload -Uz calendar_scandate local -a vals tmp diff -Nru zsh-4.3.10/Functions/Calendar/calendar zsh-4.3.11/Functions/Calendar/calendar --- zsh-4.3.10/Functions/Calendar/calendar 2008-12-10 13:36:13.000000000 +0100 +++ zsh-4.3.11/Functions/Calendar/calendar 2010-07-28 16:01:12.000000000 +0200 @@ -7,13 +7,13 @@ integer verbose warntime mywarntime t tcalc tsched i rstat remaining integer showcount icount repeating repeattime resched showall brief local -a calendar_entries calendar_addlines -local -a times calopts showprog lockfiles match mbegin mend +local -a times calopts showprog lockfiles match mbegin mend tmplines local -A reply zmodload -i zsh/datetime || return 1 zmodload -i zsh/zutil || return 1 -autoload -U calendar_{add,parse,read,scandate,show,lockfiles} +autoload -Uz calendar_{add,parse,read,scandate,show,lockfiles} # Read the calendar file from the calendar-file style zstyle -s ':datetime:calendar:' calendar-file calendar || calendar=~/calendar @@ -253,13 +253,27 @@ fi fi +local mycmds="${TMPPREFIX:-/tmp/zsh}.calendar_cmds.$$" +touch $mycmds +chmod 600 $mycmds + +# start of subshell for OS file locking +( # start of block for following always to clear up lockfiles. +# Not needed but harmless if OS file locking is used. { if [[ -n $donefile ]]; then # Attempt to lock both $donefile and $calendar. # Don't lock $newfile; we've tried our best to make # the name unique. - calendar_lockfiles $calendar $donefile || return 1 + if zmodload -F zsh/system b:zsystem && zsystem supports flock && + zsystem flock $calendar 2>/dev/null && + zsystem flock $donefile 2>/dev/null; then + # locked OK + : + else + calendar_lockfiles $calendar $donefile || exit 1 + fi fi calendar_read $calendar @@ -282,7 +296,9 @@ fi # Look for a repeat time. if [[ -n ${reply[rpttime]} ]]; then - (( repeattime = ${reply[rpttime]}, repeating = 1 )) + # The actual time of the next event, which appears as text + (( repeattime = ${reply[rpttime]} )) + (( repeating = 1 )) else (( repeating = 0 )) fi @@ -298,27 +314,33 @@ fi (( shown = 0 )) if (( brief )); then - showline=${(F)${${(f)line}[1,brief]}} + tmplines=("${(f)line}") + showline=${(F)${${tmplines[1,brief]}}} else showline=$line fi match=() # Strip continuation lines starting " #". while [[ $showline = (#b)(*$'\n')[[:space:]]##\#[^$'\n']##(|$'\n'(*)) ]]; do - showline="$match[1]$match[3]" + showline="$match[1]$match[3]" done # Strip trailing empty lines showline=${showline%%[[:space:]]#} if (( showall || (t >= start && (remaining || t <= stop || icount < showcount)) )) then - $showprog $start $stop "$showline" + print -r -- ${(qq)showprog} $start $stop ${(qq)showline} >>$mycmds (( icount++ )) # Doesn't count as "shown" unless the event has now passed. (( t <= EPOCHSECONDS )) && (( shown = 1 )) elif [[ -n $sched ]]; then (( tsched = t - mywarntime )) if (( tsched >= start && tsched <= stop)); then - $showprog $start $stop "due in ${mywarnstr}: $showline" + showline="due in ${mywarnstr}: $showline" + print -r -- ${(qq)showprog} $start $stop ${(qq)showline} >>$mycmds + elif (( tsched < start )); then + # We haven't actually shown it, but it's in the past, + # so treat it the same. Should probably rename this variable. + (( shown = 1 )) fi fi if [[ -n $sched ]]; then @@ -381,12 +403,14 @@ if [[ $next -ge 0 ]]; then # Remove any existing calendar scheduling. i=${"${(@)zsh_scheduled_events#*:*:}"[(I)calendar -s*]} - (( i )) && sched -$i - $sched $next calendar "${calopts[@]}" $next $next + { + (( i )) && print sched -$i + print -r -- ${(qq)sched} $next calendar "${calopts[@]}" $next $next + } >>$mycmds else - $showprog $start $stop \ -"No more calendar events: calendar not rescheduled. + showline="No more calendar events: calendar not rescheduled. Run \"calendar -s\" again if you add to it." + print -r -- ${(qq)showprog} $start $stop ${(qq)showline} >>$mycmds fi fi @@ -413,4 +437,9 @@ (( ${#lockfiles} )) && rm -f $lockfiles } -return $rstat +exit $rstat +) && { + # Tasks that need to be in the current shell + [[ -s $mycmds ]] && . $mycmds + rm -f $mycmds +} diff -Nru zsh-4.3.10/Functions/Calendar/calendar_add zsh-4.3.11/Functions/Calendar/calendar_add --- zsh-4.3.10/Functions/Calendar/calendar_add 2008-02-22 15:38:00.000000000 +0100 +++ zsh-4.3.11/Functions/Calendar/calendar_add 2010-07-28 16:01:12.000000000 +0200 @@ -7,16 +7,21 @@ # entry before the first existing entry with a later date and time. emulate -L zsh -setopt extendedglob +setopt extendedglob # xtrace local context=":datetime:calendar_add:" +local vdatefmt="%Y%m%dT%H%M%S" +local d='[[:digit:]]' -local calendar newfile REPLY lastline opt -local -a calendar_entries lockfiles reply -integer my_date done rstat nolock nobackup new_recurring old_recurring -local -A reply parse_new parse_old recurring_uids +local calendar newfile REPLY lastline opt text occur +local -a calendar_entries lockfiles reply occurrences +integer my_date done rstat nolock nobackup new_recurring +integer keep_my_uid +local -A reply parse_new parse_old +local -a match mbegin mend +local my_uid their_uid -autoload -U calendar_{parse,read,lockfiles} +autoload -Uz calendar_{parse,read,lockfiles} while getopts "BL" opt; do case $opt in @@ -47,7 +52,6 @@ fi parse_new=("${(@kv)reply}") (( my_date = $parse_new[time] )) -[[ -n $parse_new[rpttime] ]] && (( new_recurring = 1 )) if zstyle -t $context reformat-date; then local datefmt zstyle -s $context date-format datefmt || @@ -55,12 +59,24 @@ strftime -s REPLY $datefmt $parse_new[time] addline="$REPLY $parse_new[text1]" fi +if [[ -n $parse_new[rptstr] ]]; then + (( new_recurring = 1 )) + if [[ $parse_new[rptstr] = CANCELLED ]]; then + (( done = 1 )) + elif [[ $addline = (#b)(*[[:space:]\#]RECURRENCE[[:space:]]##)([^[:space:]]##)([[:space:]]*|) ]]; then + # Use the updated recurrence time + strftime -s REPLY $vdatefmt ${parse_new[schedrpttime]} + addline="${match[1]}$REPLY${match[3]}" + else + # Add a recurrence time + [[ $addline = *$'\n' ]] || addline+=$'\n' + strftime -s REPLY $vdatefmt ${parse_new[schedrpttime]} + addline+=" # RECURRENCE $REPLY" + fi +fi # $calendar doesn't necessarily exist yet. -local -a match mbegin mend -local my_uid their_uid - # Match a UID, a unique identifier for the entry inherited from # text/calendar format. local uidpat='(|*[[:space:]])UID[[:space:]]##(#b)([[:xdigit:]]##)(|[[:space:]]*)' @@ -68,22 +84,131 @@ my_uid=${(U)match[1]} fi +# start of subshell for OS file locking +( # start of block for following always to clear up lockfiles. +# Not needed but harmless if OS file locking is used. { - (( nolock )) || calendar_lockfiles $calendar || return 1 + if (( ! nolock )); then + if zmodload -F zsh/system b:zsystem && zsystem supports flock && + zsystem flock $calendar 2>/dev/null; then + # locked OK + : + else + calendar_lockfiles $calendar || exit 1 + fi + fi if [[ -f $calendar ]]; then calendar_read $calendar if [[ -n $my_uid ]]; then - # Pre-scan to find recurring events with a UID + # Pre-scan to events with the same UID for line in $calendar_entries; do calendar_parse $line || continue + parse_old=("${(@kv)reply}") # Recurring with a UID? - if [[ -n $reply[rpttime] && $line = ${~uidpat} ]]; then - # Yes, so record this as a recurring event. + if [[ $line = ${~uidpat} ]]; then their_uid=${(U)match[1]} - recurring_uids[$their_uid]=$reply[time] + if [[ $their_uid = $my_uid ]]; then + # Deal with recurrences and also some add some + # extra magic for cancellation. + + # See if we have found a recurrent version + if [[ -z $parse_old[rpttime] ]]; then + # No, so assume this is a straightforward replacement + # of a non-recurring event. + + # Is this a cancellation of a non-recurring event? + # Look for an OCCURRENCE in the form + # OCCURRENCE 20100513T110000 CANCELLED + # although we don't bother looking at the date/time--- + # it's one-off, so this should already be unique. + if [[ $new_recurring -eq 0 && \ + $parse_new[text1] = (|*[[:space:]\#])"OCCURRENCE"[[:space:]]##([^[:space:]]##[[:space:]]##CANCELLED)(|[[:space:]]*) ]]; then + # Yes, so skip both the old and new events. + (( done = 1 )) + fi + # We'll skip this UID when we encounter it again. + continue + fi + if (( new_recurring )); then + # Replacing a recurrence; there can be only one. + # TBD: do we replace existing occurrences of the + # replaced recurrent event? I'm guessing not, but + # if we keep the UID then maybe we should. + # + # TBD: ick, suppose we're cancelling an even that + # we added to a recurring sequence but didn't replace + # the recurrence. We might get RPT CANCELLED for this. + # That would be bad. Should invent better way of + # cancelling non-recurring event. + continue + else + # The recorded event is recurring, but the new one is a + # one-off event. If there are embedded OCCURRENCE declarations, + # use those. + # + # TBD: We could be clever about text associated + # with the occurrence. Copying the entire text + # of the meeting seems like overkill but people often + # add specific remarks about why this occurrence was + # moved/cancelled. + # + # TBD: one case we don't yet handle is cancelling + # something that isn't replacing a recurrence, i.e. + # something we added as OCCURRENCE XXXXXXXXTXXXXXX . + # If we're adding a CANCELLED occurrence we should + # look to see if it matches and if so simply + # delete that occurrence. + # + # TBD: one nasty case is if the new occurrence + # occurs before the current scheduled time. As we + # never look backwards we'll miss it. + text=$addline + occurrences=() + while [[ $text = (#b)(|*[[:space:]\#])"OCCURRENCE"[[:space:]]##([^[:space:]]##[[:space:]]##[^[:space:]]##)(|[[:space:]]*) ]]; do + occurrences+=($match[2]) + text="$match[1] $match[3]" + done + if (( ! ${#occurrences} )); then + # No embedded occurrences. We'll manufacture one + # that doesn't refer to an original recurrence. + strftime -s REPLY $vdatefmt $my_date + occurrences=("XXXXXXXXTXXXXXX $REPLY") + fi + # Add these occurrences, checking if they replace + # an existing one. + for occur in ${(o)occurrences}; do + REPLY=${occur%%[[:space:]]*} + # Only update occurrences that refer to genuine + # recurrences. + if [[ $REPLY = [[:digit:]](#c8)T[[:digit:]](#c6) && $line = (#b)(|*[[:space:]\#])(OCCURRENCE[[:space:]]##)${REPLY}[[:space:]]##[^[:space:]]##(|[[:space:]]*) ]]; then + # Yes, update in situ + line="${match[1]}${match[2]}$occur${match[3]}" + else + # No, append. + [[ $line = *$'\n' ]] || line+=$'\n' + line+=" # OCCURRENCE $occur" + fi + done + # The line we're adding now corresponds to the + # original event. We'll skip the matching UID + # in the file below, however. + addline=$line + # We need to work out which event is next, so + # reparse. + if calendar_parse $addline; then + parse_new=("${(@kv)reply}") + (( my_date = ${parse_new[time]} )) + if zstyle -t $context reformat-date; then + zstyle -s $context date-format datefmt + strftime -s REPLY $datefmt $parse_new[time] + addline="$REPLY $parse_new[text1]" + fi + fi + fi + fi fi done fi @@ -96,39 +221,11 @@ print -r -- $addline (( done = 1 )) fi - if [[ -n $parse_old[rpttime] ]]; then - (( old_recurring = 1 )) - else - (( old_recurring = 0 )) - fi - if [[ -n $my_uid && $line = ${~uidpat} ]]; then + # We've already merged any information on the same UID + # with our new text, probably. + if [[ $keep_my_uid -eq 0 && -n $my_uid && $line = ${~uidpat} ]]; then their_uid=${(U)match[1]} - if [[ $my_uid = $their_uid ]]; then - # Deal with recurrences, being careful in case there - # are one-off variants that don't replace recurrences. - # - # Bug 1: "calendar" still doesn't know about one-off variants. - # Bug 2: neither do I; how do we know which occurrence - # it replaces? - # Bug 3: the code for calculating recurrences is awful anyway. - - if (( old_recurring && new_recurring )); then - # Replacing a recurrence; there can be only one. - continue - elif (( ! new_recurring )); then - # Not recurring. See if we have previously found - # a recurrent version - [[ -n $recurring_uids[$their_uid] ]] && (( old_recurring = 1 )) - # No, so assume this is a straightforward replacement - # of a non-recurring event. - (( ! old_recurring )) && continue - # It's recurring, but if this is a one-off at the - # same time as the previous one, replace anyway. - [[ -z $parse_old[$rpttime] ]] && - (( ${parse_new[time]} == ${parse_old[time]} )) && - continue - fi - fi + [[ $my_uid = $their_uid ]] && continue fi if [[ $parse_old[time] -eq $my_date && $line = $addline ]]; then (( done )) && continue # paranoia: shouldn't happen @@ -146,7 +243,7 @@ fi fi else - print -r -- $line >$newfile + (( done )) || print -r -- $addline >$newfile fi if (( !rstat )) && ! mv $newfile $calendar; then @@ -158,4 +255,5 @@ (( ${#lockfiles} )) && rm -f $lockfiles } -return $rstat +exit $rstat +) diff -Nru zsh-4.3.10/Functions/Calendar/calendar_edit zsh-4.3.11/Functions/Calendar/calendar_edit --- zsh-4.3.10/Functions/Calendar/calendar_edit 2007-03-23 13:04:36.000000000 +0100 +++ zsh-4.3.11/Functions/Calendar/calendar_edit 2010-04-13 18:28:21.000000000 +0200 @@ -1,21 +1,37 @@ -local editor=${VISUAL:-${EDITOR:-vi}} local line calendar -local -a lockfiles +local -a lockfiles editor integer cal_running +if (( $# )); then + editor=("$@") +else + editor=(${VISUAL:-${EDITOR:-vi}}) +fi + sched | while read line; do [[ $line = *" calendar -s "<->" "<-> ]] && (( cal_running = 1 )) done zstyle -s ':datetime:calendar:' calendar-file calendar || calendar=~/calendar +# start of subshell for OS file locking +( +# start of block for following always to clear up lockfiles. +# Not needed but harmless if OS file locking is used. { - calendar_lockfiles $calendar || return 1 + if zmodload -F zsh/system b:zsystem && zsystem supports flock && + zsystem flock $calendar 2>/dev/null; then + # locked OK + : + else + calendar_lockfiles $calendar || exit 1 + fi eval $editor \$calendar } always { (( ${#lockfiles} )) && rm -f $lockfiles } +) (( cal_running )) && calendar -s diff -Nru zsh-4.3.10/Functions/Calendar/calendar_parse zsh-4.3.11/Functions/Calendar/calendar_parse --- zsh-4.3.10/Functions/Calendar/calendar_parse 2008-11-19 15:04:55.000000000 +0100 +++ zsh-4.3.11/Functions/Calendar/calendar_parse 2010-07-28 16:01:12.000000000 +0200 @@ -1,6 +1,6 @@ # Parse the line passed down in the first argument as a calendar entry. # Sets the values parsed into the associative array reply, consisting of: -# time The time as an integer (as per EPOCHSECONDS) +# time The time as an integer (as per EPOCHSECONDS) of the (next) event. # text1 The text from the the line not including the date/time, but # including any WARN or RPT text. This is useful for rescheduling # events, since the keywords need to be retained in this case. @@ -10,11 +10,16 @@ # difference). # warnstr Any warning time as the original string (e.g. "5 mins"), not # including the WARN keyword. -# rpttime Any repeat/recurrence time (RPT keyword) as an integer, else empty. -# This is the time of the recurrence itself in EPOCHSECONDS units -# (as with a warning---not the difference between the events). +# schedrpttime The next scheduled recurrence (which may be cancelled +# or rescheduled). +# rpttime The actual occurrence time: the event may have been rescheduled, +# in which case this is the time of the actual event (for use in +# programming warnings etc.) rather than that of the normal +# recurrence (which is recorded by calendar_add as RECURRENCE). +# # rptstr Any repeat/recurrence time as the original string. -# text2 The text from the line with the date and keywords and values removed. +# text2 The text from the line with the date and other keywords and +# values removed. # # Note that here an "integer" is a string of digits, not an internally # formatted integer. @@ -26,11 +31,16 @@ emulate -L zsh setopt extendedglob -local REPLY REPLY2 +local vdatefmt="%Y%m%dT%H%M%S" + +local REPLY REPLY2 timefmt occurrence skip try_to_recover before after local -a match mbegin mend -integer now +integer now then replaced firstsched schedrpt +# Any text matching "OCCURRENCE " +# may occur multiple times. We set occurrences[]=disposition. +local -A occurrences -autoload -U calendar_scandate +autoload -Uz calendar_scandate typeset -gA reply @@ -45,51 +55,122 @@ # REPLY2 to the line with the date and time removed. calendar_scandate -as $1 || return 1 reply[time]=$(( REPLY )) +schedrpt=${reply[time]} reply[text1]=${REPLY2##[[:space:]]#} +reply[text2]=${reply[text1]} -reply[text2]=$reply[text1] - -integer changed=1 - -while (( changed )); do +while true; do - (( changed = 0 )) + case ${reply[text2]} in + # First check for a scheduled repeat time. If we don't find one + # we'll use the normal time. + ((#b)(*[[:space:]\#])RECURRENCE[[:space:]]##([^[:space:]]##)([[:space:]]*|)) + strftime -rs then $vdatefmt ${match[2]} || + print "format: $vdatefmt, string ${match[2]}" >&2 + schedrpt=$then + reply[text2]="${match[1]}${match[3]##[ ]#}" + ;; - # Look for specific warn time. - if [[ $reply[text2] = (#b)(|*[[:space:],])WARN[[:space:]](*) ]]; then + # Look for specific warn time. + ((#b)(|*[[:space:],])WARN[[:space:]](*)) if calendar_scandate -asm -R $reply[time] $match[2]; then reply[warntime]=$REPLY reply[warnstr]=${match[2]%%"$REPLY2"} - reply[text2]="${match[1]}${REPLY2##[[:space:]]#}" + # Remove spaces and tabs but not newlines from trailing text, + # else the formatting looks funny. + reply[text2]="${match[1]}${REPLY2##[ ]#}" else # Just remove the keyword for further parsing - reply[text2]="${match[1]}${match[2]##[[:space:]]#}" + reply[text2]="${match[1]}${match[2]##[ ]#}" fi - (( changed = 1 )) - elif [[ $reply[text2] = (#b)(|*[[:space:],])RPT[[:space:]](*) ]]; then - if calendar_scandate -a -R $reply[time] $match[2]; then - reply[rpttime]=$REPLY - reply[rptstr]=${match[2]%%"$REPLY2"} - reply[text2]="${match[1]}${REPLY2##[[:space:]]#}" - (( now = EPOCHSECONDS )) - while (( ${reply[rpttime]} < now )); do - # let's hope the original appointment wasn't in 44 B.C. - if calendar_scandate -a -R ${reply[rpttime]} ${reply[rptstr]}; then - if (( REPLY <= ${reply[rpttime]} )); then - # pathological case - break; - fi - reply[rpttime]=$REPLY - fi - done + ;; + + ((#b)(|*[[:space:],])RPT[[:space:]](*)) + before=${match[1]} + after=${match[2]} + if [[ $after = CANCELLED(|[[:space:]]*) ]]; then + reply[text2]="$before${match[2]##[ ]#}" + reply[rptstr]=CANCELLED + reply[rpttime]=CANCELLED + reply[schedrpttime]=CANCELLED + elif calendar_scandate -a -R $schedrpt $after; then + # It's possible to calculate a recurrence, however we don't + # do that yet. For now just keep the current time as + # the recurrence. Hence we ignore REPLY. + reply[text2]="$before${REPLY2##[ ]#}" + reply[rptstr]=${after%%"$REPLY2"} + # Until we find an individual occurrence, the actual time + # of the event is the regular one. + reply[rpttime]=$schedrpt else # Just remove the keyword for further parsing - reply[text2]="${match[1]}${match[2]##[[:space:]]#}" + reply[text2]="$before${after##[[:space:]]#}" fi - (( changed = 1 )) - fi + ;; + + ((#b)(|*[[:space:]\#])OCCURRENCE[[:space:]]##([^[:space:]]##)[[:space:]]##([^[:space:]]##)(*)) + occurrences[${match[2]}]="${match[3]}" + # as above + reply[text2]="${match[1]}${match[4]##[ ]#}" + ;; + + (*) + break + ;; + esac done +if [[ -n ${reply[rpttime]} && ${reply[rptstr]} != CANCELLED ]]; then + # Recurring event. We need to find out when it recurs. + (( now = EPOCHSECONDS )) + + # First find the next recurrence. + replaced=0 + reply[schedrpttime]=$schedrpt + if (( schedrpt >= now )); then + firstsched=$schedrpt + fi + while (( ${reply[schedrpttime]} < now || replaced )); do + if ! calendar_scandate -a -R ${reply[schedrpttime]} ${reply[rptstr]}; then + break + fi + if (( REPLY <= ${reply[schedrpttime]} )); then + # going backwards --- pathological case + break; + fi + reply[schedrpttime]=$REPLY + reply[rpttime]=$REPLY + if (( ${reply[schedrpttime]} > now && firstsched == 0 )); then + firstsched=$REPLY + fi + replaced=0 + # do we have an occurrence to compare against? + if (( ${#occurrences} )); then + strftime -s timefmt $vdatefmt ${reply[schedrpttime]} + occurrence=$occurrences[$timefmt] + if [[ -n $occurrence ]]; then + # Yes, this replaces the scheduled one. + replaced=1 + fi + fi + done + # Now look through occurrences (values only) and see which are (i) still + # to happen (ii) early than the current rpttime. + for occurrence in $occurrences; do + if [[ $occurrence != CANCELLED ]]; then + strftime -rs then $vdatefmt $occurrence || + print "format: $vdatefmt, string $occurrence" >&2 + if (( then > now && then < ${reply[rpttime]} )); then + reply[rpttime]=$then + fi + fi + done + # Finally, update the scheduled repeat time to the earliest + # possible value. This is so that if an occurrence replacement is + # cancelled we pick up the regular one. Can this happen? Dunno. + reply[schedrpttime]=$firstsched +fi + reply[text2]="${reply[text2]##[[:space:],]#}" return 0 diff -Nru zsh-4.3.10/Functions/Calendar/calendar_scandate zsh-4.3.11/Functions/Calendar/calendar_scandate --- zsh-4.3.10/Functions/Calendar/calendar_scandate 2008-06-30 15:06:40.000000000 +0200 +++ zsh-4.3.11/Functions/Calendar/calendar_scandate 2010-06-14 15:01:41.000000000 +0200 @@ -23,6 +23,19 @@ # from 1900 to 2099 inclusive are matched. # - Although timezones are parsed (complicated formats may not be recognized), # they are then ignored; no time adjustment is made. +# - Embedding of times within dates (e.g. "Wed Jun 16 09:30:00 BST 2010") +# causes horrific problems because of the combination of the many +# possible date and time formats to match. The approach taken +# here is to match the time, remove it, and see if the nearby text +# looks like a date. The problem is that the time matched may not +# be that associated with the date, in which case the time will be +# ignored. To minimise this, when the argument "-a" is given to +# anchor the date/time to the start of the line, we never look +# beyond a newline. So if any date/time strings in the text +# are on separate lines the problem is avoided. +# - If you feel sophisticated enough and wish to avoid any ambiguity, +# you can use RFC 2445 date/time strings, for example 20100601T170000. +# These are parsed in one go. # # The following give some obvious examples; users finding here # a format they like and not subject to vagaries of style may skip @@ -136,7 +149,7 @@ # In this case absolute dates are ignored. emulate -L zsh -setopt extendedglob +setopt extendedglob # xtrace zmodload -i zsh/datetime || return 1 @@ -145,7 +158,7 @@ # relatively logical dates like 2006/09/19:14:27 # don't allow / before time ! the above # is not 19 hours 14 mins and 27 seconds after anything. -local tschars="[-,:[:space:]]" +local tschars="[-,:[:blank:]]" # start pattern for time when anchored local tspat_anchor="(${tschars}#)" # ... when not anchored @@ -175,9 +188,10 @@ # We may need some completely different heuristic. local monthpat="(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)[a-z]#" integer daysecs=$(( 24 * 60 * 60 )) +local d="[[:digit:]]" integer year year2 month month2 day day2 hour minute second then nth wday wday2 -local opt line orig_line mname MATCH MBEGIN MEND tz test +local opt line orig_line mname MATCH MBEGIN MEND tz test rest_line local -a match mbegin mend # Flags that we found a date or a time (maybe a relative time) integer date_found time_found @@ -237,7 +251,7 @@ done shift $(( OPTIND - 1 )) -line=$1 orig_line=$1 +line=$1 local dspat dspat_noday tspat if (( anchor )); then @@ -250,11 +264,20 @@ # We'll test later if the time is associated with the date. tspat=$tspat_noanchor fi + # We can save a huge amount of grief (I've discovered) if when + # we're anchored to the start we ignore anything after a newline. + # However, don't do this if we're anchored to the end. The + # match should fail if there are extra lines in that case. + if [[ anchor_end -eq 0 && $line = (#b)([^$'\n']##)($'\n'*) ]]; then + line=$match[1] + rest_line=$match[2] + fi else dspat=$dspat_noanchor dspat_noday=$dspat_noanchor tspat=$tspat_noanchor fi +orig_line=$line # Look for a time separately; we need colons for this. # We want to look for the first time to ensure it's associated @@ -268,6 +291,7 @@ # To use a case statement we'd need to be able to request non-greedy # matching for a pattern. local rest +# HH:MM:SECONDS am/pm with optional decimal seconds rest=${line#(#ibm)${~tspat}(<0-12>):(<0-59>)[.:]((<0-59>)(.<->|))[[:space:]]#([ap])(|.)[[:space:]]#m(.|[[:space:]]|(#e))} if [[ $rest != $line ]]; then hour=$match[2] @@ -275,7 +299,8 @@ second=$match[5] [[ $match[7] = (#i)p ]] && (( hour <= 12 )) && (( hour += 12 )) time_found=1 -else +fi +if (( time_found == 0 )); then # no seconds, am/pm rest=${line#(#ibm)${~tspat}(<0-12>):(<0-59>)[[:space:]]#([ap])(|.)[[:space:]]#m(.|[[:space:]]|(#e))} if [[ $rest != $line ]]; then @@ -283,37 +308,60 @@ minute=$match[3] [[ $match[4] = (#i)p ]] && (( hour <= 12 )) && (( hour += 12 )) time_found=1 - else - # no colon, even, but a.m./p.m. indicator - rest=${line#(#ibm)${~tspat}(<0-12>)[[:space:]]#([ap])(|.)[[:space:]]#m(.|[[:space:]]|(#e))} - if [[ $rest != $line ]]; then - hour=$match[2] - minute=0 - [[ $match[3] = (#i)p ]] && (( hour <= 12 )) && (( hour += 12 )) - time_found=1 - else - # 24 hour clock, with seconds - rest=${line#(#ibm)${~tspat}(<0-24>):(<0-59>)[.:]((<0-59>)(.<->|))(.|[[:space:]]|(#e))} - if [[ $rest != $line ]]; then - hour=$match[2] - minute=$match[3] - second=$match[5] - time_found=1 - else - rest=${line#(#ibm)${~tspat}(<0-24>):(<0-59>)(.|[[:space:]]|(#e))} - if [[ $rest != $line ]]; then - hour=$match[2] - minute=$match[3] - time_found=1 - fi - fi - fi + fi +fi +if (( time_found == 0 )); then + # no colon, even, but a.m./p.m. indicator + rest=${line#(#ibm)${~tspat}(<0-12>)[[:space:]]#([ap])(|.)[[:space:]]#m(.|[[:space:]]|(#e))} + if [[ $rest != $line ]]; then + hour=$match[2] + minute=0 + [[ $match[3] = (#i)p ]] && (( hour <= 12 )) && (( hour += 12 )) + time_found=1 + fi +fi +if (( time_found == 0 )); then + # 24 hour clock, with seconds + rest=${line#(#ibm)${~tspat}(<0-24>):(<0-59>)[.:]((<0-59>)(.<->|))(.|[[:space:]]|(#e))} + if [[ $rest != $line ]]; then + hour=$match[2] + minute=$match[3] + second=$match[5] + time_found=1 + fi +fi +if (( time_found == 0 )); then + rest=${line#(#ibm)${~tspat}(<0-24>):(<0-59>)(.|[[:space:]]|(#e))} + if [[ $rest != $line ]]; then + hour=$match[2] + minute=$match[3] + time_found=1 + fi +fi +if (( time_found == 0 )); then + # Combined date and time formats: here we can use an anchor because + # we know the complete format. + (( anchor )) && tspat=$tspat_anchor + # RFC 2445 + rest=${line#(#ibm)${~tspat}(|\"[^\"]##\":)($~d$~d$~d$~d)($~d$~d)($~d$~d)T($~d$~d)($~d$~d)($~d$~d)([[:space:]]#|(#e))} + if [[ $rest != $line ]]; then + year=$match[3] + month=$match[4] + day=$match[5] + hour=$match[6] + minute=$match[7] + second=$match[8] + # signal don't need to take account of time in date... + time_found=2 + date_found=1 + date_start=$mbegin[3] + date_end=$mend[-1] fi fi (( hour == 24 )) && hour=0 -if (( time_found )); then - # time was found +if (( time_found && ! date_found )); then + # time was found; if data also found already, process below. time_start=$mbegin[2] time_end=$mend[-1] # Remove the timespec because it may be in the middle of @@ -331,7 +379,7 @@ (( debug )) && print "line after time: $line" fi -if (( relative == 0 )); then +if (( relative == 0 && date_found == 0 )); then # Date. case $line in # Look for YEAR[-/.]MONTH[-/.]DAY @@ -468,7 +516,7 @@ fi line=${line[1,$date_start-1]}${line[$date_end+1,-1]} fi - if (( time_found )); then + if (( time_found == 1 )); then if (( date_found )); then # If we found a time, it must be associated with the date, # or we can't use it. Since we removed the time from the @@ -540,7 +588,7 @@ "'$orig_line[time_start,time_end]'" (( date_ok )) && print "Date string: $date_start,$date_end:" \ "'$orig_line[date_start,date_end]'" - print "Remaining line: '$line'" + print "Remaining line: '$line$rest_line'" fi fi fi @@ -720,12 +768,13 @@ fi # relative_start is zero if we're not using it (( reladd += (hour * 60 + minute) * 60 + second )) + typeset -g REPLY (( REPLY = relative_start + reladd )) - [[ -n $setvar ]] && REPLY2=$line + [[ -n $setvar ]] && typeset -g REPLY2="$line$rest_line" return 0 fi return 1 -elif (( ! date_found )); then +elif (( date_found == 0 )); then return 1 fi @@ -747,6 +796,6 @@ strftime -s REPLY -r $fmt $nums -[[ -n $setvar ]] && REPLY2=$line +[[ -n $setvar ]] && typeset -g REPLY2="$line$rest_line" return 0 diff -Nru zsh-4.3.10/Functions/Calendar/calendar_show zsh-4.3.11/Functions/Calendar/calendar_show --- zsh-4.3.10/Functions/Calendar/calendar_show 2008-03-28 19:19:33.000000000 +0100 +++ zsh-4.3.11/Functions/Calendar/calendar_show 2010-04-13 18:28:21.000000000 +0200 @@ -13,7 +13,7 @@ # HERE: this should be configurable and we should be able to do # better if xmessage isn't available, e.g. wish. if [[ -n $DISPLAY && $start -eq $stop ]]; then - if [[ -n ${commands[kdialog]} && -n $KDE_SESSION_UID ]] && dcop >&/dev/null + if [[ -n ${commands[kdialog]} && -n $KDE_SESSION_UID ]] then # We're in a KDE session, most probably. # Simple: diff -Nru zsh-4.3.10/Functions/Calendar/calendar_sort zsh-4.3.11/Functions/Calendar/calendar_sort --- zsh-4.3.10/Functions/Calendar/calendar_sort 2006-11-30 15:09:28.000000000 +0100 +++ zsh-4.3.11/Functions/Calendar/calendar_sort 2010-07-28 16:01:12.000000000 +0200 @@ -1,7 +1,7 @@ emulate -L zsh setopt extendedglob -autoload -U calendar_{read,scandate,lockfiles} +autoload -Uz calendar_{read,scandate,lockfiles} local calendar line REPLY new lockfile local -a calendar_entries @@ -11,9 +11,18 @@ # Read the calendar file from the calendar-file style zstyle -s ':datetime:calendar:' calendar-file calendar || calendar=~/calendar -# Start block for "always" to handle lockfile +# start of subshell for OS file locking +( +# start of block for following always to clear up lockfiles. +# Not needed but harmless if OS file locking is used. { - calendar_lockfiles $calendar || return 1 + if zmodload -F zsh/system b:zsystem && zsystem supports flock && + zsystem flock $calendar; then + # locked OK + : + else + calendar_lockfiles $calendar || exit 1 + fi new=$calendar.new.$$ calendar_read $calendar @@ -65,3 +74,4 @@ } always { (( ${#lockfiles} )) && rm -rf $lockfiles } +) diff -Nru zsh-4.3.10/Functions/Chpwd/cdr zsh-4.3.11/Functions/Chpwd/cdr --- zsh-4.3.10/Functions/Chpwd/cdr 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Chpwd/cdr 2010-12-17 18:08:11.000000000 +0100 @@ -0,0 +1,311 @@ +# Description +# =========== +# +# Change to a recently used directory recorded in a file so that the +# recent file list persists across sessions. +# +# To use this system, +# +# autoload -Uz chpwd_recent_dirs cdr add-zsh-hook +# add-zsh-hook chpwd chpwd_recent_dirs +# +# (add-zsh-hook appeared in zsh version 4.3.4.) This ensures that all +# directories you change to interactively are registered. The +# chpwd_recent_dirs function does some guesswork to see if you are "really" +# changing directory permanently, see below. +# +# The argument to cdr is a number corresponding to the Nth most recently +# changed-to directory starting at 1 for the immediately preceeding +# directory (the current directory is remembered but is not offered as a +# destination). You can use directory arguments if you set the +# recent-dirs-default style, see below; however, it should be noted +# that if you do you gain nothing over using cd directly (the recent +# directory list is updated in either case). +# +# If the argument is omitted, 1 is assumed. +# +# Completion is available if compinit has been run; menu selection is +# recommended, using +# +# zstyle ':completion:*:*:cdr:*:*' menu selection +# +# and also the verbose style to ensure the directory is shown (this +# is on by default). +# +# Options +# ======= +# +# "cdr -l" lists the numbers and the corresponding directories in +# abbreviated form (i.e. with "~" substitution reapplied), one per line. +# The directories here are not quoted (this would only be an issue if a +# directory name contained a newline). This is used by the completion +# system. +# +# "cdr -r" sets the parameter "reply" to the current set of directories. +# +# "cdr -e" allows you to edit the list of directories, one per line. The +# list can be edited to any extent you like; no sanity checking is +# performed. Completion is available. No quoting is necessary (except for +# newlines, where I have in any case no sympathy); directories are in +# unabbreviated from and contain an absolute path, i.e. they start with / +# (and only /). Usually the first entry should be left as the current +# directory. +# +# Details of directory handling +# ============================= +# +# Recent directories are saved to a file immediately and hence are +# preserved across sessions. Note currently no file locking is applied: +# the list is updated immediately on interactive commands and nowhere else +# (unlike history), and it is assumed you are only going to change +# directory in one window at once. This is not safe on shared accounts, +# but in any case the system has limited utility when someone else is +# changing to a different set of directories behind your back. +# +# To make this a little safer, only directory changes instituted from the +# command line, either directly or indirectly through shell function calls +# (but not through subshells, evals, traps, completion functions and the +# like) are saved. This works best in versions of the shell from 4.3.11 +# which has facilities to check the evaluation context. Shell functions +# should use cd -q or pushd -q to avoid side effects if the change to the +# directory is to be invisible at the command line. See the function +# chpwd_recent_dirs for more details. +# +# Styles +# ====== +# +# Various styles are available. The context for setting styles should be +# ':chpwd:*' in case the meaning of the context is extended in future, for +# example: +# +# zstyle ':chpwd:*' recent-dirs-max 0 +# +# although the style name is specific enough that a context of '*' should +# be fine in practice. The only exception is recent-dirs-insert, which is +# used exclusively by the completion system and so has the usual completion +# system context (':completion:*' if nothing more specific is needed, +# though again '*' should be fine in practice). +# +# recent-dirs-default +# If true, and the command is expecting a recent directory index, and +# either there is more than one argument or the argument is not an +# integer, then fall through to "cd". This allows the lazy to use only +# one command for directory changing. Completion recognises this, too; +# see recent-dirs-insert for how to control completion when this option +# is in use. +# +# recent-dirs-file +# The file where the list of directories is saved. The default +# is ${ZDOTDIR:-$HOME}/.chpwd-recent-dirs, i.e. this is in your +# home directory unless you have set ZDOTDIR to point somewhere else. +# Directory names are saved in $'...' quoted form, so each line +# in the file can be supplied directly to the shell as an argument. +# +# The value of this style may be an array. In this case, the first +# file in the list will always be used for saving directories while any +# other files are left untouched. When reading the recent directory +# list, if there are fewer than the maximum number of entries in the +# first file, the contents of later files in the array will be appended +# with duplicates removed from the list shown. The contents of the two +# files are not sorted together, i.e. all the entries in the first file +# are shown first. The special value "+" can appear in the list to +# indicate the default file should be read at that point. This allows +# effects like the following: +# +# zstyle recent-dirs-file ':chpwd:*' ~/.chpwd-recent-dirs-${TTY##*/} + +# +# Recent directories are read from a file numbered according to +# the terminal. If there are insufficient entries the list +# is supplemented from the default file. +# +# recent-dirs-insert +# Used by completion. If recent-dirs-default is true, then setting +# this to true causes the actual directory, rather than its index, to +# be inserted on the command line; this has the same effect as using +# the corresponding index, but makes the history clearer and the line +# easier to edit. With this setting, if part of an argument was +# already typed, normal directory completion rather than recent +# directory completion is done; this is because recent directory +# completion is expected to be done by cycling through entries menu +# fashion. However, if the value of the style is "always", then only +# recent directories will be completed; in that case, use the cd +# command when you want to complete other directories. If the value is +# "fallback", recent directories will be tried first, then normal +# directory completion is performed if recent directory completion +# failed to find a match. Finally, if the value is "both" then both +# sets of completions are presented; the usual tag mechanism can be +# used to distinguish results, with recent directories tagged as +# "recent-dirs". Note that the recent directories inserted are +# abbreviated with directory names where appropriate. +# +# recent-dirs-max +# The maximum number of directories to save to the file. If +# this is zero or negative there is no maximum. The default is 20. +# Note this includes the current directory, which isn't offered, +# so the highest number of directories you will be offered +# is one less than the maximum. +# +# recent-dirs-prune +# This style is an array determining what directories should (or should +# not) be added to the recent list. Elements of the array can include: +# parent +# Prune parents (more accurately, ancestors) from the recent list. +# If present, changing directly down by any number of directories +# causes the current directory to be overwritten. For example, +# changing from ~pws to ~pws/some/other/dir causes ~pws not to be +# left on the recent directory stack. This only applies to direct +# changes to descendant directories; earlier directories on the +# list are not pruned. For example, changing from ~pws/yet/another +# to ~pws/some/other/dir does not cause ~pws to be pruned. +# pattern: +# Gives a zsh pattern for directories that should not be +# added to the recent list (if not already there). This element +# can be repeated to add different patterns. For example, +# 'pattern:/tmp(|/*)' stops /tmp or its descendants from being +# added. The EXTENDED_GLOB option is always turned on for +# these patterns. +# +# recent-dirs-pushd +# If set to true, cdr will use pushd instead of cd to change the +# directory, so the directory is saved on the directory stack. As the +# directory stack is completely separate from the list of files saved +# by the mechanism used in this file there is no obvious reason to do +# this. +# +# Use with dynamic directory naming +# ================================= +# +# It is possible to refer to recent directories using the dynamic directory +# name syntax that appeared in zsh version 4.3.7. If you create and +# autoload a function zsh_directory_name containing the following code, +# ~[1] will refer to the most recent directory other than $PWD, and so on. +# This also includes completion (version 4.3.11 is required for this to +# work; previous versions needed the file _dynamic_directory_name to +# be overloaded). +# +# if [[ $1 = n ]]; then +# if [[ $2 = <-> ]]; then +# # Recent directory +# typeset -ga reply +# autoload -Uz cdr +# cdr -r +# if [[ -n ${reply[$2]} ]]; then +# reply=(${reply[$2]}) +# return 0 +# else +# reply=() +# return 1 +# fi +# fi +# elif [[ $1 = c ]]; then +# if [[ $PREFIX = <-> || -z $PREFIX ]]; then +# typeset -a keys values +# +# values=(${${(f)"$(cdr -l)"}/ ##/:}) +# keys=(${values%%:*}) +# +# _describe -t dir-index 'recent directory index' \ +# values keys -V unsorted -S']' +# return +# fi +# fi +# return 1 + + +emulate -L zsh +setopt extendedglob + +autoload -Uz chpwd_recent_filehandler chpwd_recent_add + +integer list set_reply i bad edit +local opt dir +local -aU dirs + +while getopts "elr" opt; do + case $opt in + (e) + edit=1 + ;; + + (l) + list=1 + ;; + + (r) + set_reply=1 + ;; + + (*) + return 1 + ;; + esac +done +shift $(( OPTIND - 1 )) + +if (( set_reply )); then + typeset -ga reply +else + local -a reply +fi + +if (( list || set_reply || edit )); then + (( $# )) && bad=1 +else + if [[ $#1 -eq 0 ]]; then + 1=1 + elif [[ $# -ne 1 || $1 != <-> ]]; then + if zstyle -t ':chpwd:' recent-dirs-default; then + cd "$@" + return + else + bad=1 + fi + fi +fi + +if (( bad )); then + print "Usage: $0 [-l | -r | ] +Use $0 -l or completion to see possible directories." + return 1 +fi + +chpwd_recent_filehandler + +if [[ $PWD != $reply[1] ]]; then + # When we first start we don't have the current directory. + # Add it now for consistency. + chpwd_recent_add $PWD && chpwd_recent_filehandler $reply +fi + +if (( edit )); then + local compcontext='directories:directory:_path_files -/' +IFS=' +' vared reply || return 1 +chpwd_recent_filehandler $reply +fi + +# Skip current directory if present (may have been pruned). +[[ $reply[1] = $PWD ]] && reply=($reply[2,-1]) + +if (( list )); then + dirs=($reply) + for (( i = 1; i <= ${#dirs}; i++ )); do + print -n ${(r.5.)i} + print -r ${(D)dirs[i]} + done + return +fi + +(( set_reply || edit )) && return + +if (( $1 > ${#reply} )); then + print "Not enough directories ($(( ${#dirs} - 1)) possibilities)" >&2 + return 1 +fi +dir=${reply[$1]} + +if zstyle -t ':chpwd:' recent-dirs-pushd; then + pushd -- $dir +else + cd -- $dir +fi diff -Nru zsh-4.3.10/Functions/Chpwd/_cdr zsh-4.3.11/Functions/Chpwd/_cdr --- zsh-4.3.10/Functions/Chpwd/_cdr 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Chpwd/_cdr 2010-07-09 16:47:48.000000000 +0200 @@ -0,0 +1,57 @@ +#compdef cdr + +local expl insert_string +integer default insert + +zstyle -t ':chpwd:' recent-dirs-default && default=1 +if (( default )); then + zstyle -s ':completion:${curcontext}' recent-dirs-insert insert_string + case $insert_string in + (both) + insert=4 + ;; + + (fallback) + insert=3 + ;; + + (always) + insert=2 + ;; + + ([tT]*|1|[yY]*) + insert=1 + ;; + + (*) + insert=0 + esac +fi + +# See if we should fall back to cd completion. +if [[ default -ne 0 && insert -lt 2 && \ + ( CURRENT -ne 2 || (-n $words[2] && $words[2] != <->) ) ]]; then + $_comps[cd] "$@" + return +fi + +local -a values keys + +if (( insert )); then + # insert the actual directory, not the number + values=(${${(f)"$(cdr -l)"}##<-> ##}) + # Suppress the usual space suffix, since there's no further argument + # and it's useful to be able to edit the directory e.g. add /more/stuff. + if _wanted -V recent-dirs expl 'recent directory' compadd -S '' -Q -a values + then + (( insert == 4 )) || return 0 + fi + + (( insert >= 3 )) || return + $_comps[cd] "$@" +else + values=(${${(f)"$(cdr -l)"}/ ##/:}) + keys=(${values%%:*}) + + _describe -t dir-index 'recent directory index' values keys -V unsorted +fi diff -Nru zsh-4.3.10/Functions/Chpwd/chpwd_recent_add zsh-4.3.11/Functions/Chpwd/chpwd_recent_add --- zsh-4.3.10/Functions/Chpwd/chpwd_recent_add 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Chpwd/chpwd_recent_add 2010-07-09 16:47:48.000000000 +0200 @@ -0,0 +1,24 @@ +# Helper for chpwd_recent_dirs. +# Add a directory to the reply array unless we're skipping it. +# If skipping, return non-zero status. + +local pat +local add=$1 +local -a prune patterns + +zstyle -a ':chpwd:' recent-dirs-prune prune +if (( ${#prune} )); then + patterns=(${${prune:#^pattern:*}##pattern:}) +fi + +for pat in $patterns; do + if [[ $add =~ ${~pat} ]]; then + return 1 + fi +done + +if [[ ${prune[(I)parent]} -ne 0 && $add = $reply[1]/* ]]; then + # replace + reply=($reply[2,-1]) +fi +reply=($add $reply) diff -Nru zsh-4.3.10/Functions/Chpwd/chpwd_recent_dirs zsh-4.3.11/Functions/Chpwd/chpwd_recent_dirs --- zsh-4.3.10/Functions/Chpwd/chpwd_recent_dirs 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Chpwd/chpwd_recent_dirs 2010-07-20 23:46:42.000000000 +0200 @@ -0,0 +1,44 @@ +# Save the current directory in the stack of most recently used directories. + +emulate -L zsh +setopt extendedglob + +local -aU reply +integer changed + +autoload -Uz chpwd_recent_filehandler chpwd_recent_add + +# Don't save if this is not interactive, or is in a subshell. +# Don't save if this is not being called directly from the top level +# of the shell via a straightforward sequence of shell functions. +# So this is called +# - on any straightforward cd or pushd (including AUTO_CD) +# - any time cd or pushd is called from a function invoked directly +# or indirectly from the command line, e.g. if pushd is a function +# fixing the order of directories that got broken years ago +# but it is not called any time +# - the shell is not interactive +# - we forked +# - we are being eval'd, including for some special purpose such +# as a style +# - we are not called from the top-level command loop, for example +# we are in a completion function (which is called from zle +# when the main top-level command interpreter isn't running) +# - obviously, when cd -q is in use (that's what the option is for). +# +# For compatibility with older shells, skip this test if $ZSH_EVAL_CONTEXT +# isn't set. This will never be the case inside a shell function when +# the variable is implemented. +if [[ ! -o interactive || $ZSH_SUBSHELL -ne 0 || \ + ( -n $ZSH_EVAL_CONTEXT && \ + $ZSH_EVAL_CONTEXT != toplevel(:[a-z]#func|)# ) ]]; then + return +fi + +chpwd_recent_filehandler + +if [[ $reply[1] != $PWD ]]; then + chpwd_recent_add $PWD && changed=1 + + (( changed )) && chpwd_recent_filehandler $reply +fi diff -Nru zsh-4.3.10/Functions/Chpwd/chpwd_recent_filehandler zsh-4.3.11/Functions/Chpwd/chpwd_recent_filehandler --- zsh-4.3.10/Functions/Chpwd/chpwd_recent_filehandler 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Chpwd/chpwd_recent_filehandler 2010-07-20 20:59:15.000000000 +0200 @@ -0,0 +1,47 @@ +# With arguments, output those files to the recent directory file. +# With no arguments, read in the directories from the file into $reply. +# +# Handles recent-dirs-file and recent-dirs-max styles. + +emulate -L zsh +setopt extendedglob + +integer max +local file line +local -a files dir +local default=${ZDOTDIR:-$HOME}/.chpwd-recent-dirs + +if zstyle -a ':chpwd:' recent-dirs-file files; then + files=(${files//(#s)+(#e)/$default}) +fi +if (( ${#files} == 0 )); then + files=($default) +fi + +zstyle -s ':chpwd:' recent-dirs-max max || max=20 + +if (( $# )); then + if (( max > 0 && ${#argv} > max )); then + argv=(${argv[1,max]}) + fi + # Quote on write. + # Use $'...' quoting... this fixes newlines and other nastiness. + print -rl ${(qqqq)argv} >${files[1]} +else + typeset -g reply + # Unquote on read. + reply=() + for file in $files; do + [[ -r $file ]] || continue + # Strip anything after the directory from the line. + # At the moment there isn't anything, but we'll make this + # future proof. + for line in ${(f)"$(<$file)"}; do + dir=(${(z)line}) + reply+=(${(Q)${dir[1]}}) + if (( max > 0 && ${#reply} == max )); then + break 2 + fi + done + done +fi diff -Nru zsh-4.3.10/Functions/Chpwd/.distfiles zsh-4.3.11/Functions/Chpwd/.distfiles --- zsh-4.3.10/Functions/Chpwd/.distfiles 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Chpwd/.distfiles 2010-07-09 16:47:48.000000000 +0200 @@ -0,0 +1,8 @@ +DISTFILES_SRC=' +.distfiles +cdr +_cdr +chpwd_recent_add +chpwd_recent_dirs +chpwd_recent_filehandler +' diff -Nru zsh-4.3.10/Functions/MIME/pick-web-browser zsh-4.3.11/Functions/MIME/pick-web-browser --- zsh-4.3.10/Functions/MIME/pick-web-browser 2007-08-14 18:54:18.000000000 +0200 +++ zsh-4.3.11/Functions/MIME/pick-web-browser 2009-09-11 13:26:46.000000000 +0200 @@ -74,16 +74,11 @@ # Get the name of all windows running; use the internal name, not # the friendly name, which is less useful. - # - # The nasty but portable version. - # The nice but non-portable version uses Perl, even though perl - # is more portable. - # windows=(${(f)"$(xwininfo -root -all | - # sed -ne 's/.*".*": ("\(.*\)" ".*").*/\1/p' |sort | uniq)"}) - windows=(${(f)"$(xwininfo -root -all | - perl -ne '/.*"(.*)": \("(.*)" "(.*)"\).*/ and $w{$2} = 1; - END { print join("\n", keys %w), "\n" }')"}) + windows=(${(ou)${(M)${(f)"$(xwininfo -root -all)"}:#*\"*\"\:[[:space:]]\(\"*}/(#b)*\"*\"\:[[:space:]]\(\"(*)\"[[:space:]]\"*\"\)*/$match[1]}) + #windows=(${(f)"$(xwininfo -root -all | + # perl -ne '/.*"(.*)": \("(.*)" "(.*)"\).*/ and $w{$2} = 1; + # END { print join("\n", keys %w), "\n" }')"}) # Is any browser we've heard of running? for browser in $xbrowsers; do diff -Nru zsh-4.3.10/Functions/MIME/zsh-mime-handler zsh-4.3.11/Functions/MIME/zsh-mime-handler --- zsh-4.3.10/Functions/MIME/zsh-mime-handler 2008-11-20 17:49:29.000000000 +0100 +++ zsh-4.3.11/Functions/MIME/zsh-mime-handler 2010-11-25 16:01:03.000000000 +0100 @@ -34,6 +34,28 @@ # We need zformat from zsh/zutil for %s replacement. zmodload -i zsh/zutil +# Look for options. Because of the way this is usually invoked, +# (there is always a command to be handled), only handle options +# up to second last argument. +local opt +integer list +while (( $# - $OPTIND > 0 )); do + if getopts "l" opt; then + case $opt in + (l) + list=1 + ;; + + (*) + return 1 + ;; + esac + else + break + fi +done +shift $(( OPTIND - 1 )) + # Always called with a filename argument first. # There might be other arguments; don't really know what to do # with these, but if they came from e.g. `*.ps' then we might @@ -47,7 +69,8 @@ suffix=${(L)match[1]} context=":mime:.${suffix}:" -local handler flags no_sh no_bg +local handler flags no_sh no_bg arg +integer i local -a exec_asis hand_nonex # Set to a list of patterns which are ignored and executed as they are, @@ -94,7 +117,20 @@ for pattern in $exec_asis; do files=(${dirpref}${~pattern}) if [[ -n ${files[(r)$1]} ]]; then - "$@" + if (( list )); then + for (( i = 1; i <= $#; i++ )); do + (( i == 1 )) || print -n " " + arg=${argv[i]} + if [[ -n $arg ]]; then + print -rn -- ${(q)arg} + else + print "''" + fi + done + print + else + "$@" + fi return fi done @@ -108,7 +144,11 @@ fi done if [[ -z $nonex_ok ]]; then - "$@" + if (( list )); then + print -r -- "${(q)@}" + else + "$@" + fi return fi fi @@ -152,12 +192,13 @@ # Probably we ought not even to handle multiple # arguments, but at least the error message ought # to make it obvious what's going on. - zformat -f command $handler s:"$argv" + zformat -f command $handler s:"$argv[1]" else - files=(${(q)argv}) - zformat -f command $handler s:"$files" + zformat -f command $handler s:"${(q)argv[1]}" fi - if [[ $no_sh = yes ]]; then + if (( list )); then + execargs=(${(Q)${(z)command}} ${argv[1,-1]}) + elif [[ $no_sh = yes ]]; then execargs=(eval $command) else execargs=(sh -c $command) @@ -174,13 +215,27 @@ else # If there's no %s, the input is supposed to come from stdin. stdin=1 - if [[ -n $hasmeta && $no_sh != yes ]]; then + if [[ -n $hasmeta && $no_sh != yes && list -eq 0 ]]; then execargs=(sh -c "$handler") else execargs=(${=handler}) fi fi +if (( list )); then + for (( i = 1; i <= ${#execargs}; i++ )); do + (( i == 1 )) || print -n " " + arg=${execargs[i]} + if [[ -n $arg ]]; then + print -rn -- ${(q)arg} + else + print -n "''" + fi + done + print + return 0 +fi + # Now execute the command in the appropriate fashion. if [[ $flags = *copiousoutput* ]]; then # We need to page the output. diff -Nru zsh-4.3.10/Functions/MIME/zsh-mime-setup zsh-4.3.11/Functions/MIME/zsh-mime-setup --- zsh-4.3.10/Functions/MIME/zsh-mime-setup 2008-11-20 17:44:31.000000000 +0100 +++ zsh-4.3.11/Functions/MIME/zsh-mime-setup 2010-07-28 16:01:12.000000000 +0200 @@ -3,7 +3,7 @@ local opt o_verbose o_list -autoload -U zsh-mime-handler +autoload -Uz zsh-mime-handler while getopts "flv" opt; do case $opt in @@ -293,8 +293,8 @@ else print -r "Adding" >&2 fi - print -r " handler for type $type: - $line" >&2 + print -r " handler for type $type:" >&2 + print -r " $line" >&2 fi type_handler_map[$type]=$line type_flags_map[$type]=$flags @@ -305,8 +305,8 @@ print -r " with flags $flags" >&2 fi elif [[ -n $o_verbose ]]; then - print -r "Skipping handler for already defined type $type: - $line" >&2 + print -r "Skipping handler for already defined type $type:" >&2 + print -r " $line" >&2 if [[ -n $flags ]]; then print -r " with flags $flags" >&2 fi diff -Nru zsh-4.3.10/Functions/Misc/.distfiles zsh-4.3.11/Functions/Misc/.distfiles --- zsh-4.3.10/Functions/Misc/.distfiles 2008-01-29 10:35:04.000000000 +0100 +++ zsh-4.3.11/Functions/Misc/.distfiles 2010-10-15 18:31:01.000000000 +0200 @@ -10,9 +10,13 @@ mere nslookup promptnl +regexp-replace relative run-help run-help-git +run-help-openssl +run-help-p4 +run-help-sudo run-help-svk run-help-svn sticky-note @@ -26,4 +30,5 @@ zmv zrecompile zstyle+ +ztodo ' diff -Nru zsh-4.3.10/Functions/Misc/regexp-replace zsh-4.3.11/Functions/Misc/regexp-replace --- zsh-4.3.10/Functions/Misc/regexp-replace 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Misc/regexp-replace 2010-01-19 14:14:17.000000000 +0100 @@ -0,0 +1,43 @@ +# Replace all occurrences of a regular expression in a variable. The +# variable is modified directly. Respects the setting of the +# option RE_MATCH_PCRE. +# +# First argument: *name* (not contents) of variable. +# Second argument: regular expression +# Third argument: replacement string. This can contain all forms of +# $ and backtick substitutions; in particular, $MATCH will be replaced +# by the portion of the string matched by the regular expression. + +integer pcre + +[[ -o re_match_pcre ]] && pcre=1 + +emulate -L zsh +(( pcre )) && setopt re_match_pcre + +# $4 is the string to be matched +4=${(P)1} +# $5 is the final string +5= +# 6 indicates if we made a change +6= +local MATCH MBEGIN MEND +local -a match mbegin mend + +while [[ -n $4 ]]; do + if [[ $4 =~ $2 ]]; then + # append initial part and subsituted match + 5+=${4[1,MBEGIN-1]}${(e)3} + # truncate remaining string + 4=${4[MEND+1,-1]} + # indicate we did something + 6=1 + else + break + fi +done +5+=$4 + +eval ${1}=${(q)5} +# status 0 if we did something, else 1. +[[ -n $6 ]] diff -Nru zsh-4.3.10/Functions/Misc/run-help zsh-4.3.11/Functions/Misc/run-help --- zsh-4.3.10/Functions/Misc/run-help 2009-04-29 14:31:12.000000000 +0200 +++ zsh-4.3.11/Functions/Misc/run-help 2010-07-28 15:33:52.000000000 +0200 @@ -5,11 +5,10 @@ # Install this function by placing it in your FPATH and then # adding to your .zshrc the lines: # unalias run-help -# autoload run-help +# autoload -Uz run-help # -emulate -R zsh -setopt localoptions +emulate -RL zsh local HELPDIR="${HELPDIR:-/usr/share/zsh/$ZSH_VERSION/help}" @@ -50,6 +49,7 @@ noalias=1 fi +{ while ((i++ < $#places)) do what=$places[$i] @@ -57,7 +57,8 @@ builtin print -r $what case $what in (*( is an alias)*) - [[ ${what[(w)6]:t} != ${what[(w)1]} ]] && run-help ${what[(w)6]:t} + [[ ${what[(w)6]:t} != ${what[(w)1]} ]] && + run_help_orig_cmd=${what[(w)1]} run-help ${what[(w)6]:t} ;; (*( is a * function)) case ${what[(w)1]} in @@ -97,13 +98,13 @@ builtin print -z "$cmd_args" cmd_args=( ${(z)cmd_args} ) # Discard environment assignments, etc. - while [[ $cmd_args[1] != $1 ]] + while [[ $cmd_args[1] != ${run_help_orig_cmd:-$1} ]] do - shift cmd_args + shift cmd_args || return 1 done eval "run-help-$1:t ${(q@)cmd_args[2,-1]}" else - man $@:t + POSIXLY_CORRECT=1 man $@:t fi fi ;; @@ -116,3 +117,6 @@ [[ $what == [qQ] ]] && break fi done +} always { + unset run_help_orig_cmd +} diff -Nru zsh-4.3.10/Functions/Misc/run-help-openssl zsh-4.3.11/Functions/Misc/run-help-openssl --- zsh-4.3.10/Functions/Misc/run-help-openssl 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Misc/run-help-openssl 2010-10-15 18:30:11.000000000 +0200 @@ -0,0 +1,7 @@ + +if [ $# -eq 0 ]; then + man openssl +else + man $1 +fi + diff -Nru zsh-4.3.10/Functions/Misc/run-help-p4 zsh-4.3.11/Functions/Misc/run-help-p4 --- zsh-4.3.10/Functions/Misc/run-help-p4 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Misc/run-help-p4 2009-12-16 13:12:57.000000000 +0100 @@ -0,0 +1,5 @@ +if (( ! $# )); then + p4 help commands +else + p4 help $1 +fi | ${=PAGER:-less} diff -Nru zsh-4.3.10/Functions/Misc/run-help-sudo zsh-4.3.11/Functions/Misc/run-help-sudo --- zsh-4.3.10/Functions/Misc/run-help-sudo 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Misc/run-help-sudo 2010-10-15 18:30:09.000000000 +0200 @@ -0,0 +1,7 @@ + +if [ $# -eq 0 ]; then + man sudo +else + man $1 +fi + diff -Nru zsh-4.3.10/Functions/Misc/sticky-note zsh-4.3.11/Functions/Misc/sticky-note --- zsh-4.3.10/Functions/Misc/sticky-note 2008-07-14 16:04:18.000000000 +0200 +++ zsh-4.3.11/Functions/Misc/sticky-note 2010-11-30 13:13:02.000000000 +0100 @@ -1,9 +1,5 @@ #!/bin/zsh -fi -# A little zsh sticky-note ("post-it") application. Sticky notes are -# stored in the file named by the STICKYFILE variable (defaults to -# $HOME/.zsticky). The number of notes stored is STICKYSIZE (1000). -# -# Load this file as a function: +# A zsh sticky-note ("post-it") application. Load this file as a function: # autoload -Uz sticky-note # # It may then be bound as a widget: @@ -12,30 +8,102 @@ # sticky-note # sticky-note -b # sticky-note -l ... -# With the -l option, lists previous sticky notes. Most options of the +# The -b option is like "zed -b": it installs keymaps/bindings only. +# Use the -l option to list previous sticky notes. Most options of the # "fc -l" command are supported, for selecting which notes to display. -# The -b option is like "zed -b": installs keymaps/bindings only. +# If "sticky-note -l" is run from inside a widget, the cursor is moved +# to the top left of the terminal before display and returned to its +# original position after display. The -l option is implicitly added +# when sticky-note is called from zle-line-init, to avoid inadvertently +# trapping the user inside the note editor. # -# Otherwise invokes the line editor with the previous notes available +# Otherwise, invoke the line editor with the previous notes available # as an editor history. Two quick taps on the return/enter key finish # the note, or you can use use ^X^W as usual (ZZ in vicmd mode). +# The application is configured by three zstyles, all using the context +# ":sticky-note". The first two styles are "notefile" and "maxnotes" +# to name the file in which notes are stored and the maximum number of +# notes to retain: +# zstyle :sticky-note notefile ~/.zsticky +# zstyle :sticky-note maxnotes 1000 + +# The "theme" style may be set to control the appearance of the notes. +# The style is an associative array; the current set of values (defaults +# in parens) are: +# bg => name or ANSI escape for background color (yellow) +# fg => name or ANSI escape for foreground color (black) +# color => ANSI escape for color scheme ($theme[bg]$theme[fg]) +# reset => ANSI escape to restore "normal" colors +# Values given as names are looked up in the $bg and $fg arrays from the +# "colors" function. If a "color" field is set, the "bg" and "fg" fields +# are not used. Example: +# zstyle :sticky-note theme \ +# bg red \ +# fg $fg_bold[yellow] + +# For backwards compatibility with an earlier version, the notefile may +# also be named by the STICKYFILE variable (defaults to $HOME/.zsticky). +# The number of notes stored may be given by STICKYSIZE (1000). + # I encourage all you creative people to contribute enhancements ... -# no-prize for the first person to put the most recent sticky note in -# his PS1 string. emulate -LR zsh +setopt nobanghist extendedhistory histignoredups local STICKYFILE=${STICKYFILE:-$HOME/.zsticky} local STICKYSIZE=${STICKYSIZE:-1000} +local sticky stickyfile stickysize + +zstyle -s :sticky-note notefile stickyfile || stickyfile=$STICKYFILE +zstyle -s :sticky-note maxnotes stickysize || stickysize=$STICKYSIZE + +# Set up keybindings (adapted from "zed") +if ! bindkey -M sticky >& /dev/null +then + bindkey -N sticky main + bindkey -M sticky ^X^W accept-line + bindkey -M sticky ^M^M accept-line # Two quick RETs ends note + bindkey -M sticky ^M self-insert-unmeta +fi +if ! bindkey -M sticky-vicmd >& /dev/null +then + bindkey -N sticky-vicmd vicmd + bindkey -M sticky-vicmd ZZ accept-line +fi + +[[ "$1" == -b ]] && return 0 + +# Look up color theme +local -A theme +(($+bg && $+fg)) || { autoload -Uz colors; colors } +zstyle -m :sticky-note theme '*' || { + zstyle :sticky-note theme bg yellow fg black +} +zstyle -a :sticky-note theme theme +(( ${+bg[$theme[bg]]} )) && theme[bg]=$bg[$theme[bg]] +(( ${+fg[$theme[fg]]} )) && theme[fg]=$fg[$theme[fg]] +(( ${+theme[color]} )) || theme[color]=$theme[bg]$theme[fg] +(( ${+theme[reset]} )) || theme[reset]=$reset_color # If invoked as a widget, behave a bit like run-help if zle then - if [[ $CONTEXT = (cont|select|vared) ]] + zmodload -i zsh/parameter + if [[ $* == -*l* || $functrace == *zle-line-init:* ]] + then + fc -ap $stickyfile $stickysize $stickysize + echoti sc + echoti home + print -nr "$theme[color]" + fc -l "${@:--1}" | while read -r sticky; do print -- "$sticky"; done + print -nr "$theme[reset]" + echoti rc + elif [[ $CONTEXT = (cont|select|vared) ]] then zle -M "No stickies during ${${(z)PREBUFFER}[1]:-$CONTEXT}, sorry" zle .beep + zle -R else zle .push-line BUFFER=sticky-note @@ -44,43 +112,24 @@ return 0 fi -(($+bg && $+fg)) || { autoload -U colors; colors } - # Invoked as a command, behave like zed, but write a history file -setopt nobanghist extendedhistory histignoredups -fc -ap $STICKYFILE $STICKYSIZE $STICKYSIZE +fc -ap $stickyfile $stickysize $stickysize # With a -l option, list the existing sticky notes -if [[ "$1" == -*l* ]] +if [[ "$*" == -*l* ]] then - print -nr "$bg[yellow]$fg[black]" - fc -f "$@" - print -nr "$reset_color" + print -nr "$theme[color]" + # Use read/print loop to interpolate "\n" in history lines + fc -f "$@" | while read -r sticky; do print -- "$sticky"; done + print -nr "$theme[reset]" return 0 fi -# Set up keybindings (adapted from "zed") -if ! bindkey -M sticky >& /dev/null -then - bindkey -N sticky main - bindkey -M sticky ^X^W accept-line - bindkey -M sticky ^M^M accept-line # Two quick RETs ends note - bindkey -M sticky ^M self-insert-unmeta -fi -if ! bindkey -M sticky-vicmd >& /dev/null -then - bindkey -N sticky-vicmd vicmd - bindkey -M sticky-vicmd ZZ accept-line -fi - -[[ "$1" == -b ]] && return 0 - -# Edit a new sticky note and add it to the STICKYFILE -local sticky -while vared -h -p "%{$bg[yellow]$fg[black]%}" -M sticky -m sticky-vicmd sticky +# Edit a new sticky note and add it to the stickyfile +while vared -h -p "%{$theme[color]%}" -M sticky -m sticky-vicmd sticky do { - print -s -- "$sticky" + [[ -n "$sticky" ]] && print -s -- "$sticky" } always { (( TRY_BLOCK_ERROR = 0 )) } && break diff -Nru zsh-4.3.10/Functions/Misc/zcalc zsh-4.3.11/Functions/Misc/zcalc --- zsh-4.3.10/Functions/Misc/zcalc 2008-06-13 16:24:28.000000000 +0200 +++ zsh-4.3.11/Functions/Misc/zcalc 2010-07-28 16:01:12.000000000 +0200 @@ -105,7 +105,7 @@ forms=( '%2$g' '%.*g' '%.*f' '%.*E' '') zmodload -i zsh/mathfunc 2>/dev/null -autoload -U zmathfuncdef +autoload -Uz zmathfuncdef : ${ZCALCPROMPT="%1v> "} @@ -152,7 +152,7 @@ done psvar[1]=$num -while vared -cehp "${(%)ZCALCPROMPT}" line; do +while vared -cehp "${ZCALCPROMPT}" line; do [[ -z $line ]] && break # special cases # Set default base if `[#16]' or `[##16]' etc. on its own. diff -Nru zsh-4.3.10/Functions/Misc/zed zsh-4.3.11/Functions/Misc/zed --- zsh-4.3.10/Functions/Misc/zed 2008-07-14 16:04:18.000000000 +0200 +++ zsh-4.3.11/Functions/Misc/zed 2010-01-29 22:44:58.000000000 +0100 @@ -1,4 +1,4 @@ -# +#!/bin/zsh # zed # # No other shell could do this. @@ -74,7 +74,7 @@ var="$(functions $1)" # If function is undefined but autoloadable, load it if [[ $var = *\#\ undefined* ]] then - ar="$(autoload +X $1; functions $1)" + var="$(autoload +X $1; functions $1)" elif [[ -z $var ]] then var="$1() { }" diff -Nru zsh-4.3.10/Functions/Misc/zmv zsh-4.3.11/Functions/Misc/zmv --- zsh-4.3.10/Functions/Misc/zmv 2008-05-12 10:51:46.000000000 +0200 +++ zsh-4.3.11/Functions/Misc/zmv 2009-09-06 23:35:39.000000000 +0200 @@ -187,7 +187,7 @@ # Well, this seems to work. # The tricky bit is getting all forms of [...] correct, but as long # as we require inactive bits to be backslashed its not so bad. - find='(#m)((\*\*#/|[*?]|<[0-9]#-[0-9]#>|\[(^|)(\]|)(\[:[a-z]##:\]|\\?|[^\]])##\])\##|?\###)' + find='(#m)((\*\*##/|[*?]|<[0-9]#-[0-9]#>|\[(^|)(\]|)(\[:[a-z]##:\]|\\?|[^\]])##\])\##|?\###)' tmp="${pat//${~find}/$[++cnt]}" if [[ $cnt = 0 ]]; then print -r -- "$myname: warning: no wildcards were found in search pattern" >&2 diff -Nru zsh-4.3.10/Functions/Misc/ztodo zsh-4.3.11/Functions/Misc/ztodo --- zsh-4.3.10/Functions/Misc/ztodo 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Misc/ztodo 2009-11-22 20:17:32.000000000 +0100 @@ -0,0 +1,62 @@ +# vim: set ft=zsh et sw=2 sts=2: + +emulate -L zsh +setopt no_sh_word_split null_glob no_ksh_arrays +typeset -gHA __ztodolist +typeset -gH __ztodolastwrite +local cachefile short_format list_format +local tmp needupdate=0 +local -a todos + +zstyle -s ':ztodo:*' cache-file cachefile || + cachefile="~/.ztodolist" +zstyle -s ':ztodo:*' short-format short_format || + short_format="You have %n thing%1(n..s) to do here." +zstyle -s ':ztodo:*' list-format list_format || + list_format="%-2n: %e" + +tmp=(${~tmp::=$cachefile(ms-$(( ${(%)tmp::="%D{%s}"} - ${__ztodolastwrite:-0} )))}) +(( $#tmp )) && + . $~cachefile + +todos=( ${(ps:\0:)__ztodolist[$PWD]} ) + +if (( $# )); then + case "$1" in + (add) + shift + todos=( $todos "$*" ) + needupdate=1 + ;; + (del) + shift + todos[$1]=() + needupdate=1 + ;; + (clear) + shift + todos=() + needupdate=1 + ;; + (list) + shift + local i + for (( i = 1; i <= $#todos; i++ )); do + zformat -f tmp $list_format n:$i e:"${todos[$i]//\%/%%}" + print -P "$tmp" + done + ;; + esac +else + if [[ $#todos -gt 0 ]]; then + zformat -f tmp $short_format n:$#todos + print -P "$tmp" + fi +fi + +(( $#todos )) && + __ztodolist[$PWD]=${(pj:\0:)todos} || + unset "__ztodolist[$PWD]" +(( needupdate )) && + print -r "__ztodolist=( ${(kv@qq)^^__ztodolist} )" > ${~cachefile} +__ztodolastwrite="${(%)tmp::="%D{%s}"}" diff -Nru zsh-4.3.10/Functions/Newuser/zsh-newuser-install zsh-4.3.11/Functions/Newuser/zsh-newuser-install --- zsh-4.3.10/Functions/Newuser/zsh-newuser-install 2008-07-18 13:46:20.000000000 +0200 +++ zsh-4.3.11/Functions/Newuser/zsh-newuser-install 2010-08-10 20:57:43.000000000 +0200 @@ -19,6 +19,15 @@ return 1 fi +# clear is missing in some Cygwin configurations (lacking ncurses) +if ! ( clear >/dev/null 2>/dev/null ); then + if zmodload zsh/termcap 2>/dev/null; then + clear() { echotc cl; } + else + clear() { print -n "\e[H\e[J"; } + fi +fi + # The directory in which to look for and save .zshrc. local zd=${ZDOTDIR:-$HOME} # The same directory in a user friendly form, i.e. with ~ replacement. @@ -348,7 +357,7 @@ (-B) shift if [[ -z $state_keymaps[main] ]]; then - parsed_keymaps[main] = $1 + parsed_keymaps[main]=$1 if [[ $1 = none ]]; then state_keymaps[main]="no value set" else @@ -945,6 +954,12 @@ print -r " (1) Continue to the main menu. " + if [[ -f /etc/zsh/newuser.zshrc.recommended ]]; then + print -r "(2) Populate your $zdmsg/.zshrc with the configuration recommended + by the system administrator and exit (you will need to edit + the file by hand, if so desired). +" + fi read -k key$longprompt print @@ -962,6 +977,12 @@ (1) ;; + (2) + cp /etc/zsh/newuser.zshrc.recommended $zd/.zshrc + source $zd/.zshrc + return 0 + ;; + (*) print -r "Aborting." if [[ $1 != -f ]]; then @@ -1060,7 +1081,7 @@ if [[ $1 != -f ]]; then print -r "The function will not be run in future, but you can run it yourself as follows: - autoload $myname + autoload -Uz $myname $myname -f The code added to $zdmsg/.zshrc is marked by the lines diff -Nru zsh-4.3.10/Functions/Prompts/prompt_clint_setup zsh-4.3.11/Functions/Prompts/prompt_clint_setup --- zsh-4.3.10/Functions/Prompts/prompt_clint_setup 2008-09-22 10:45:02.000000000 +0200 +++ zsh-4.3.11/Functions/Prompts/prompt_clint_setup 2009-11-20 04:05:55.000000000 +0100 @@ -17,7 +17,7 @@ autoload -Uz vcs_info - pcc[1]=${1:-'red'} + pcc[1]=${1:-${${SSH_CLIENT+'yellow'}:-'red'}} pcc[2]=${2:-'cyan'} pcc[3]=${3:-'green'} pcc[4]=${4:-'yellow'} diff -Nru zsh-4.3.10/Functions/Prompts/promptinit zsh-4.3.11/Functions/Prompts/promptinit --- zsh-4.3.10/Functions/Prompts/promptinit 2008-12-02 10:32:57.000000000 +0100 +++ zsh-4.3.11/Functions/Prompts/promptinit 2010-07-28 16:01:12.000000000 +0200 @@ -22,7 +22,7 @@ name="$match[1]" if [[ -r "$theme" ]]; then prompt_themes=($prompt_themes $name) - autoload -U prompt_${name}_setup + autoload -Uz prompt_${name}_setup else print "Couldn't read file $theme containing theme $name." fi @@ -32,7 +32,7 @@ done # To manipulate precmd and preexec hooks... - autoload -U add-zsh-hook + autoload -Uz add-zsh-hook # Variables common to all prompt styles prompt_newline=$'\n%{\r%}' @@ -134,7 +134,7 @@ ;; s) print "Set and save not yet implemented. Please ensure your ~/.zshrc" print "contains something similar to the following:\n" - print " autoload -U promptinit" + print " autoload -Uz promptinit" print " promptinit" print " prompt $*[2,-1]" shift diff -Nru zsh-4.3.10/Functions/TCP/tcp_open zsh-4.3.11/Functions/TCP/tcp_open --- zsh-4.3.10/Functions/TCP/tcp_open 2008-07-30 11:39:18.000000000 +0200 +++ zsh-4.3.11/Functions/TCP/tcp_open 2010-07-28 15:33:56.000000000 +0200 @@ -57,9 +57,9 @@ zmodload -i zsh/net/tcp || return 1 zmodload -i zsh/zutil -autoload -U tcp_alias tcp_close tcp_command tcp_expect tcp_fd_handler -autoload -U tcp_log tcp_output tcp_proxy tcp_read tcp_rename tcp_send -autoload -U tcp_sess tcp_spam tcp_talk tcp_wait tcp_point tcp_shoot +autoload -Uz tcp_alias tcp_close tcp_command tcp_expect tcp_fd_handler +autoload -Uz tcp_log tcp_output tcp_proxy tcp_read tcp_rename tcp_send +autoload -Uz tcp_sess tcp_spam tcp_talk tcp_wait tcp_point tcp_shoot # TCP_SECONDS_START is only set if we override TCP_SECONDS locally, # so provide a global value for convenience. Should probably always be 0. diff -Nru zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_detect_hg zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_detect_hg --- zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_detect_hg 2008-12-11 10:50:03.000000000 +0100 +++ zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_detect_hg 2010-05-10 12:46:49.000000000 +0200 @@ -4,9 +4,17 @@ setopt localoptions NO_shwordsplit -[[ $1 == '--flavours' ]] && return 1 +[[ $1 == '--flavours' ]] && { print -l hg-git hg-hgsubversion hg-hgsvn; return 0 } VCS_INFO_check_com ${vcs_comm[cmd]} || return 1 -vcs_comm[detect_need_file]=branch -VCS_INFO_bydir_detect '.hg' -return $? +vcs_comm[detect_need_file]=store +VCS_INFO_bydir_detect '.hg' || return 1 + +if [[ -d ${vcs_comm[basedir]}/.hg/svn ]] ; then + vcs_comm[overwrite_name]='hg-hgsubversion' +elif [[ -d ${vcs_comm[basedir]}/.hgsvn ]] ; then + vcs_comm[overwrite_name]='hg-hgsvn' +elif [[ -e ${vcs_comm[basedir]}/.hg/git-mapfile ]] ; then + vcs_comm[overwrite_name]='hg-git' +fi +return 0 diff -Nru zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_bzr zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_bzr --- zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_bzr 2009-04-07 10:47:33.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_bzr 2010-02-16 11:09:39.000000000 +0100 @@ -5,6 +5,7 @@ setopt localoptions noksharrays extendedglob NO_shwordsplit local bzrbase bzrbr local -a bzrinfo +local -xA hook_com if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" "use-simple" ; then bzrbase=${vcs_comm[basedir]} @@ -21,6 +22,12 @@ rrn=${bzrbase:t} zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" branchformat bzrbr || bzrbr="%b:%r" -zformat -f bzrbr "${bzrbr}" "b:${bzrinfo[2]}" "r:${bzrinfo[1]}" +hook_com=( branch "${bzrinfo[2]}" revision "${bzrinfo[1]}" ) +if VCS_INFO_hook 'set-branch-format' "${bzrbr}"; then + zformat -f bzrbr "${bzrbr}" "b:${hook_com[branch]}" "r:${hook_com[revision]}" +else + bzrbr=${hook_com[branch-replace]} +fi +hook_com=() VCS_INFO_formats '' "${bzrbr}" "${bzrbase}" '' '' "${bzrinfo[1]}" '' return 0 diff -Nru zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_git zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_git --- zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_git 2009-05-22 19:36:36.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_git 2010-08-02 23:11:08.000000000 +0200 @@ -4,6 +4,8 @@ setopt localoptions extendedglob NO_shwordsplit local gitdir gitbase gitbranch gitaction gitunstaged gitstaged gitsha1 +local stgitpatch stgitunapplied +local -xA hook_com VCS_INFO_git_getaction () { local gitaction='' gitdir=$1 @@ -54,23 +56,31 @@ } VCS_INFO_git_getbranch () { - local gitbranch gitdir=$1 + local gitbranch gitdir=$1 tmp actiondir local gitsymref="${vcs_comm[cmd]} symbolic-ref HEAD" - if [[ -d "${gitdir}/rebase-apply" ]] \ - || [[ -d "${gitdir}/rebase" ]] \ - || [[ -d "${gitdir}/../.dotest" ]] \ - || [[ -f "${gitdir}/MERGE_HEAD" ]] ; then + actiondir='' + for tmp in "${gitdir}/rebase-apply" \ + "${gitdir}/rebase" \ + "${gitdir}/../.dotest"; do + if [[ -d ${tmp} ]]; then + actiondir=${tmp} + break + fi + done + if [[ -n ${actiondir} ]]; then gitbranch="$(${(z)gitsymref} 2> /dev/null)" - [[ -z ${gitbranch} ]] && [[ -r ${gitdir}/rebase-apply/head-name ]] \ - && gitbranch="$(< ${gitdir}/rebase-apply/head-name)" + [[ -z ${gitbranch} ]] && [[ -r ${actiondir}/head-name ]] \ + && gitbranch="$(< ${actiondir}/head-name)" - elif [[ -f "${gitdir}/rebase-merge/interactive" ]] \ - || [[ -d "${gitdir}/rebase-merge" ]] ; then + elif [[ -f "${gitdir}/MERGE_HEAD" ]] ; then + gitbranch="$(${(z)gitsymref} 2> /dev/null)" + [[ -z ${gitbranch} ]] && gitbranch="$(< ${gitdir}/MERGE_HEAD)" + + elif [[ -d "${gitdir}/rebase-merge" ]] ; then gitbranch="$(< ${gitdir}/rebase-merge/head-name)" - elif [[ -f "${gitdir}/.dotest-merge/interactive" ]] \ - || [[ -d "${gitdir}/.dotest-merge" ]] ; then + elif [[ -d "${gitdir}/.dotest-merge" ]] ; then gitbranch="$(< ${gitdir}/.dotest-merge/head-name)" else @@ -89,43 +99,10 @@ return 0 } -VCS_INFO_git_get_stgit_top_patch () { - local patchdir=$1 - - if [[ -d "$patchdir" ]]; then - local -a patches - patches=(${(f)"$(< "${patchdir}/applied")"}) - printf '%s' $patches[-1] - return 0 - fi - - return 1 -} - -VCS_INFO_git_get_stgit_unapplied() { - local patchdir=$1 - - if [[ -d "$patchdir" ]]; then - local -a patches - patches=(${(f)"$(< "${patchdir}/unapplied")"}) - if [[ -z $patches[@] ]]; then - printf 0 - else - printf '%d' $#patches - fi - return 0 - fi - - return 1 -} - gitdir=${vcs_comm[gitdir]} gitbranch="$(VCS_INFO_git_getbranch ${gitdir})" -if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" get-revision && \ - [[ ${gitbranch} == refs/* ]] && \ - [[ -r "${gitdir}/${gitbranch}" ]] ; then - - gitsha1="${"$(< $gitdir/$gitbranch)"}" +if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" get-revision ; then + gitsha1=$(${vcs_comm[cmd]} rev-parse --quiet --verify HEAD) else gitsha1='' fi @@ -135,12 +112,14 @@ return 1 fi -if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" "check-for-changes" ; then +if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" "check-for-changes" && \ + [[ "$(${vcs_comm[cmd]} rev-parse --is-inside-git-dir 2> /dev/null)" != 'true' ]] && \ + ${vcs_comm[cmd]} rev-parse --quiet --verify HEAD &> /dev/null ; then # Default: off - these are potentially expensive on big repositories ${vcs_comm[cmd]} diff --no-ext-diff --ignore-submodules --quiet --exit-code || gitunstaged=1 - ${vcs_comm[cmd]} diff-index --cached --quiet --ignore-submodules HEAD || - gitstaged=1 + ${vcs_comm[cmd]} diff-index --cached --quiet --ignore-submodules HEAD 2> /dev/null + (( $? && $? != 128 )) && gitstaged=1 fi VCS_INFO_adjust @@ -150,17 +129,47 @@ local patchdir=${gitdir}/patches/${gitbranch} if [[ -d $patchdir ]] ; then - stgitpatch=$(VCS_INFO_git_get_stgit_top_patch "${patchdir}") - stgitunapplied=$(VCS_INFO_git_get_stgit_unapplied "${patchdir}") + local -a stgit_applied stgit_unapplied - stgitpatch=${stgitpatch:-"no patch applied"} + stgit_applied=(${(f)"$(< "${patchdir}/applied")"}) + stgit_applied=( ${(Oa)stgit_applied} ) + stgit_unapplied=(${(f)"$(< "${patchdir}/unapplied")"}) + stgit_unapplied=( ${(oa)stgit_applied} ) + + if VCS_INFO_hook 'gen-applied-string' "${stgit_applied[@]}"; then + if (( ${#stgit_applied} )); then + stgitpatch=${stgit_applied[1]} + else + stgitpatch="" + fi + else + stgitpatch=${hook_com[patch-string]} + fi + hook_com=() + if VCS_INFO_hook 'gen-unapplied-string' "${stgit_unapplied[@]}"; then + stgitunapplied=${#stgit_unapplied} + else + stgitunapplied=${hook_com[unapplied-string]} + fi - zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" stgitformat stgitmsg || stgitmsg=" %p (%c)" - zformat -f stgitmsg "${stgitmsg}" "p:${stgitpatch}" "c:${stgitunapplied}" - gitmisc=${stgitmsg} + if (( ${#stgit_applied} )); then + zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" patch-format stgitmsg || stgitmsg="%p (%n applied)" + else + zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" nopatch-format stgitmsg || stgitmsg="no patch applied" + fi + hook_com=( applied "${stgitpatch}" unapplied "${stgitunapplied}" + applied-n ${#stgit_applied} unapplied-n ${#stgit_unapplied} ) + if VCS_INFO_hook 'set-patch-format' "${stgitmsg}"; then + zformat -f stgitmsg "${stgitmsg}" "p:${hook_com[applied]}" "u:${hook_com[unapplied]}" \ + "n:${#stgit_applied}" "c:${#stgit_unapplied}" + else + stgitmsg=${hook_com[patch-replace]} + fi + hook_com=() else - gitmisc='' + stgitmsg='' fi -VCS_INFO_formats "${gitaction}" "${gitbranch}" "${gitbase}" "${gitstaged}" "${gitunstaged}" "${gitsha1}" "${gitmisc}" +backend_misc[patches]="${stgitmsg}" +VCS_INFO_formats "${gitaction}" "${gitbranch}" "${gitbase}" "${gitstaged}" "${gitunstaged}" "${gitsha1}" "${stgitmsg}" return 0 diff -Nru zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg --- zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg 2009-04-07 10:47:33.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg 2010-05-27 12:06:21.000000000 +0200 @@ -1,12 +1,240 @@ ## vim:ft=zsh ## mercurial support by: Frank Terbeck +## with large contributions by Seth House ## Distributed under the same BSD-ish license as zsh itself. -setopt localoptions NO_shwordsplit -local hgbranch hgbase +setopt localoptions extendedglob NO_shwordsplit + +local hgbase bmfile branchfile rebasefile dirstatefile mqseriesfile \ + mqstatusfile mqguardsfile patchdir mergedir \ + r_csetid r_lrev r_branch i_bmhash i_bmname \ + revformat branchformat hgactionstring hgchanges \ + hgbmstring hgmqstring applied_string unapplied_string guards_string + +local -a hgid_args defrevformat defbranchformat \ + hgbmarks mqpatches mqseries mqguards mqunapplied hgmisc \ + i_patchguards i_negguards i_posguards + +local -xA hook_com hgbase=${vcs_comm[basedir]} rrn=${hgbase:t} -hgbranch=$(< ${hgbase}/.hg/branch) -VCS_INFO_formats '' "${hgbranch}" "${hgbase}" '' '' '' '' +r_csetid='' # changeset id (long hash) +r_lrev='' # local revision +patchdir="${hgbase}/.hg/patches" +mergedir="${hgbase}/.hg/merge/" +bmfile="${hgbase}/.hg/bookmarks" +branchfile="${hgbase}/.hg/branch" +rebasefile="${hgbase}/.hg/rebasestate" +dirstatefile="${hgbase}/.hg/dirstate" +mqstatusfile="${patchdir}/status" # currently applied patches +mqseriesfile="${patchdir}/series" # all patches +mqguardsfile="${patchdir}/guards" + +# Look for any --flavours +VCS_INFO_adjust + +# Calling the 'hg' program is quite a bit too slow for prompts. +# Disabled by default anyway, so no harm done. +if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" get-revision ; then + # Calling hexdump is (much) faster than hg but doesn't get the local rev + if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" use-simple \ + && ( VCS_INFO_check_com hexdump ) && [[ -r ${dirstatefile} ]] ; then + r_csetid=$(hexdump -n 20 -e '1/1 "%02x"' ${dirstatefile}) + else + hgid_args=( --debug id -i -n -b ) + + # Looking for changes is a tad bit slower since the dirstate cache must + # first be refreshed before being read + zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" \ + "check-for-changes" || hgid_args+=( -r. ) + + local HGRCPATH + HGRCPATH="/dev/null" ${vcs_comm[cmd]} ${(z)hgid_args} \ + | read -r r_csetid r_lrev r_branch + fi +fi + +# If the user doesn't opt to invoke hg we can still get the current branch +if [[ -z ${r_branch} && -r ${branchfile} ]] ; then + r_branch=$(< ${branchfile}) +fi + +# If we still don't know the branch it's safe to assume default +[[ -n ${r_branch} ]] || r_branch="default" + +# The working dir has uncommitted-changes if the revision ends with a + +if [[ $r_lrev[-1] == + ]] ; then + hgchanges=1 + + r_lrev=${r_lrev%+} + r_csetid=${r_csetid%+} +fi + +# This directory only exists during a merge +[[ -d $mergedir ]] && hgactionstring="merging" + +# This file only exists during a rebase +[[ -e $rebasefile ]] && hgactionstring="rebasing" + + +### Build the current revision display +[[ -n ${r_csetid} ]] && defrevformat+=( "%h" ) +[[ -n ${r_lrev} ]] && defrevformat+=( "%r" ) + +zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" \ + "hgrevformat" revformat || revformat=${(j/:/)defrevformat} + +hook_com=( localrev "${r_lrev}" "hash" "${r_csetid}" ) + +if VCS_INFO_hook 'set-hgrev-format' "${revformat}"; then + zformat -f r_lrev "${revformat}" \ + "r:${hook_com[localrev]}" "h:${hook_com[hash]}" +else + r_lrev=${hook_com[rev-replace]} +fi + +hook_com=() + +### Build the branch display +[[ -n ${r_branch} ]] && defbranchformat+=( "%b" ) +[[ -n ${r_lrev} ]] && defbranchformat+=( "%r" ) + +zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" \ + branchformat branchformat || branchformat=${(j/:/)defbranchformat} + +hook_com=( branch "${r_branch}" revision "${r_lrev}" ) + +if VCS_INFO_hook 'set-branch-format' "${branchformat}"; then + zformat -f branchformat "${branchformat}" \ + "b:${hook_com[branch]}" "r:${hook_com[revision]}" +else + branchformat=${hook_com[branch-replace]} +fi + +hook_com=() + +### Look for current Bookmarks (this requires knowing the changeset id) +if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" get-bookmarks \ + && [[ -r "${bmfile}" ]] && [[ -n "$r_csetid" ]] ; then + while read -r i_bmhash i_bmname ; do + # Compare hash in bookmarks file with changeset id + [[ $r_csetid == $i_bmhash ]] && hgbmarks+=( $i_bmname ) + done < ${bmfile} + + if VCS_INFO_hook 'gen-hg-bookmark-string' "${hgbmarks[@]}"; then + hgbmstring=${(j:, :)hgbmarks} + else + hgbmstring=${hook_com[hg-bookmark-string]} + fi + + hook_com=() +fi + +### Look for any applied Mercurial Queue patches +if zstyle -T ":vcs_info:${vcs}:${usercontext}:${rrn}" get-mq \ + && [[ -d $patchdir ]] ; then + if [[ -e $mqstatusfile ]]; then + mqpatches=( ${${(f)"$(< "${patchdir}/status")"}/(#s)[a-f0-9]##:/} ) + mqpatches=( ${(Oa)mqpatches} ) + fi + + if zstyle -t ":vcs_info:${vcs}:${usercontext}:${rrn}" get-unapplied \ + && [[ -r ${mqseriesfile} ]]; then + # Okay, here's a little something that assembles a list of unapplied + # patches that takes into account if mq-guards are active or not. + + # Collect active guards + if [[ -r ${mqguardsfile} ]]; then + mqguards=( ${(f)"$(< "${mqguardsfile}")"} ) + mqguards=( ${(oa)mqguards} ) + fi + + while read -r i_patch i_patchguards ; do + # Skip commented lines + [[ ${i_patch} == [[:space:]]#"#"* ]] && continue + + # Keep list of all patches + mqseries+=( $i_patch ) + + # Separate negative and positive guards to more easily find the + # intersection of active guards with patch guards + i_patchguards=( ${(s: :)i_patchguards} ) + i_negguards=( ${${(M)i_patchguards:#*"#-"*}/(#s)\#-/} ) + i_posguards=( ${${(M)i_patchguards:#*"#+"*}/(#s)\#+/} ) + + # Patch with any negative guards is never pushed if guard is active + if [[ ${#i_negguards} -gt 0 + && ${#${(@M)mqguards:#${(~j,|,)i_negguards}}} -gt 0 ]] ; then + continue + fi + + # Patch with positive guards is only pushed if guard is active + if [[ ${#i_posguards} -gt 0 ]] ; then + if [[ ${#${(@M)mqguards:#${(~j,|,)i_posguards}}} -gt 0 ]] ; then + mqunapplied+=( $i_patch ) + fi + continue + fi + + # If we made it this far the patch isn't guarded and should be pushed + mqunapplied+=( $i_patch ) + done < ${mqseriesfile} + fi + + if VCS_INFO_hook 'gen-applied-string' "${mqpatches[@]}"; then + (( ${#mqpatches} )) && applied_string=${mqpatches[1]} + else + applied_string=${hook_com[applied-string]} + fi + + hook_com=() + + if VCS_INFO_hook 'gen-unapplied-string' "${mqunapplied[@]}"; then + unapplied_string=${#mqunapplied} + else + unapplied_string=${hook_com[unapplied-string]} + fi + + hook_com=() + + if VCS_INFO_hook 'gen-mqguards-string' "${mqguards[@]}"; then + guards_string=${(j:,:)mqguards} + else + guards_string=${hook_com[guards-string]} + fi + + if (( ${#mqpatches} )); then + zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" patch-format \ + hgmqstring || hgmqstring="%p (%n applied)" + else + zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" nopatch-format \ + hgmqstring || hgmqstring="no patch applied" + fi + + hook_com=( applied "${applied_string}" unapplied "${unapplied_string}" + applied-n ${#mqpatches} unapplied-n ${#mqunapplied} + guards "${guards_string}" guards-n ${#mqguards} ) + + if VCS_INFO_hook 'set-patch-format' ${qstring}; then + zformat -f hgmqstring "${hgmqstring}" \ + "p:${hook_com[applied]}" "u:${hook_com[unapplied]}" \ + "n:${#mqpatches}" "c:${#mqunapplied}" \ + "g:${hook_com[guards]}" "G:${#mqguards}" + else + hgmqstring=${hook_com[patch-replace]} + fi + + hook_com=() +fi + + +### Build the misc string +hgmisc+=( ${hgmqstring} ) +hgmisc+=( ${hgbmstring} ) + +backend_misc[patches]="${hgmqstring}" +backend_misc[bookmarks]="${hgbmstring}" + +VCS_INFO_formats "${hgactionstring}" "${branchformat}" "${hgbase}" '' "${hgchanges}" "${r_lrev}" "${(j:;:)hgmisc}" return 0 diff -Nru zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_p4 zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_p4 --- zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_p4 2009-04-07 10:47:33.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_p4 2010-02-16 11:09:56.000000000 +0100 @@ -6,6 +6,7 @@ setopt localoptions extendedglob local p4base a b local -A p4info +local -xA hook_com ${vcs_comm[cmd]} info | while IFS=: read a b; do p4info[${a// /_}]="${b## #}"; done p4base=${vcs_comm[basedir]} @@ -16,9 +17,13 @@ # here down is synced as the revision. # I suppose the following might be slow on a tortuous client view. change="${${$(${vcs_comm[cmd]} changes -m 1 ...\#have)##Change }%% *}" -zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" branchformat p4branch || -p4branch="%b:%r" -zformat -f p4branch "${p4branch}" "b:${p4info[Client_name]}" \ -"r:$change" - +zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" branchformat p4branch || p4branch="%b:%r" +hook_com=( branch "${p4info[Client_name]}" revision "${change}" ) +if VCS_INFO_hook 'set-branch-format' "${p4branch}"; then + zformat -f p4branch "${p4branch}" "b:${hook_com[branch]}" "r:${hook_com[revision]}" +else + p4branch=${hook_com[branch-replace]} +fi +hook_com=() VCS_INFO_formats '' "${p4branch}" "${p4base}" '' '' "$change" '' +return 0 diff -Nru zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_svk zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_svk --- zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_svk 2009-04-22 10:30:55.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_svk 2010-02-16 11:09:57.000000000 +0100 @@ -4,10 +4,17 @@ setopt localoptions NO_shwordsplit local svkbranch svkbase +local -xA hook_com svkbase=${vcs_comm[basedir]} rrn=${svkbase:t} zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" branchformat svkbranch || svkbranch="%b:%r" -zformat -f svkbranch "${svkbranch}" "b:${vcs_comm[branch]}" "r:${vcs_comm[revision]}" +hook_com=( branch "${vcs_comm[branch]}" revision "${vcs_comm[revision]}" ) +if VCS_INFO_hook 'set-branch-format' "${svkbranch}"; then + zformat -f svkbranch "${svkbranch}" "b:${hook_com[branch]}" "r:${hook_com[revision]}" +else + svkbranch=${hook_com[branch-replace]} +fi +hook_com=() VCS_INFO_formats '' "${svkbranch}" "${svkbase}" '' '' "${vcs_comm[revision]}" '' return 0 diff -Nru zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_svn zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_svn --- zsh-4.3.10/Functions/VCS_Info/Backends/VCS_INFO_get_data_svn 2009-04-07 10:47:33.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/Backends/VCS_INFO_get_data_svn 2010-02-16 11:09:57.000000000 +0100 @@ -7,6 +7,7 @@ setopt localoptions noksharrays extendedglob NO_shwordsplit local svnbase svnbranch a b rrn local -A svninfo parentinfo +local -xA hook_com svnbase="."; svninfo=() @@ -23,6 +24,12 @@ rrn=${svnbase:t} zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" branchformat svnbranch || svnbranch="%b:%r" -zformat -f svnbranch "${svnbranch}" "b:${svninfo[URL]##*/}" "r:${svninfo[Revision]}" +hook_com=( branch "${svninfo[URL]##*/}" revision "${svninfo[Revision]}" ) +if VCS_INFO_hook 'set-branch-format' "${svnbranch}"; then + zformat -f svnbranch "${svnbranch}" "b:${hook_com[branch]}" "r:${hook_com[revision]}" +else + svnbranch=${hook_com[branch-replace]} +fi +hook_com=() VCS_INFO_formats '' "${svnbranch}" "${svnbase}" '' '' "${svninfo[Revision]}" '' return 0 diff -Nru zsh-4.3.10/Functions/VCS_Info/.distfiles zsh-4.3.11/Functions/VCS_Info/.distfiles --- zsh-4.3.10/Functions/VCS_Info/.distfiles 2008-12-11 10:50:47.000000000 +0100 +++ zsh-4.3.11/Functions/VCS_Info/.distfiles 2010-05-10 12:46:48.000000000 +0200 @@ -6,10 +6,12 @@ VCS_INFO_check_com VCS_INFO_formats VCS_INFO_get_cmd +VCS_INFO_hook vcs_info_lastmsg VCS_INFO_maxexports VCS_INFO_nvcsformats vcs_info_printsys +VCS_INFO_quilt VCS_INFO_realpath VCS_INFO_reposub VCS_INFO_set diff -Nru zsh-4.3.10/Functions/VCS_Info/vcs_info zsh-4.3.11/Functions/VCS_Info/vcs_info --- zsh-4.3.10/Functions/VCS_Info/vcs_info 2009-01-05 15:10:23.000000000 +0100 +++ zsh-4.3.11/Functions/VCS_Info/vcs_info 2010-05-10 12:46:48.000000000 +0200 @@ -18,8 +18,10 @@ VCS_INFO_check_com VCS_INFO_formats VCS_INFO_get_cmd + VCS_INFO_hook VCS_INFO_maxexports VCS_INFO_nvcsformats + VCS_INFO_quilt VCS_INFO_realpath VCS_INFO_reposub VCS_INFO_set @@ -39,19 +41,36 @@ # and now, finally create the real vcs_info function vcs_info () { emulate -L zsh - setopt extendedglob + setopt extendedglob NO_warn_create_global + + [[ -r . ]] || return 0 local pat - local -i found + local -i found retval local -a enabled disabled dps - local -x usercontext vcs rrn + local -x usercontext vcs rrn quiltmode LC_MESSAGES local -ix maxexports local -ax msgs - local -Ax vcs_comm + local -Ax vcs_comm hook_com backend_misc user_data - vcs='-init-'; rrn='-all-' + LC_MESSAGES=C + if [[ -n ${LC_ALL} ]]; then + local -x LANG + LANG=${LC_ALL} + local -x LC_ALL + fi + vcs='-init-'; rrn='-all-'; quiltmode='addon' usercontext=${1:-default} + VCS_INFO_hook "start-up" + retval=$? + if (( retval == 1 )); then + return 0 + elif (( retval == 2 )); then + VCS_INFO_set --nvcs + return 0 + fi + zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" "enable" enabled (( ${#enabled} == 0 )) && enabled=( all ) @@ -90,10 +109,20 @@ done (( found == 0 )) && { - VCS_INFO_set --nvcs + vcs='-quilt-'; quiltmode='standalone' + VCS_INFO_quilt standalone || VCS_INFO_set --nvcs return 0 } + VCS_INFO_hook "pre-get-data" + retval=$? + if (( retval == 1 )); then + return 0 + elif (( retval == 2 )); then + VCS_INFO_set --nvcs + return 0 + fi + VCS_INFO_get_data_${vcs} || { VCS_INFO_set --nvcs return 1 diff -Nru zsh-4.3.10/Functions/VCS_Info/VCS_INFO_bydir_detect zsh-4.3.11/Functions/VCS_Info/VCS_INFO_bydir_detect --- zsh-4.3.10/Functions/VCS_Info/VCS_INFO_bydir_detect 2008-09-22 15:55:12.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/VCS_INFO_bydir_detect 2009-11-06 15:35:54.000000000 +0100 @@ -8,9 +8,10 @@ realbasedir="$(VCS_INFO_realpath ${basedir})" while [[ ${realbasedir} != '/' ]]; do + [[ -r ${realbasedir} ]] || return 1 if [[ -n ${vcs_comm[detect_need_file]} ]] ; then [[ -d ${basedir}/${dirname} ]] && \ - [[ -f ${basedir}/${dirname}/${vcs_comm[detect_need_file]} ]] && \ + [[ -e ${basedir}/${dirname}/${vcs_comm[detect_need_file]} ]] && \ break else [[ -d ${basedir}/${dirname} ]] && break diff -Nru zsh-4.3.10/Functions/VCS_Info/VCS_INFO_formats zsh-4.3.11/Functions/VCS_Info/VCS_INFO_formats --- zsh-4.3.10/Functions/VCS_Info/VCS_INFO_formats 2009-04-07 10:47:33.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/VCS_INFO_formats 2010-05-14 09:58:37.000000000 +0200 @@ -3,7 +3,36 @@ ## Distributed under the same BSD-ish license as zsh itself. setopt localoptions noksharrays NO_shwordsplit -local action=$1 branch=$2 base=$3 staged=$4 unstaged=$5 rev=$6 misc=$7 +local msg tmp +local -i i +local -xA hook_com +# The _origs are needed because hooks can change values and there would +# be no way to get the originals back for later hooks (a hook is run for +# each message, that's being created). +hook_com=( + action "$1" + action_orig "$1" + branch "$2" + branch_orig "$2" + base "$3" + base_orig "$3" + staged "$4" + staged_orig "$4" + unstaged "$5" + unstaged_orig "$5" + revision "$6" + revision_orig "$6" + misc "$7" + misc_orig "$7" + vcs "${vcs}" + vcs_orig "${vcs}" +) +hook_com[base-name]="${${hook_com[base]}:t}" +hook_com[base-name_orig]="${hook_com[base_name]}" +hook_com[subdir]="$(VCS_INFO_reposub ${hook_com[base]})" +hook_com[subdir_orig]="${hook_com[subdir]}" + +VCS_INFO_hook 'post-backend' ## description: # action: a string that signals a certain non-default condition in the @@ -13,48 +42,60 @@ # base: the full name of the repository's root directory. # staged: non-empty if the repository contains staged changes. # unstaged: non-empty if the repository contains unstaged changes. -# rev: an identifier of the currently checked out revision. -# misc: a string that may contain anything the author likes. -# the backends should document what they put in it and when. +# revision: an identifier of the currently checked out revision. +# misc: a string that may contain anything the backend author likes. # # If an argument has no valid value for a given backend, an empty value # should be provided. eg: # VCS_INFO_formats '' "${foobranch}" "${foobase}" '' '' '' "${foomisc}" -local msg -local -i i j - -if [[ -n ${action} ]] ; then +if [[ -n ${hook_com[action]} ]] ; then zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" actionformats msgs - (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b|%a]-' + (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b|%a]%u%c-' else zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" formats msgs - (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b]-' + (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b]%u%c-' +fi + +if [[ -n ${hook_com[staged]} ]] ; then + zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" stagedstr tmp + [[ -z ${tmp} ]] && hook_com[staged]='S' || hook_com[staged]=${tmp} fi -if [[ -n ${staged} ]] ; then - zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" stagedstr staged - [[ -z ${staged} ]] && staged='S' +if [[ -n ${hook_com[unstaged]} ]] ; then + zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" unstagedstr tmp + [[ -z ${tmp} ]] && hook_com[unstaged]='U' || hook_com[unstaged]=${tmp} fi -if [[ -n ${unstaged} ]] ; then - zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" unstagedstr unstaged - [[ -z ${unstaged} ]] && unstaged='U' +if [[ ${quiltmode} != 'standalone' ]] && VCS_INFO_hook "pre-addon-quilt"; then + local -x REPLY + VCS_INFO_quilt addon + hook_com[quilt]="${REPLY}" + unset REPLY +elif [[ ${quiltmode} == 'standalone' ]]; then + hook_com[quilt]=${hook_com[misc]} fi (( ${#msgs} > maxexports )) && msgs[$(( maxexports + 1 )),-1]=() for i in {1..${#msgs}} ; do - zformat -f msg ${msgs[$i]} \ - a:${action} \ - b:${branch} \ - c:${staged} \ - i:${rev} \ - m:${misc} \ - r:${base:t} \ - s:${vcs} \ - u:${unstaged} \ - R:${base} \ - S:"$(VCS_INFO_reposub ${base})" - msgs[$i]=${msg} + if VCS_INFO_hook "set-message" $(( $i - 1 )) "${msgs[$i]}"; then + zformat -f msg ${msgs[$i]} \ + a:${hook_com[action]} \ + b:${hook_com[branch]} \ + c:${hook_com[staged]} \ + i:${hook_com[revision]} \ + m:${hook_com[misc]} \ + r:${hook_com[base-name]} \ + s:${hook_com[vcs]} \ + u:${hook_com[unstaged]} \ + Q:${hook_com[quilt]} \ + R:${hook_com[base]} \ + S:${hook_com[subdir]} + msgs[$i]=${msg} + else + msgs[$i]=${hook_com[message]} + fi done +hook_com=() +backend_misc=() return 0 diff -Nru zsh-4.3.10/Functions/VCS_Info/VCS_INFO_hook zsh-4.3.11/Functions/VCS_Info/VCS_INFO_hook --- zsh-4.3.10/Functions/VCS_Info/VCS_INFO_hook 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/VCS_Info/VCS_INFO_hook 2010-05-10 12:46:48.000000000 +0200 @@ -0,0 +1,46 @@ +### vim:ft=zsh:foldmethod=marker +## Written by Frank Terbeck +## Distributed under the same BSD-ish license as zsh itself. + +local hook func +local -x context hook_name +local -xi ret +local -a hooks +local -i debug + +ret=0 +hook_name="$1" +shift +context=":vcs_info:${vcs}+${hook_name}:${usercontext}:${rrn}" + +zstyle -t "${context}" debug && debug=1 || debug=0 +if (( debug )); then + printf 'VCS_INFO_hook: running hook: "%s"\n' "${hook_name}" + printf 'VCS_INFO_hook: current context: "%s"\n' "${context}" +fi + +zstyle -a "${context}" hooks hooks || return 0 +# Protect some internal variables in hooks. The `-g' parameter to +# typeset does *not* make the parameters global here (they are already +# "*-local-export). It prevents typeset from creating *new* *local* +# parameters in this function's scope. +typeset -g -r vcs rrn usercontext maxexports msgs vcs_comm +for hook in ${hooks} ; do + func="+vi-${hook}" + if (( ${+functions[$func]} == 0 )); then + (( debug )) && printf ' + Unknown function: "%s"\n' "${func}" + continue + fi + (( debug )) && printf ' + Running function: "%s"\n' "${func}" + true + ${func} "$@" + case $? in + (0) + ;; + (*) + break + ;; + esac +done +typeset -g +r vcs rrn usercontext maxexports msgs vcs_comm +return $ret diff -Nru zsh-4.3.10/Functions/VCS_Info/vcs_info_lastmsg zsh-4.3.11/Functions/VCS_Info/vcs_info_lastmsg --- zsh-4.3.10/Functions/VCS_Info/vcs_info_lastmsg 2008-09-22 15:41:40.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/vcs_info_lastmsg 2010-02-17 12:19:53.000000000 +0100 @@ -9,11 +9,11 @@ VCS_INFO_maxexports for i in {0..$((maxexports - 1))} ; do - printf '$vcs_info_msg_%d_: "' $i + printf -- '$vcs_info_msg_%d_: "' $i if zstyle -T ':vcs_info:formats:command:-all-' use-prompt-escapes ; then - print -nP ${(P)${:-vcs_info_msg_${i}_}} + print -nP -- ${(P)${:-vcs_info_msg_${i}_}} else - print -n ${(P)${:-vcs_info_msg_${i}_}} + print -n -- ${(P)${:-vcs_info_msg_${i}_}} fi printf '"\n' done diff -Nru zsh-4.3.10/Functions/VCS_Info/vcs_info_printsys zsh-4.3.11/Functions/VCS_Info/vcs_info_printsys --- zsh-4.3.10/Functions/VCS_Info/vcs_info_printsys 2008-09-22 15:58:25.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/vcs_info_printsys 2010-03-11 13:39:52.000000000 +0100 @@ -37,7 +37,7 @@ print -l '## flavours (cannot be used in the enable or disable styles; they' \ '## are enabled and disabled with their master [git-svn -> git])' \ - '## they *can* be used contexts: '\'':vcs_info:git-svn:*'\''.' + '## they *can* be used in contexts: '\'':vcs_info:git-svn:*'\''.' for sys in ${VCS_INFO_backends} ; do VCS_INFO_detect_${sys} --flavours diff -Nru zsh-4.3.10/Functions/VCS_Info/VCS_INFO_quilt zsh-4.3.11/Functions/VCS_Info/VCS_INFO_quilt --- zsh-4.3.10/Functions/VCS_Info/VCS_INFO_quilt 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/VCS_Info/VCS_INFO_quilt 2010-05-10 12:46:48.000000000 +0200 @@ -0,0 +1,190 @@ +## vim:ft=zsh:foldmethod=marker + +function VCS_INFO_quilt-match() { + emulate -L zsh + setopt extendedglob + local d mode="$1" param="$2" + local -a list + + case ${mode} in + (assoc) list=( ${(kOP)param} );; + (array) : "${foo[@]}" ${(t)foo}; list=( ${(OP)param} );; + (*) return 1;; + esac + for d in "${list[@]}"; do + if [[ ${PWD} == ${d%/##}(|/*) ]]; then + print "$d" + return 0 + fi + done + return 1 +} + +function VCS_INFO_quilt-standalone-detect() { + emulate -L zsh + setopt extendedglob + local param + local -i ret + + zstyle -s "${context}" quilt-standalone param || return 1 + [[ "${param}" == 'never' ]] && return 1 + [[ "${param}" == 'always' ]] && return 0 + + if (( ${+functions[$param]} )); then + ${param} + return $? + fi + + case ${(Pt)param} in + *association*) + local m + local -A A + m="$(VCS_INFO_quilt-match assoc ${param})" + A=(${(kvP)param}) + (( $? == 0 )) && [[ ${A[$m]} == "true" ]] && return 0 + return 1 + ;; + *array*) + typeset -gU ${param} + VCS_INFO_quilt-match array ${param} > /dev/null + return $? + ;; + *scalar*) + [[ "${(P)param}" == 'always' ]] && return 0 + [[ "${(P)param}" == 'never' ]] && return 1 + ;; + esac + # If nothing hit yet, it just wasn't meant to be. + return 1 +} + +function VCS_INFO_quilt-dirfind() { + # This is a wrapper around VCS_INFO_bydir_detect(). It makes sure + # that $vcs_comm[] is unchanged. Currently, changing anything in it + # should not be an issue, but this makes sure the code can safely + # be called elsewhere, too - if needed. + emulate -L zsh + setopt extendedglob + local dir="$1" file="$2"; shift $# + local ret oldfile olddir + + olddir=${vcs_comm[basedir]} + vcs_comm[basedir]='' + if [[ -n "${file}" ]]; then + oldfile=${vcs_comm[detect_need_file]} + vcs_comm[detect_need_file]=${file} + fi + VCS_INFO_bydir_detect ${dir} + ret=$? + [[ -n "${file}" ]] && vcs_comm[detect_need_file]=${oldfile} + printf '%s' ${vcs_comm[basedir]} + vcs_comm[basedir]="${olddir}" + return ${ret} +} + +function VCS_INFO_quilt() { + emulate -L zsh + setopt extendedglob + local mode="$1" + local patches pc tmp qstring root + local -i ret + local -x context + local -a applied unapplied applied_string unapplied_string quiltcommand + local -Ax hook_com + + context=":vcs_info:${vcs}.quilt-${mode}:${usercontext}:${rrn}" + zstyle -t "${context}" use-quilt || return 1 + + case ${mode} in + (standalone) + VCS_INFO_quilt-standalone-detect || return 1 + ;; + (addon) + ;; + (*) + printf 'Invalid mode: `%s'\''\n' "$1" + return 2 + ;; + esac + + zstyle -s "${context}" quilt-patch-dir patches || patches="${QUILT_PATCHES}" + if [[ "${patches}" != /* ]]; then + tmp=${patches:-patches} + patches="$(VCS_INFO_quilt-dirfind "${tmp}")" + ret=$? + (( ret )) && return ${ret} + patches=${patches}/${tmp} + else + [[ -d ${patches} ]] || return 1 + fi + + pc="$(VCS_INFO_quilt-dirfind .pc .version)" + ret=$? + if (( ret == 0 )); then + [[ ${quiltmode} == 'standalone' ]] && root=${pc} + pc=${pc}/.pc + if [[ -e ${pc}/applied-patches ]]; then + applied=( ${(f)"$(<$pc/applied-patches)"} ) + # throw away empty entries + applied=( ${applied:#} ) + applied=( ${(Oa)applied} ) + else + applied=() + fi + fi + if zstyle -t "${context}" get-unapplied; then + # This zstyle call needs to be moved further up if `quilt' needs + # to be run in more places than this one. + zstyle -s "${context}" quiltcommand quiltcommand || quiltcommand='quilt' + unapplied=( ${(f)"$(QUILT_PATCHES=$patches $quiltcommand --quiltrc /dev/null unapplied 2> /dev/null)"} ) + unapplied=( ${unapplied:#} ) + else + unapplied=() + fi + + if VCS_INFO_hook 'gen-applied-string' "${applied[@]}"; then + if (( ${#applied} )); then + applied_string=${applied[1]} + else + applied_string="" + fi + else + applied_string=${hook_com[applied-string]} + fi + hook_com=() + if VCS_INFO_hook 'gen-unapplied-string' "${unapplied[@]}"; then + unapplied_string="${#unapplied}" + else + unapplied_string=${hook_com[unapplied-string]} + fi + + if (( ${#applied} )); then + zstyle -s "${context}" patch-format qstring || qstring="%p (%n applied)" + else + zstyle -s "${context}" nopatch-format qstring || qstring="no patch applied" + fi + hook_com=( applied "${applied_string}" unapplied "${unapplied_string}" + applied-n ${#applied} unapplied-n ${#unapplied} ) + if VCS_INFO_hook 'set-patch-format' ${qstring}; then + zformat -f qstring "${qstring}" "p:${hook_com[applied]}" "u:${hook_com[unapplied]}" \ + "n:${#applied}" "c:${#unapplied}" + else + qstring=${hook_com[patch-replace]} + fi + hook_com=() + + case ${mode} in + (standalone) + VCS_INFO_formats '' '' "${root}" '' '' '' "${qstring}" + VCS_INFO_set + ;; + (addon) + # When VCS_INFO_quilt() is called with "addon" a "local -x REPLY" variable + # should be in place. That variable can be unset after it's being used. + REPLY="${qstring}" + ;; + esac + + VCS_INFO_hook 'post-quilt' ${mode} ${patches} ${pc:-\\-nopc-} +} +VCS_INFO_quilt "$@" diff -Nru zsh-4.3.10/Functions/VCS_Info/VCS_INFO_realpath zsh-4.3.11/Functions/VCS_Info/VCS_INFO_realpath --- zsh-4.3.10/Functions/VCS_Info/VCS_INFO_realpath 2008-09-30 18:53:45.000000000 +0200 +++ zsh-4.3.11/Functions/VCS_Info/VCS_INFO_realpath 2010-03-04 11:03:02.000000000 +0100 @@ -2,15 +2,6 @@ ## Written by Frank Terbeck ## Distributed under the same BSD-ish license as zsh itself. -# a portable 'readlink -f' -# forcing a subshell, to ensure chpwd() is not removed -# from the calling shell (if VCS_INFO_realpath() is called -# manually). - -setopt localoptions NO_shwordsplit - -( - (( ${+functions[chpwd]} )) && unfunction chpwd - setopt chaselinks - builtin cd $1 2>/dev/null && pwd -) +setopt localoptions NO_shwordsplit chaselinks +# -q to avoid chpwd() invocations +( builtin cd -q $1 2>/dev/null && pwd; ) diff -Nru zsh-4.3.10/Functions/Zftp/zfanon zsh-4.3.11/Functions/Zftp/zfanon --- zsh-4.3.10/Functions/Zftp/zfanon 2000-05-08 12:45:02.000000000 +0200 +++ zsh-4.3.11/Functions/Zftp/zfanon 2009-09-13 20:26:21.000000000 +0200 @@ -23,12 +23,11 @@ host=$HOST elif [[ -f /etc/resolv.conf ]]; then # Next, maybe we've got resolv.conf. - domain=$(awk '/domain/ { print $2 }' /etc/resolv.conf) + domain=${${=${(M)${(f)"$(/dev/null | - awk '/Name:/ { print $2 }') + # Next, maybe we've got nslookup. May not work on LINUX. + [[ -z $host ]] && host=${${=${(M)${(f)"$(nslookup $HOST 2>/dev/null)"}:#Name:*}}[2]} if [[ -z $host ]]; then # we're running out of ideas, but this should work. # after all, i wrote it... diff -Nru zsh-4.3.10/Functions/Zftp/zfcd_match zsh-4.3.11/Functions/Zftp/zfcd_match --- zsh-4.3.10/Functions/Zftp/zfcd_match 2000-05-03 09:34:50.000000000 +0200 +++ zsh-4.3.11/Functions/Zftp/zfcd_match 2009-09-13 20:24:29.000000000 +0200 @@ -1,6 +1,7 @@ # function zfcd_match { emulate -L zsh +setopt extendedglob # see zfcd for details of this hack if [[ $1 = $HOME || $1 = $HOME/* ]]; then @@ -24,10 +25,10 @@ fi # If we're using -F, we get away with using a directory # to list, but not a glob. Don't ask me why. - # I hate having to rely on awk here. - zftp ls -LF $dir >$tmpf - reply=($(awk '/\/$/ { print substr($1, 1, length($1)-1) }' $tmpf)) - rm -f $tmpf + reply=(${${(M)${(f)"$(zftp ls -lF $dir)"}:#d*}/(#b)*[[:space:]](*)\//$match[1]}) +# zftp ls -LF $dir >$tmpf +# reply=($(awk '/\/$/ { print substr($1, 1, length($1)-1) }' $tmpf)) +# rm -f $tmpf [[ -n $dir && $dir != */ ]] && dir="$dir/" if [[ -n $WIDGET ]]; then _wanted directories expl 'remote directory' \ diff -Nru zsh-4.3.10/Functions/Zftp/zfinit zsh-4.3.11/Functions/Zftp/zfinit --- zsh-4.3.10/Functions/Zftp/zfinit 2001-06-14 21:58:27.000000000 +0200 +++ zsh-4.3.11/Functions/Zftp/zfinit 2010-07-28 17:53:33.000000000 +0200 @@ -25,16 +25,17 @@ alias zfdir='noglob zfdir' alias zfuget='noglob zfuget' -autoload -U zfanon zfautocheck zfcd zfcd_match zfcget zfclose zfcput -autoload -U zfdir zffcache zfgcp zfget zfget_match zfgoto zfhere zfinit zfls -autoload -U zfmark zfopen zfparams zfpcp zfput zfrglob zfrtime zfsession -autoload -U zfstat zftp_chpwd zftp_progress zftransfer zftype zfuget zfuput +autoload -Uz zfanon zfautocheck zfcd zfcd_match zfcget zfclose zfcput +autoload -Uz zfdir zffcache zfgcp zfget zfget_match zfgoto zfhere zfinit zfls +autoload -Uz zfmark zfopen zfparams zfpcp zfput zfrglob zfrtime zfsession +autoload -Uz zfstat zftp_chpwd zftp_progress zftransfer zftype zfuget zfuput # # zftp completions: only use these if new-style completion is not # active. # -if [[ ${#_patcomps} -eq 0 || -z ${_patcomps[(r)_zf*]} ]]; then +if [[ ${#_patcomps} -eq 0 || -z ${_patcomps[(r)_zf*]} ]] && + (compctl >/dev/null 2>&1); then # only way of getting that noglob out of the way: this is unnecessary with # widget-based completion setopt completealiases diff -Nru zsh-4.3.10/Functions/Zftp/zfrtime zsh-4.3.11/Functions/Zftp/zfrtime --- zsh-4.3.10/Functions/Zftp/zfrtime 1999-04-25 17:43:58.000000000 +0200 +++ zsh-4.3.11/Functions/Zftp/zfrtime 2009-09-11 13:20:46.000000000 +0200 @@ -6,12 +6,13 @@ # # Unfortunately, since the time returned from FTP is GMT and # your file needs to be set in local time, we need to do some -# hacking around with time. At the moment this requires perl 5 -# with the standard library. +# hacking around with time. emulate -L zsh +zmodload zsh/datetime -local time gmtime loctime +local time gmtime loctime year mon mday hr min sec y tmpdate +local -i days_since_epoch if [[ -n $3 ]]; then time=$3 @@ -21,25 +22,22 @@ fi [[ -z $time ]] && return 1 -# Now's the real *!@**!?!. We have the date in GMT and want to turn -# it into local time for touch to handle. It's just too nasty -# to handle in zsh; do it in perl. -if perl -mTime::Local -e '($file, $t) = @ARGV; -$yr = substr($t, 0, 4) - 1900; -$mon = substr($t, 4, 2) - 1; -$mday = substr($t, 6, 2) + 0; -$hr = substr($t, 8, 2) + 0; -$min = substr($t, 10, 2) + 0; -$sec = substr($t, 12, 2) + 0; -$time = Time::Local::timegm($sec, $min, $hr, $mday, $mon, $yr); -utime $time, $time, $file and return 0;' $1 $time 2>/dev/null; then - print "Setting time for $1 failed. Need perl 5." 2>1 -fi - -# If it wasn't for the GMT/local time thing, it would be this simple. -# -# time="${time[1,12]}.${time[13,14]}" -# -# touch -t $time $1 - -# } +year=$time[1,4] +mon=$time[5,6] +mday=$time[7,8] +hr=$time[9,10] +min=$time[11,12] +sec=$time[13,14] + +#count the number of days since epoch without the current day +for y in {1970..$(( $year - 1))}; do + strftime -s tmpdate -r "%Y/%m/%d" ${y}/12/31 + days_since_epoch+=$(strftime "%j" $tmpdate) +done +strftime -s tmpdate -r "%Y/%m/%d" $year/$mon/$(( $mday - 1 )) +days_since_epoch+=$(strftime "%j" $tmpdate) +# convert the time in number of seconds (this should be equivalent to timegm) +time=$(( $sec + 60 * ( $min + 60 * ($hr + 24 * $days_since_epoch)) )) +#Convert it back to CCYYMMDDhhmmSS +strftime -s time "%Y%m%d%H%M%S" ${EPOCHSECONDS} +touch -t ${time[1,12]}.${time[13,14]} $1 diff -Nru zsh-4.3.10/Functions/Zle/delete-whole-word-match zsh-4.3.11/Functions/Zle/delete-whole-word-match --- zsh-4.3.10/Functions/Zle/delete-whole-word-match 2007-11-12 10:40:50.000000000 +0100 +++ zsh-4.3.11/Functions/Zle/delete-whole-word-match 2010-07-28 16:01:12.000000000 +0200 @@ -16,7 +16,7 @@ # Start and end of range of characters to remove. integer pos1 pos2 -autoload -U match-words-by-style +autoload -Uz match-words-by-style match-words-by-style if [[ -n "${matched_words[3]}" ]]; then diff -Nru zsh-4.3.10/Functions/Zle/.distfiles zsh-4.3.11/Functions/Zle/.distfiles --- zsh-4.3.10/Functions/Zle/.distfiles 2006-12-15 12:43:13.000000000 +0100 +++ zsh-4.3.11/Functions/Zle/.distfiles 2010-06-16 23:50:41.000000000 +0200 @@ -1,28 +1,45 @@ DISTFILES_SRC=' .distfiles -backward-kill-word-match backward-word-match -capitalize-word-match copy-earlier-word -cycle-completion-positions define-composed-chars -delete-whole-word-match down-case-word-match -down-line-or-beginning-search edit-command-line -forward-word-match history-beginning-search-menu -history-pattern-search history-search-end -incarg incremental-complete-word -insert-composed-char insert-files -insert-unicode-char keeper -keymap+widget kill-word-match +backward-kill-word-match +backward-word-match +capitalize-word-match +copy-earlier-word +cycle-completion-positions +define-composed-chars +delete-whole-word-match +down-case-word-match +down-line-or-beginning-search +edit-command-line +forward-word-match +history-beginning-search-menu +history-pattern-search +history-search-end +incarg +incremental-complete-word +insert-composed-char +insert-files +insert-unicode-char +keeper +keymap+widget +kill-word-match match-word-context match-words-by-style modify-current-argument narrow-to-region -narrow-to-region-invisible predict-on -quote-and-complete-word read-from-minibuffer -replace-string select-word-style +narrow-to-region-invisible +predict-on +quote-and-complete-word +read-from-minibuffer +replace-string replace-string-again +select-word-style smart-insert-last-word split-shell-arguments +transpose-lines transpose-words-match -up-case-word-match up-line-or-beginning-search -url-quote-magic which-command +up-case-word-match +up-line-or-beginning-search +url-quote-magic +which-command zed-set-file-name ' diff -Nru zsh-4.3.10/Functions/Zle/down-case-word-match zsh-4.3.11/Functions/Zle/down-case-word-match --- zsh-4.3.10/Functions/Zle/down-case-word-match 2006-08-11 16:27:46.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/down-case-word-match 2010-07-28 15:33:59.000000000 +0200 @@ -1,7 +1,7 @@ emulate -L zsh setopt extendedglob -autoload match-words-by-style +autoload -Uz match-words-by-style local curcontext=":zle:$WIDGET" word local -a matched_words diff -Nru zsh-4.3.10/Functions/Zle/edit-command-line zsh-4.3.11/Functions/Zle/edit-command-line --- zsh-4.3.10/Functions/Zle/edit-command-line 2008-12-18 10:43:25.000000000 +0100 +++ zsh-4.3.11/Functions/Zle/edit-command-line 2010-07-28 16:01:12.000000000 +0200 @@ -1,6 +1,6 @@ # Edit the command line using your usual editor. # Binding this to 'v' in the vi command mode map, -# autoload -z edit-command-line +# autoload -Uz edit-command-line # zle -N edit-command-line # bindkey -M vicmd v edit-command-line # will give ksh-like behaviour for that key, diff -Nru zsh-4.3.10/Functions/Zle/forward-word-match zsh-4.3.11/Functions/Zle/forward-word-match --- zsh-4.3.10/Functions/Zle/forward-word-match 2006-08-11 16:27:46.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/forward-word-match 2010-07-28 15:33:59.000000000 +0200 @@ -1,7 +1,7 @@ emulate -L zsh setopt extendedglob -autoload match-words-by-style +autoload -Uz match-words-by-style local curcontext=":zle:$WIDGET" word local -a matched_words diff -Nru zsh-4.3.10/Functions/Zle/history-beginning-search-menu zsh-4.3.11/Functions/Zle/history-beginning-search-menu --- zsh-4.3.10/Functions/Zle/history-beginning-search-menu 2008-07-14 16:04:19.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/history-beginning-search-menu 2009-10-22 11:28:31.000000000 +0200 @@ -38,7 +38,7 @@ local -aU matches local -a display -local search=$LBUFFER +local search=$LBUFFER MATCH MBEGIN MEND search=${search//(#m)[\][()\\*?#<>~^]/\\$MATCH} if [[ $WIDGET = *-space* ]]; then diff -Nru zsh-4.3.10/Functions/Zle/history-pattern-search zsh-4.3.11/Functions/Zle/history-pattern-search --- zsh-4.3.10/Functions/Zle/history-pattern-search 2004-07-29 18:43:46.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/history-pattern-search 2010-07-28 15:33:59.000000000 +0200 @@ -13,7 +13,7 @@ setopt extendedglob # Load required features. -autoload -U read-from-minibuffer +autoload -Uz read-from-minibuffer zmodload -i zsh/parameter local REPLY dir new diff -Nru zsh-4.3.10/Functions/Zle/insert-composed-char zsh-4.3.11/Functions/Zle/insert-composed-char --- zsh-4.3.10/Functions/Zle/insert-composed-char 2006-07-25 11:18:46.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/insert-composed-char 2010-07-28 15:33:59.000000000 +0200 @@ -20,7 +20,7 @@ # The set of accented characters is reasonably complete up to U+0180, the # set of special characters less so. However, it mostly gives up at that # point. Adding new Unicode characters is easy, however. Please send any -# additions to zsh-workers@sunsite.dk . +# additions to zsh-workers@zsh.org . # # Some of the accent codes are a little more obscure than others. # ! Grave @@ -142,7 +142,7 @@ if (( ${+zsh_accented_chars} == 0 )); then # Save quite a lot of memory by running and then erasing # the function that defines the characters. - autoload -U define-composed-chars + autoload -Uz define-composed-chars define-composed-chars unfunction define-composed-chars fi diff -Nru zsh-4.3.10/Functions/Zle/kill-word-match zsh-4.3.11/Functions/Zle/kill-word-match --- zsh-4.3.10/Functions/Zle/kill-word-match 2007-11-12 10:40:51.000000000 +0100 +++ zsh-4.3.11/Functions/Zle/kill-word-match 2010-07-28 15:33:59.000000000 +0200 @@ -1,7 +1,7 @@ emulate -L zsh setopt extendedglob -autoload match-words-by-style +autoload -Uz match-words-by-style local curcontext=":zle:$WIDGET" word done local -a matched_words diff -Nru zsh-4.3.10/Functions/Zle/match-words-by-style zsh-4.3.11/Functions/Zle/match-words-by-style --- zsh-4.3.10/Functions/Zle/match-words-by-style 2008-06-24 15:13:42.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/match-words-by-style 2010-07-28 15:33:59.000000000 +0200 @@ -73,7 +73,7 @@ local curcontext=${curcontext:-:zle:match-words-by-style} -autoload -U match-word-context +autoload -Uz match-word-context match-word-context while getopts "w:s:c:C:r:" opt; do diff -Nru zsh-4.3.10/Functions/Zle/replace-string zsh-4.3.11/Functions/Zle/replace-string --- zsh-4.3.10/Functions/Zle/replace-string 2008-10-28 13:03:54.000000000 +0100 +++ zsh-4.3.11/Functions/Zle/replace-string 2010-07-28 16:01:12.000000000 +0200 @@ -1,7 +1,7 @@ emulate -L zsh setopt extendedglob -autoload -U read-from-minibuffer replace-string-again +autoload -Uz read-from-minibuffer replace-string-again local p1="Replace: " p2=" with: " # Saving curwidget is necessary to avoid the widget name being overwritten. diff -Nru zsh-4.3.10/Functions/Zle/replace-string-again zsh-4.3.11/Functions/Zle/replace-string-again --- zsh-4.3.10/Functions/Zle/replace-string-again 2008-04-03 10:48:17.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/replace-string-again 2010-09-08 18:32:45.000000000 +0200 @@ -13,7 +13,7 @@ return 1 fi -if [[ $curwidget = *pattern* ]]; then +if [[ $curwidget = *(pattern|regex)* ]]; then local rep2 # The following horror is so that an & preceded by an even # number of backslashes is active, without stripping backslashes, @@ -38,8 +38,14 @@ rep=${match[5]} done rep2+=$rep - LBUFFER=${LBUFFER//(#bm)$~_replace_string_src/${(e)rep2}} - RBUFFER=${RBUFFER//(#bm)$~_replace_string_src/${(e)rep2}} + if [[ $curwidget = *regex* ]]; then + autoload -Uz regexp-replace + regexp-replace LBUFFER $_replace_string_src $rep2 || return 1 + regexp-replace RBUFFER $_replace_string_src $rep2 || return 1 + else + LBUFFER=${LBUFFER//(#bm)$~_replace_string_src/${(e)rep2}} + RBUFFER=${RBUFFER//(#bm)$~_replace_string_src/${(e)rep2}} + fi else LBUFFER=${LBUFFER//$_replace_string_src/$_replace_string_rep} RBUFFER=${RBUFFER//$_replace_string_src/$_replace_string_rep} diff -Nru zsh-4.3.10/Functions/Zle/select-word-style zsh-4.3.11/Functions/Zle/select-word-style --- zsh-4.3.10/Functions/Zle/select-word-style 2008-06-24 13:07:07.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/select-word-style 2010-07-28 15:33:59.000000000 +0200 @@ -8,13 +8,13 @@ forward-word kill-word transpose-words up-case-word) -[[ -z $1 ]] && autoload read-from-minibuffer +[[ -z $1 ]] && autoload -Uz read-from-minibuffer local REPLY detail f wordstyle if ! zle -l $word_functions[1]; then for f in $word_functions; do - autoload -U $f-match + autoload -Uz $f-match zle -N $f $f-match done fi diff -Nru zsh-4.3.10/Functions/Zle/transpose-lines zsh-4.3.11/Functions/Zle/transpose-lines --- zsh-4.3.10/Functions/Zle/transpose-lines 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Functions/Zle/transpose-lines 2010-06-16 23:50:41.000000000 +0200 @@ -0,0 +1,43 @@ +# Transpose lines. This is like in emacs: with a positive argument +# (default 1) the current line and the previous line are swapped and the +# cursor goes down one line; with a negative argument the previous two +# lines are swapped and the cursor goes up one line. + +emulate -L zsh +setopt extendedglob # xtrace + +local -a match mbegin mend +integer count=${NUMERIC:-1} +local init prev lline final rrline + +if (( ${NUMERIC:-1} < 0 )); then + while (( count++ )); do + [[ $LBUFFER != (#b)(|*$'\n')([^$'\n']#$'\n')([^$'\n']#$'\n')([^$'\n']#) ]] && return 1 + + LBUFFER=$match[1]$match[3] + RBUFFER=$match[2]$match[4]$RBUFFER + done +else + while (( count-- )); do + [[ $LBUFFER != (#b)(*)$'\n'([^$'\n']#) ]] && return 1 + + prev=$match[1] + lline=$match[2] + + if [[ $prev = (#b)(*$'\n')([^$'\n']#) ]]; then + init=$match[1] + prev=$match[2] + fi + + if [[ $RBUFFER = (#b)([^$'\n']#)$'\n'(*) ]]; then + rline=$match[1] + final=$match[2] + prev+=$'\n' + else + rline=$RBUFFER + fi + + LBUFFER=$init$lline$rline$'\n'$prev + RBUFFER=$final + done +fi diff -Nru zsh-4.3.10/Functions/Zle/transpose-words-match zsh-4.3.11/Functions/Zle/transpose-words-match --- zsh-4.3.10/Functions/Zle/transpose-words-match 2008-07-14 16:04:21.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/transpose-words-match 2010-07-28 15:33:59.000000000 +0200 @@ -11,7 +11,7 @@ # on X would be turned into `barXfoo' with the cursor still on the X, # regardless of what the character X is. -autoload -z match-words-by-style +autoload -Uz match-words-by-style local curcontext=":zle:$WIDGET" skip local -a matched_words diff -Nru zsh-4.3.10/Functions/Zle/up-case-word-match zsh-4.3.11/Functions/Zle/up-case-word-match --- zsh-4.3.10/Functions/Zle/up-case-word-match 2006-08-11 16:27:46.000000000 +0200 +++ zsh-4.3.11/Functions/Zle/up-case-word-match 2010-07-28 15:33:59.000000000 +0200 @@ -1,7 +1,7 @@ emulate -L zsh setopt extendedglob -autoload match-words-by-style +autoload -Uz match-words-by-style local curcontext=":zle:$WIDGET" word local -a matched_words diff -Nru zsh-4.3.10/Functions/Zle/zed-set-file-name zsh-4.3.11/Functions/Zle/zed-set-file-name --- zsh-4.3.10/Functions/Zle/zed-set-file-name 2006-03-13 20:01:33.000000000 +0100 +++ zsh-4.3.11/Functions/Zle/zed-set-file-name 2010-07-28 15:33:59.000000000 +0200 @@ -1,6 +1,6 @@ emulate -L zsh -autoload -U read-from-minibuffer +autoload -Uz read-from-minibuffer zle -K zed-normal-keymap diff -Nru zsh-4.3.10/INSTALL zsh-4.3.11/INSTALL --- zsh-4.3.10/INSTALL 2009-05-19 10:38:59.000000000 +0200 +++ zsh-4.3.11/INSTALL 2010-06-22 03:04:36.000000000 +0200 @@ -338,7 +338,7 @@ additional functions. As the integration of wide character support into ncurses is continuing, it is possible that on some systems attempting to use ncursesw may cause problems during building. If so, please report this -to the developers at zsh-workers@sunsite.dk and attempt to recompile with +to the developers at zsh-workers@zsh.org and attempt to recompile with --with-term-lib="tinfo termcap ncurses curses" (see below). Note that use of ncurses requires the header ncurses.h, so this @@ -407,7 +407,7 @@ ---------------------- Zsh has several startup/shutdown files which are in /etc by default. This -can be overriden using one of the options below when invoking "configure". +can be overridden using one of the options below when invoking "configure". --enable-etcdir=directory # default directory for global zsh scripts --enable-zshenv=pathname # the full pathname of the global zshenv script diff -Nru zsh-4.3.10/MACHINES zsh-4.3.11/MACHINES --- zsh-4.3.10/MACHINES 2009-05-19 10:38:59.000000000 +0200 +++ zsh-4.3.11/MACHINES 2010-08-06 17:27:09.000000000 +0200 @@ -46,10 +46,13 @@ `binmode'). There are various issues with Cygwin versions before 1.3.2 - you are adviced to update to the latest release. - Dynamic loading works as of cygwin-1.1.3 and binutils-20000722-1. - It was not tested for earlier versions. This does not imply - that every module will work. New completion and in - particular zsh/zftp and zsh/mathfunc are known to work. + Process substitution using <(...), >(...), =(...) may be + problematic. Different versions of zsh and Cygwin have + a different mix of issues. + + Problems handling subprocesses have been reported with Cygwin + 1.7.5. It is not currently known how the problems split between + Cygwin and zsh. Some of the tests in the Test subdirectory are known to fail: this is because the UNIX environment is not completely implemented. diff -Nru zsh-4.3.10/META-FAQ zsh-4.3.11/META-FAQ --- zsh-4.3.10/META-FAQ 2007-12-18 10:38:42.000000000 +0100 +++ zsh-4.3.11/META-FAQ 2010-10-26 17:16:17.000000000 +0200 @@ -10,7 +10,7 @@ Zsh was originally written by Paul Falstad . Zsh is now maintained by the members of the zsh-workers mailing -list . The development is currently +list . The development is currently coordinated by Peter Stephenson . The coordinator can be contacted at , but matters relating to the code should generally go to the mailing list. @@ -30,9 +30,6 @@ ftp://ftp.zsh.org/pub/zsh/ http://www.zsh.org/pub/zsh/ - Denmark - ftp://sunsite.dk/pub/unix/shells/zsh/ - Finland ftp://ftp.funet.fi/pub/unix/shells/zsh/ @@ -82,8 +79,10 @@ USA http://zsh.open-mirror.com/ -The up-to-date source code is available via anonymous CVS from Sourceforge. -See http://sourceforge.net/projects/zsh/ for details. +The up-to-date source code is available via anonymous CVS and Git from +Sourceforge. See http://sourceforge.net/projects/zsh/ for details. +A summary of instructions for the CVS and Git archives can be found at +http://zsh.sourceforget.net/. Mailing Lists @@ -91,26 +90,26 @@ Zsh has 3 mailing lists: - + Announcements about releases, major changes in the shell and the monthly posting of the Zsh FAQ. (moderated) - + User discussions. - + Hacking, development, bug reports and patches. To subscribe or unsubscribe, send mail to the associated administrative address for the mailing list. - - - - - - - + + + + + + + YOU ONLY NEED TO JOIN ONE OF THE MAILING LISTS AS THEY ARE NESTED. All submissions to zsh-announce are automatically forwarded to @@ -150,7 +149,7 @@ manual, with explanations and hints on issues where the manual can be cabbalistic, hierographic, or downright mystifying (for example, the word `hierographic' does not exist). It can be viewed in its current state at -http://zsh.sunsite.dk/Guide/. At the time of writing, chapters +http://zsh.sourceforge.net/Guide/. At the time of writing, chapters dealing with startup files and their contents and the new completion system were essentially complete. diff -Nru zsh-4.3.10/Misc/.distfiles zsh-4.3.11/Misc/.distfiles --- zsh-4.3.10/Misc/.distfiles 2007-07-03 19:03:44.000000000 +0200 +++ zsh-4.3.11/Misc/.distfiles 2010-05-10 12:46:49.000000000 +0200 @@ -3,4 +3,5 @@ bash2zshprompt c2z compctl-examples globtests globtests.ksh job-control-tests lete2ctl make-zsh-urls + vcs_info-examples ' diff -Nru zsh-4.3.10/Misc/vcs_info-examples zsh-4.3.11/Misc/vcs_info-examples --- zsh-4.3.10/Misc/vcs_info-examples 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Misc/vcs_info-examples 2010-08-02 23:05:54.000000000 +0200 @@ -0,0 +1,529 @@ +# A collection of vcs_info usage examples + +### Running vcs_info ######################################################### + +# As always, there's more than one way to skin a cat. Running vcs_info is no +# exception. Here is a rundown of three common ways to get it into action. +# +# All three ways need vcs_info to be marked for autoloading first, so you'd +# do this somewhere in your setup: + +autoload -Uz vcs_info + +# Episode I: "The prompt_subst way" +# Also known as the Quick-Start-Way. Probably the simplest way to add +# vcs_info functionality to existing setups. You just drop a vcs_info call +# to your `precmd' (or into a `precmd_functions[]' entry) and include a +# single-quoted ${vcs_info_msg_0_} in your PS1 definition: + +precmd() { vcs_info } +# This needs prompt_subst set, hence the name. So: +setopt prompt_subst +PS1='%!-%3~ ${vcs_info_msg_0_}%# ' + +# Episode II: "The way of the psvar" +# With $psvar you got a simple way to get user defined things into your +# prompt without having to set `prompt_subst', which requires extra +# attention to quoting if you like characters like ` in your prompt... +# As described in : + +precmd() { + psvar=() + + vcs_info + [[ -n $vcs_info_msg_0_ ]] && psvar[1]="$vcs_info_msg_0_" +} + +# You can now use `%1v' to drop the $vcs_info_msg_0_ contents in your prompt; +# like this: + +PS1="%m%(1v.%F{red}%1v%f.)%# " + +# Episode III: "The justsetitinprecmd way" +# This is the way I prefer. When you see it, you may think "Setting that +# variable in precmd() each time? What a waste..."; but let me assure you, +# you're running vcs_info already, setting one variable is not an issue. +# +# You're getting the benefit of being able to programmatically setting your +# prompt, which is nice especially when you're going to do weird things in +# there anyway. Here goes: + +precmd() { + # As always first run the system so everything is setup correctly. + vcs_info + # And then just set PS1, RPS1 and whatever you want to. This $PS1 + # is (as with the other examples above too) just an example of a very + # basic single-line prompt. See "man zshmisc" for details on how to + # make this less readable. :-) + if [[ -n ${vcs_info_msg_0_} ]]; then + # Oh hey, nothing from vcs_info, so we got more space. + # Let's print a longer part of $PWD... + PS1="%5~%# " + else + # vcs_info found something, that needs space. So a shorter $PWD + # makes sense. + PS1="%3~${vcs_info_msg_0_}%# " + fi +} + + +### check-for-changes just in some places #################################### + +# Some backends (git and mercurial at the time of writing) can tell you +# whether there are local changes in the current repository. While that's +# nice, the actions needed to obtain the information can be potentially +# expensive. So if you're working on something the size of the linux kernel +# or some corporate code monstrosity you may want to think twice about +# enabling the `check-for-changes' style unconditionally. +# +# Zsh's zstyle configuration system let's you do some magic to enable styles +# only depending on some code you're running. +# +# So, what I'm doing is this: I'm keeping my own projects in `~/src/code'. +# There are the projects I want the information for most. They are also +# a lot smaller than the linux kernel so the information can be retrieved +# instantaneously - even on my old laptop at 600MHz. And the following code +# enables `check-for-changes' only in that subtree: + +zstyle -e ':vcs_info:git:*' \ + check-for-changes 'estyle-cfc && reply=( true ) || reply=( false )' + +function estyle-cfc() { + local d + local -a cfc_dirs + cfc_dirs=( + ${HOME}/src/code/*(/) + ) + + for d in ${cfc_dirs}; do + d=${d%/##} + [[ $PWD == $d(|/*) ]] && return 0 + done + return 1 +} + + +### Hook Examples ############################################################ + +# A number of examples in this file revolve around the concept of `hooks' +# in vcs_info. Hooks are places in vcs_info where you may put in your +# own code to achieve something "totally awesome"[tm]. +# +# Hooks can be confusing. It's hard to keep track of what's going on. +# In order to help you with that vcs_info can output some debugging +# information when it processes hooks. This will tell you which hooks +# are being run and which functions are attempted to run (and if the +# functions in question were found or not). +# +# If you feel like you need to see what's attempted and where, I suggest +# you use the following line and see for yourself. +zstyle ':vcs_info:*+*:*' debug true + +# You can just comment it out (or disable it) again when you've seen enough. +# Debugging is off by default - of course. +zstyle ':vcs_info:*+*:*' debug false + +# Further down, every example that uses a function named `+vi-*' uses a hook. + + +### Truncate Long Hashes + +### Truncate a long hash to 12 characters (which is usually unique enough) +# NOTE: On Mercurial this will hide the second parent hash during a merge +# (see an example below on how to retain both parents) +# Use zformat syntax (remember %i is the hash): %12.12i + +# git: +zstyle ':vcs_info:git*' formats "(%s)-[%12.12i %b]-" # hash & branch + +# hg: +# First, remove the hash from the default 'branchformat': +zstyle ':vcs_info:hg:*' branchformat '%b' +# Then add the hash to 'formats' as %i and truncate it to 12 chars: +zstyle ':vcs_info:hg:*' formats ' (%s)-[%12.12i %b]-' + +### hg: Truncate long hash to 12-chars but also allow for multiple parents +# Hashes are joined with a + to mirror the output of `hg id`. +zstyle ':vcs_info:hg+set-hgrev-format:*' hooks hg-shorthash +function +vi-hg-shorthash() { + local -a parents + + parents=( ${(s:+:)hook_com[hash]} ) + parents=( ${(@r:12:)parents} ) + hook_com[rev-replace]=${(j:+:)parents} + + ret=1 +} + + +### Compare local changes to remote changes + +### git: Show +N/-N when your local branch is ahead-of or behind remote HEAD. +# Make sure you have added misc to your 'formats': %m +zstyle ':vcs_info:git*+set-message:*' hooks git-st +function +vi-git-st() { + local ahead behind + local -a gitstatus + + # for git prior to 1.7 + # ahead=$(git rev-list origin/${hook_com[branch]}..HEAD | wc -l) + ahead=$(git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l) + (( $ahead )) && gitstatus+=( "+${ahead}" ) + + # for git prior to 1.7 + # behind=$(git rev-list HEAD..origin/${hook_com[branch]} | wc -l) + behind=$(git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l) + (( $behind )) && gitstatus+=( "-${behind}" ) + + hook_com[misc]+=${(j:/:)gitstatus} +} + +### git: Show remote branch name for remote-tracking branches +zstyle ':vcs_info:git*+set-message:*' hooks git-remotebranch + +function +vi-git-remotebranch() { + local remote + + # Are we on a remote-tracking branch? + remote=${$(git rev-parse --verify ${hook_com[branch]}@{upstream} \ + --symbolic-full-name 2>/dev/null)/refs\/remotes\/} + + if [[ -n ${remote} ]] ; then + hook_com[branch]="${hook_com[branch]} [${remote}]" + fi +} + + +### hg: Show marker when the working directory is not on a branch head +# This may indicate that running `hg up` will do something +# NOTE: the branchheads.cache file is not updated with every Mercurial +# operation, so it will sometimes give false positives. Think of this more as a +# hint that you might not be on a branch head instead of the final word. +zstyle ':vcs_info:hg+set-hgrev-format:*' hooks hg-storerev +zstyle ':vcs_info:hg+set-message:*' hooks hg-branchhead + +# The hash is available in the hgrev-format hook, store a copy of it in the +# user_data array so we can access it in the second function +function +vi-hg-storerev() { + user_data[hash]=${hook_com[hash]} +} + +function +vi-hg-branchhead() { + local branchheadsfile i_tiphash i_branchname + local -a branchheads + + local branchheadsfile=${hook_com[base]}/.hg/branchheads.cache + + # Bail out if any mq patches are applied + [[ -s ${hook_com[base]}/.hg/patches/status ]] && return 0 + + if [[ -r ${branchheadsfile} ]] ; then + while read -r i_tiphash i_branchname ; do + branchheads+=( $i_tiphash ) + done < ${branchheadsfile} + + if [[ ! ${branchheads[(i)${user_data[hash]}]} -le ${#branchheads} ]] ; then + hook_com[revision]="^ ${hook_com[revision]}" + fi + fi +} + + +### Run vcs_info selectively to increase speed in large repos ################ + +# The following example shows a possible setup for vcs_info which displays +# staged and unstaged changes in the vcs_info prompt and prevents running +# it too often for speed reasons. + + +# Allow substitutions and expansions in the prompt, necessary for +# using a single-quoted $vcs_info_msg_0_ in PS1, RPOMPT (as used here) and +# similar. Other ways of using the information are described above. +setopt promptsubst +# Load vcs_info to display information about version control repositories. +autoload -Uz vcs_info + +# Check the repository for changes so they can be used in %u/%c (see +# below). This comes with a speed penalty for bigger repositories. +zstyle ':vcs_info:*' check-for-changes true +zstyle ':vcs_info:*' get-revision true + + +# Default to running vcs_info. If possible we prevent running it later for +# speed reasons. If set to a non empty value vcs_info is run. +FORCE_RUN_VCS_INFO=1 + +# Only run vcs_info when necessary to speed up the prompt and make using +# check-for-changes bearable in bigger repositories. This setup was +# inspired by Bart Trojanowski +# (http://jukie.net/~bart/blog/pimping-out-zsh-prompt). +# +# This setup is by no means perfect. It can only detect changes done +# through the VCS's commands run by the current shell. If you use your +# editor to commit changes to the VCS or if you run them in another shell +# this setup won't detect them. To fix this just run "cd ." which causes +# vcs_info to run and update the information. If you use aliases to run +# the VCS commands update the case check below. +zstyle ':vcs_info:*+pre-get-data:*' hooks pre-get-data ++vi-pre-get-data() { + # Only Git and Mercurial support and need caching. Abort if any other + # VCS is used. + [[ "$vcs" != git && "$vcs" != hg ]] && return + + # If the shell just started up or we changed directories (or for other + # custom reasons) we must run vcs_info. + if [[ -n $FORCE_RUN_VCS_INFO ]]; then + FORCE_RUN_VCS_INFO= + return + fi + + # If we got to this point, running vcs_info was not forced, so now we + # default to not running it and selectively choose when we want to run + # it (ret=1 means run it, ret=0 means don't). + ret=1 + # If a git/hg command was run then run vcs_info as the status might + # need to be updated. + case "$(fc -ln $(($HISTCMD-1)))" in + git*) + ret=0 + ;; + hg*) + ret=0 + ;; + esac +} + +# Call vcs_info as precmd before every prompt. +prompt_precmd() { + vcs_info +} +add-zsh-hook precmd prompt_precmd + +# Must run vcs_info when changing directories. +prompt_chpwd() { + FORCE_RUN_VCS_INFO=1 +} +add-zsh-hook chpwd prompt_chpwd + +# Display the VCS information in the right prompt. The {..:- } is a +# workaround for Zsh below 4.3.9. +RPROMPT='${vcs_info_msg_0_:- }' + + +### Quilt support ############################################################ + +# Vcs_info does its best to support the patch management system quilt +# . The information gathered by +# the quilt support always (and I'm saying always, because there are two +# ways quilt support can be active - see "man zshcontrib" for details) +# ends up in the `%Q' replacement in formats. +# +# Quilt support is also disabled by default. To turn its `addon' mode +# on for all backends, do: +zstyle ':vcs_info:*' use-quilt true + +# Then use `%Q' somewhere in the `formats' and `actionformats' styles: +zstyle ':vcs_info:*' formats " (%s)-[%b%Q]-" +zstyle ':vcs_info:*' actionformats " (%s)-[%b%Q|%a]-" + +# In the quilt support code, the zstyle context changes a little, it's now: +# :vcs_info:.quilt-:*:* +# "" is the version-control-system string and "" is either +# `addon' or `standalone'. So, if you'd use quilt on top of CVS, the +# context becomes ":vcs_info:cvs.quilt-addon:*:*". + +# That's almost all you need to know. Almost. +# +# Quilt support has a standalone mode. Even though quilt is not really +# a version control system, it keeps track of patches. It can work on top +# of a real VCS (like subversion or CVS - which is covered by addon mode) +# or apply patches to a normal directory tree that's not under version +# control. The debian project does this for a large number of packages, +# during their automatic build process. +# The `use-quilt' style only enables addon-mode, because for standalone +# mode we'd have to try to detect whether quilt is "active" in a directory. +# You can fine-tune that "detection" using the `quilt-standalone' style. +# If the value of that style is a function name, that function is executed +# without arguments to determine whether quilt-detection should be attempted. +# It's the most powerful way of doing this and we'll give a simple +# example later. + +# First let's assume you want standalone mode to be active only in +# /usr/src/debian, ~/src/debian and their subdirectories. That's simple: + +typeset -a foobar +foobar=( + /usr/src/debian + ~/src/debian +) +zstyle ':vcs_info:*' quilt-standalone foobar + +# As mentioned earlier, using a function in this style is more powerful: +function foobar() { + # You can do any sort of wicked wizardry here. This example just + # checks if we're in "/usr/src/debian" or a subdirectory and if so + # enables standalone detection. + [[ $PWD == /usr/src/debian(|/*) ]] && return 0 + + # Returning non-zero means false, which means don't enable the + # "detection". + return 1 +} + +# In standalone-mode, vcs_info pretends as if quilt actually was a VCS. +# Well, kind of. The vcs string is set to '-quilt-'. So let's define a +# format just for that mode: +zstyle ':vcs_info:-quilt-:*' formats " [%s%Q]-" + +# As with other format insertions, you got total control over what is being +# inserted. The `%Q' insertion is controlled by the `quiltformat' and +# `quilt-nopatch-format' styles. + +# quiltformat (default: "%p (%n applied)") +# The `%p' replacement tells you which patches are applied. `%n' tells you +# How many patches are applied. `%u' and `%N' do the same for unapplied patches. +# +# Now you might say, that's way too much. That'll eat up my entire screen if I +# all my 1002 patches applied. Well, true. +# By default, `%p' contains the top-most applied patch. `%u' says contains the +# number of unapplied patches and is therefore the same as `%c'. +# There are two hooks you can use to setup what these contain. Those would be +# `gen-applied-string' and `gen-unapplied-string'. We'll go with the default +# here... ...no need to go into every insane detail. +zstyle ':vcs_info:*' quiltformat '#%p [%n|%c]' + +# quilt-nopatch-format (default: "no patch applied") +zstyle ':vcs_info:*' quilt-nopatch-format '#cleeaaaaan!1!!' + +# To retrieve information about unapplied patches, vcs_info invokes `quilt' +# itself. Even though that's pretty quick, it's not needed for the default +# behaviour. If we want to have `%c' and `%u' to contain meaningful data, +# we have to enable retrieval of unapplied data: +zstyle ':vcs_info:*' quilt-get-unapplied true + +# With quilt, the location of its patches are configurable. It's either +# $QUILT_PATCHES or `patches' if that's unset. Let's assume we're a debian +# developer and want $QUILT_PATCHES to always be `debian/patches' in stand- +# alone mode: +zstyle ':vcs_info:-quilt-.quilt-standalone:*:*' quilt-patch-dir debian/patches + +# Since we're a debian developer, we also have some packages of our own, +# and so we want addon mode to also use a $QUILT_PATCHES value of +# `debian/patches' in some directories. In the other directories we never +# want the default `patches' though but a dedicated place for them. +# Say `~/patches/'. Now we'll use some evaluated-style +# magic to achieve all that: +zstyle -e ':vcs_info:*.quilt-addon:*:*' quilt-patch-dir 'my-patches-func' + +# That runs something called `my-patches-func', and the value of $reply is +# used as the value for the `quilt-patch-dir' style. We'll define the thing +# as a function - as the name suggests: + +function my-patches-func() { + local p + # As the tidy debian developer we are, we're keeping our packages + # in VCSs and they are located in one place `~/src/mypkgs/' + if [[ $PWD == ${HOME}/src/mypkgs(|/*) ]]; then + reply=( debian/patches ) + return 0 + fi + + # Now the part about the dedicated directory is a little trickier. + # It requires some knowledge of vcs_info's internals. Not much though. + # Everything about this is described in the manual because this + # variable (plus a few others) may be of interest in hooks, where + # they are available, too. + # + # The variable in question here is `$rrn' which is an abbreviation + # of repository-root-name. if you're in + # /usr/src/zsh/Functions + # and the repository being + # /usr/src/zsh + # then the value of `$rrn' is `zsh'. Now in case the variable is + # empty (it shouldn't at this point, but you never know), let's + # drop back to quilt's default "patches". + if [[ -z ${rrn} ]]; then + reply=( patches ) + return 0 + fi + + # If we're here, there's something in $rrn, so: + p="${HOME}/patches/${rrn}" + if [[ ! -d $p ]]; then + # ...and while we're at it, make sure it exists... + mkdir -p "$p" + fi + reply=( $p ) +} + +# And finally, let's use the `post-quilt' hook to let vcs_info help us +# with setting the $QUILT_PATCHES variable. Since vcs_info already knows +# which $QUILT_PATCHES value is correct, it should just export that variable +# for us. No need to configure something twice when it can work +# automatically. :-) + +# Register the hook: +zstyle ':vcs_info:*+post-quilt:*:*' hooks set-quilt-patches + +# Define the corresponding function: +function +vi-set-quilt-patches() { + # The `post-quilt' hook functions are called with three arguments: + # $1 the mode (`addon' vs. `standalone'). + # $2 the path-name of the detected patches directory. + # $3 the path-name of the `.pc' directory (or "-nopc-" if it + # could not be found). + # So, what we're after is in $2 already, which makes this function + # rather trivial: + export QUILT_PATCHES="$2" + return 0 +} + +# This would take care of all the dedicated-patches-directory-in-${HOME} +# from earlier examples, too. + + +### Using vcs_info from CVS ################################################## + +# You've decided you desperately need a newer feature of vcs_info than +# there is in your installed version of zsh. That's possible, but be aware +# that you are choosing not only the newest features but potentially also +# the newest bugs of vcs_info. Also note, that vcs_info from CVS *may* rely +# on features of zsh that are only available in a newer version than you +# got installed on your system. +# +# So, now that the warnings are out of the way - let's cut to the chase: +# First you'll need to decide where to put the files from CVS. Many people +# keep a directory for personal function files such as `~/.zfuncs' or +# similar. That's what we'll use here. +# +# Step one: "get the thing from CVS" +# % mkdir -p ~/.zfuncs +# % cd ~/.zfuncs +# % cvs -z3 -d:pserver:anonymous@zsh.cvs.sourceforge.net:/cvsroot/zsh \ +# co -d VCS_Info -PA zsh/Functions/VCS_Info +# +# There, now you got a `~/.zfuncs/VCS_Info' directory that has all the files +# you need. Whenever you feel like updating the checkout, you can do: +# % cd ~/.zfuncs/VCS_Info; cvs up; cd - +# +# Step two: "Tell zsh to use the checkout" +# Zsh looks for function files in the directories listed in $fpath. If +# you're already using `~/.zfuncs' you probably have something like this +# in your setup: + +fpath=( ~/.zfuncs $fpath ) + +# Note, that the private directory is added in *front* of the default +# value, so that files from that directory supersede the ones from system +# directories. To add the VCS_Info subtree (excluding the CVS directories) +# in front, change that line to this: + +fpath=( ~/.zfuncs ~/.zfuncs/VCS_Info/**/*~*/(CVS)#(/) $fpath ) + +# The weirdly looking pattern requires the `extended_glob' option to be +# active, so make sure it is. +# +# Step three: "Restart Z shell" +# A simple +# % exec zsh +# gets you there. You should be all set now. Have fun. diff -Nru zsh-4.3.10/NEWS zsh-4.3.11/NEWS --- zsh-4.3.10/NEWS 2009-04-24 10:59:22.000000000 +0200 +++ zsh-4.3.11/NEWS 2010-12-20 10:51:43.000000000 +0100 @@ -4,6 +4,133 @@ Note also the list of incompatibilities in the README file. +Changes between versions 4.3.10 and 4.3.11 +------------------------------------------ + +When the shell is invoked with the base name of a script, for example as +`zsh scriptname', previous versions of zsh have used the name directly, +whereas other shells use the value of $PATH to find the script. The +option PATH_SCRIPT has been added to provide the alternative behaviour. +This is turned on where appropriate in compatibility modes. + +Parameters, globbing, etc. +-+-+-+-+-+-+-+-+-+-+-+-+-+ + +Parameter expansion has been enhanced to provide the ${NAME:OFFSET} and +${NAME:OFFSET:LENGTH} syntax for substrings and subarrays present in +several other shells. OFFSET always uses zero-based indexing. The only +clash with existing zsh syntax occurs if OFFSET begins with an +alphabetic character or `&', which is not likely. + +The (D) flag in parameter expansion abbreviates directories in the +substituted value. The (q-) flag does minimal shell quotation of arguments +for maximum human readability of the result. + +The (Z) flag in parameter expansion is an enhanced version of the (z) +flag that takes an argument indicating how the string to be split +is treated. (Z:c:) parses comments as strings; (Z:C:) parses comments +and strips them; (Z:n:) treats newlines as ordinary whitespace: (z) +has always treated unquoted newlines as shell delimiters and turned them +into semicolons, though this was not previously documented. + +Numeric expansion with braces has been extended so that a step may be +given, as in {3..9..2}. The step may be negative as may the start and +end of the range (this is also new). + +The glob qualifier P can be used to add a separate word before each +match. For example, *(P:-f:) produces the command line +`-f file1 -f file2 ...'. + +Regular expression matches now use the same variables for storing matched +components as shell pattern matching. The function system now provides the +function regexp-replace for replacing text using regular expressions. The +zle widget functions replace-string, replace-string-again, if defined with +regex in the name (e.g. "zle -N replace-regexp replace-string"), perform +regular expression matches. In replacement text \& and \1 have the +standard meaning. + +Line editor and completion +-+-+-+-+-+-+-+-+-+-+-+-+-+ + +The completion system now has a style path-completion. Setting this to +false inhibits completion of paths before the current path component, +e.g. /u/b/z no longer completes to /usr/bin/zsh. This is useful on systems +where this form of completion is pathologically slow due to network +performance. + +With the MULTIBYTE option, the line editor now highlights bytes in the +input that are not part of a valid character in the current locale in hex +as for hex digits X; highlighting is controlled by the "special" +keyword in the zle_highlight array. These can be distinguished from +unprintable Unicode characters which also use "special" highlighting as the +latter are always two or four bytes long, e.g. , . + +zle_highlight also controls highlighting of a removable completion +suffix, e.g. the "/" automatically appended to directories. This uses +the keyword "suffix". + +The line editor now sets the variable ZLE_LINE_ABORTED if there is +an error when editing the line. The following code can be used +to create a bindable editor widget to restore the aborted line: + recover-line() { LBUFFER=$ZLE_LINE_ABORTED RBUFFER=; } + zle -N recover-line +and then either bind recover-line to a key sequence or use +`M-x recover-line '. + +The parameter ZLE_STATE, available in user-defined line editor widgets, +gives information on the state of the line editor. Currently this is +whether the line editor is in insert or overwrite mode. + +Miscellaneous options +-+-+-+-+-+-+-+-+-+-+- + +The new shell option HIST_LEX_WORDS causes history lines read in from +a file to be split in the same way as normal shell lines, instead of +simply on whitespace. It's an option as although the result is more +accurate it can take a long time when the history size is large. + +The shell option MONITOR can be set in non-interactive shells, and also in +subshells (as created by surrounding commands with parentheses), turning on +job control for that subshell. The initial behaviour of a subshell is +still to turn job control off, however if the new POSIX_JOBS option is set +MONITOR remains active in subshells. + +The new shell option POSIX_CD, active in emulations of POSIX-based shells, +makes the cd builtin POSIX-compatible. + +The POSIX_JOBS option already referred to has various other +compatibility enchancements. + +The new shell option POSIX_STRINGS makes a null character in $'...' +expansion terminate the string, as is already the case in bash. This is +not particularly useful behaviour but may become a POSIX requirement. + +The new shell option POSIX_TRAPS causes the EXIT trap to behave in the same +way as in other shells, i.e. it is only run when the shell exits. + +The new shell option SOURCE_TRACE causes the shell to report files +containing shell code that the shell executes directly, i.e. startup files +or files run with the `source' or `.' builtins. + +The shell option SUN_KEYBOARD_HACK has been supplemented by a more general +mechanism: the KEYBOARD_HACK variable defines the character to be ignored. + +Add-on modules and function +-+-+-+-+-+-+-+-+-+-+-+-+-+- + +The module zsh/system has a new "zsystem" builtin whose subcommands perform +system level tasks. Currently "zsystem flock" performs advisory file +locking (for aficionados, this uses the fcntl() system call so works over +the network on Linux). This is a particularly convenient way of locking +files for the length of a subshell. "zsystem supports flock" provides a +test for this feature. + +There is now a function system for recording and restoring recently +entered directories in a persistent fashion, with support in completion +and (if explicitly installed) dynamic directory expansion. See the +entry for cdr in the zshcontrib manual page. + + Changes between versions 4.3.9 and 4.3.10 ----------------------------------------- @@ -405,7 +532,7 @@ styles - compctl library separated out (frozen but still supported) - User-friendly introduction available at zsh website - http://sunsite.auc.dk/zsh/ + http://zsh.sourceforge.net/ Additions to complist listing library (coloured completion and menu selection): diff -Nru zsh-4.3.10/README zsh-4.3.11/README --- zsh-4.3.10/README 2009-04-20 19:31:43.000000000 +0200 +++ zsh-4.3.11/README 2010-12-17 18:08:10.000000000 +0100 @@ -5,11 +5,11 @@ Version ------- -This is version 4.3.10 of the shell. This is a development release, +This is version 4.3.11 of the shell. This is a development release, but is believed to be reasonably stable. Sites where the users need to edit command lines with multibyte characters (in particular UTF-8) will probably want to upgrade. The previous widely released version -of the shell was 4.3.9. +of the shell was 4.3.10. Installing Zsh -------------- @@ -82,7 +82,7 @@ (However, the latter two forms caused the current argument to be terminated and a new one started even if they occurred in the middle of a string.) Now all three may be followed by other strings, and the -latter two may also be preceeded by other strings. Remaining +latter two may also be preceded by other strings. Remaining limitations on their use (to reduce incompatibilities to a minimum) are documented in the zshexpn.1 manual. @@ -136,6 +136,17 @@ other shell at startup; it must be present in the environment or set subsequently by the user. It is valid for the variable to be unset. +If the shell starts in a mode where it is emulating another shell +(typically because the base name of the shell was "sh" or another known +shell), the "repeat" syntax is not available by default, to avoid clashes +with external commands, but the "ulimit" command is available by default. +"limit", "sched" and "unlimit" are not available by default in such modes: +this has been the case for many versions but is now documented for the +first time. (Users should note that emulation modes are not designed for +backwards compatibility with previous versions of zsh, but to maximise +compatibility with other shells, hence it is not safe to assume emulation +modes will behave consistently between zsh versions.) + Parameter substitutions in the form ${param//#%search/replace} match against "search" anchored at both ends of the parameter value. Previously this syntax would have matched against "%search", anchored only at the head @@ -143,23 +154,33 @@ $search starts with "%" considers the "%" to be part of the search string as before. -The MULTIBYTE option is on by default where it is available; this -causes many operations to recognise characters as in the current locale. -Older versions of the shell always assumed a character was one byte. -In some places the width of the character will be used; this is transparent -when used for calculations of screen position, but also occurs, for -example, in calculations of padding width. Note that MULTIBYTE is -not automatically set when emulating Bourne- and POSIX-style shells; -for interative use of these emulations it may be necessary to set -it by hand. +Configure attempts to decide if multibyte characters are supported by the +system and if so sets the effect of --enable-multibyte, unless +--disable-multibyte was passed on the command line. When +--enable-multibyte is in effect, the MULTIBYTE shell option is on by +default; this causes many operations to recognise characters in the current +locale. (Most typically this is used for a UTF-8 character set but the +shell will work with any character set provided by the system where +individual octets are either US ASCII characters or have the top bit set.) +Older versions of the shell always assumed a character was one byte; this +remains the case if --disable-multibyte is in effect or if the MULTIBYTE +option is unset. In some places the width of characters will be taken into +account where previously a raw string length was used; this is transparent +in calculations of screen position, but also occurs, for example, in +calculations of padding width. Note that MULTIBYTE is not automatically +set when emulating Bourne- and POSIX-style shells; for interactive use of +these emulations it may be necessary to set it by hand. Note also that the +option COMBINING_CHARS is not set by default due to difficulties detecting +the ability of the terminal to display combining characters correctly; MAC +users in particular will probably wish to set this option. Zsh has previously been lax about whether it allows octets with the top bit set to be part of a shell identifier. Older versions of the shell assumed all such octets were allowed in identifiers, however the POSIX standard does not allow such characters in identifiers. The older behaviour is still obtained with --disable-multibyte in effect. -With --enable-multibyte in effect (this is now the default anywhere -it is supported) there are three possible cases: +With --enable-multibyte in effect (see previous paragraph) there are three +possible cases: MULTIBYTE option unset: only ASCII characters are allowed; the shell does not attempt to identify non-ASCII characters at all. MULTIBYTE option set, POSIX_IDENTIFIERS option unset: in addition @@ -214,9 +235,9 @@ Doc/Zsh/*.yo The master source for the zsh documentation is written in yodl. Yodl is a document language written by Karel Kubat. - It is not required by zsh but but it is a nice program so - you might want to get it anyway, especially if you are a - zsh developer. It can be downloaded from + It is not required by zsh but it is a nice program so you + might want to get it anyway, especially if you are a zsh + developer. It can be downloaded from ftp://yodl.sourceforge.net/ Doc/zsh*.1 Man pages in nroff format. These will be installed @@ -234,7 +255,7 @@ top level Makefile. Version 4.0 or above of the Texinfo tools are recommended for processing this file. -Also include in the distribution are: +Also included in the distribution are: Doc/intro.ms An introduction to zsh in troff format using the ms macros. This document explains many of the features @@ -290,7 +311,7 @@ Zsh is currently maintained by the members of the zsh-workers mailing list and coordinated by Peter Stephenson . Please send -any feedback and bugs reports to . +any feedback and bugs reports to . Reports are most helpful if you can reproduce the bug starting zsh with the -f option. This skips the execution of local startup files except diff -Nru zsh-4.3.10/Src/builtin.c zsh-4.3.11/Src/builtin.c --- zsh-4.3.10/Src/builtin.c 2009-05-20 11:48:22.000000000 +0200 +++ zsh-4.3.11/Src/builtin.c 2010-10-18 11:31:36.000000000 +0200 @@ -206,6 +206,17 @@ } } +/**/ +void +init_builtins(void) +{ + if (!EMULATION(EMULATE_ZSH)) { + HashNode hn = reswdtab->getnode2(reswdtab, "repeat"); + if (hn) + reswdtab->disablenode(hn, 0); + } +} + /* Make sure we have space for a new option and increment. */ #define OPT_ALLOC_CHUNK 16 @@ -794,6 +805,7 @@ if (stat(unmeta(pwd), &st1) < 0) { setjobpwd(); zsfree(pwd); + pwd = NULL; pwd = metafy(zgetcwd(), -1, META_DUP); } else if (stat(".", &st2) < 0) { if (chdir(unmeta(pwd)) < 0) @@ -802,6 +814,7 @@ if (chasinglinks) { setjobpwd(); zsfree(pwd); + pwd = NULL; pwd = metafy(zgetcwd(), -1, META_DUP); } else if (chdir(unmeta(pwd)) < 0) zwarn("unable to chdir(%s): %e", pwd, errno); @@ -945,14 +958,23 @@ return NULL; } - /* if cdpath is being used, check it for . */ - if (!nocdpath) + /* + * If cdpath is being used, check it for ".". + * Don't bother doing this if POSIXCD is set, we don't + * need to know (though it doesn't actually matter). + */ + if (!nocdpath && !isset(POSIXCD)) for (pp = cdpath; *pp; pp++) if (!(*pp)[0] || ((*pp)[0] == '.' && (*pp)[1] == '\0')) hasdot = 1; - /* if there is no . in cdpath (or it is not being used), try the directory - as-is (i.e. from .) */ - if (!hasdot) { + /* + * If + * (- there is no . in cdpath + * - or cdpath is not being used) + * - and the POSIXCD option is not set + * try the directory as-is (i.e. from .) + */ + if (!hasdot && !isset(POSIXCD)) { if ((ret = cd_try_chdir(NULL, dest, hard))) return ret; if (errno != ENOENT) @@ -963,14 +985,34 @@ if (!nocdpath) for (pp = cdpath; *pp; pp++) { if ((ret = cd_try_chdir(*pp, dest, hard))) { - if (strcmp(*pp, ".")) { - doprintdir++; + if (isset(POSIXCD)) { + /* + * For POSIX we need to print the directory + * any time CDPATH was used, except in the + * special case of an empty segment being + * treated as a ".". + */ + if (**pp) + doprintdir++; + } else { + if (strcmp(*pp, ".")) { + doprintdir++; + } } return ret; } if (errno != ENOENT) eno = errno; } + /* + * POSIX requires us to check "." after CDPATH rather than before. + */ + if (isset(POSIXCD)) { + if ((ret = cd_try_chdir(NULL, dest, hard))) + return ret; + if (errno != ENOENT) + eno = errno; + } /* handle the CDABLEVARS option */ if ((ret = cd_able_vars(dest))) { @@ -1029,17 +1071,19 @@ /* handle directory prefix */ if (pfix && *pfix) { - if (*pfix == '/') + if (*pfix == '/') { #ifdef __CYGWIN__ /* NB: Don't turn "/"+"bin" into "//"+"bin" by mistake! "//bin" may * * not be what user really wants (probably wants "/bin"), but * * "//bin" could be valid too (see fixdir())! This is primarily for * - * handling CDPATH correctly. */ - buf = tricat(pfix, ( pfix[1] == '\0' ? "" : "/" ), dest); + * handling CDPATH correctly. Likewise for "//"+"bin" not becoming * + * "///bin" (aka "/bin"). */ + int root = pfix[1] == '\0' || (pfix[1] == '/' && pfix[2] == '\0'); + buf = tricat(pfix, ( root ? "" : "/" ), dest); #else buf = tricat(pfix, "/", dest); #endif - else { + } else { int pfl = strlen(pfix); dlen = strlen(pwd); @@ -1126,8 +1170,8 @@ pwd = new_pwd; set_pwd_env(); - if (isset(INTERACTIVE)) { - if (func != BIN_CD) { + if (isset(INTERACTIVE) || isset(POSIXCD)) { + if (func != BIN_CD && isset(INTERACTIVE)) { if (unset(PUSHDSILENT) && !quiet) printdirstack(); } else if (doprintdir) { @@ -1200,8 +1244,8 @@ /* compress multiple /es into single */ if (*src == '/') { #ifdef __CYGWIN__ - /* allow leading // under cygwin */ - if (src == s0 && src[1] == '/') + /* allow leading // under cygwin, but /// still becomes / */ + if (src == s0 && src[1] == '/' && src[2] != '/') *dest++ = *src++; #endif *dest++ = *src++; @@ -1713,7 +1757,7 @@ return 1; s = tricat(ename, " ", fn); - execstring(s, 1, 0); + execstring(s, 1, 0, "fc"); zsfree(s); return !lastval; @@ -3306,7 +3350,6 @@ "invalid character in directory name: %s", asg->name); returnval = 1; - argv++; continue; } else { Nameddir nd = hn = zshcalloc(sizeof *nd); @@ -3661,6 +3704,7 @@ Nameddir d; queue_signals(); + /* TODO: finddir takes a metafied file */ d = finddir(args[n]); if(d) { int dirlen = strlen(d->dir); @@ -3677,13 +3721,21 @@ if (OPT_HASARG(ops,'u') || OPT_ISSET(ops,'p')) { int fd; - if (OPT_ISSET(ops, 'p')) + if (OPT_ISSET(ops, 'p')) { fd = coprocout; - else { + if (fd < 0) { + zwarnnam(name, "-p: no coprocess"); + return 1; + } + } else { char *argptr = OPT_ARG(ops,'u'), *eptr; /* Handle undocumented feature that -up worked */ if (!strcmp(argptr, "p")) { fd = coprocout; + if (fd < 0) { + zwarnnam(name, "-p: no coprocess"); + return 1; + } } else { fd = (int)zstrtol(argptr, &eptr, 10); if (*eptr) { @@ -4192,7 +4244,7 @@ break; case 'q': stringval = curarg ? - quotestring(curarg, NULL, QT_BACKSLASH) : &nullstr; + quotestring(curarg, NULL, QT_BACKSLASH_SHOWNULL) : &nullstr; *d = 's'; print_val(stringval); break; @@ -4546,7 +4598,8 @@ breaks = nump ? minimum(num,loops) : 1; break; case BIN_RETURN: - if (isset(INTERACTIVE) || locallevel || sourcelevel) { + if ((isset(INTERACTIVE) && isset(SHINSTDIN)) + || locallevel || sourcelevel) { retflag = 1; breaks = loops; lastval = num; @@ -4701,9 +4754,10 @@ bin_dot(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) { char **old, *old0 = NULL; - int ret, diddot = 0, dotdot = 0; + int diddot = 0, dotdot = 0; char *s, **t, *enam, *arg0, *buf; struct stat st; + enum source_return ret; if (!*argv) return 0; @@ -4715,18 +4769,18 @@ enam = arg0 = ztrdup(*argv); if (isset(FUNCTIONARGZERO)) { old0 = argzero; - argzero = arg0; + argzero = ztrdup(arg0); } s = unmeta(enam); errno = ENOENT; - ret = 1; + ret = SOURCE_NOT_FOUND; /* for source only, check in current directory first */ if (*name != '.' && access(s, F_OK) == 0 && stat(s, &st) >= 0 && !S_ISDIR(st.st_mode)) { diddot = 1; ret = source(enam); } - if (ret) { + if (ret == SOURCE_NOT_FOUND) { /* use a path with / in it */ for (s = arg0; *s; s++) if (*s == '/') { @@ -4739,7 +4793,8 @@ ret = source(arg0); break; } - if (!*s || (ret && isset(PATHDIRS) && diddot < 2 && dotdot == 0)) { + if (!*s || (ret == SOURCE_NOT_FOUND && + isset(PATHDIRS) && diddot < 2 && dotdot == 0)) { pushheap(); /* search path for script */ for (t = path; *t; t++) { @@ -4766,12 +4821,14 @@ freearray(pparams); pparams = old; } - if (ret) + if (ret == SOURCE_NOT_FOUND) zwarnnam(name, "%e: %s", errno, enam); zsfree(arg0); - if (old0) + if (old0) { + zsfree(argzero); argzero = old0; - return ret ? ret : lastval; + } + return ret == SOURCE_OK ? lastval : 128 - ret; } /* @@ -4837,9 +4894,9 @@ /* No code to execute */ lastval = 0; } else { - execode(prog, 1, 0); + execode(prog, 1, 0, "eval"); - if (errflag) + if (errflag && !lastval) lastval = errflag; } } else { @@ -5007,8 +5064,8 @@ if(OPT_ISSET(ops,'l') || OPT_ISSET(ops,'c')) return compctlreadptr(name, args, ops, reply); - if ((OPT_ISSET(ops,'k') && !OPT_ISSET(ops,'u') && - !OPT_ISSET(ops,'p')) || OPT_ISSET(ops,'q')) { + if ((OPT_ISSET(ops,'k') || OPT_ISSET(ops,'q')) && + !OPT_ISSET(ops,'u') && !OPT_ISSET(ops,'p')) { if (!zleactive) { if (SHTTY == -1) { /* need to open /dev/tty specially */ @@ -5032,7 +5089,7 @@ gettyinfo(&shttyinfo); /* attach to the tty */ attachtty(mypgrp); - if (!isem && OPT_ISSET(ops,'k')) + if (!isem) setcbreak(); readfd = SHTTY; } @@ -5043,6 +5100,10 @@ /* The old code handled -up, but that was never documented. Still...*/ if (!strcmp(argptr, "p")) { readfd = coprocin; + if (readfd < 0) { + zwarnnam(name, "-p: no coprocess"); + return 1; + } } else { readfd = (int)zstrtol(argptr, &eptr, 10); if (*eptr) { @@ -5057,6 +5118,10 @@ izle = 0; } else if (OPT_ISSET(ops,'p')) { readfd = coprocin; + if (readfd < 0) { + zwarnnam(name, "-p: no coprocess"); + return 1; + } izle = 0; } else readfd = izle = 0; @@ -5151,8 +5216,9 @@ #endif } else { if (readfd == -1 || - !read_poll(readfd, &readchar, keys && !zleactive, timeout)) { - if (OPT_ISSET(ops,'k') && !zleactive && !isem) + !read_poll(readfd, &readchar, keys && !zleactive, + timeout)) { + if (keys && !zleactive && !isem) settyinfo(&shttyinfo); else if (resettty && SHTTY != -1) settyinfo(&saveti); @@ -5161,7 +5227,7 @@ shout = oshout; SHTTY = -1; } - return 1; + return OPT_ISSET(ops,'q') ? 2 : 1; } } } @@ -5170,11 +5236,18 @@ memset(&mbs, 0, sizeof(mbs)); #endif - /* option -k means read only a given number of characters (default 1) */ - if (OPT_ISSET(ops,'k')) { + /* + * option -k means read only a given number of characters (default 1) + * option -q means get one character, and interpret it as a Y or N + */ + if (OPT_ISSET(ops,'k') || OPT_ISSET(ops,'q')) { int eof = 0; /* allocate buffer space for result */ +#ifdef MULTIBYTE_SUPPORT + bptr = buf = (char *)zalloc(nchars*MB_CUR_MAX+1); +#else bptr = buf = (char *)zalloc(nchars+1); +#endif do { if (izle) { @@ -5262,6 +5335,17 @@ } } + if (OPT_ISSET(ops,'q')) + { + /* + * Keep eof as status but status is now whether we read + * 'y' or 'Y'. If we timed out, status is 2. + */ + if (eof) + eof = 2; + else + eof = (bptr - buf != 1 || (buf[0] != 'y' && buf[0] != 'Y')); + } if (OPT_ISSET(ops,'e') || OPT_ISSET(ops,'E')) fwrite(buf, bptr - buf, 1, stdout); if (!OPT_ISSET(ops,'e')) @@ -5273,59 +5357,6 @@ return eof; } - /* option -q means get one character, and interpret it as a Y or N */ - if (OPT_ISSET(ops,'q')) { - char readbuf[2]; - - /* set up the buffer */ - readbuf[1] = '\0'; - - /* get, and store, reply */ - if (izle) { -#ifdef MULTIBYTE_SUPPORT - int key; - char c; - - for (;;) { - zleentry(ZLE_CMD_GET_KEY, izle_timeout, NULL, &key); - if (key < 0) - break; - c = (char)key; - /* - * If multibyte, it can't be y, so we don't care - * what key gets set to; just read to end of character. - */ - if (!isset(MULTIBYTE) || - mbrlen(&c, 1, &mbs) != MB_INCOMPLETE) - break; - } -#else - int key; - zleentry(ZLE_CMD_GET_KEY, izle_timeout, NULL, &key); -#endif - - readbuf[0] = (key == 'y' ? 'y' : 'n'); - } else { - readbuf[0] = ((char)getquery(NULL, 0)) == 'y' ? 'y' : 'n'; - - /* dispose of result appropriately, etc. */ - if (haso) { - fclose(shout); /* close(SHTTY) */ - shout = oshout; - SHTTY = -1; - } - } - - if (OPT_ISSET(ops,'e') || OPT_ISSET(ops,'E')) - printf("%s\n", readbuf); - if (!OPT_ISSET(ops,'e')) - setsparam(reply, ztrdup(readbuf)); - - if (resettty && SHTTY != -1) - settyinfo(&saveti); - return readbuf[0] == 'n'; - } - /* All possible special types of input have been exhausted. Take one line, and assign words to the parameters until they run out. Leftover words go onto the last parameter. If an array is specified, all the words become @@ -5812,6 +5843,7 @@ } } + lexsave(); testargs = argv; tok = NULLTOK; condlex = testlex; @@ -5821,13 +5853,16 @@ if (errflag) { errflag = 0; + lexrestore(); return 1; } if (!prog || tok == LEXERR) { zwarnnam(name, tokstr ? "parse error" : "argument expected"); + lexrestore(); return 1; } + lexrestore(); if (*curtestarg) { zwarnnam(name, "too many arguments"); diff -Nru zsh-4.3.10/Src/Builtins/rlimits.c zsh-4.3.11/Src/Builtins/rlimits.c --- zsh-4.3.10/Src/Builtins/rlimits.c 2007-07-09 11:30:41.000000000 +0200 +++ zsh-4.3.11/Src/Builtins/rlimits.c 2010-01-05 17:29:35.000000000 +0100 @@ -680,7 +680,7 @@ bin_ulimit(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) { int res, resmask = 0, hard = 0, soft = 0, nres = 0, all = 0, ret = 0; - char *options; + char *options, *eptr, *number; do { options = *argv; @@ -704,13 +704,18 @@ continue; case 'N': if (options[1]) { - res = (int)zstrtol(options+1, NULL, 10); + number = options + 1; } else if (*argv) { - res = (int)zstrtol(*argv++, NULL, 10); + number = *argv++; } else { zwarnnam(name, "number required after -N"); return 1; } + res = (int)zstrtol(number, &eptr, 10); + if (*eptr) { + zwarnnam(name, "invalid number: %s", number); + return 1; + } /* * fake it so it looks like we just finished an option... */ @@ -831,35 +836,53 @@ /* set limit to specified value */ rlim_t limit; - limit = zstrtorlimt(*argv, NULL, 10); - /* scale appropriately */ - switch (res) { - case RLIMIT_FSIZE: - case RLIMIT_CORE: - limit *= 512; - break; - case RLIMIT_DATA: - case RLIMIT_STACK: + if (!strcmp(*argv, "hard")) { + struct rlimit vals; + + if (getrlimit(res, &vals) < 0) + { + zwarnnam(name, "can't read limit: %e", errno); + return 1; + } + else + { + limit = vals.rlim_max; + } + } else { + limit = zstrtorlimt(*argv, &eptr, 10); + if (*eptr) { + zwarnnam(name, "invalid number: %s", *argv); + return 1; + } + /* scale appropriately */ + switch (res) { + case RLIMIT_FSIZE: + case RLIMIT_CORE: + limit *= 512; + break; + case RLIMIT_DATA: + case RLIMIT_STACK: # ifdef HAVE_RLIMIT_RSS - case RLIMIT_RSS: + case RLIMIT_RSS: # endif /* HAVE_RLIMIT_RSS */ # ifdef HAVE_RLIMIT_MEMLOCK - case RLIMIT_MEMLOCK: + case RLIMIT_MEMLOCK: # endif /* HAVE_RLIMIT_MEMLOCK */ /* If RLIMIT_VMEM and RLIMIT_RSS are defined and equal, avoid * * duplicate case statement. Observed on QNX Neutrino 6.1.0. */ # if defined(HAVE_RLIMIT_VMEM) && !defined(RLIMIT_VMEM_IS_RSS) - case RLIMIT_VMEM: + case RLIMIT_VMEM: # endif /* HAVE_RLIMIT_VMEM */ /* ditto RLIMIT_VMEM and RLIMIT_AS */ # if defined(HAVE_RLIMIT_AS) && !defined(RLIMIT_VMEM_IS_AS) && !defined(RLIMIT_RSS_IS_AS) - case RLIMIT_AS: + case RLIMIT_AS: # endif /* HAVE_RLIMIT_AS */ # ifdef HAVE_RLIMIT_AIO_MEM - case RLIMIT_AIO_MEM: + case RLIMIT_AIO_MEM: # endif /* HAVE_RLIMIT_AIO_MEM */ - limit *= 1024; - break; + limit *= 1024; + break; + } } if (do_limit(name, res, limit, hard, soft, 1)) ret++; diff -Nru zsh-4.3.10/Src/Builtins/rlimits.mdd zsh-4.3.11/Src/Builtins/rlimits.mdd --- zsh-4.3.10/Src/Builtins/rlimits.mdd 2007-06-21 13:43:25.000000000 +0200 +++ zsh-4.3.11/Src/Builtins/rlimits.mdd 2010-02-03 19:37:07.000000000 +0100 @@ -3,6 +3,7 @@ load=yes autofeatures="b:limit b:ulimit b:unlimit" +autofeatures_emu="b:ulimit" objects="rlimits.o" diff -Nru zsh-4.3.10/Src/Builtins/sched.c zsh-4.3.11/Src/Builtins/sched.c --- zsh-4.3.10/Src/Builtins/sched.c 2008-08-04 17:17:13.000000000 +0200 +++ zsh-4.3.11/Src/Builtins/sched.c 2010-05-12 12:07:01.000000000 +0200 @@ -119,7 +119,7 @@ if ((sch->flags & SCHEDFLAG_TRASH_ZLE) && zleactive) zleentry(ZLE_CMD_TRASH); - execstring(sch->cmd, 0, 0); + execstring(sch->cmd, 0, 0, "sched"); zsfree(sch->cmd); zfree(sch, sizeof(struct schedcmd)); diff -Nru zsh-4.3.10/Src/compat.c zsh-4.3.11/Src/compat.c --- zsh-4.3.10/Src/compat.c 2009-03-19 14:59:18.000000000 +0100 +++ zsh-4.3.11/Src/compat.c 2010-06-14 13:48:06.000000000 +0200 @@ -187,40 +187,45 @@ #endif /* 0 */ #ifdef HAVE_SYSCONF -/* This is replaced by a macro from system.h if not HAVE_SYSCONF. * - * 0 is returned by sysconf if _SC_OPEN_MAX is unavailable; * - * -1 is returned on error * - * * - * Neither of these should happen, but resort to OPEN_MAX rather * - * than return 0 or -1 just in case. */ +/* + * This is replaced by a macro from system.h if not HAVE_SYSCONF. + * 0 is returned by sysconf if _SC_OPEN_MAX is unavailable; + * -1 is returned on error + * + * Neither of these should happen, but resort to OPEN_MAX rather + * than return 0 or -1 just in case. + * + * We'll limit the open maximum to ZSH_INITIAL_OPEN_MAX to + * avoid probing ridiculous numbers of file descriptors. + */ /**/ mod_export long zopenmax(void) { - static long openmax = 0; + long openmax; - if (openmax < 1) { - if ((openmax = sysconf(_SC_OPEN_MAX)) < 1) { - openmax = OPEN_MAX; - } else if (openmax > OPEN_MAX) { - /* On some systems, "limit descriptors unlimited" or the * - * equivalent will set openmax to a huge number. Unless * - * there actually is a file descriptor > OPEN_MAX already * - * open, nothing in zsh requires the true maximum, and in * - * fact it causes inefficiency elsewhere if we report it. * - * So, report the maximum of OPEN_MAX or the largest open * - * descriptor (is there a better way to find that?). */ - long i, j = OPEN_MAX; - for (i = j; i < openmax; i += (errno != EINTR)) { - errno = 0; - if (fcntl(i, F_GETFL, 0) < 0 && - (errno == EBADF || errno == EINTR)) - continue; - j = i; - } - openmax = j; + if ((openmax = sysconf(_SC_OPEN_MAX)) < 1) { + openmax = OPEN_MAX; + } else if (openmax > OPEN_MAX) { + /* On some systems, "limit descriptors unlimited" or the * + * equivalent will set openmax to a huge number. Unless * + * there actually is a file descriptor > OPEN_MAX already * + * open, nothing in zsh requires the true maximum, and in * + * fact it causes inefficiency elsewhere if we report it. * + * So, report the maximum of OPEN_MAX or the largest open * + * descriptor (is there a better way to find that?). */ + long i, j = OPEN_MAX; + if (openmax > ZSH_INITIAL_OPEN_MAX) + openmax = ZSH_INITIAL_OPEN_MAX; + for (i = j; i < openmax; i += (errno != EINTR)) { + errno = 0; + if (fcntl(i, F_GETFL, 0) < 0 && + (errno == EBADF || errno == EINTR)) + continue; + j = i; } + openmax = j; } return (max_zsh_fd > openmax) ? max_zsh_fd : openmax; @@ -270,11 +275,7 @@ buf[pos] = '\0'; strcpy(nbuf, "../"); if (stat(".", &sbuf) < 0) { - if (d) - return NULL; - buf[0] = '.'; - buf[1] = '\0'; - return buf; + return NULL; } /* Record the initial inode and device */ @@ -349,6 +350,11 @@ closedir(dir); if (!de) break; /* Not found */ + /* + * We get the "/" free just by copying from nbuf+2 instead + * of nbuf+3, which is where we copied the path component. + * This means buf[pos] is always a "/". + */ len = strlen(nbuf + 2); pos -= len; while (pos <= 1) { @@ -366,15 +372,22 @@ if (chdir("..")) break; } + + /* + * Fix up the directory, if necessary. + * We're changing back down the hierarchy, ignore the + * "/" at buf[pos]. + */ if (d) { #ifndef HAVE_FCHDIR - if (*buf) + if (buf[pos]) zchdir(buf + pos + 1); noholdintr(); #endif return NULL; } - if (*buf) + + if (buf[pos]) zchdir(buf + pos + 1); noholdintr(); @@ -392,16 +405,53 @@ } #endif - buf[0] = '.'; - buf[1] = '\0'; - return buf; + /* + * Something bad happened. + * This has been seen when inside a special directory, + * such as the Netapp .snapshot directory, that doesn't + * appear as a directory entry in the parent directory. + * We'll just need our best guess. + * + * We only get here from zgetcwd(); let that fall back to pwd. + */ + + return NULL; } +/* + * Try to find the current directory. + * If we couldn't work it out internally, fall back to getcwd(). + * If it fails, fall back to pwd; if zgetcwd() is being used + * to set pwd, pwd should be NULL and we just return ".". + */ + /**/ char * zgetcwd(void) { - return zgetdir(NULL); + char *ret = zgetdir(NULL); +#ifdef HAVE_GETCWD + if (!ret) { +#ifdef GETCWD_CALLS_MALLOC + char *cwd = getcwd(NULL, 0); + if (cwd) { + ret = dupstring(cwd); + free(cwd); + } +#else + char *cwdbuf = zalloc(PATH_MAX); + ret = getcwd(cwdbuf, PATH_MAX); + if (ret) + ret = dupstring(ret); + free(cwdbuf); +#endif /* GETCWD_CALLS_MALLOC */ + } +#endif /* HAVE_GETCWD */ + if (!ret) + ret = pwd; + if (!ret) + ret = dupstring("."); + return ret; } /* chdir with arbitrary long pathname. Returns 0 on success, -1 on normal * @@ -771,7 +821,7 @@ /* if we arrive here, ucs is not a combining or C0/C1 control character */ - return 1 + + return 1 + (ucs >= 0x1100 && (ucs <= 0x115f || /* Hangul Jamo init. consonants */ ucs == 0x2329 || ucs == 0x232a || diff -Nru zsh-4.3.10/Src/cond.c zsh-4.3.11/Src/cond.c --- zsh-4.3.10/Src/cond.c 2008-05-12 10:51:47.000000000 +0200 +++ zsh-4.3.11/Src/cond.c 2010-02-19 13:45:37.000000000 +0100 @@ -104,7 +104,7 @@ case COND_MODI: { Conddef cd; - char *name = overridename; + char *name = overridename, *errname; char **strs; int l = WC_COND_SKIP(code); @@ -122,10 +122,17 @@ strs = arrdup(sbuf); l = 2; } - if ((cd = getconddef((ctype == COND_MODI), name + 1, 1))) { + if (name && name[0] == '-') + errname = name; + else if (strs[0] && *strs[0] == '-') + errname = strs[0]; + else + errname = ""; + if (name && name[0] == '-' && + (cd = getconddef((ctype == COND_MODI), name + 1, 1))) { if (ctype == COND_MOD && (l < cd->min || (cd->max >= 0 && l > cd->max))) { - zwarnnam(fromtest, "unknown condition: -%s", name); + zwarnnam(fromtest, "unknown condition: %s", name); return 2; } if (tracingcond) @@ -151,8 +158,8 @@ if (name && name[0] == '-' && (cd = getconddef(0, name + 1, 1))) { if (l < cd->min || (cd->max >= 0 && l > cd->max)) { - zwarnnam(fromtest, "unknown condition: -%s", - name); + zwarnnam(fromtest, "unknown condition: %s", + errname); return 2; } if (tracingcond) @@ -160,8 +167,8 @@ return !cd->handler(strs, cd->condid); } else { zwarnnam(fromtest, - "unknown condition: -%s", - name ? name : ""); + "unknown condition: %s", + errname); } } /* module not found, error */ diff -Nru zsh-4.3.10/Src/exec.c zsh-4.3.11/Src/exec.c --- zsh-4.3.10/Src/exec.c 2009-03-16 19:27:07.000000000 +0100 +++ zsh-4.3.11/Src/exec.c 2010-12-16 14:51:53.000000000 +0100 @@ -136,6 +136,12 @@ /**/ mod_export int coprocout; +/* count of file locks recorded in fdtable */ + +/**/ +int fdtable_flocks; + + /* != 0 if the line editor is active */ /**/ @@ -151,6 +157,15 @@ /**/ int cmdoutval; +/* + * This is set by an exiting $(...) substitution to indicate we need + * to retain the status. We initialize it to zero if we think we need + * to reset the status for a command. + */ + +/**/ +int use_cmdoutval; + /* The context in which a shell function is called, see SFC_* in zsh.h. */ /**/ @@ -446,8 +461,15 @@ for (ptr = execvebuf + 2; *ptr && *ptr == ' '; ptr++); for (ptr2 = ptr; *ptr && *ptr != ' '; ptr++); if (eno == ENOENT) { + char *pprog; if (*ptr) *ptr = '\0'; + if (*ptr2 != '/' && + (pprog = pathprog(ptr2, NULL))) { + argv[-2] = ptr2; + argv[-1] = ptr + 1; + execve(pprog, argv - 2, newenvp); + } zerr("%s: bad interpreter: %s: %e", pth, ptr2, eno); } else if (*ptr) { @@ -549,7 +571,7 @@ STTYval = 0; /* this prevents infinite recursion */ zsfree(s); - execstring(t, 1, 0); + execstring(t, 1, 0, "stty"); zsfree(t); } else if (s) { STTYval = 0; @@ -586,6 +608,12 @@ * here, which should be visible to external processes. */ closem(FDT_XTRACE); +#ifndef FD_CLOEXEC + if (SHTTY != -1) { + close(SHTTY); + SHTTY = -1; + } +#endif child_unblock(); if ((int) strlen(arg0) >= PATH_MAX) { zerr("command too long: %s", arg0); @@ -922,11 +950,7 @@ zsh_subshell++; if ((flags & ESUB_REVERTPGRP) && getpid() == mypgrp) release_pgrp(); - if (SHTTY != -1) { - shout = NULL; - zclose(SHTTY); - SHTTY = -1; - } + shout = NULL; if (isset(MONITOR)) { signal_default(SIGTTOU); signal_default(SIGTTIN); @@ -939,7 +963,9 @@ } if (!(sigtrapped[SIGQUIT] & ZSIG_IGNORED)) signal_default(SIGQUIT); - opts[MONITOR] = opts[USEZLE] = 0; + if (!isset(POSIXJOBS)) + opts[MONITOR] = 0; + opts[USEZLE] = 0; zleactive = 0; if (flags & ESUB_PGRP) clearjobtab(monitor); @@ -951,21 +977,40 @@ /**/ mod_export void -execstring(char *s, int dont_change_job, int exiting) +execstring(char *s, int dont_change_job, int exiting, char *context) { Eprog prog; pushheap(); if ((prog = parse_string(s, 0))) - execode(prog, dont_change_job, exiting); + execode(prog, dont_change_job, exiting, context); popheap(); } /**/ mod_export void -execode(Eprog p, int dont_change_job, int exiting) +execode(Eprog p, int dont_change_job, int exiting, char *context) { struct estate s; + static int zsh_eval_context_len; + int alen; + + if (!zsh_eval_context_len) { + zsh_eval_context_len = 16; + alen = 0; + zsh_eval_context = (char **)zalloc(zsh_eval_context_len * + sizeof(*zsh_eval_context)); + } else { + alen = arrlen(zsh_eval_context); + if (zsh_eval_context_len == alen + 1) { + zsh_eval_context_len *= 2; + zsh_eval_context = zrealloc(zsh_eval_context, + zsh_eval_context_len * + sizeof(*zsh_eval_context)); + } + } + zsh_eval_context[alen] = context; + zsh_eval_context[alen+1] = NULL; s.prog = p; s.pc = p->prog; @@ -975,6 +1020,12 @@ execlist(&s, dont_change_job, exiting); freeeprog(p); /* Free if now unused */ + + /* + * zsh_eval_context may have been altered by a recursive + * call, but that's OK since we're using the global value. + */ + zsh_eval_context[alen] = NULL; } /* Execute a simplified command. This is used to execute things that @@ -1047,6 +1098,10 @@ /* Loop over all sets of comands separated by newline, * * semi-colon or ampersand (`sublists'). */ code = *state->pc++; + if (wc_code(code) != WC_LIST) { + /* Empty list; this returns status zero. */ + lastval = 0; + } while (wc_code(code) == WC_LIST && !breaks && !retflag && !errflag) { int donedebug; @@ -1276,6 +1331,12 @@ lineno = oldlineno; if (dont_change_job) thisjob = cj; + + if (exiting && sigtrapped[SIGEXIT]) { + dotrap(SIGEXIT); + /* Make sure this doesn't get executed again. */ + sigtrapped[SIGEXIT] = 0; + } } /* Execute a pipeline. * @@ -1327,11 +1388,19 @@ zclose(coprocin); zclose(coprocout); } - mpipe(ipipe); - mpipe(opipe); - coprocin = ipipe[0]; - coprocout = opipe[1]; - fdtable[coprocin] = fdtable[coprocout] = FDT_UNUSED; + if (mpipe(ipipe) < 0) { + coprocin = coprocout = -1; + slflags &= ~WC_SUBLIST_COPROC; + } else if (mpipe(opipe) < 0) { + close(ipipe[0]); + close(ipipe[1]); + coprocin = coprocout = -1; + slflags &= ~WC_SUBLIST_COPROC; + } else { + coprocin = ipipe[0]; + coprocout = opipe[1]; + fdtable[coprocin] = fdtable[coprocout] = FDT_UNUSED; + } } /* This used to set list_pipe_pid=0 unconditionally, but in things * like `ls|if true; then sleep 20; cat; fi' where the sleep was @@ -1363,7 +1432,8 @@ else spawnjob(); child_unblock(); - return 0; + /* Executing background code resets shell status */ + return lastval = 0; } else { if (newjob != lastwj) { Job jn = jobtab + newjob; @@ -1438,16 +1508,17 @@ ((jn->stat & STAT_STOPPED) || (list_pipe_job && pline_level && (jobtab[list_pipe_job].stat & STAT_STOPPED)))) { - pid_t pid; + pid_t pid = 0; int synch[2]; struct timeval bgtime; - pipe(synch); - - if ((pid = zfork(&bgtime)) == -1) { + if (pipe(synch) < 0 || (pid = zfork(&bgtime)) == -1) { + if (pid < 0) { + close(synch[0]); + close(synch[1]); + } else + zerr("pipe failed: %e", errno); zleentry(ZLE_CMD_TRASH); - close(synch[0]); - close(synch[1]); fprintf(stderr, "zsh: job can't be suspended\n"); fflush(stderr); makerunning(jn); @@ -1464,7 +1535,7 @@ nowait = errflag = 1; breaks = loops; close(synch[1]); - read(synch[0], &dummy, 1); + read_loop(synch[0], &dummy, 1); close(synch[0]); /* If this job has finished, we leave it as a * normal (non-super-) job. */ @@ -1568,7 +1639,9 @@ for (pc = state->pc; wc_code(code = *pc) == WC_REDIR; pc += WC_REDIR_WORDS(code)); - mpipe(pipes); + if (mpipe(pipes) < 0) { + /* FIXME */ + } /* if we are doing "foo | bar" where foo is a current * * shell command, do foo in a subshell and do the * @@ -1577,8 +1650,9 @@ int synch[2]; struct timeval bgtime; - pipe(synch); - if ((pid = zfork(&bgtime)) == -1) { + if (pipe(synch) < 0) { + zerr("pipe failed: %e", errno); + } else if ((pid = zfork(&bgtime)) == -1) { close(synch[0]); close(synch[1]); } else if (pid) { @@ -1587,7 +1661,7 @@ text = getjobtext(state->prog, state->pc); addproc(pid, text, 0, &bgtime); close(synch[1]); - read(synch[0], &dummy, 1); + read_loop(synch[0], &dummy, 1); close(synch[0]); } else { zclose(pipes[0]); @@ -1595,7 +1669,7 @@ entersubsh(((how & Z_ASYNC) ? ESUB_ASYNC : 0) | ESUB_PGRP | ESUB_KEEPTRAP); close(synch[1]); - execcmd(state, input, pipes[1], how, 0); + execcmd(state, input, pipes[1], how, 1); _exit(lastval); } } else { @@ -1855,7 +1929,7 @@ break; } for (i = 0; i < mn->ct; i++) - write(mn->fds[i], buf, len); + write_loop(mn->fds[i], buf, len); } } else { /* cat process */ @@ -1867,7 +1941,7 @@ else break; } - write(mn->pipe, buf, len); + write_loop(mn->pipe, buf, len); } } _exit(0); @@ -1898,7 +1972,7 @@ int i, j; long openmax; - openmax = zopenmax(); + openmax = fdtable_size; for (i = 0; i < openmax; i++) if (mn->pipe != i) { @@ -1940,14 +2014,19 @@ if (varid) { /* fd will be over 10, don't touch mfds */ fd1 = movefd(fd2); - fdtable[fd1] = FDT_EXTERNAL; - setiparam(varid, (zlong)fd1); - /* - * If setting the parameter failed, close the fd else - * it will leak. - */ - if (errflag) - zclose(fd1); + if (fd1 == -1) { + zerr("cannot moved fd %d: %e", fd2, errno); + return; + } else { + fdtable[fd1] = FDT_EXTERNAL; + setiparam(varid, (zlong)fd1); + /* + * If setting the parameter failed, close the fd else + * it will leak. + */ + if (errflag) + zclose(fd1); + } } else if (!mfds[fd1] || unset(MULTIOS)) { if(!mfds[fd1]) { /* starting a new multio */ mfds[fd1] = (struct multio *) zhalloc(sizeof(struct multio)); @@ -1962,6 +2041,7 @@ */ if (fdN < 0 && errno != EBADF) { zerr("cannot duplicate fd %d: %e", fd1, errno); + mfds[fd1] = NULL; closemnodes(mfds); return; } @@ -1995,7 +2075,11 @@ return; } mfds[fd1]->fds[1] = fdN; - mpipe(pipes); + if (mpipe(pipes) < 0) { + zerr("multio failed for fd %d: %e", fd2, errno); + closemnodes(mfds); + return; + } mfds[fd1]->pipe = pipes[1 - rflag]; redup(pipes[rflag], fd1); mfds[fd1]->ct = 2; @@ -2151,17 +2235,17 @@ int l = strlen(str) + 1, nl = (l + 31) & ~31; if (nl > underscorelen || (underscorelen - nl) > 64) { - zfree(underscore, underscorelen); - underscore = (char *) zalloc(underscorelen = nl); + zfree(zunderscore, underscorelen); + zunderscore = (char *) zalloc(underscorelen = nl); } - strcpy(underscore, str); + strcpy(zunderscore, str); underscoreused = l; } else { if (underscorelen > 128) { - zfree(underscore, underscorelen); - underscore = (char *) zalloc(underscorelen = 32); + zfree(zunderscore, underscorelen); + zunderscore = (char *) zalloc(underscorelen = 32); } - *underscore = '\0'; + *zunderscore = '\0'; underscoreused = 1; } } @@ -2197,18 +2281,20 @@ resolvebuiltin(const char *cmdarg, HashNode hn) { if (!((Builtin) hn)->handlerfunc) { + char *modname = dupstring(((Builtin) hn)->optstr); /* * Ensure the module is loaded and the * feature corresponding to the builtin * is enabled. */ - (void)ensurefeature(((Builtin) hn)->optstr, "b:", + (void)ensurefeature(modname, "b:", (hn->flags & BINF_AUTOALL) ? NULL : hn->nam); hn = builtintab->getnode(builtintab, cmdarg); if (!hn) { lastval = 1; - zerr("unknown builtin: %s", cmdarg); + zerr("autoloading module %s failed to define builtin: %s", + modname, cmdarg); return NULL; } } @@ -2262,6 +2348,14 @@ */ if (!args && varspc) lastval = errflag ? errflag : cmdoutval; + /* + * If there are arguments, we should reset the status for the + * command before execution---unless we are using the result of a + * command substitution, which will be indicated by setting + * use_cmdoutval to 1. We haven't kicked those off yet, so + * there's no race. + */ + use_cmdoutval = !args; for (i = 0; i < 10; i++) { save[i] = -2; @@ -2478,7 +2572,12 @@ lastval = 0; return; } else { - cmdoutval = lastval; + /* + * No arguments. Reset the status if there were + * arguments before and no command substitution + * has provided a status. + */ + cmdoutval = use_cmdoutval ? lastval : 0; if (varspc) addvars(state, varspc, 0); if (errflag) @@ -2663,7 +2762,8 @@ if ((how & Z_ASYNC) || (!do_exec && (((is_builtin || is_shfunc) && output) || - (!is_cursh && (last1 != 1 || nsigtrapped || havefiles()))))) { + (!is_cursh && (last1 != 1 || nsigtrapped || havefiles() || + fdtable_flocks))))) { pid_t pid; int synch[2], flags; @@ -2671,9 +2771,13 @@ struct timeval bgtime; child_block(); - pipe(synch); - if ((pid = zfork(&bgtime)) == -1) { + if (pipe(synch) < 0) { + zerr("pipe failed: %e", errno); + if (oautocont >= 0) + opts[AUTOCONTINUE] = oautocont; + return; + } else if ((pid = zfork(&bgtime)) == -1) { close(synch[0]); close(synch[1]); if (oautocont >= 0) @@ -2683,13 +2787,15 @@ if (pid) { close(synch[1]); - read(synch[0], &dummy, 1); + read_loop(synch[0], &dummy, 1); close(synch[0]); #ifdef PATH_DEV_FD closem(FDT_PROC_SUBST); #endif if (how & Z_ASYNC) { lastpid = (zlong) pid; + /* indicate it's possible to set status for lastpid */ + lastpid_status = -2L; } else if (!jobtab[thisjob].stty_in_env && varspc) { /* search for STTY=... */ Wordcode p = varspc; @@ -3080,6 +3186,7 @@ if (isset(PRINTEXITVALUE) && isset(SHINSTDIN) && lastval && !subsh) { fprintf(stderr, "zsh: exit %ld\n", (long)lastval); + fflush(stderr); } if (do_exec) { @@ -3207,13 +3314,32 @@ while (wc_code(ac = *pc) == WC_ASSIGN) { s = ecrawstr(state->prog, pc + 1, NULL); if ((pm = (Param) paramtab->getnode(paramtab, s))) { + Param tpm; if (pm->env) delenv(pm); if (!(pm->node.flags & PM_SPECIAL)) { - paramtab->removenode(paramtab, s); + /* + * We used to remove ordinary parameters from the + * table, but that meant "HELLO=$HELLO shellfunc" + * failed because the expansion of $HELLO hasn't + * been done at this point. Instead, copy the + * parameter: in this case, we'll insert the + * copied parameter straight back into the parameter + * table so we want to be sure everything is + * properly set up and in permanent memory. + */ + tpm = (Param) zshcalloc(sizeof *tpm); + tpm->node.nam = ztrdup(pm->node.nam); + copyparam(tpm, pm, 0); + pm = tpm; } else if (!(pm->node.flags & PM_READONLY) && (unset(RESTRICTED) || !(pm->node.flags & PM_RESTRICTED))) { - Param tpm = (Param) hcalloc(sizeof *tpm); + /* + * In this case we're just saving parts of + * the parameter in a tempory, so use heap allocation + * and don't bother copying every detail. + */ + tpm = (Param) hcalloc(sizeof *tpm); tpm->node.nam = pm->node.nam; copyparam(tpm, pm, 1); pm = tpm; @@ -3277,8 +3403,9 @@ break; } pm = tpm; - } else + } else { paramtab->addnode(paramtab, pm->node.nam, pm); + } if ((pm->node.flags & PM_EXPORTED) && ((s = getsparam(pm->node.nam)))) addenv(pm, s); } @@ -3323,11 +3450,12 @@ /**/ char * -gethere(char *str, int typ) +gethere(char **strp, int typ) { char *buf; int bsiz, qt = 0, strip = 0; char *s, *t, *bptr, c; + char *str = *strp; for (s = str; *s; s++) if (inull(*s)) { @@ -3341,6 +3469,7 @@ while (*str == '\t') str++; } + *strp = str; bptr = buf = zalloc(bsiz = 256); for (;;) { t = bptr; @@ -3374,8 +3503,6 @@ } *bptr++ = '\n'; } - if (t > buf && t[-1] == '\n') - t--; *t = '\0'; if (!qt) { int ef = errflag; @@ -3403,10 +3530,18 @@ singsub(&t); untokenize(t); unmetafy(t, &len); - t[len++] = '\n'; + /* + * For real here-strings we append a newline, as if the + * string given was a complete command line. + * + * For here-strings from here documents, we use the original + * text exactly. + */ + if (!(fn->flags & REDIRF_FROM_HEREDOC)) + t[len++] = '\n'; if ((fd = gettempfile(NULL, 1, &s)) < 0) return -1; - write(fd, t, len); + write_loop(fd, t, len); close(fd); fd = open(s, O_RDONLY | O_NOCTTY); unlink(s); @@ -3468,7 +3603,11 @@ } return readoutput(stream, qt); } - mpipe(pipes); + if (mpipe(pipes) < 0) { + errflag = 1; + cmdoutpid = 0; + return NULL; + } child_block(); cmdoutval = 0; if ((cmdoutpid = pid = zfork(NULL)) == -1) { @@ -3495,7 +3634,7 @@ redup(pipes[1], 1); entersubsh(ESUB_PGRP|ESUB_NOMONITOR); cmdpush(CS_CMDSUBST); - execode(prog, 0, 1); + execode(prog, 0, 1, "cmdsubst"); cmdpop(); close(1); _exit(lastval); @@ -3625,7 +3764,7 @@ /* optimised here-string */ int len; unmetafy(s, &len); - write(fd, s, len); + write_loop(fd, s, len); close(fd); return nam; } @@ -3649,7 +3788,7 @@ redup(fd, 1); entersubsh(ESUB_PGRP|ESUB_NOMONITOR); cmdpush(CS_CMDSUBST); - execode(prog, 0, 1); + execode(prog, 0, 1, "equalsubst"); cmdpop(); close(1); _exit(lastval); @@ -3728,7 +3867,8 @@ pnam = hcalloc(strlen(PATH_DEV_FD) + 6); if (!(prog = parsecmd(cmd, eptr))) return NULL; - mpipe(pipes); + if (mpipe(pipes) < 0) + return NULL; if ((pid = zfork(&bgtime))) { sprintf(pnam, "%s/%d", PATH_DEV_FD, pipes[!out]); zclose(pipes[out]); @@ -3750,7 +3890,7 @@ #endif /* PATH_DEV_FD */ cmdpush(CS_CMDSUBST); - execode(prog, 0, 1); + execode(prog, 0, 1, out ? "outsubst" : "insubst"); cmdpop(); zclose(out); _exit(lastval); @@ -3782,7 +3922,8 @@ zerr("invalid syntax for process substitution in redirection"); return -1; } - mpipe(pipes); + if (mpipe(pipes) < 0) + return -1; if ((pid = zfork(&bgtime))) { zclose(pipes[out]); if (pid == -1) { @@ -3793,11 +3934,11 @@ addproc(pid, NULL, 1, &bgtime); return pipes[!out]; } - entersubsh(ESUB_ASYNC|ESUB_PGRP); + entersubsh(ESUB_PGRP); redup(pipes[out], out); closem(FDT_UNUSED); /* this closes pipes[!out] as well */ cmdpush(CS_CMDSUBST); - execode(prog, 0, 1); + execode(prog, 0, 1, out ? "outsubst" : "insubst"); cmdpop(); _exit(lastval); return 0; @@ -3806,12 +3947,16 @@ /* open pipes with fds >= 10 */ /**/ -static void +static int mpipe(int *pp) { - pipe(pp); + if (pipe(pp) < 0) { + zerr("pipe failed: %e", errno); + return -1; + } pp[0] = movefd(pp[0]); pp[1] = movefd(pp[1]); + return 0; } /* @@ -4014,6 +4159,10 @@ execshfunc(shf, args); ret = lastval; + + freeeprog(shf->funcdef); + zsfree(shf->filename); + zfree(shf, sizeof(*shf)); break; } else { /* is this shell function a signal trap? */ @@ -4114,7 +4263,7 @@ oldscriptname = scriptname; oldscriptfilename = scriptfilename; scriptname = scriptfilename = dupstring(shf->node.nam); - execode(shf->funcdef, 1, 0); + execode(shf->funcdef, 1, 0, "loadautofunc"); scriptname = oldscriptname; scriptfilename = oldscriptfilename; @@ -4168,7 +4317,7 @@ } else { VARARR(char, n, strlen(shf->node.nam) + 1); strcpy(n, shf->node.nam); - execode(prog, 1, 0); + execode(prog, 1, 0, "evalautofunc"); shf = (Shfunc) shfunctab->getnode(shfunctab, n); if (!shf || (shf->node.flags & PM_UNDEFINED)) { /* We're not actually in the function; decrement locallevel */ @@ -4437,7 +4586,7 @@ ou = zalloc(ouu = underscoreused); if (ou) - memcpy(ou, underscore, underscoreused); + memcpy(ou, zunderscore, underscoreused); while (wrap) { wrap->module->wrapper++; @@ -4456,7 +4605,7 @@ wrap = wrap->next; } startparamscope(); - execode(prog, 1, 0); + execode(prog, 1, 0, "shfunc"); if (ou) { setunderscore(ou); zfree(ou, ouu); @@ -4674,13 +4823,14 @@ es->badcshglob = badcshglob; es->cmdoutpid = cmdoutpid; es->cmdoutval = cmdoutval; + es->use_cmdoutval = use_cmdoutval; es->trap_return = trap_return; es->trap_state = trap_state; es->trapisfunc = trapisfunc; es->traplocallevel = traplocallevel; es->noerrs = noerrs; es->subsh_close = subsh_close; - es->underscore = ztrdup(underscore); + es->underscore = ztrdup(zunderscore); es->next = exstack; exstack = es; noerrs = cmdoutpid = 0; @@ -4704,6 +4854,7 @@ badcshglob = exstack->badcshglob; cmdoutpid = exstack->cmdoutpid; cmdoutval = exstack->cmdoutval; + use_cmdoutval = exstack->use_cmdoutval; trap_return = exstack->trap_return; trap_state = exstack->trap_state; trapisfunc = exstack->trapisfunc; diff -Nru zsh-4.3.10/Src/glob.c zsh-4.3.11/Src/glob.c --- zsh-4.3.10/Src/glob.c 2009-03-24 13:31:48.000000000 +0100 +++ zsh-4.3.11/Src/glob.c 2010-12-06 11:11:35.000000000 +0100 @@ -176,6 +176,7 @@ int gd_gf_numsort; int gd_gf_follow, gd_gf_sorts, gd_gf_nsorts; struct globsort gd_gf_sortlist[MAX_SORTS]; + LinkList gd_gf_pre_words; char *gd_glob_pre, *gd_glob_suf; }; @@ -206,6 +207,7 @@ #define gf_sorts (curglobdata.gd_gf_sorts) #define gf_nsorts (curglobdata.gd_gf_nsorts) #define gf_sortlist (curglobdata.gd_gf_sortlist) +#define gf_pre_words (curglobdata.gd_gf_pre_words) /* and macros for save/restore */ @@ -1031,8 +1033,8 @@ /* - * Get a glob string for execution, following e or + qualifiers. - * Pointer is character after the e or +. + * Get a glob string for execution, following e, P or + qualifiers. + * Pointer is character after the e, P or +. */ /**/ @@ -1072,6 +1074,23 @@ return sdata; } +/* + * Insert a glob match. + * If there were words to prepend given by the P glob qualifier, do so. + */ +static void +insert_glob_match(LinkList list, LinkNode next, char *data) +{ + if (gf_pre_words) { + LinkNode added; + for (added = firstnode(gf_pre_words); added; incnode(added)) { + next = insertlinknode(list, next, dupstring(getdata(added))); + } + } + + insertlinknode(list, next, data); +} + /* Main entry point to the globbing code for filename globbing. * * np points to a node in the list list which will be expanded * * into a series of nodes. */ @@ -1122,6 +1141,7 @@ gf_noglobdots = unset(GLOBDOTS); gf_numsort = isset(NUMERICGLOBSORT); gf_sorts = gf_nsorts = 0; + gf_pre_words = NULL; /* Check for qualifiers */ while (!nobareglob || isset(EXTENDEDGLOB)) { @@ -1606,6 +1626,19 @@ end = v.end; break; } + case 'P': + { + char *tt; + tt = glob_exec_string(&s); + + if (tt != NULL) + { + if (!gf_pre_words) + gf_pre_words = newlinklist(); + addlinknode(gf_pre_words, tt); + } + break; + } default: zerr("unknown file attribute"); restore_globstate(saved); @@ -1773,7 +1806,7 @@ /* Parsed OK, execute for each name */ for (tmpptr = matchbuf; tmpptr < matchptr; tmpptr++) { setsparam("REPLY", ztrdup(tmpptr->name)); - execode(prog, 1, 0); + execode(prog, 1, 0, "globsort"); if (!errflag) tmpptr->sortstrs[iexec] = dupstring(getsparam("REPLY")); @@ -1816,14 +1849,14 @@ matchptr = matchbuf + matchct - first - 1; while (end-- > 0) { /* insert matches in the arg list */ - insertlinknode(list, node, matchptr->name); + insert_glob_match(list, node, matchptr->name); matchptr--; } } else { matchptr = matchbuf + matchct - first - end; while (end-- > 0) { /* insert matches in the arg list */ - insertlinknode(list, node, matchptr->name); + insert_glob_match(list, node, matchptr->name); matchptr++; } } @@ -1891,14 +1924,29 @@ case Inbrace: if (!lbr) { lbr = str - 1; + if (*str == '-') + str++; while (idigit(*str)) str++; if (*str == '.' && str[1] == '.') { - str++; - while (idigit(*++str)); + str++; str++; + if (*str == '-') + str++; + while (idigit(*str)) + str++; if (*str == Outbrace && (idigit(lbr[1]) || idigit(str[-1]))) return 1; + else if (*str == '.' && str[1] == '.') { + str++; str++; + if (*str == '-') + str++; + while (idigit(*str)) + str++; + if (*str == Outbrace && + (idigit(lbr[1]) || idigit(str[-1]))) + return 1; + } } } else { char *s = --str; @@ -2028,18 +2076,20 @@ } else if (bc == 1) { if (*str2 == Comma) ++comma; /* we have {foo,bar} */ - else if (*str2 == '.' && str2[1] == '.') + else if (*str2 == '.' && str2[1] == '.') { dotdot++; /* we have {num1..num2} */ + ++str2; + } } DPUTS(bc, "BUG: unmatched brace in xpandbraces()"); if (!comma && dotdot) { /* Expand range like 0..10 numerically: comma or recursive brace expansion take precedence. */ - char *dots, *p; + char *dots, *p, *dots2 = NULL; LinkNode olast = last; /* Get the first number of the range */ - int rstart = zstrtol(str+1,&dots,10), rend = 0, err = 0, rev = 0; - int wid1 = (dots - str) - 1, wid2 = (str2 - dots) - 2; + int rstart = zstrtol(str+1,&dots,10), rend = 0, err = 0, rev = 0, rincr = 1; + int wid1 = (dots - str) - 1, wid2 = (str2 - dots) - 2, wid3 = 0; int strp = str - str3; if (dots == str + 1 || *dots != '.' || dots[1] != '.') @@ -2047,23 +2097,53 @@ else { /* Get the last number of the range */ rend = zstrtol(dots+2,&p,10); - if (p == dots+2 || p != str2) + if (p == dots+2) err++; + /* check for {num1..num2..incr} */ + if (p != str2) { + wid2 = (p - dots) - 2; + dots2 = p; + if (dotdot == 2 && *p == '.' && p[1] == '.') { + rincr = zstrtol(p+2, &p, 10); + wid3 = p - dots2 - 2; + if (p != str2 || !rincr) + err++; + } else + err++; + } } if (!err) { /* If either no. begins with a zero, pad the output with * - * zeroes. Otherwise, choose a min width to suppress them. */ - int minw = (str[1] == '0') ? wid1 : (dots[2] == '0' ) ? wid2 : - (wid2 > wid1) ? wid1 : wid2; + * zeroes. Otherwise, set min width to 0 to suppress them. + * str+1 is the first number in the range, dots+2 the last, + * and dots2+2 is the increment if that's given. */ + /* TODO: sorry about this */ + int minw = (str[1] == '0' || (str[1] == '-' && str[2] == '0')) + ? wid1 + : (dots[2] == '0' || (dots[2] == '-' && dots[3] == '0')) + ? wid2 + : (dots2 && (dots2[2] == '0' || + (dots2[2] == '-' && dots2[3] == '0'))) + ? wid3 + : 0; + if (rincr < 0) { + /* Handle negative increment */ + rincr = -rincr; + rev = !rev; + } if (rstart > rend) { /* Handle decreasing ranges correctly. */ int rt = rend; rend = rstart; rstart = rt; - rev = 1; + rev = !rev; + } else if (rincr > 1) { + /* when incr > 1, range is aligned to the highest number of str1, + * compensate for this so that it is aligned to the first number */ + rend -= (rend - rstart) % rincr; } uremnode(list, node); - for (; rend >= rstart; rend--) { + for (; rend >= rstart; rend -= rincr) { /* Node added in at end, so do highest first */ p = dupstring(str3); sprintf(p + strp, "%0*d", minw, rend); @@ -3464,7 +3544,7 @@ unsetparam("reply"); setsparam("REPLY", ztrdup(name)); - execode(prog, 1, 0); + execode(prog, 1, 0, "globqual"); ret = lastval; errflag = ef; @@ -3483,6 +3563,7 @@ inserts = tmparr; } } + return !ret; } return 0; diff -Nru zsh-4.3.10/Src/hashtable.c zsh-4.3.11/Src/hashtable.c --- zsh-4.3.10/Src/hashtable.c 2009-02-12 10:22:27.000000000 +0100 +++ zsh-4.3.11/Src/hashtable.c 2009-09-21 11:22:23.000000000 +0200 @@ -630,20 +630,50 @@ { Cmdnam cn; DIR *dir; - char *fn; + char *fn, *unmetadir, *pathbuf, *pathptr; + int dirlen; #if defined(_WIN32) || defined(__CYGWIN__) char *exe; #endif /* _WIN32 || _CYGWIN__ */ - if (isrelative(*dirp) || !(dir = opendir(unmeta(*dirp)))) + if (isrelative(*dirp)) return; + unmetadir = unmeta(*dirp); + if (!(dir = opendir(unmetadir))) + return; + + dirlen = strlen(unmetadir); + pathbuf = (char *)zalloc(dirlen + PATH_MAX + 2); + sprintf(pathbuf, "%s/", unmetadir); + pathptr = pathbuf + dirlen + 1; while ((fn = zreaddir(dir, 1))) { if (!cmdnamtab->getnode(cmdnamtab, fn)) { - cn = (Cmdnam) zshcalloc(sizeof *cn); - cn->node.flags = 0; - cn->u.name = dirp; - cmdnamtab->addnode(cmdnamtab, ztrdup(fn), cn); + char *fname = ztrdup(fn); + struct stat statbuf; + int add = 0, dummylen; + + unmetafy(fn, &dummylen); + if (strlen(fn) > PATH_MAX) { + /* Too heavy to do all the allocation */ + add = 1; + } else { + strcpy(pathptr, fn); + /* + * This is the same test as for the glob qualifier for + * executable plain files. + */ + if (stat(pathbuf, &statbuf) == 0 && + S_ISREG(statbuf.st_mode) && (statbuf.st_mode & S_IXUGO)) + add = 1; + } + if (add) { + cn = (Cmdnam) zshcalloc(sizeof *cn); + cn->node.flags = 0; + cn->u.name = dirp; + cmdnamtab->addnode(cmdnamtab, fname, cn); + } else + zsfree(fname); } #if defined(_WIN32) || defined(__CYGWIN__) /* Hash foo.exe as foo, since when no real foo exists, foo.exe @@ -664,6 +694,7 @@ #endif /* _WIN32 || __CYGWIN__ */ } closedir(dir); + zfree(pathbuf, dirlen + PATH_MAX + 2); } /* Go through user's PATH and add everything to * diff -Nru zsh-4.3.10/Src/hist.c zsh-4.3.11/Src/hist.c --- zsh-4.3.10/Src/hist.c 2009-03-23 13:46:05.000000000 +0100 +++ zsh-4.3.11/Src/hist.c 2010-12-20 14:52:03.000000000 +0100 @@ -164,6 +164,22 @@ /**/ mod_export char *chline; +/* + * The current history line as seen by ZLE. + * We modify chline for use in other contexts while ZLE may + * still be running; ZLE should see only the top-level value. + * + * To avoid having to modify this every time we modify chline, + * we set it when we push the stack, and unset it when we pop + * the appropriate value off the stack. As it's never modified + * on the stack this is the only maintainance we ever do on it. + * In return, ZLE has to check both zle_chline and (if that's + * NULL) chline to get the current value. + */ + +/**/ +mod_export char *zle_chline; + /* true if the last character returned by hgetc was an escaped bangchar * * if it is set and NOBANGHIST is unset hwaddc escapes bangchars */ @@ -1155,7 +1171,8 @@ if (histactive & HA_NOINC) { zfree(chline, hlinesz); zfree(chwords, chwordlen*sizeof(short)); - chline = NULL; + chline = hptr = NULL; + chwords = NULL; histactive = 0; unqueue_signals(); return 1; @@ -1177,7 +1194,7 @@ callhookfunc("zshaddhistory", hookargs, 1, &hookret); /* For history sharing, lock history file once for both read and write */ hf = getsparam("HISTFILE"); - if (isset(SHAREHISTORY) && lockhistfile(hf, 0)) { + if (isset(SHAREHISTORY) && !lockhistfile(hf, 0)) { readhistfile(hf, 0, HFILE_USE_OPTIONS | HFILE_FAST); curline.histnum = curhist+1; } @@ -1269,7 +1286,8 @@ } zfree(chline, hlinesz); zfree(chwords, chwordlen*sizeof(short)); - chline = NULL; + chline = hptr = NULL; + chwords = NULL; histactive = 0; if (isset(SHAREHISTORY)? histfileIsLocked() : isset(INCAPPENDHISTORY)) savehistfile(hf, 0, HFILE_USE_OPTIONS | HFILE_FAST); @@ -2210,29 +2228,35 @@ Histent he; time_t stim, ftim, tim = time(NULL); off_t fpos; - short *wordlist; + short *words; struct stat sb; - int nwordpos, nwordlist, bufsiz; - int searching, newflags, l; + int nwordpos, nwords, bufsiz; + int searching, newflags, l, ret, uselex; if (!fn && !(fn = getsparam("HISTFILE"))) return; if (readflags & HFILE_FAST) { if (stat(unmeta(fn), &sb) < 0 || (lasthist.fsiz == sb.st_size && lasthist.mtim == sb.st_mtime) - || !lockhistfile(fn, 0)) + || lockhistfile(fn, 0)) return; lasthist.fsiz = sb.st_size; lasthist.mtim = sb.st_mtime; + } else if ((ret = lockhistfile(fn, 1))) { + if (ret == 2) { + zwarn("locking failed for %s: %e: reading anyway", fn, errno); + } else { + zerr("locking failed for %s: %e", fn, errno); + return; + } } - else if (!lockhistfile(fn, 1)) - return; if ((in = fopen(unmeta(fn), "r"))) { - nwordlist = 64; - wordlist = (short *)zalloc(nwordlist*sizeof(short)); + nwords = 64; + words = (short *)zalloc(nwords*sizeof(short)); bufsiz = 1024; buf = zalloc(bufsiz); + pushheap(); if (readflags & HFILE_FAST && lasthist.text) { if (lasthist.fpos < lasthist.fsiz) { fseek(in, lasthist.fpos, 0); @@ -2311,29 +2335,111 @@ else he->ftim = ftim; - /* Divide up the words. We don't know how it lexes, - so just look for white-space. - */ + /* + * Divide up the words. + */ nwordpos = 0; start = pt; - do { - while (inblank(*pt)) - pt++; - if (*pt) { - if (nwordpos >= nwordlist) - wordlist = (short *) realloc(wordlist, - (nwordlist += 64)*sizeof(short)); - wordlist[nwordpos++] = pt - start; - while (*pt && !inblank(*pt)) - pt++; - wordlist[nwordpos++] = pt - start; - } - } while (*pt); + uselex = isset(HISTLEXWORDS) && !(readflags & HFILE_FAST); + if (uselex) { + /* + * Attempt to do this using the lexer. + */ + LinkList wordlist = bufferwords(NULL, pt, NULL, + LEXFLAGS_COMMENTS_KEEP); + LinkNode wordnode; + int nwords_max; + nwords_max = 2 * countlinknodes(wordlist); + if (nwords_max > nwords) { + nwords = nwords_max; + words = (short *)realloc(words, nwords*sizeof(short)); + } + for (wordnode = firstnode(wordlist); + wordnode; + incnode(wordnode)) { + char *word = getdata(wordnode); + + for (;;) { + /* + * Not really an oddity: "\\\n" is + * removed from input as if whitespace. + */ + if (inblank(*pt)) + pt++; + else if (pt[0] == '\\' && pt[1] == '\n') + pt += 2; + else + break; + } + if (!strpfx(word, pt)) { + int bad = 0; + /* + * Oddity 1: newlines turn into semicolons. + */ + if (!strcmp(word, ";")) + continue; + while (*pt) { + if (!*word) { + bad = 1; + break; + } + /* + * Oddity 2: !'s turn into |'s. + */ + if (*pt == *word || + (*pt == '!' && *word == '|')) { + pt++; + word++; + } else { + bad = 1; + break; + } + } + if (bad) { +#ifdef DEBUG + dputs(ERRMSG("bad wordsplit reading history: " + "%s\nat: %s\nword: %s"), + start, pt, word); +#endif + pt = start; + nwordpos = 0; + uselex = 0; + break; + } + } + words[nwordpos++] = pt - start; + pt += strlen(word); + words[nwordpos++] = pt - start; + } + freeheap(); + } + if (!uselex) { + do { + for (;;) { + if (inblank(*pt)) + pt++; + else if (pt[0] == '\\' && pt[1] == '\n') + pt += 2; + else + break; + } + if (*pt) { + if (nwordpos >= nwords) + words = (short *) + realloc(words, (nwords += 64)*sizeof(short)); + words[nwordpos++] = pt - start; + while (*pt && !inblank(*pt)) + pt++; + words[nwordpos++] = pt - start; + } + } while (*pt); + + } he->nwords = nwordpos/2; if (he->nwords) { he->words = (short *)zalloc(nwordpos*sizeof(short)); - memcpy(he->words, wordlist, nwordpos*sizeof(short)); + memcpy(he->words, words, nwordpos*sizeof(short)); } else he->words = (short *)NULL; addhistnode(histtab, he->node.nam, he); @@ -2346,9 +2452,10 @@ zsfree(lasthist.text); lasthist.text = ztrdup(start); } - zfree(wordlist, nwordlist*sizeof(short)); + zfree(words, nwords*sizeof(short)); zfree(buf, bufsiz); + popheap(); fclose(in); } else if (err) zerr("can't read history file %s", fn); @@ -2359,6 +2466,11 @@ #ifdef HAVE_FCNTL_H static int flock_fd = -1; +/* + * Lock file using fcntl(). Return 0 on success, 1 on failure of + * locking mechanism, 2 on permanent failure (e.g. permission). + */ + static int flockhistfile(char *fn, int keep_trying) { @@ -2366,7 +2478,7 @@ int ctr = keep_trying ? 9 : 0; if ((flock_fd = open(unmeta(fn), O_RDWR | O_NOCTTY)) < 0) - return errno == ENOENT; /* "successfully" locked missing file */ + return errno == ENOENT ? 0 : 2; /* "successfully" locked missing file */ lck.l_type = F_WRLCK; lck.l_whence = SEEK_SET; @@ -2377,12 +2489,12 @@ if (--ctr < 0) { close(flock_fd); flock_fd = -1; - return 0; + return 1; } sleep(1); } - return 1; + return 0; } #endif @@ -2406,14 +2518,16 @@ lasthist.next_write_ev = he->histnum + 1; he = down_histent(he); } - if (!he || !lockhistfile(fn, 0)) + if (!he || lockhistfile(fn, 0)) return; if (histfile_linect > savehistsiz + savehistsiz / 5) writeflags &= ~HFILE_FAST; } else { - if (!lockhistfile(fn, 1)) + if (lockhistfile(fn, 1)) { + zerr("locking failed for %s: %e", fn, errno); return; + } he = hist_ring->down; } if (writeflags & HFILE_USE_OPTIONS) { @@ -2579,18 +2693,27 @@ static int lockhistct; +/* + * Lock history file. Return 0 on success, 1 on failure to lock this + * time, 2 on permanent failure (e.g. permission). + */ + /**/ int lockhistfile(char *fn, int keep_trying) { int ct = lockhistct; + int ret = 0; if (!fn && !(fn = getsparam("HISTFILE"))) - return 0; + return 1; #ifdef HAVE_FCNTL_H - if (isset(HISTFCNTLLOCK) && flock_fd < 0 && !flockhistfile(fn, keep_trying)) - return 0; + if (isset(HISTFCNTLLOCK) && flock_fd < 0) { + ret = flockhistfile(fn, keep_trying); + if (ret) + return ret; + } #endif if (!lockhistct++) { @@ -2598,11 +2721,43 @@ int fd; char *lockfile; #ifdef HAVE_LINK +# ifdef HAVE_SYMLINK + char pidbuf[32], *lnk; +# else char *tmpfile; +# endif #endif lockfile = bicat(unmeta(fn), ".LOCK"); + /* NOTE: only use symlink locking on a link()-having host in order to + * avoid a change from open()-based locking to symlink()-based. */ #ifdef HAVE_LINK +# ifdef HAVE_SYMLINK + sprintf(pidbuf, "/pid-%ld/host-", (long)mypid); + lnk = bicat(pidbuf, getsparam("HOST")); + /* We'll abuse fd as our success flag. */ + while ((fd = symlink(lnk, lockfile)) < 0) { + if (errno != EEXIST) { + ret = 2; + break; + } else if (!keep_trying) { + ret = 1; + break; + } + if (lstat(lockfile, &sb) < 0) { + if (errno == ENOENT) + continue; + break; + } + if (time(NULL) - sb.st_mtime < 10) + sleep(1); + else + unlink(lockfile); + } + if (fd < 0) + lockhistct--; + free(lnk); +# else /* not HAVE_SYMLINK */ if ((fd = gettempfile(fn, 0, &tmpfile)) >= 0) { FILE *out = fdopen(fd, "w"); if (out) { @@ -2611,15 +2766,16 @@ } else close(fd); while (link(tmpfile, lockfile) < 0) { - if (errno != EEXIST) - zerr("failed to create hard link as lock file %s: %e", - lockfile, errno); - else if (!keep_trying) - ; - else if (stat(lockfile, &sb) < 0) { + if (errno != EEXIST) { + ret = 2; + break; + } else if (!keep_trying) { + ret = 1; + break; + } else if (lstat(lockfile, &sb) < 0) { if (errno == ENOENT) continue; - zerr("failed to stat lock file %s: %e", lockfile, errno); + ret = 2; } else { if (time(NULL) - sb.st_mtime < 10) sleep(1); @@ -2633,13 +2789,20 @@ unlink(tmpfile); free(tmpfile); } +# endif /* not HAVE_SYMLINK */ #else /* not HAVE_LINK */ while ((fd = open(lockfile, O_WRONLY|O_CREAT|O_EXCL, 0644)) < 0) { - if (errno != EEXIST || !keep_trying) + if (errno != EEXIST) { + ret = 2; break; - if (stat(lockfile, &sb) < 0) { + } else if (!keep_trying) { + ret = 1; + break; + } + if (lstat(lockfile, &sb) < 0) { if (errno == ENOENT) continue; + ret = 2; break; } if (time(NULL) - sb.st_mtime < 10) @@ -2668,9 +2831,10 @@ flock_fd = -1; } #endif - return 0; + DPUTS(ret == 0, "BUG: return value non-zero on locking error"); + return ret; } - return 1; + return 0; } /* Unlock the history file if this corresponds to the last nested lock @@ -2722,24 +2886,50 @@ * which may not even be valid at this point. * * However, I'm so confused it could simply be baking Bakewell tarts. + * + * list may be an existing linked list (off the heap), in which case + * it will be appended to; otherwise it will be created. + * + * If buf is set we will take input from that string, else we will + * attempt to use ZLE directly in a way they tell you not to do on all + * programming courses. + * + * If index is non-NULL, and input is from a string in ZLE, *index + * is set to the position of the end of the current editor word. + * + * flags is passed directly to lexflags, see lex.c, except that + * we 'or' in the bit LEXFLAGS_ACTIVE to make sure the variable + * is set. */ /**/ mod_export LinkList -bufferwords(LinkList list, char *buf, int *index) +bufferwords(LinkList list, char *buf, int *index, int flags) { int num = 0, cur = -1, got = 0, ne = noerrs; - int owb = wb, owe = we, oadx = addedx, ozp = zleparse, onc = nocomments; + int owb = wb, owe = we, oadx = addedx, onc = nocomments; int ona = noaliases, ocs = zlemetacs, oll = zlemetall; + int forloop = 0, rcquotes = opts[RCQUOTES]; char *p, *addedspaceptr; if (!list) list = newlinklist(); - zleparse = 1; + /* + * With RC_QUOTES, 'foo '' bar' comes back as 'foo ' bar'. That's + * not very useful. As nothing in here requires the fully processed + * string expression, we just turn the option off for this function. + */ + opts[RCQUOTES] = 0; addedx = 0; noerrs = 1; lexsave(); + lexflags = flags | LEXFLAGS_ACTIVE; + /* + * Are we handling comments? + */ + nocomments = !(flags & (LEXFLAGS_COMMENTS_KEEP| + LEXFLAGS_COMMENTS_STRIP)); if (buf) { int l = strlen(buf); @@ -2758,7 +2948,6 @@ inpush(p, 0, NULL); zlemetall = strlen(p) ; zlemetacs = zlemetall + 1; - nocomments = 1; } else { int ll, cs; char *linein; @@ -2804,25 +2993,84 @@ ctxtlex(); if (tok == ENDINPUT || tok == LEXERR) break; - if (tokstr && *tokstr) { - untokenize((p = dupstring(tokstr))); - if (ingetptr() == addedspaceptr + 1) { - /* - * Whoops, we've read past the space we added, probably - * because we were expecting a terminator but when - * it didn't turn up we shrugged our shoulders thinking - * it might as well be a complete string anyway. - * So remove the space. C.f. below for the case - * where the missing terminator caused a lex error. - * We use the same paranoid test. - */ - int plen = strlen(p); - if (plen && p[plen-1] == ' ' && - (plen == 1 || p[plen-2] != Meta)) - p[plen-1] = '\0'; + if (tok == FOR) { + /* + * The way for (( expr1 ; expr2; expr3 )) is parsed is: + * - a FOR tok + * - a DINPAR with no tokstr + * - two DINPARS with tokstr's expr1, expr2. + * - a DOUTPAR with tokstr expr3. + * + * We'll decrement the variable forloop as we verify + * the various stages. + * + * Don't ask me, ma'am, I'm just the programmer. + */ + forloop = 5; + } else { + switch (forloop) { + case 1: + if (tok != DOUTPAR) + forloop = 0; + break; + + case 2: + case 3: + case 4: + if (tok != DINPAR) + forloop = 0; + break; + + default: + /* nothing to do */ + break; + } + } + if (tokstr) { + switch (tok) { + case ENVARRAY: + p = dyncat(tokstr, "=("); + break; + + case DINPAR: + if (forloop) { + /* See above. */ + p = dyncat(tokstr, ";"); + } else { + /* + * Mathematical expressions analysed as a single + * word. That's correct because it behaves like + * double quotes. Whitespace in the middle is + * similarly retained, so just add the parentheses back. + */ + p = tricat("((", tokstr, "))"); + } + break; + + default: + p = dupstring(tokstr); + break; + } + if (*p) { + untokenize(p); + if (ingetptr() == addedspaceptr + 1) { + /* + * Whoops, we've read past the space we added, probably + * because we were expecting a terminator but when + * it didn't turn up we shrugged our shoulders thinking + * it might as well be a complete string anyway. + * So remove the space. C.f. below for the case + * where the missing terminator caused a lex error. + * We use the same paranoid test. + */ + int plen = strlen(p); + if (plen && p[plen-1] == ' ' && + (plen == 1 || p[plen-2] != Meta)) + p[plen-1] = '\0'; + } + addlinknode(list, p); + num++; } - addlinknode(list, p); - num++; } else if (buf) { if (IS_REDIROP(tok) && tokfd >= 0) { char b[20]; @@ -2835,7 +3083,17 @@ num++; } } - if (!got && !zleparse) { + if (forloop) { + if (forloop == 1) { + /* + * Final "))" of for loop to match opening, + * since we've just added the preceding element. + */ + addlinknode(list, dupstring("))")); + } + forloop--; + } + if (!got && !lexflags) { got = 1; cur = num - 1; } @@ -2860,7 +3118,6 @@ strinend(); inpop(); errflag = 0; - zleparse = ozp; nocomments = onc; noerrs = ne; lexrestore(); @@ -2869,6 +3126,7 @@ wb = owb; we = owe; addedx = oadx; + opts[RCQUOTES] = rcquotes; if (index) *index = cur; diff -Nru zsh-4.3.10/Src/init.c zsh-4.3.11/Src/init.c --- zsh-4.3.10/Src/init.c 2009-03-26 10:46:32.000000000 +0100 +++ zsh-4.3.11/Src/init.c 2010-12-20 11:01:18.000000000 +0100 @@ -42,7 +42,7 @@ /* buffer for $_ and its length */ /**/ -char *underscore; +char *zunderscore; /**/ int underscorelen, underscoreused; @@ -99,10 +99,11 @@ /* keep executing lists until EOF found */ /**/ -void +enum loop_return loop(int toplevel, int justonce) { Eprog prog; + int err, non_empty = 0; pushheap(); if (!toplevel) @@ -150,6 +151,7 @@ if (hend(prog)) { int toksav = tok; + non_empty = 1; if (toplevel && (getshfunc("preexec") || paramtab->getnode(paramtab, "preexec" HOOK_SUFFIX))) { @@ -180,7 +182,7 @@ } if (stopmsg) /* unset 'you have stopped jobs' flag */ stopmsg--; - execode(prog, 0, 0); + execode(prog, 0, 0, toplevel ? "toplevel" : "file"); tok = toksav; if (toplevel) noexitct = 0; @@ -201,17 +203,24 @@ if (justonce) break; } + err = errflag; if (!toplevel) lexrestore(); popheap(); + + if (err) + return LOOP_ERROR; + if (!non_empty) + return LOOP_EMPTY; + return LOOP_OK; } static char *cmd; static int restricted; /**/ -void -parseargs(char **argv) +static void +parseargs(char **argv, char **runscript) { int optionbreak = 0; char **x; @@ -229,6 +238,11 @@ * be changed. At the end of the function, a value of 2 gets * * changed to 1. */ opts[INTERACTIVE] = isatty(0) ? 2 : 0; + /* + * MONITOR is similar: we initialise it to 2, and if it's + * still 2 at the end, we set it to the value of INTERACTIVE. + */ + opts[MONITOR] = 2; /* may be unset in init_io() */ opts[SHINSTDIN] = 0; opts[SINGLECOMMAND] = 0; @@ -321,15 +335,11 @@ } if (*argv) { if (unset(SHINSTDIN)) { - if (!cmd) - SHIN = movefd(open(unmeta(*argv), O_RDONLY | O_NOCTTY)); - if (SHIN == -1) { - zerr("can't open input file: %s", *argv); - exit(127); - } + if (cmd) + argzero = *argv; + else + *runscript = *argv; opts[INTERACTIVE] &= 1; - argzero = *argv; - scriptfilename = argzero; argv++; } while (*argv) @@ -339,6 +349,8 @@ if(isset(SINGLECOMMAND)) opts[INTERACTIVE] &= 1; opts[INTERACTIVE] = !!opts[INTERACTIVE]; + if (opts[MONITOR] == 2) + opts[MONITOR] = opts[INTERACTIVE]; pparams = x = (char **) zshcalloc((countlinknodes(paramlist) + 1) * sizeof(char *)); while ((*x++ = (char *)getlinknode(paramlist))); @@ -464,8 +476,16 @@ if (SHTTY == -1) { zsfree(ttystrname); ttystrname = ztrdup(""); - } else if (!ttystrname) { - ttystrname = ztrdup("/dev/tty"); + } else { +#ifdef FD_CLOEXEC + long fdflags = fcntl(SHTTY, F_GETFD, 0); + if (fdflags != (long)-1) { + fdflags |= FD_CLOEXEC; + fcntl(SHTTY, F_SETFD, fdflags); + } +#endif + if (!ttystrname) + ttystrname = ztrdup("/dev/tty"); } /* We will only use zle if shell is interactive, * @@ -482,7 +502,7 @@ * process group leader. */ mypid = (zlong)getpid(); - if (opts[MONITOR] && interact && (SHTTY != -1)) { + if (opts[MONITOR] && (SHTTY != -1)) { origpgrp = GETPGRP(); acquire_pgrp(); /* might also clear opts[MONITOR] */ } else @@ -713,7 +733,6 @@ zero_mnumber.type = MN_INTEGER; zero_mnumber.u.l = 0; - lineno = 1; noeval = 0; curhist = 0; histsiz = DEFAULT_HISTSIZE; @@ -791,12 +810,13 @@ ? ztrdup("+ ") : ztrdup("+%N:%i> "); sprompt = ztrdup("zsh: correct '%R' to '%r' [nyae]? "); - ifs = ztrdup(DEFAULT_IFS); + ifs = EMULATION(EMULATE_KSH|EMULATE_SH) ? + ztrdup(DEFAULT_IFS_SH) : ztrdup(DEFAULT_IFS); wordchars = ztrdup(DEFAULT_WORDCHARS); postedit = ztrdup(""); - underscore = (char *) zalloc(underscorelen = 32); + zunderscore = (char *) zalloc(underscorelen = 32); underscoreused = 1; - *underscore = '\0'; + *zunderscore = '\0'; zoptarg = ztrdup(""); zoptind = 1; @@ -841,8 +861,10 @@ else if ((ptr = zgetenv("PWD")) && (strlen(ptr) < PATH_MAX) && (ptr = metafy(ptr, -1, META_STATIC), ispwd(ptr))) pwd = ztrdup(ptr); - else + else { + pwd = NULL; pwd = metafy(zgetcwd(), -1, META_DUP); + } oldpwd = ztrdup(pwd); /* initialize `OLDPWD' = `PWD' */ @@ -889,14 +911,7 @@ bufstack = znewlinklist(); hsubl = hsubr = NULL; lastpid = 0; - bshin = SHIN ? fdopen(SHIN, "r") : stdin; - if (isset(SHINSTDIN) && !SHIN && unset(INTERACTIVE)) { -#ifdef _IONBF - setvbuf(stdin, NULL, _IONBF, 0); -#else - setlinebuf(stdin); -#endif - } + lastpid_status = -1L; get_usage(); @@ -909,6 +924,60 @@ set_default_colour_sequences(); } +/* + * Setup shell input, opening any script file (runscript, may be NULL). + * This is deferred until we have a path to search, in case + * PATHSCRIPT is set for sh-compatible behaviour. + */ +static void +setupshin(char *runscript) +{ + if (runscript) { + char *funmeta, *sfname = NULL; + struct stat st; + + funmeta = unmeta(runscript); + /* + * Always search the current directory first. + */ + if (access(funmeta, F_OK) == 0 && + stat(funmeta, &st) >= 0 && + !S_ISDIR(st.st_mode)) + sfname = runscript; + else if (isset(PATHSCRIPT) && !strchr(runscript, '/')) { + /* + * With the PATHSCRIPT option, search the path if no + * path was given in the script name. + */ + funmeta = pathprog(runscript, &sfname); + } + if (!sfname || + (SHIN = movefd(open(funmeta, O_RDONLY | O_NOCTTY))) + == -1) { + zerr("can't open input file: %s", runscript); + exit(127); + } + scriptfilename = sfname; + argzero = runscript; + } + /* + * We only initialise line numbering once there is a script to + * read commands from. + */ + lineno = 1; + /* + * Finish setting up SHIN and its relatives. + */ + bshin = SHIN ? fdopen(SHIN, "r") : stdin; + if (isset(SHINSTDIN) && !SHIN && unset(INTERACTIVE)) { +#ifdef _IONBF + setvbuf(stdin, NULL, _IONBF, 0); +#else + setlinebuf(stdin); +#endif + } +} + /* Initialize signal handling */ /**/ @@ -1040,7 +1109,7 @@ fclose(bshin); SHIN = movefd(open("/dev/null", O_RDONLY | O_NOCTTY)); bshin = fdopen(SHIN, "r"); - execstring(cmd, 0, 1); + execstring(cmd, 0, 1, "cmdarg"); stopmsg = 1; zexit(lastval, 0); } @@ -1049,10 +1118,13 @@ readhistfile(NULL, 0, HFILE_USE_OPTIONS); } -/* source a file */ +/* + * source a file + * Returns one of the SOURCE_* enum values. + */ /**/ -mod_export int +mod_export enum source_return source(char *s) { Eprog prog; @@ -1066,11 +1138,12 @@ int ocsp; int otrap_return = trap_return, otrap_state = trap_state; struct funcstack fstack; + enum source_return ret = SOURCE_OK; if (!s || (!(prog = try_source_file((us = unmeta(s)))) && (tempfd = movefd(open(us, O_RDONLY | O_NOCTTY))) == -1)) { - return 1; + return SOURCE_NOT_FOUND; } /* save the current shell state */ @@ -1097,6 +1170,11 @@ scriptname = s; scriptfilename = s; + if (isset(SOURCETRACE)) { + printprompt4(); + fprintf(xtrerr ? xtrerr : stderr, "\n"); + } + /* * The special return behaviour of traps shouldn't * trigger in files sourced from traps; the return @@ -1119,10 +1197,28 @@ if (prog) { pushheap(); errflag = 0; - execode(prog, 1, 0); + execode(prog, 1, 0, "filecode"); popheap(); - } else - loop(0, 0); /* loop through the file to be sourced */ + if (errflag) + ret = SOURCE_ERROR; + } else { + /* loop through the file to be sourced */ + switch (loop(0, 0)) + { + case LOOP_OK: + /* nothing to do but compilers like a complete enum */ + break; + + case LOOP_EMPTY: + /* Empty code resets status */ + lastval = 0; + break; + + case LOOP_ERROR: + ret = SOURCE_ERROR; + break; + } + } funcstack = funcstack->prev; sourcelevel--; @@ -1152,7 +1248,7 @@ cmdstack = ocs; cmdsp = ocsp; - return 0; + return ret; } /* Try to source a file in the home directory */ @@ -1284,7 +1380,7 @@ pptbuf = unmetafy(promptexpand(lp ? *lp : NULL, 0, NULL, NULL, NULL), &pptlen); - write(2, (WRITE_ARG_2_T)pptbuf, pptlen); + write_loop(2, pptbuf, pptlen); free(pptbuf); ret = shingetline(); @@ -1336,7 +1432,7 @@ mod_export int zsh_main(UNUSED(int argc), char **argv) { - char **t; + char **t, *runscript = NULL; int t0; #ifdef USE_LOCALE setlocale(LC_ALL, ""); @@ -1382,17 +1478,20 @@ createoptiontable(); emulate(zsh_name, 1); /* initialises most options */ opts[LOGINSHELL] = (**argv == '-'); - opts[MONITOR] = 1; /* may be unset in init_io() */ opts[PRIVILEGED] = (getuid() != geteuid() || getgid() != getegid()); opts[USEZLE] = 1; /* may be unset in init_io() */ - parseargs(argv); /* sets INTERACTIVE, SHINSTDIN and SINGLECOMMAND */ + /* sets INTERACTIVE, SHINSTDIN and SINGLECOMMAND */ + parseargs(argv, &runscript); SHTTY = -1; init_io(); setupvals(); + init_signals(); init_bltinmods(); + init_builtins(); run_init_scripts(); + setupshin(runscript); init_misc(); for (;;) { diff -Nru zsh-4.3.10/Src/input.c zsh-4.3.11/Src/input.c --- zsh-4.3.10/Src/input.c 2008-07-28 18:45:10.000000000 +0200 +++ zsh-4.3.11/Src/input.c 2010-12-20 11:01:18.000000000 +0100 @@ -195,21 +195,24 @@ return lastc; } - /* If the next element down the input stack is a continuation of - * this, use it. - */ - if (inbufflags & INP_CONT) { - inpoptop(); - continue; - } /* - * Otherwise, see if we have reached the end of input + * See if we have reached the end of input * (due to an error, or to reading from a single string). + * Check the remaining characters left, since if there aren't + * any we don't want to pop the stack---it'll mark any aliases + * as not in use before we've finished processing. */ - if (strin || errflag) { + if (!inbufct && (strin || errflag)) { lexstop = 1; return ' '; } + /* If the next element down the input stack is a continuation of + * this, use it. + */ + if (inbufflags & INP_CONT) { + inpoptop(); + continue; + } /* As a last resort, get some more input */ if (inputline()) return ' '; @@ -257,7 +260,7 @@ int pptlen; pptbuf = unmetafy(promptexpand(ingetcpmptl ? *ingetcpmptl : NULL, 0, NULL, NULL, NULL), &pptlen); - write(2, (WRITE_ARG_2_T)pptbuf, pptlen); + write_loop(2, pptbuf, pptlen); free(pptbuf); } ingetcline = shingetline(); @@ -291,20 +294,32 @@ zputs(ingetcline, stderr); fflush(stderr); } - if (*ingetcline && ingetcline[strlen(ingetcline) - 1] == '\n' && - interact && isset(SUNKEYBOARDHACK) && isset(SHINSTDIN) && - SHTTY != -1 && *ingetcline && ingetcline[1] && - ingetcline[strlen(ingetcline) - 2] == '`') { - /* Junk an unmatched "`" at the end of the line. */ - int ct; - char *ptr; - - for (ct = 0, ptr = ingetcline; *ptr; ptr++) - if (*ptr == '`') - ct++; - if (ct & 1) { - ptr[-2] = '\n'; - ptr[-1] = '\0'; + if (keyboardhackchar && *ingetcline && + ingetcline[strlen(ingetcline) - 1] == '\n' && + interact && isset(SHINSTDIN) && + SHTTY != -1 && ingetcline[1]) + { + char *stripptr = ingetcline + strlen(ingetcline) - 2; + if (*stripptr == keyboardhackchar) { + /* Junk an unwanted character at the end of the line. + (key too close to return key) */ + int ct = 1; /* force odd */ + char *ptr; + + if (keyboardhackchar == '\'' || keyboardhackchar == '"' || + keyboardhackchar == '`') { + /* + * for the chars above, also require an odd count before + * junking + */ + for (ct = 0, ptr = ingetcline; *ptr; ptr++) + if (*ptr == keyboardhackchar) + ct++; + } + if (ct & 1) { + stripptr[0] = '\n'; + stripptr[1] = '\0'; + } } } isfirstch = 1; diff -Nru zsh-4.3.10/Src/jobs.c zsh-4.3.11/Src/jobs.c --- zsh-4.3.10/Src/jobs.c 2009-03-16 19:27:07.000000000 +0100 +++ zsh-4.3.11/Src/jobs.c 2010-08-22 22:08:57.000000000 +0200 @@ -104,6 +104,15 @@ /**/ int numpipestats, pipestats[MAX_PIPESTATS]; +/* + * The status associated with the process lastpid. + * -1 if not set and no associated lastpid + * -2 if lastpid is set and status isn't yet + * else the value returned by wait(). + */ +/**/ +long lastpid_status; + /* Diff two timevals for elapsed-time computations */ /**/ @@ -311,6 +320,36 @@ } #endif +/* + * Called when the current shell is behaving as if it received + * a interactively generated signal (sig). + * + * As we got the signal or are pretending we did, we need to pretend + * anything attached to a CURSH process got it, too. + */ +/**/ +void +check_cursh_sig(int sig) +{ + int i, j; + + if (!errflag) + return; + for (i = 1; i <= maxjob; i++) { + if ((jobtab[i].stat & (STAT_CURSH|STAT_DONE)) == + STAT_CURSH) { + for (j = 0; j < 2; j++) { + Process pn = j ? jobtab[i].auxprocs : jobtab[i].procs; + for (; pn; pn = pn->next) { + if (pn->status == SP_RUNNING) { + kill(pn->pid, sig); + } + } + } + } + } +} + /* Update status of job, possibly printing it */ /**/ @@ -322,11 +361,20 @@ int val = 0, status = 0; int somestopped = 0, inforeground = 0; - for (pn = jn->auxprocs; pn; pn = pn->next) + for (pn = jn->auxprocs; pn; pn = pn->next) { +#ifdef WIFCONTINUED + if (WIFCONTINUED(pn->status)) + pn->status = SP_RUNNING; +#endif if (pn->status == SP_RUNNING) return; + } for (pn = jn->procs; pn; pn = pn->next) { +#ifdef WIFCONTINUED + if (WIFCONTINUED(pn->status)) + pn->status = SP_RUNNING; +#endif if (pn->status == SP_RUNNING) /* some processes in this job are running */ return; /* so no need to update job table entry */ if (WIFSTOPPED(pn->status)) /* some processes are stopped */ @@ -487,6 +535,7 @@ breaks = loops; errflag = 1; } + check_cursh_sig(sig); } } } @@ -813,6 +862,7 @@ * synch = 0 means asynchronous * synch = 1 means synchronous * synch = 2 means called synchronously from jobs + * synch = 3 means called synchronously from bg or fg * * Returns 1 if some output was done. * @@ -827,8 +877,8 @@ Process pn; int job, len = 9, sig, sflag = 0, llen; int conted = 0, lineleng = columns, skip = 0, doputnl = 0; - int doneprint = 0; - FILE *fout = (synch == 2) ? stdout : shout; + int doneprint = 0, skip_print = 0; + FILE *fout = (synch == 2 || !shout) ? stdout : shout; if (oldjobtab != NULL) job = jn - oldjobtab; @@ -836,16 +886,7 @@ job = jn - jobtab; if (jn->stat & STAT_NOPRINT) { - if (jn->stat & STAT_DONE) { - deletejob(jn); - if (job == curjob) { - curjob = prevjob; - prevjob = job; - } - if (job == prevjob) - setprevjob(); - } - return 0; + skip_print = 1; } if (lng < 0) { @@ -872,6 +913,10 @@ sflag = 1; if (job == thisjob && sig == SIGINT) doputnl = 1; + if (isset(PRINTEXITVALUE) && isset(SHINSTDIN)) { + sflag = 1; + skip_print = 0; + } } else if (WIFSTOPPED(pn->status)) { sig = WSTOPSIG(pn->status); if ((int)strlen(sigmsg(sig)) > len) @@ -879,17 +924,38 @@ if (job == thisjob && sig == SIGTSTP) doputnl = 1; } else if (isset(PRINTEXITVALUE) && isset(SHINSTDIN) && - WEXITSTATUS(pn->status)) + WEXITSTATUS(pn->status)) { sflag = 1; + skip_print = 0; + } } } -/* print if necessary: ignore option state on explicit call to `jobs'. */ + if (skip_print) { + if (jn->stat & STAT_DONE) { + deletejob(jn); + if (job == curjob) { + curjob = prevjob; + prevjob = job; + } + if (job == prevjob) + setprevjob(); + } + return 0; + } - if (synch == 2 || - (interact && jobbing && + /* + * - Always print if called from jobs + * - Otherwise, require MONITOR option ("jobbing") and some + * change of state + * - also either the shell is interactive or this is synchronous. + */ + if (synch == 2 || + ((interact || synch) && jobbing && ((jn->stat & STAT_STOPPED) || sflag || job != thisjob))) { int len2, fline = 1; + /* POSIX requires just the job text for bg and fg */ + int plainfmt = (synch == 3) && isset(POSIXJOBS); /* use special format for current job, except in `jobs' */ int thisfmt = job == thisjob && synch != 2; Process qn; @@ -908,54 +974,60 @@ for (qn = pn->next; qn; qn = qn->next) { if (qn->status != pn->status) break; - if ((int)strlen(qn->text) + len2 + ((qn->next) ? 3 : 0) > lineleng) + if ((int)strlen(qn->text) + len2 + ((qn->next) ? 3 : 0) + > lineleng) break; len2 += strlen(qn->text) + 2; } doneprint = 1; - if (!thisfmt || lng) { - if (fline) - fprintf(fout, "[%ld] %c ", - (long)job, - (job == curjob) ? '+' - : (job == prevjob) ? '-' : ' '); - else - fprintf(fout, (job > 9) ? " " : " "); - } else - fprintf(fout, "zsh: "); - if (lng & 1) - fprintf(fout, "%ld ", (long) pn->pid); - else if (lng & 2) { - pid_t x = jn->gleader; - - fprintf(fout, "%ld ", (long) x); - do + if (!plainfmt) { + if (!thisfmt || lng) { + if (fline) + fprintf(fout, "[%ld] %c ", + (long)job, + (job == curjob) ? '+' + : (job == prevjob) ? '-' : ' '); + else + fprintf(fout, (job > 9) ? " " : " "); + } else + fprintf(fout, "zsh: "); + if (lng & 1) + fprintf(fout, "%ld ", (long) pn->pid); + else if (lng & 2) { + pid_t x = jn->gleader; + + fprintf(fout, "%ld ", (long) x); + do + skip++; + while ((x /= 10)); skip++; - while ((x /= 10)); - skip++; - lng &= ~3; - } else - fprintf(fout, "%*s", skip, ""); - if (pn->status == SP_RUNNING) { - if (!conted) - fprintf(fout, "running%*s", len - 7 + 2, ""); + lng &= ~3; + } else + fprintf(fout, "%*s", skip, ""); + if (pn->status == SP_RUNNING) { + if (!conted) + fprintf(fout, "running%*s", len - 7 + 2, ""); + else + fprintf(fout, "continued%*s", len - 9 + 2, ""); + } + else if (WIFEXITED(pn->status)) { + if (WEXITSTATUS(pn->status)) + fprintf(fout, "exit %-4d%*s", WEXITSTATUS(pn->status), + len - 9 + 2, ""); + else + fprintf(fout, "done%*s", len - 4 + 2, ""); + } else if (WIFSTOPPED(pn->status)) + fprintf(fout, "%-*s", len + 2, + sigmsg(WSTOPSIG(pn->status))); + else if (WCOREDUMP(pn->status)) + fprintf(fout, "%s (core dumped)%*s", + sigmsg(WTERMSIG(pn->status)), + (int)(len - 14 + 2 - + strlen(sigmsg(WTERMSIG(pn->status)))), ""); else - fprintf(fout, "continued%*s", len - 9 + 2, ""); + fprintf(fout, "%-*s", len + 2, + sigmsg(WTERMSIG(pn->status))); } - else if (WIFEXITED(pn->status)) { - if (WEXITSTATUS(pn->status)) - fprintf(fout, "exit %-4d%*s", WEXITSTATUS(pn->status), - len - 9 + 2, ""); - else - fprintf(fout, "done%*s", len - 4 + 2, ""); - } else if (WIFSTOPPED(pn->status)) - fprintf(fout, "%-*s", len + 2, sigmsg(WSTOPSIG(pn->status))); - else if (WCOREDUMP(pn->status)) - fprintf(fout, "%s (core dumped)%*s", - sigmsg(WTERMSIG(pn->status)), - (int)(len - 14 + 2 - strlen(sigmsg(WTERMSIG(pn->status)))), ""); - else - fprintf(fout, "%-*s", len + 2, sigmsg(WTERMSIG(pn->status))); for (; pn != qn; pn = pn->next) { char *txt = dupstring(pn->text); int txtlen; @@ -1096,6 +1168,14 @@ { Process pn, *pnlist; + if (pid == lastpid && lastpid_status != -2L) { + /* + * The status for the previous lastpid is invalid. + * Presumably process numbers have wrapped. + */ + lastpid_status = -1L; + } + DPUTS(thisjob == -1, "No valid job in addproc."); pn = (Process) zshcalloc(sizeof *pn); pn->pid = pid; @@ -1178,7 +1258,7 @@ kill(pid, SIGCONT); last_signal = -1; - signal_suspend(SIGCHLD); + signal_suspend(SIGCHLD, wait_cmd); if (last_signal != SIGCHLD && wait_cmd && last_signal >= 0 && (sigtrapped[last_signal] & ZSIG_TRAPPED)) { /* wait command interrupted, but no error: return */ @@ -1217,7 +1297,7 @@ while (!errflag && jn->stat && !(jn->stat & STAT_DONE) && !(interact && (jn->stat & STAT_STOPPED))) { - signal_suspend(SIGCHLD); + signal_suspend(SIGCHLD, wait_cmd); if (last_signal != SIGCHLD && wait_cmd && last_signal >= 0 && (sigtrapped[last_signal] & ZSIG_TRAPPED)) { @@ -1279,6 +1359,8 @@ { int i; + if (isset(POSIXJOBS)) + oldmaxjob = 0; for (i = 1; i <= maxjob; i++) { /* * See if there is a jobtable worth saving. @@ -1286,7 +1368,7 @@ * once for each subshell of a shell with job control, * so doesn't create a leak. */ - if (monitor && jobtab[i].stat) + if (monitor && !isset(POSIXJOBS) && jobtab[i].stat) oldmaxjob = i+1; else if (jobtab[i].stat & STAT_INUSE) freejob(jobtab + i, 0); @@ -1294,7 +1376,8 @@ if (monitor && oldmaxjob) { int sz = oldmaxjob * sizeof(struct job); - DPUTS(oldjobtab != NULL, "BUG: saving job table twice\n"); + if (oldjobtab) + free(oldjobtab); oldjobtab = (struct job *)zalloc(sz); memcpy(oldjobtab, jobtab, sz); @@ -1379,12 +1462,13 @@ setprevjob(); } else if (prevjob == -1 || !(jobtab[prevjob].stat & STAT_STOPPED)) prevjob = thisjob; - if (interact && jobbing && jobtab[thisjob].procs) { - fprintf(shout, "[%d]", thisjob); + if (jobbing && jobtab[thisjob].procs) { + FILE *fout = shout ? shout : stdout; + fprintf(fout, "[%d]", thisjob); for (pn = jobtab[thisjob].procs; pn; pn = pn->next) - fprintf(shout, " %ld", (long) pn->pid); - fprintf(shout, "\n"); - fflush(shout); + fprintf(fout, " %ld", (long) pn->pid); + fprintf(fout, "\n"); + fflush(fout); } } if (!hasprocs(thisjob)) @@ -1749,6 +1833,14 @@ } queue_signals(); + /* + * In case any processes changed state recently, wait for them. + * This updates stopped processes (but we should have been + * signalled about those, up to inevitable races), and also + * continued processes if that feature is available. + */ + wait_for_processes(); + /* If necessary, update job table. */ if (unset(NOTIFY)) scanjobs(); @@ -1828,6 +1920,9 @@ retval = waitforpid(pid, 1); if (!retval) retval = lastval2; + } else if (isset(POSIXJOBS) && + pid == lastpid && lastpid_status >= 0L) { + retval = (int)lastpid_status; } else { zwarnnam(name, "pid %d is not a child of this shell", pid); /* presumably lastval2 doesn't tell us a heck of a lot? */ @@ -1904,10 +1999,10 @@ } if (func != BIN_WAIT) /* for bg and fg -- show the job we are operating on */ - printjob(jobtab + job, (stopped) ? -1 : lng, 1); + printjob(jobtab + job, (stopped) ? -1 : lng, 3); if (func != BIN_BG) { /* fg or wait */ if (jobtab[job].pwd && strcmp(jobtab[job].pwd, pwd)) { - FILE *fout = (func == BIN_JOBS) ? stdout : shout; + FILE *fout = (func == BIN_JOBS || !shout) ? stdout : shout; fprintf(fout, "(pwd : "); fprintdir(jobtab[job].pwd, fout); fprintf(fout, ")\n"); @@ -2096,7 +2191,7 @@ } sig = zstrtol(*argv, &endp, 10); if (*endp) { - zwarnnam(nam, "invalid signal number: %s", signame); + zwarnnam(nam, "invalid signal number: %s", *argv); return 1; } } else { @@ -2169,8 +2264,11 @@ job, and send the job a SIGCONT if sending it a non-stopping signal. */ if (jobtab[p].stat & STAT_STOPPED) { +#ifndef WIFCONTINUED + /* With WIFCONTINUED we find this out properly */ if (sig == SIGCONT) - jobtab[p].stat &= ~STAT_STOPPED; + makerunning(jobtab + p); +#endif if (sig != SIGKILL && sig != SIGCONT && sig != SIGTSTP && sig != SIGTTOU && sig != SIGTTIN && sig != SIGSTOP) killjb(jobtab + p, SIGCONT); @@ -2178,9 +2276,23 @@ } else if (!isanum(*argv)) { zwarnnam("kill", "illegal pid: %s", *argv); returnval++; - } else if (kill(atoi(*argv), sig) == -1) { - zwarnnam("kill", "kill %s failed: %e", *argv, errno); - returnval++; + } else { + int pid = atoi(*argv); + if (kill(pid, sig) == -1) { + zwarnnam("kill", "kill %s failed: %e", *argv, errno); + returnval++; + } +#ifndef WIFCONTINUED + else if (sig == SIGCONT) { + Job jn; + Process pn; + /* With WIFCONTINUED we find this out properly */ + if (findproc(pid, &jn, &pn, 0)) { + if (WIFSTOPPED(pn->status)) + pn->status = SP_RUNNING; + } + } +#endif } } unqueue_signals(); @@ -2361,7 +2473,7 @@ if (mypgrp == gettygrp()) break; signal_setmask(oldset); - read(0, NULL, 0); /* Might generate SIGT* */ + if (read(0, NULL, 0) != 0) {} /* Might generate SIGT* */ signal_block(blockset); mypgrp = GETPGRP(); } diff -Nru zsh-4.3.10/Src/lex.c zsh-4.3.11/Src/lex.c --- zsh-4.3.10/Src/lex.c 2009-03-03 17:59:50.000000000 +0100 +++ zsh-4.3.11/Src/lex.c 2010-12-20 10:51:44.000000000 +0100 @@ -116,10 +116,21 @@ /**/ mod_export int noaliases; -/* we are parsing a line sent to use by the editor */ +/* + * If non-zero, we are parsing a line sent to use by the editor, or some + * other string that's not part of standard command input (e.g. eval is + * part of normal command input). + * + * Set of bits from LEXFLAGS_*. + * + * Note that although it is passed into the lexer as an input, the + * lexer can set it to zero after finding the word it's searching for. + * This only happens if the line being parsed actually does come from + * ZLE, and hence the bit LEXFLAGS_ZLE is set. + */ /**/ -mod_export int zleparse; +mod_export int lexflags; /**/ mod_export int wordbeg; @@ -191,6 +202,7 @@ int isfirstch; int histactive; int histdone; + int lexflags; int stophist; int hlinesz; char *hline; @@ -247,9 +259,20 @@ ls->isfirstch = isfirstch; ls->histactive = histactive; ls->histdone = histdone; + ls->lexflags = lexflags; ls->stophist = stophist; + stophist = 0; + if (!lstack) { + /* top level, make this version visible to ZLE */ + zle_chline = chline; + /* ensure line stored is NULL-terminated */ + if (hptr) + *hptr = '\0'; + } ls->hline = chline; + chline = NULL; ls->hptr = hptr; + hptr = NULL; ls->hlinesz = hlinesz; ls->cstack = cmdstack; ls->csp = cmdsp; @@ -259,7 +282,9 @@ ls->tokstr = tokstr; ls->zshlextext = zshlextext; ls->bptr = bptr; + tokstr = zshlextext = bptr = NULL; ls->bsiz = bsiz; + bsiz = 256; ls->len = len; ls->chwords = chwords; ls->chwordlen = chwordlen; @@ -309,6 +334,7 @@ isfirstch = lstack->isfirstch; histactive = lstack->histactive; histdone = lstack->histdone; + lexflags = lstack->lexflags; stophist = lstack->stophist; chline = lstack->hline; hptr = lstack->hptr; @@ -350,6 +376,11 @@ errflag = 0; ln = lstack->next; + if (!ln) { + /* Back to top level: don't need special ZLE value */ + DPUTS(chline != zle_chline, "BUG: Ouch, wrong chline for ZLE"); + zle_chline = NULL; + } free(lstack); lstack = ln; } @@ -367,16 +398,17 @@ if (tok == NEWLIN || tok == ENDINPUT) { while (hdocs) { struct heredocs *next = hdocs->next; - char *name; + char *doc, *munged_term; hwbegin(0); cmdpush(hdocs->type == REDIR_HEREDOC ? CS_HEREDOC : CS_HEREDOCD); + munged_term = dupstring(hdocs->str); STOPHIST - name = gethere(hdocs->str, hdocs->type); + doc = gethere(&munged_term, hdocs->type); ALLOWHIST cmdpop(); hwend(); - if (!name) { + if (!doc) { zerr("here document too large"); while (hdocs) { next = hdocs->next; @@ -386,7 +418,8 @@ tok = LEXERR; break; } - setheredoc(hdocs->pc, REDIR_HERESTR, name); + setheredoc(hdocs->pc, REDIR_HERESTR, doc, hdocs->str, + munged_term); zfree(hdocs, sizeof(struct heredocs)); hdocs = next; } @@ -395,7 +428,7 @@ isnewlin = 0; else isnewlin = (inbufct) ? -1 : 1; - if (tok == SEMI || tok == NEWLIN) + if (tok == SEMI || (tok == NEWLIN && !(lexflags & LEXFLAGS_NEWLINE))) tok = SEPER; } @@ -554,13 +587,20 @@ } } -#define SETPARBEGIN {if (zleparse && !(inbufflags & INP_ALIAS) && zlemetacs >= zlemetall+1-inbufct) parbegin = inbufct;} -#define SETPAREND {\ - if (zleparse && !(inbufflags & INP_ALIAS) && parbegin != -1 && parend == -1) {\ - if (zlemetacs >= zlemetall + 1 - inbufct)\ - parbegin = -1;\ - else\ - parend = inbufct;} } +#define SETPARBEGIN { \ + if ((lexflags & LEXFLAGS_ZLE) && !(inbufflags & INP_ALIAS) && \ + zlemetacs >= zlemetall+1-inbufct) \ + parbegin = inbufct; \ + } +#define SETPAREND { \ + if ((lexflags & LEXFLAGS_ZLE) && !(inbufflags & INP_ALIAS) && \ + parbegin != -1 && parend == -1) { \ + if (zlemetacs >= zlemetall + 1 - inbufct) \ + parbegin = -1; \ + else \ + parend = inbufct; \ + } \ + } /* * Return 1 for math, 0 for a command, 2 for an error. If it couldn't be @@ -724,26 +764,53 @@ /* chars in initial position in word */ + /* + * Handle comments. There are some special cases when this + * is not normal command input: lexflags implies we are examining + * a line lexically without it being used for normal command input. + */ if (c == hashchar && !nocomments && (isset(INTERACTIVECOMMENTS) || - (!zleparse && !expanding && + ((!lexflags || (lexflags & LEXFLAGS_COMMENTS)) && !expanding && (!interact || unset(SHINSTDIN) || strin)))) { /* History is handled here to prevent extra * * newlines being inserted into the history. */ + if (lexflags & LEXFLAGS_COMMENTS_KEEP) { + len = 0; + bptr = tokstr = (char *)hcalloc(bsiz = 32); + add(c); + } while ((c = ingetc()) != '\n' && !lexstop) { hwaddc(c); addtoline(c); + if (lexflags & LEXFLAGS_COMMENTS_KEEP) + add(c); } if (errflag) peek = LEXERR; else { - hwend(); - hwbegin(0); - hwaddc('\n'); - addtoline('\n'); - peek = NEWLIN; + if (lexflags & LEXFLAGS_COMMENTS_KEEP) { + *bptr = '\0'; + if (!lexstop) + hungetc(c); + peek = STRING; + } else { + hwend(); + hwbegin(0); + hwaddc('\n'); + addtoline('\n'); + /* + * If splitting a line and removing comments, + * we don't want a newline token since it's + * treated specially. + */ + if ((lexflags & LEXFLAGS_COMMENTS_STRIP) && lexstop) + peek = ENDINPUT; + else + peek = NEWLIN; + } } return peek; } @@ -818,6 +885,11 @@ return DINPAR; case 0: + /* + * Not math, so we don't return the contents + * as a string in this case. + */ + tokstr = NULL; return INPAR; default: @@ -1379,7 +1451,12 @@ } -/* Return non-zero for error (character to unget), else zero */ +/* + * Parse input as if in double quotes. + * endchar is the end character to expect. + * sub has got something to do with whether we are doing quoted substitution. + * Return non-zero for error (character to unget), else zero + */ /**/ static int @@ -1572,14 +1649,20 @@ return err; } +/* + * Parse a subscript in string s. + * sub is passed down to dquote_parse(). + * endchar is the final character. + * Return the next character, or NULL. + */ /**/ mod_export char * -parse_subscript(char *s, int sub) +parse_subscript(char *s, int sub, int endchar) { int l = strlen(s), err; char *t; - if (!*s || *s == ']') + if (!*s || *s == endchar) return 0; lexsave(); untokenize(t = dupstring(s)); @@ -1588,15 +1671,16 @@ len = 0; bptr = tokstr = s; bsiz = l + 1; - err = dquote_parse(']', sub); + err = dquote_parse(endchar, sub); if (err) { err = *bptr; - *bptr = 0; + *bptr = '\0'; untokenize(s); *bptr = err; - s = 0; - } else + s = NULL; + } else { s = bptr; + } strinend(); inpop(); DPUTS(cmdsp, "BUG: parse_subscript: cmdstack not empty."); @@ -1700,7 +1784,7 @@ we = zlemetall + 1 - inbufct + (addedx == 2 ? 1 : 0); if (zlemetacs <= we) { wb = zlemetall - wordbeg + addedx; - zleparse = 0; + lexflags = 0; } } @@ -1735,11 +1819,11 @@ } else zshlextext = tokstr; - if (zleparse && !(inbufflags & INP_ALIAS)) { - int zp = zleparse; + if ((lexflags & LEXFLAGS_ZLE) && !(inbufflags & INP_ALIAS)) { + int zp = lexflags; gotword(); - if (zp == 1 && !zleparse) { + if (zp == 1 && !lexflags) { if (zshlextext == copy) zshlextext = tokstr; return 0; @@ -1757,7 +1841,7 @@ if (an && !an->inuse && ((an->node.flags & ALIAS_GLOBAL) || incmdpos || inalmore)) { inpush(an->text, INP_ALIAS, an); - if (an->text[0] == ' ') + if (an->text[0] == ' ' && !(an->node.flags & ALIAS_GLOBAL)) aliasspaceflag = 1; lexstop = 0; if (zshlextext == copy) diff -Nru zsh-4.3.10/Src/linklist.c zsh-4.3.11/Src/linklist.c --- zsh-4.3.10/Src/linklist.c 2007-06-27 15:31:00.000000000 +0200 +++ zsh-4.3.11/Src/linklist.c 2010-03-07 22:48:26.000000000 +0100 @@ -30,6 +30,72 @@ #include "zsh.mdh" #include "linklist.pro" +/* + * Anatomy of a LinkList + * + * LinkList with 4 nodes: + * + * LinkList is a first last flags (LinkList) + * union; see zsh.h next prev dat (LinkNode) + * +-------+------+------+ + * | | | | See comment in subst.c + * +------------> | | | | | | about LF_ARRAY. + * | +---|---+---|--+------+ + * | | | + * | +------------+ +--------------+ + * | | | + * | \|/ \|/ + * | +----+ +----+ +----+ +----+ + * | | | | | | | | \/ | X here is NULL. + * | | -------> | -------> | -------> | /\ | + * | |next| |next| |next| |next| + * | +----+ +----+ +----+ +----+ + * | | | | | | | | | + * +------ | <------- | <------- | <------- | + * |prev| |prev| |prev| |prev| + * +----+ +----+ +----+ +----+ + * | | | | | | | | Pointers to data, + * |dat | |dat | |dat | |dat | usually char **. + * +----+ +----+ +----+ +----+ + * LinkNode LinkNode LinkNode LinkNode + * + * + * Empty LinkList: + * first last flags + * +------+------+-------+ + * +---> | NULL | | 0 | + * | | | | | | + * | +------+---|--+-------+ + * | | + * +----------------+ + * + * Traversing a LinkList: + * Traversing forward through a list uses an iterator-style paradigm. + * for (LinkNode node = firstnode(list); node; incnode(node)) { + * // Access/manipulate the node using macros (see zsh.h) + * } + * + * Traversing backwards is the same, with a small caveat. + * for (LinkNode node = lastnode(list); node != &list->node; decnode(node)) { + * // The loop condition should be obvious given the above diagrams. + * } + * + * If you're going to be moving back and forth, best to AND both + * conditions. + * + * while (node && node != &list->node) { + * // If both incnode(list) and decnode(list) are used, and it's + * // unknown at which end of the list traversal will stop. + * } + * + * Macros and functions prefixed with 'z' (ie znewlinklist, + * zinsertlinknode) use permanent allocation, which you have to free + * manually (with freelinklist(), maybe?). Non-z-prefixed + * macros/functions allocate from heap, which will be automatically + * freed. + * + */ + /* Get an empty linked list header */ /**/ @@ -240,6 +306,8 @@ return ct; } +/* Make specified node first, moving preceding nodes to end */ + /**/ mod_export void rolllist(LinkList l, LinkNode nd) @@ -252,6 +320,8 @@ l->list.last->next = 0; } +/* Create linklist of specified size. node->dats are not initialized. */ + /**/ mod_export LinkList newsizedlist(int size) diff -Nru zsh-4.3.10/Src/Makefile.in zsh-4.3.11/Src/Makefile.in --- zsh-4.3.10/Src/Makefile.in 2008-03-13 10:59:19.000000000 +0100 +++ zsh-4.3.11/Src/Makefile.in 2010-12-20 17:01:39.000000000 +0100 @@ -109,7 +109,7 @@ @CONFIG_MK@ -Makemod prep: $(CONFIG_INCS) $(dir_top)/config.modules +Makemod: $(CONFIG_INCS) $(dir_top)/config.modules @case $(sdir_top) in \ /*) top_srcdir=$(sdir_top) ;; \ *) top_srcdir=$(subdir)/$(sdir_top) ;; \ @@ -119,6 +119,7 @@ '$$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod'; \ cd $(dir_top) && \ $(SHELL) $$top_srcdir/$(subdir)/mkmakemod.sh $(subdir) Makemod +prep: Makemod @$(MAKE) -f Makemod $(MAKEDEFS) prep || rm -f Makemod .PHONY: prep @@ -220,7 +221,10 @@ install.modules uninstall.modules \ modobjs modules headers proto $(MAIN_OBJS) zsh.export: Makemod + @if [ ! -f Builtins/Makefile.in ]; then \ + $(MAKE) prep; \ + fi @$(MAKE) -f Makemod $(MAKEDEFS) $@ -.PHONY: install.modules uninstall.modules +.PHONY: headers proto $(MAIN_OBJS): $(sdir)/zsh.h diff -Nru zsh-4.3.10/Src/math.c zsh-4.3.11/Src/math.c --- zsh-4.3.10/Src/math.c 2008-10-16 12:13:18.000000000 +0200 +++ zsh-4.3.11/Src/math.c 2010-06-14 13:57:08.000000000 +0200 @@ -27,6 +27,8 @@ * */ +struct mathvalue; + #include "zsh.mdh" #include "math.pro" @@ -304,7 +306,16 @@ static int sp = -1; /* stack pointer */ struct mathvalue { + /* + * If we need to get a variable, this is the string to be passed + * to the parameter code. It may include a subscript. + */ char *lval; + /* + * If this is not zero, we've retrieved a variable and this + * stores a reference to it. + */ + Value pval; mnumber val; }; @@ -317,6 +328,26 @@ MPREC_ARG }; + +/* + * Get a number from a variable. + * Try to be clever about reusing subscripts by caching the Value structure. + */ +static mnumber +getmathparam(struct mathvalue *mptr) +{ + if (!mptr->pval) { + char *s = mptr->lval; + mptr->pval = (Value)zhalloc(sizeof(struct value)); + if (!getvalue(mptr->pval, &s, 1)) + { + mptr->pval = NULL; + return zero_mnumber; + } + } + return getnumvalue(mptr->pval); +} + static mnumber mathevall(char *s, enum prec_type prec_tp, char **ep) { @@ -384,7 +415,7 @@ ret.u.l = 0; } else { if (stack[0].val.type == MN_UNSET) - ret = getnparam(stack[0].lval); + ret = getmathparam(stack); else ret = stack[0].val; } @@ -742,6 +773,7 @@ sp++; stack[sp].val = val; stack[sp].lval = lval; + stack[sp].pval = NULL; if (getme) stack[sp].val.type = MN_UNSET; } @@ -753,7 +785,7 @@ struct mathvalue *mv = stack+sp; if (mv->val.type == MN_UNSET && !noget) - mv->val = getnparam(mv->lval); + mv->val = getmathparam(mv); sp--; return errflag ? zero_mnumber : mv->val; } @@ -790,9 +822,29 @@ /**/ static mnumber -setvar(char *s, mnumber v) +setmathvar(struct mathvalue *mvp, mnumber v) { - if (!s) { + if (mvp->pval) { + /* + * This value may have been hanging around for a while. + * Be ultra-paranoid in checking the variable is still valid. + */ + char *s = mvp->lval, *ptr; + Param pm; + DPUTS(!mvp->lval, "no variable name but variable value in math"); + if ((ptr = strchr(s, '['))) + s = dupstrpfx(s, ptr - s); + pm = (Param) paramtab->getnode(paramtab, s); + if (pm == mvp->pval->pm) { + if (noeval) + return v; + setnumvalue(mvp->pval, v); + return v; + } + /* Different parameter, start again from scratch */ + mvp->pval = NULL; + } + if (!mvp->lval) { zerr("lvalue required"); v.type = MN_INTEGER; v.u.l = 0; @@ -800,8 +852,8 @@ } if (noeval) return v; - untokenize(s); - setnparam(s, v); + untokenize(mvp->lval); + setnparam(mvp->lval, v); return v; } @@ -889,8 +941,9 @@ zerr("wrong number of arguments: %s", o); } } - } else + } else { zerr("unknown function: %s", n); + } dummy.type = MN_INTEGER; dummy.u.l = 0; @@ -1101,8 +1154,9 @@ } } if (tp & (OP_E2|OP_E2IO)) { + struct mathvalue *mvp = stack + sp + 1; lv = stack[sp+1].lval; - push(setvar(lv,c), lv, 0); + push(setmathvar(mvp,c), mvp->lval, 0); } else push(c,NULL, 0); return; @@ -1110,7 +1164,7 @@ spval = &stack[sp].val; if (stack[sp].val.type == MN_UNSET) - *spval = getnparam(stack[sp].lval); + *spval = getmathparam(stack + sp); switch (what) { case NOT: if (spval->type & MN_FLOAT) { @@ -1119,6 +1173,7 @@ } else spval->u.l = !spval->u.l; stack[sp].lval = NULL; + stack[sp].pval = NULL; break; case COMP: if (spval->type & MN_FLOAT) { @@ -1127,6 +1182,7 @@ } else spval->u.l = ~spval->u.l; stack[sp].lval = NULL; + stack[sp].pval = NULL; break; case POSTPLUS: a = *spval; @@ -1134,7 +1190,7 @@ a.u.d++; else a.u.l++; - (void)setvar(stack[sp].lval, a); + (void)setmathvar(stack + sp, a); break; case POSTMINUS: a = *spval; @@ -1142,10 +1198,11 @@ a.u.d--; else a.u.l--; - (void)setvar(stack[sp].lval, a); + (void)setmathvar(stack + sp, a); break; case UPLUS: stack[sp].lval = NULL; + stack[sp].pval = NULL; break; case UMINUS: if (spval->type & MN_FLOAT) @@ -1153,6 +1210,7 @@ else spval->u.l = -spval->u.l; stack[sp].lval = NULL; + stack[sp].pval = NULL; break; case QUEST: DPUTS(sp < 2, "BUG: math: three shall be the number of the counting."); @@ -1172,14 +1230,14 @@ spval->u.d++; else spval->u.l++; - setvar(stack[sp].lval, *spval); + setmathvar(stack + sp, *spval); break; case PREMINUS: if (spval->type & MN_FLOAT) spval->u.d--; else spval->u.l--; - setvar(stack[sp].lval, *spval); + setmathvar(stack + sp, *spval); break; default: zerr("out of integers"); @@ -1196,7 +1254,7 @@ int tst; if (stack[sp].val.type == MN_UNSET) - *spval = getnparam(stack[sp].lval); + *spval = getmathparam(stack + sp); tst = (spval->type & MN_FLOAT) ? (zlong)spval->u.d : spval->u.l; switch (tk) { @@ -1337,7 +1395,7 @@ break; case QUEST: if (stack[sp].val.type == MN_UNSET) - stack[sp].val = getnparam(stack[sp].lval); + stack[sp].val = getmathparam(stack + sp); q = (stack[sp].val.type == MN_FLOAT) ? (zlong)stack[sp].val.u.d : stack[sp].val.u.l; diff -Nru zsh-4.3.10/Src/mkbltnmlst.sh zsh-4.3.11/Src/mkbltnmlst.sh --- zsh-4.3.10/Src/mkbltnmlst.sh 2009-02-12 10:22:27.000000000 +0100 +++ zsh-4.3.11/Src/mkbltnmlst.sh 2010-02-03 19:37:03.000000000 +0100 @@ -37,18 +37,38 @@ echo "/* non-linked-in known module \`$x_mod' */" linked=no esac - unset moddeps autofeatures + unset moddeps autofeatures autofeatures_emu . $srcdir/../$modfile if test "x$autofeatures" != x; then - echo " if (EMULATION(EMULATE_ZSH)) {" - echo " char *features[] = { " - for feature in $autofeatures; do - echo " \"$feature\"," - done - echo " NULL" - echo " }; " - echo " autofeatures(\"zsh\", \"$x_mod\", features, 0, 1);" - echo " }" + if test "x$autofeatures_emu" != x; then + echo " {" + echo " char *zsh_features[] = { " + for feature in $autofeatures; do + echo " \"$feature\"," + done + echo " NULL" + echo " }; " + echo " char *emu_features[] = { " + for feature in $autofeatures_emu; do + echo " \"$feature\"," + done + echo " NULL" + echo " }; " + echo " autofeatures(\"zsh\", \"$x_mod\"," + echo " EMULATION(EMULATE_ZSH) ? zsh_features : emu_features," + echo " 0, 1);" + echo " }" + else + echo " if (EMULATION(EMULATE_ZSH)) {" + echo " char *features[] = { " + for feature in $autofeatures; do + echo " \"$feature\"," + done + echo " NULL" + echo " }; " + echo " autofeatures(\"zsh\", \"$x_mod\", features, 0, 1);" + echo " }" + fi fi for dep in $moddeps; do echo " add_dep(\"$x_mod\", \"$dep\");" diff -Nru zsh-4.3.10/Src/module.c zsh-4.3.11/Src/module.c --- zsh-4.3.10/Src/module.c 2009-05-19 10:39:04.000000000 +0200 +++ zsh-4.3.11/Src/module.c 2010-06-14 13:57:08.000000000 +0200 @@ -1273,7 +1273,10 @@ (void)ensurefeature(n, "f:", (flags & MFF_AUTOALL) ? NULL : name); - return getmathfunc(name, 0); + p = getmathfunc(name, 0); + if (!p) { + zerr("autoloading module %s failed to define math function: %s", n, name); + } } return p; } diff -Nru zsh-4.3.10/Src/Modules/attr.c zsh-4.3.11/Src/Modules/attr.c --- zsh-4.3.10/Src/Modules/attr.c 2009-03-09 10:57:19.000000000 +0100 +++ zsh-4.3.11/Src/Modules/attr.c 2009-11-08 00:57:28.000000000 +0100 @@ -33,102 +33,190 @@ #include #include -static int -bin_getattr(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func)) +static ssize_t +xgetxattr(const char *path, const char *name, void *value, size_t size, int symlink) { - int ret = 0; - int len, slen; - char value[256]; +#ifdef XATTR_EXTRA_ARGS + return getxattr(path, name, value, size, 0, symlink ? XATTR_NOFOLLOW: 0); +#else + switch (symlink) { + case 0: + return getxattr(path, name, value, size); + default: + return lgetxattr(path, name, value, size); + } +#endif +} + +static ssize_t +xlistxattr(const char *path, char *list, size_t size, int symlink) +{ +#ifdef XATTR_EXTRA_ARGS + return listxattr(path, list, size, symlink ? XATTR_NOFOLLOW : 0); +#else + switch (symlink) { + case 0: + return listxattr(path, list, size); + default: + return llistxattr(path, list, size); + } +#endif +} - unmetafy(*argv, &slen); - unmetafy(*(argv+1), NULL); - if (listxattr(*argv, NULL, 0 +static int +xsetxattr(const char *path, const char *name, const void *value, + size_t size, int flags, int symlink) +{ #ifdef XATTR_EXTRA_ARGS - , 0 + return setxattr(path, name, value, size, 0, flags | symlink ? XATTR_NOFOLLOW : 0); +#else + switch (symlink) { + case 0: + return setxattr(path, name, value, size, flags); + default: + return lsetxattr(path, name, value, size, flags); + } #endif - ) > 0) { - if (0 < (len = getxattr(*argv, *(argv+1), value, 255 +} + +static int +xremovexattr(const char *path, const char *name, int symlink) +{ #ifdef XATTR_EXTRA_ARGS - , 0, 0 + return removexattr(path, name, symlink ? XATTR_NOFOLLOW : 0); +#else + switch (symlink) { + case 0: + return removexattr(path, name); + default: + return lremovexattr(path, name); + } #endif - ))) { - if (len < 256) { - value[len] = '\0'; - if (*(argv+2)) - setsparam(*(argv+2), metafy(value, len, META_DUP)); +} + +static int +bin_getattr(char *nam, char **argv, Options ops, UNUSED(int func)) +{ + int ret = 0; + int list_len, val_len = 0, attr_len = 0, slen; + char *value, *file = argv[0], *attr = argv[1], *param = argv[2]; + int symlink = OPT_ISSET(ops, 'h'); + + unmetafy(file, &slen); + unmetafy(attr, NULL); + list_len = xlistxattr(file, NULL, 0, symlink); + if (list_len > 0) { + val_len = xgetxattr(file, attr, NULL, 0, symlink); + if (val_len == 0) { + if (param) + unsetparam(param); + return 0; + } + if (val_len > 0) { + value = (char *)zalloc(val_len+1); + attr_len = xgetxattr(file, attr, value, val_len, symlink); + if (attr_len > 0 && attr_len <= val_len) { + value[attr_len] = '\0'; + if (param) + setsparam(param, metafy(value, attr_len, META_DUP)); else printf("%s\n", value); } - } else if (len < 0) { - zwarnnam(nam, "%s: %e", metafy(*argv, slen, META_NOALLOC), errno); - ret = 1; + zfree(value, val_len+1); } } + if (list_len < 0 || val_len < 0 || attr_len < 0 || attr_len > val_len) { + zwarnnam(nam, "%s: %e", metafy(file, slen, META_NOALLOC), errno); + ret = 1 + (attr_len > val_len || attr_len < 0); + } return ret; } static int -bin_setattr(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func)) +bin_setattr(char *nam, char **argv, Options ops, UNUSED(int func)) { - int ret = 0, slen; - - unmetafy(*argv, &slen); - unmetafy(*(argv+1), NULL); - unmetafy(*(argv+2), NULL); - if (setxattr(*argv, *(argv+1), *(argv+2), strlen(*(argv+2)), 0 -#ifdef XATTR_EXTRA_ARGS - , 0 -#endif - )) { - zwarnnam(nam, "%s: %e", metafy(*argv, slen, META_NOALLOC), errno); + int ret = 0, slen, vlen; + int symlink = OPT_ISSET(ops, 'h'); + char *file = argv[0], *attr = argv[1], *value = argv[2]; + + unmetafy(file, &slen); + unmetafy(attr, NULL); + unmetafy(value, &vlen); + if (xsetxattr(file, attr, value, vlen, 0, symlink)) { + zwarnnam(nam, "%s: %e", metafy(file, slen, META_NOALLOC), errno); ret = 1; } return ret; } static int -bin_delattr(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func)) +bin_delattr(char *nam, char **argv, Options ops, UNUSED(int func)) { int ret = 0, slen; + int symlink = OPT_ISSET(ops, 'h'); + char *file = argv[0], **attr = argv; - unmetafy(*argv, &slen); - unmetafy(*(argv+1), NULL); - if (removexattr(*argv, *(argv+1) -#ifdef XATTR_EXTRA_ARGS - , 0 -#endif - )) { - zwarnnam(nam, "%s: %e", metafy(*argv, slen, META_NOALLOC), errno); - ret = 1; + unmetafy(file, &slen); + while (*++attr) { + unmetafy(*attr, NULL); + if (xremovexattr(file, *attr, symlink)) { + zwarnnam(nam, "%s: %e", metafy(file, slen, META_NOALLOC), errno); + ret = 1; + break; + } } return ret; } static int -bin_listattr(char *nam, char **argv, UNUSED(Options ops), UNUSED(int func)) +bin_listattr(char *nam, char **argv, Options ops, UNUSED(int func)) { int ret = 0; - int len, slen; - char value[256]; - - unmetafy(*argv, &slen); - if (0 < (len = listxattr(*argv, value, 256 -#ifdef XATTR_EXTRA_ARGS - , 0 -#endif - ))) { - if (len < 256) { + int val_len, list_len = 0, slen; + char *value, *file = argv[0], *param = argv[1]; + int symlink = OPT_ISSET(ops, 'h'); + + unmetafy(file, &slen); + val_len = xlistxattr(file, NULL, 0, symlink); + if (val_len == 0) { + if (param) + unsetparam(param); + return 0; + } + if (val_len > 0) { + value = (char *)zalloc(val_len+1); + list_len = xlistxattr(file, value, val_len, symlink); + if (list_len > 0 && list_len <= val_len) { char *p = value; - if (*(argv+1)) - setsparam(*(argv+1), metafy(value, len, META_DUP)); - else while (p < &value[len]) { + if (param) { + if (strlen(value) + 1 == list_len) + setsparam(param, metafy(value, list_len-1, META_DUP)); + else { + int arrlen = 0; + char **array = NULL, **arrptr = NULL; + + while (p < &value[list_len]) { + arrlen++; + p += strlen(p) + 1; + } + arrptr = array = (char **)zshcalloc((arrlen+1) * sizeof(char *)); + p = value; + while (p < &value[list_len]) { + *arrptr++ = metafy(p, -1, META_DUP); + p += strlen(p) + 1; + } + setaparam(param, array); + } + } else while (p < &value[list_len]) { printf("%s\n", p); p += strlen(p) + 1; } } - } else if (len < 0) { - zwarnnam(nam, "%s: %e", metafy(*argv, slen, META_NOALLOC), errno); - ret = 1; + zfree(value, val_len+1); + } + if (val_len < 0 || list_len < 0 || list_len > val_len) { + zwarnnam(nam, "%s: %e", metafy(file, slen, META_NOALLOC), errno); + ret = 1 + (list_len > val_len || list_len < 0); } return ret; } @@ -136,10 +224,10 @@ /* module paraphernalia */ static struct builtin bintab[] = { - BUILTIN("zgetattr", 0, bin_getattr, 2, 3, 0, NULL, NULL), - BUILTIN("zsetattr", 0, bin_setattr, 3, 3, 0, NULL, NULL), - BUILTIN("zdelattr", 0, bin_delattr, 2, 2, 0, NULL, NULL), - BUILTIN("zlistattr", 0, bin_listattr, 1, 2, 0, NULL, NULL), + BUILTIN("zgetattr", 0, bin_getattr, 2, 3, 0, "h", NULL), + BUILTIN("zsetattr", 0, bin_setattr, 3, 3, 0, "h", NULL), + BUILTIN("zdelattr", 0, bin_delattr, 2, -1, 0, "h", NULL), + BUILTIN("zlistattr", 0, bin_listattr, 1, 2, 0, "h", NULL), }; static struct features module_features = { diff -Nru zsh-4.3.10/Src/Modules/cap.c zsh-4.3.11/Src/Modules/cap.c --- zsh-4.3.10/Src/Modules/cap.c 2009-03-04 10:30:02.000000000 +0100 +++ zsh-4.3.11/Src/Modules/cap.c 2009-11-30 10:59:41.000000000 +0100 @@ -45,7 +45,7 @@ return 1; } if(cap_set_proc(caps)) { - zwarnnam(nam, "can't change capabilites: %e", errno); + zwarnnam(nam, "can't change capabilities: %e", errno); ret = 1; } } else { @@ -55,7 +55,7 @@ if(caps) result = cap_to_text(caps, &length); if(!caps || !result) { - zwarnnam(nam, "can't get capabilites: %e", errno); + zwarnnam(nam, "can't get capabilities: %e", errno); ret = 1; } else puts(result); diff -Nru zsh-4.3.10/Src/Modules/datetime.c zsh-4.3.11/Src/Modules/datetime.c --- zsh-4.3.10/Src/Modules/datetime.c 2007-12-10 14:55:13.000000000 +0100 +++ zsh-4.3.11/Src/Modules/datetime.c 2010-02-26 18:07:25.000000000 +0100 @@ -111,8 +111,9 @@ if (OPT_ISSET(ops, 'r')) return reverse_strftime(nam, argv, scalar, OPT_ISSET(ops, 'q')); + errno = 0; secs = (time_t)strtoul(argv[1], &endptr, 10); - if (secs == (time_t)ULONG_MAX) { + if (errno != 0) { zwarnnam(nam, "%s: %e", argv[1], errno); return 1; } else if (*endptr != '\0') { @@ -121,6 +122,10 @@ } t = localtime(&secs); + if (!t) { + zwarnnam(nam, "%s: unable to convert to time", argv[1]); + return 1; + } bufsize = strlen(argv[0]) * 8; buffer = zalloc(bufsize); diff -Nru zsh-4.3.10/Src/Modules/newuser.c zsh-4.3.11/Src/Modules/newuser.c --- zsh-4.3.10/Src/Modules/newuser.c 2009-02-12 10:22:27.000000000 +0100 +++ zsh-4.3.11/Src/Modules/newuser.c 2009-07-01 17:07:33.000000000 +0200 @@ -97,7 +97,7 @@ VARARR(char, buf, strlen(*sp) + 9); sprintf(buf, "%s/newuser", *sp); - if (!source(buf)) + if (source(buf) != SOURCE_NOT_FOUND) break; } diff -Nru zsh-4.3.10/Src/Modules/parameter.c zsh-4.3.11/Src/Modules/parameter.c --- zsh-4.3.10/Src/Modules/parameter.c 2009-02-12 10:22:27.000000000 +0100 +++ zsh-4.3.11/Src/Modules/parameter.c 2010-12-13 11:06:33.000000000 +0100 @@ -1044,7 +1044,7 @@ int i = addhistnum(curhist, -1, HIST_FOREIGN), iw; Histent he = gethistent(i, GETHIST_UPWARD); - if ((ll = bufferwords(NULL, NULL, NULL))) + if ((ll = bufferwords(NULL, NULL, NULL, 0))) for (n = firstnode(ll); n; incnode(n)) pushnode(l, getdata(n)); diff -Nru zsh-4.3.10/Src/Modules/pcre.c zsh-4.3.11/Src/Modules/pcre.c --- zsh-4.3.10/Src/Modules/pcre.c 2009-03-25 10:57:39.000000000 +0100 +++ zsh-4.3.11/Src/Modules/pcre.c 2010-01-20 12:17:11.000000000 +0100 @@ -138,8 +138,9 @@ /**/ static int -zpcre_get_substrings(char *arg, int *ovec, int ret, char *matchvar, char *substravar, - int want_offset_pair, int matchedinarr) +zpcre_get_substrings(char *arg, int *ovec, int ret, char *matchvar, + char *substravar, int want_offset_pair, int matchedinarr, + int want_begin_end) { char **captures, *match_all, **matches; char offset_all[50]; @@ -154,6 +155,7 @@ /* captures[0] will be entire matched string, [1] first substring */ if (!pcre_get_substring_list(arg, ovec, ret, (const char ***)&captures)) { + int nelem = arrlen(captures)-1; /* Set to the offsets of the complete match */ if (want_offset_pair) { sprintf(offset_all, "%d %d", ovec[0], ovec[1]); @@ -161,8 +163,70 @@ } match_all = ztrdup(captures[0]); setsparam(matchvar, match_all); - matches = zarrdup(&captures[capture_start]); - setaparam(substravar, matches); + /* + * If we're setting match, mbegin, mend we only do + * so if there were parenthesised matches, for consistency + * (c.f. regex.c). + */ + if (!want_begin_end || nelem) { + matches = zarrdup(&captures[capture_start]); + setaparam(substravar, matches); + } + + if (want_begin_end) { + char *ptr = arg; + zlong offs = 0; + + /* Count the characters before the match */ + MB_METACHARINIT(); + while (ptr < arg + ovec[0]) { + offs++; + ptr += MB_METACHARLEN(ptr); + } + setiparam("MBEGIN", offs + !isset(KSHARRAYS)); + /* Add on the characters in the match */ + while (ptr < arg + ovec[1]) { + offs++; + ptr += MB_METACHARLEN(ptr); + } + setiparam("MEND", offs + !isset(KSHARRAYS) - 1); + if (nelem) { + char **mbegin, **mend, **bptr, **eptr; + int i, *ipair; + + bptr = mbegin = zalloc(sizeof(char*)*(nelem+1)); + eptr = mend = zalloc(sizeof(char*)*(nelem+1)); + + for (ipair = ovec + 2, i = 0; + i < nelem; + ipair += 2, i++, bptr++, eptr++) + { + char buf[DIGBUFSIZE]; + ptr = arg; + offs = 0; + /* Find the start offset */ + MB_METACHARINIT(); + while (ptr < arg + ipair[0]) { + offs++; + ptr += MB_METACHARLEN(ptr); + } + convbase(buf, offs + !isset(KSHARRAYS), 10); + *bptr = ztrdup(buf); + /* Continue to the end offset */ + while (ptr < arg + ipair[1]) { + offs++; + ptr += MB_METACHARLEN(ptr); + } + convbase(buf, offs + !isset(KSHARRAYS) - 1, 10); + *eptr = ztrdup(buf); + } + *bptr = *eptr = NULL; + + setaparam("mbegin", mbegin); + setaparam("mend", mend); + } + } + pcre_free_substring_list((const char **)captures); } @@ -238,7 +302,8 @@ if (ret==0) return_value = 0; else if (ret==PCRE_ERROR_NOMATCH) /* no match */; else if (ret>0) { - zpcre_get_substrings(*args, ovec, ret, matched_portion, receptacle, want_offset_pair, 0); + zpcre_get_substrings(*args, ovec, ret, matched_portion, receptacle, + want_offset_pair, 0, 0); return_value = 0; } else { @@ -297,7 +362,9 @@ break; } else if (r>0) { - zpcre_get_substrings(lhstr, ov, r, NULL, avar, 0, isset(BASHREMATCH)); + zpcre_get_substrings(lhstr, ov, r, NULL, avar, 0, + isset(BASHREMATCH), + !isset(BASHREMATCH)); return_value = 1; break; } diff -Nru zsh-4.3.10/Src/Modules/regex.c zsh-4.3.11/Src/Modules/regex.c --- zsh-4.3.10/Src/Modules/regex.c 2009-01-19 10:58:21.000000000 +0100 +++ zsh-4.3.11/Src/Modules/regex.c 2010-01-20 12:17:11.000000000 +0100 @@ -108,11 +108,65 @@ if (isset(BASHREMATCH)) { setaparam("BASH_REMATCH", arr); } else { + zlong offs; + char *ptr; + m = matches; s = ztrduppfx(lhstr + m->rm_so, m->rm_eo - m->rm_so); setsparam("MATCH", s); - if (nelem) + /* + * Count the characters before the match. + */ + ptr = lhstr; + offs = 0; + MB_METACHARINIT(); + while (ptr < lhstr + m->rm_so) { + offs++; + ptr += MB_METACHARLEN(ptr); + } + setiparam("MBEGIN", offs + !isset(KSHARRAYS)); + /* + * Add on the characters in the match. + */ + while (ptr < lhstr + m->rm_eo) { + offs++; + ptr += MB_METACHARLEN(ptr); + } + setiparam("MEND", offs + !isset(KSHARRAYS) - 1); + if (nelem) { + char **mbegin, **mend, **bptr, **eptr; + bptr = mbegin = (char **)zalloc(sizeof(char *)*(nelem+1)); + eptr = mend = (char **)zalloc(sizeof(char *)*(nelem+1)); + + for (m = matches + start, n = 0; + n < nelem; + ++n, ++m, ++bptr, ++eptr) + { + char buf[DIGBUFSIZE]; + ptr = lhstr; + offs = 0; + /* Find the start offset */ + MB_METACHARINIT(); + while (ptr < lhstr + m->rm_so) { + offs++; + ptr += MB_METACHARLEN(ptr); + } + convbase(buf, offs + !isset(KSHARRAYS), 10); + *bptr = ztrdup(buf); + /* Continue to the end offset */ + while (ptr < lhstr + m->rm_eo) { + offs++; + ptr += MB_METACHARLEN(ptr); + } + convbase(buf, offs + !isset(KSHARRAYS) - 1, 10); + *eptr = ztrdup(buf); + } + *bptr = *eptr = NULL; + setaparam("match", arr); + setaparam("mbegin", mbegin); + setaparam("mend", mend); + } } } else diff -Nru zsh-4.3.10/Src/Modules/socket.c zsh-4.3.11/Src/Modules/socket.c --- zsh-4.3.10/Src/Modules/socket.c 2007-07-09 11:30:42.000000000 +0200 +++ zsh-4.3.11/Src/Modules/socket.c 2009-09-29 16:25:48.000000000 +0200 @@ -33,10 +33,6 @@ #include #include -#ifndef UNIX_PATH_MAX -# define UNIX_PATH_MAX 108 -#endif - /* * We need to include the zsh headers later to avoid clashes with * the definitions on some systems, however we need the configuration @@ -103,7 +99,7 @@ } soun.sun_family = AF_UNIX; - strncpy(soun.sun_path, localfn, UNIX_PATH_MAX); + strncpy(soun.sun_path, localfn, sizeof(soun.sun_path)-1); if (bind(sfd, (struct sockaddr *)&soun, sizeof(struct sockaddr_un))) { @@ -120,13 +116,16 @@ } if (targetfd) { - redup(sfd, targetfd); - sfd = targetfd; + sfd = redup(sfd, targetfd); } else { /* move the fd since no one will want to read from it */ sfd = movefd(sfd); } + if (sfd == -1) { + zerrnam(nam, "cannot duplicate fd %d: %e", sfd, errno); + return 1; + } setiparam("REPLY", sfd); @@ -199,8 +198,11 @@ } if (targetfd) { - redup(rfd, targetfd); - sfd = targetfd; + sfd = redup(rfd, targetfd); + if (sfd < 0) { + zerrnam(nam, "could not duplicate socket fd to %d: %e", targetfd, errno); + return 1; + } } else { sfd = rfd; @@ -226,7 +228,7 @@ } soun.sun_family = AF_UNIX; - strncpy(soun.sun_path, args[0], UNIX_PATH_MAX); + strncpy(soun.sun_path, args[0], sizeof(soun.sun_path)-1); if ((err = connect(sfd, (struct sockaddr *)&soun, sizeof(struct sockaddr_un)))) { zwarnnam(nam, "connection failed: %e", errno); @@ -236,8 +238,11 @@ else { if (targetfd) { - redup(sfd, targetfd); - sfd = targetfd; + sfd = redup(sfd, targetfd); + if (sfd < 0) { + zerrnam(nam, "could not duplicate socket fd to %d: %e", targetfd, errno); + return 1; + } } setiparam("REPLY", sfd); diff -Nru zsh-4.3.10/Src/Modules/system.c zsh-4.3.11/Src/Modules/system.c --- zsh-4.3.10/Src/Modules/system.c 2007-07-09 11:30:42.000000000 +0200 +++ zsh-4.3.11/Src/Modules/system.c 2010-02-26 13:09:59.000000000 +0100 @@ -173,7 +173,7 @@ select_tv.tv_usec = 0; } - while ((ret = select(infd+1, (SELECT_ARG_2_T) &fds, + while ((ret = select(infd+1, (SELECT_ARG_2_T) &fds, NULL, NULL,&select_tv)) < 1) { if (errno != EINTR || errflag || retflag || breaks || contflag) break; @@ -340,10 +340,209 @@ return 0; } +/**/ +static int +bin_zsystem_flock(char *nam, char **args, UNUSED(Options ops), UNUSED(int func)) +{ + int cloexec = 1, unlock = 0, readlock = 0; + time_t timeout = 0; + char *fdvar = NULL; +#ifdef HAVE_FCNTL_H + struct flock lck; + int flock_fd, flags; +#endif + + while (*args && **args == '-') { + int opt; + char *optptr = *args + 1, *optarg; + args++; + if (!*optptr || !strcmp(optptr, "-")) + break; + while ((opt = *optptr)) { + switch (opt) { + case 'e': + /* keep lock on "exec" */ + cloexec = 0; + break; + + case 'f': + /* variable for fd */ + if (optptr[1]) { + fdvar = optptr + 1; + optptr += strlen(fdvar) - 1; + } else if (*args) { + fdvar = *args++; + } + if (fdvar == NULL || !isident(fdvar)) { + zwarnnam(nam, "flock: option %c requires a variable name", + opt); + return 1; + } + break; + + case 'r': + /* read lock rather than read-write lock */ + readlock = 1; + break; + + case 't': + /* timeout in seconds */ + if (optptr[1]) { + optarg = optptr + 1; + optptr += strlen(optarg) - 1; + } else if (!*args) { + zwarnnam(nam, "flock: option %c requires a numeric timeout", + opt); + return 1; + } else { + optarg = *args++; + } + timeout = (time_t)mathevali(optarg); + break; + + case 'u': + /* unlock: argument is fd */ + unlock = 1; + break; + + default: + zwarnnam(nam, "flock: unknown option: %c", *optptr); + return 1; + } + optptr++; + } + } + + + if (!args[0]) { + zwarnnam(nam, "flock: not enough arguments"); + return 1; + } + if (args[1]) { + zwarnnam(nam, "flock: too many arguments"); + return 1; + } + +#ifdef HAVE_FCNTL_H + if (unlock) { + flock_fd = (int)mathevali(args[0]); + if (zcloselockfd(flock_fd) < 0) { + zwarnnam(nam, "flock: file descriptor %d not in use for locking", + flock_fd); + return 1; + } + return 0; + } + + if (readlock) + flags = O_RDONLY | O_NOCTTY; + else + flags = O_RDWR | O_NOCTTY; + if ((flock_fd = open(unmeta(args[0]), flags)) < 0) { + zwarnnam(nam, "failed to open %s for writing: %e", args[0], errno); + return 1; + } + flock_fd = movefd(flock_fd); + if (flock_fd == -1) + return 1; +#ifdef FD_CLOEXEC + if (cloexec) + { + long fdflags = fcntl(flock_fd, F_GETFD, 0); + if (fdflags != (long)-1) + fcntl(flock_fd, F_SETFD, fdflags | FD_CLOEXEC); + } +#endif + addlockfd(flock_fd, cloexec); + + lck.l_type = readlock ? F_RDLCK : F_WRLCK; + lck.l_whence = SEEK_SET; + lck.l_start = 0; + lck.l_len = 0; /* lock the whole file */ + + if (timeout > 0) { + time_t end = time(NULL) + (time_t)timeout; + while (fcntl(flock_fd, F_SETLK, &lck) < 0) { + if (errflag) + return 1; + if (errno != EINTR && errno != EACCES && errno != EAGAIN) { + zwarnnam(nam, "failed to lock file %s: %e", args[0], errno); + return 1; + } + if (time(NULL) >= end) + return 2; + sleep(1); + } + } else { + while (fcntl(flock_fd, F_SETLKW, &lck) < 0) { + if (errflag) + return 1; + if (errno == EINTR) + continue; + zwarnnam(nam, "failed to lock file %s: %e", args[0], errno); + return 1; + } + } + + if (fdvar) + setiparam(fdvar, flock_fd); + + return 0; +#else /* HAVE_FCNTL_H */ + zwarnnam(nam, "flock: not implemented on this system"); + return 255; +#endif /* HAVE_FCNTL_H */ +} + + +/* + * Return status zero if the zsystem feature is supported, else 1. + * Operates silently for future-proofing. + */ +/**/ +static int +bin_zsystem_supports(char *nam, char **args, + UNUSED(Options ops), UNUSED(int func)) +{ + if (!args[0]) { + zwarnnam(nam, "supports: not enough arguments"); + return 255; + } + if (args[1]) { + zwarnnam(nam, "supports: too many arguments"); + return 255; + } + + /* stupid but logically this should work... */ + if (!strcmp(*args, "supports")) + return 0; +#ifdef HAVE_FCNTL_H + if (!strcmp(*args, "flock")) + return 0; +#endif + return 1; +} + + +/**/ +static int +bin_zsystem(char *nam, char **args, Options ops, int func) +{ + /* If more commands are implemented, this can be more sophisticated */ + if (!strcmp(*args, "flock")) { + return bin_zsystem_flock(nam, args+1, ops, func); + } else if (!strcmp(*args, "supports")) { + return bin_zsystem_supports(nam, args+1, ops, func); + } + zwarnnam(nam, "unknown subcommand: %s", *args); + return 1; +} + static struct builtin bintab[] = { BUILTIN("syserror", 0, bin_syserror, 0, 1, 0, "e:p:", NULL), BUILTIN("sysread", 0, bin_sysread, 0, 1, 0, "c:i:o:s:t:", NULL), BUILTIN("syswrite", 0, bin_syswrite, 1, 1, 0, "c:o:", NULL), + BUILTIN("zsystem", 0, bin_zsystem, 1, -1, 0, NULL, NULL) }; diff -Nru zsh-4.3.10/Src/Modules/tcp.c zsh-4.3.11/Src/Modules/tcp.c --- zsh-4.3.10/Src/Modules/tcp.c 2008-11-06 13:34:02.000000000 +0100 +++ zsh-4.3.11/Src/Modules/tcp.c 2009-09-22 18:04:16.000000000 +0200 @@ -446,14 +446,19 @@ } if (targetfd) { - redup(sess->fd,targetfd); - sess->fd = targetfd; + sess->fd = redup(sess->fd, targetfd); } else { /* move the fd since no one will want to read from it */ sess->fd = movefd(sess->fd); } + if (sess->fd == -1) { + zwarnnam(nam, "cannot duplicate fd %d: %e", sess->fd, errno); + tcp_close(sess); + return 1; + } + setiparam("REPLY", sess->fd); if (verbose) @@ -539,8 +544,11 @@ } if (targetfd) { - redup(rfd, targetfd); - sess->fd = targetfd; + sess->fd = redup(rfd, targetfd); + if (sess->fd < 0) { + zerrnam(nam, "could not duplicate socket fd to %d: %e", targetfd, errno); + return 1; + } } else { sess->fd = rfd; @@ -654,8 +662,11 @@ else { if (targetfd) { - redup(sess->fd, targetfd); - sess->fd = targetfd; + sess->fd = redup(sess->fd, targetfd); + if (sess->fd < 0) { + zerrnam(nam, "could not duplicate socket fd to %d: %e", targetfd, errno); + return 1; + } } setiparam("REPLY", sess->fd); diff -Nru zsh-4.3.10/Src/Modules/termcap.c zsh-4.3.11/Src/Modules/termcap.c --- zsh-4.3.10/Src/Modules/termcap.c 2008-10-30 10:39:21.000000000 +0100 +++ zsh-4.3.11/Src/Modules/termcap.c 2010-06-02 15:13:43.000000000 +0200 @@ -369,7 +369,14 @@ { #ifdef HAVE_TGETENT # ifdef HAVE_SETUPTERM - setupterm((char *)0, 1, (int *)0); + int errret; + + /* + * Just because we can't set up the terminal doesn't + * mean the modules hasn't booted---TERM may change, + * and it should be handled dynamically---so ignore errors here. + */ + (void)setupterm((char *)0, 1, &errret); # endif #endif return 0; diff -Nru zsh-4.3.10/Src/Modules/terminfo.c zsh-4.3.11/Src/Modules/terminfo.c --- zsh-4.3.10/Src/Modules/terminfo.c 2008-03-13 10:54:14.000000000 +0100 +++ zsh-4.3.11/Src/Modules/terminfo.c 2010-06-02 15:13:43.000000000 +0200 @@ -341,8 +341,12 @@ # ifdef HAVE_SETUPTERM int errret; - if (setupterm((char *)0, 1, &errret) == ERR) - return 1; + /* + * Just because we can't set up the terminal doesn't + * mean the modules hasn't booted---TERM may change, + * and it should be handled dynamically---so ignore errors here. + */ + (void)setupterm((char *)0, 1, &errret); # endif #endif diff -Nru zsh-4.3.10/Src/Modules/zftp.c zsh-4.3.11/Src/Modules/zftp.c --- zsh-4.3.10/Src/Modules/zftp.c 2009-03-16 19:27:07.000000000 +0100 +++ zsh-4.3.11/Src/Modules/zftp.c 2009-12-16 19:39:06.000000000 +0100 @@ -644,7 +644,7 @@ cmdbuf[0] = (char)IAC; cmdbuf[1] = (char)DONT; cmdbuf[2] = ch; - write(zfsess->control->fd, cmdbuf, 3); + write_loop(zfsess->control->fd, cmdbuf, 3); continue; case DO: @@ -654,7 +654,7 @@ cmdbuf[0] = (char)IAC; cmdbuf[1] = (char)WONT; cmdbuf[2] = ch; - write(zfsess->control->fd, cmdbuf, 3); + write_loop(zfsess->control->fd, cmdbuf, 3); continue; case EOF: @@ -2197,7 +2197,7 @@ int cnt; for (cnt = 0; *args; args++) cnt++; - zwarnnam(name, "warning: %d comand arguments not used\n", cnt); + zwarnnam(name, "warning: %d command arguments not used\n", cnt); } zfstatusp[zfsessno] |= ZFST_LOGI; zfsetparam("ZFTP_USER", ztrdup(user), ZFPM_READONLY); @@ -2754,7 +2754,7 @@ if (!zfnopen) { /* Write the final status in case this is a subshell */ lseek(zfstatfd, zfsessno*sizeof(int), 0); - write(zfstatfd, (char *)zfstatusp+zfsessno, sizeof(int)); + write_loop(zfstatfd, (char *)zfstatusp+zfsessno, sizeof(int)); close(zfstatfd); zfstatfd = -1; @@ -3033,7 +3033,7 @@ /* Get the status in case it was set by a forked process */ int oldstatus = zfstatusp[zfsessno]; lseek(zfstatfd, 0, 0); - read(zfstatfd, (char *)zfstatusp, sizeof(int)*zfsesscnt); + read_loop(zfstatfd, (char *)zfstatusp, sizeof(int)*zfsesscnt); if (zfsess->control && (zfstatusp[zfsessno] & ZFST_CLOS)) { /* got closed in subshell without us knowing */ zcfinish = 2; @@ -3124,7 +3124,7 @@ * but only for the active session. */ lseek(zfstatfd, zfsessno*sizeof(int), 0); - write(zfstatfd, (char *)zfstatusp+zfsessno, sizeof(int)); + write_loop(zfstatfd, (char *)zfstatusp+zfsessno, sizeof(int)); } return ret; } diff -Nru zsh-4.3.10/Src/Modules/zpty.c zsh-4.3.11/Src/Modules/zpty.c --- zsh-4.3.10/Src/Modules/zpty.c 2009-01-13 13:10:59.000000000 +0100 +++ zsh-4.3.11/Src/Modules/zpty.c 2010-05-12 12:07:02.000000000 +0200 @@ -396,11 +396,17 @@ setsparam("TTY", ztrdup(ttystrname)); opts[INTERACTIVE] = 0; - execode(prog, 1, 0); + execode(prog, 1, 0, "zpty"); stopmsg = 2; zexit(lastval, 0); } master = movefd(master); + if (master == -1) { + zerrnam(nam, "cannot duplicate fd %d: %e", master, errno); + scriptname = oscriptname; + ineval = oineval; + return 1; + } p = (Ptycmd) zalloc(sizeof(*p)); @@ -423,6 +429,7 @@ scriptname = oscriptname; ineval = oineval; + return 0; } @@ -579,7 +586,7 @@ seen = 1; if (++used == blen) { if (!*args) { - write(1, buf, used); + write_loop(1, buf, used); used = 0; } else { buf = hrealloc(buf, blen, blen << 1); @@ -625,7 +632,7 @@ if (*args) setsparam(*args, ztrdup(metafy(buf, used, META_HREALLOC))); else if (used) - write(1, buf, used); + write_loop(1, buf, used); if (seen && (!prog || matchok || !mustmatch)) return 0; diff -Nru zsh-4.3.10/Src/Modules/zutil.c zsh-4.3.11/Src/Modules/zutil.c --- zsh-4.3.10/Src/Modules/zutil.c 2008-09-29 10:39:48.000000000 +0200 +++ zsh-4.3.11/Src/Modules/zutil.c 2010-05-12 12:17:58.000000000 +0200 @@ -343,7 +343,7 @@ char **ret, *str; unsetparam("reply"); - execode(p->eval, 1, 0); + execode(p->eval, 1, 0, "style"); if (errflag) { errflag = ef; return NULL; @@ -1253,7 +1253,7 @@ char *action = getdata(ln); if (action) - execstring(action, 1, 0); + execstring(action, 1, 0, "zregexparse-action"); } return 0; } @@ -1278,7 +1278,8 @@ return 3; } if (next->pattern && pattry(next->patprog, subj) && - (!next->guard || (execstring(next->guard, 1, 0), !lastval))) { + (!next->guard || (execstring(next->guard, 1, 0, + "zregexparse-guard"), !lastval))) { LinkNode aln; char **mend; int len; @@ -1299,7 +1300,7 @@ char *action = getdata(aln); if (action) - execstring(action, 1, 0); + execstring(action, 1, 0, "zregexparse-action"); } restorematch(&match2); @@ -1328,7 +1329,7 @@ char *action = getdata(ln); if (action) - execstring(action, 1, 0); + execstring(action, 1, 0, "zregexparse-action"); } return 0; } @@ -1339,7 +1340,7 @@ for (ln = firstnode(nexts); ln; ln = nextnode(ln)) { br = getdata(ln); if (br->state->action) - execstring(br->state->action, 1, 0); + execstring(br->state->action, 1, 0, "zregexparse-action"); } } return empty(nexts) ? 2 : 1; diff -Nru zsh-4.3.10/Src/options.c zsh-4.3.11/Src/options.c --- zsh-4.3.10/Src/options.c 2009-03-03 18:00:41.000000000 +0100 +++ zsh-4.3.11/Src/options.c 2010-11-19 18:34:01.000000000 +0100 @@ -149,6 +149,7 @@ {{NULL, "histignorealldups", 0}, HISTIGNOREALLDUPS}, {{NULL, "histignoredups", 0}, HISTIGNOREDUPS}, {{NULL, "histignorespace", 0}, HISTIGNORESPACE}, +{{NULL, "histlexwords", 0}, HISTLEXWORDS}, {{NULL, "histnofunctions", 0}, HISTNOFUNCTIONS}, {{NULL, "histnostore", 0}, HISTNOSTORE}, {{NULL, "histsubstpattern", OPT_EMULATE}, HISTSUBSTPATTERN}, @@ -198,9 +199,14 @@ {{NULL, "octalzeroes", OPT_EMULATE|OPT_SH}, OCTALZEROES}, {{NULL, "overstrike", 0}, OVERSTRIKE}, {{NULL, "pathdirs", OPT_EMULATE}, PATHDIRS}, +{{NULL, "pathscript", OPT_EMULATE|OPT_BOURNE}, PATHSCRIPT}, {{NULL, "posixaliases", OPT_EMULATE|OPT_BOURNE}, POSIXALIASES}, {{NULL, "posixbuiltins", OPT_EMULATE|OPT_BOURNE}, POSIXBUILTINS}, +{{NULL, "posixcd", OPT_EMULATE|OPT_BOURNE}, POSIXCD}, {{NULL, "posixidentifiers", OPT_EMULATE|OPT_BOURNE}, POSIXIDENTIFIERS}, +{{NULL, "posixjobs", OPT_EMULATE|OPT_BOURNE}, POSIXJOBS}, +{{NULL, "posixstrings", OPT_EMULATE|OPT_BOURNE}, POSIXSTRINGS}, +{{NULL, "posixtraps", OPT_EMULATE|OPT_BOURNE}, POSIXTRAPS}, {{NULL, "printeightbit", 0}, PRINTEIGHTBIT}, {{NULL, "printexitvalue", 0}, PRINTEXITVALUE}, {{NULL, "privileged", OPT_SPECIAL}, PRIVILEGED}, @@ -231,6 +237,7 @@ {{NULL, "shwordsplit", OPT_EMULATE|OPT_BOURNE}, SHWORDSPLIT}, {{NULL, "singlecommand", OPT_SPECIAL}, SINGLECOMMAND}, {{NULL, "singlelinezle", OPT_KSH}, SINGLELINEZLE}, +{{NULL, "sourcetrace", 0}, SOURCETRACE}, {{NULL, "sunkeyboardhack", 0}, SUNKEYBOARDHACK}, {{NULL, "transientrprompt", 0}, TRANSIENTRPROMPT}, {{NULL, "trapsasync", 0}, TRAPSASYNC}, @@ -730,7 +737,7 @@ } else if (!force && optno == MONITOR && value) { if (opts[optno] == value) return 0; - if (interact && (SHTTY != -1)) { + if (SHTTY != -1) { origpgrp = GETPGRP(); acquire_pgrp(); } else @@ -746,6 +753,9 @@ } else if ((optno == EMACSMODE || optno == VIMODE) && value) { zleentry(ZLE_CMD_SET_KEYMAP, optno); opts[(optno == EMACSMODE) ? VIMODE : EMACSMODE] = 0; + } else if (optno == SUNKEYBOARDHACK) { + /* for backward compatibility */ + keyboardhackchar = (value ? '`' : '\0'); } opts[optno] = value; if (optno == BANGHIST || optno == SHINSTDIN) diff -Nru zsh-4.3.10/Src/params.c zsh-4.3.11/Src/params.c --- zsh-4.3.10/Src/params.c 2009-05-08 11:45:13.000000000 +0200 +++ zsh-4.3.11/Src/params.c 2010-11-17 17:37:04.000000000 +0100 @@ -57,7 +57,8 @@ **mailpath, /* $mailpath */ **manpath, /* $manpath */ **psvar, /* $psvar */ - **watch; /* $watch */ + **watch, /* $watch */ + **zsh_eval_context; /* $zsh_eval_context */ /**/ mod_export char **path, /* $path */ @@ -108,6 +109,9 @@ mod_export unsigned char bangchar; /**/ unsigned char hatchar, hashchar; + +/**/ +unsigned char keyboardhackchar = '\0'; /* $SECONDS = now.tv_sec - shtimer.tv_sec * + (now.tv_usec - shtimer.tv_usec) / 1000000.0 @@ -204,6 +208,8 @@ { ifsgetfn, ifssetfn, stdunsetfn }; static const struct gsu_scalar underscore_gsu = { underscoregetfn, nullstrsetfn, stdunsetfn }; +static const struct gsu_scalar keyboard_hack_gsu = +{ keyboardhackgetfn, keyboardhacksetfn, stdunsetfn }; #ifdef USE_LOCALE static const struct gsu_scalar lc_blah_gsu = { strgetfn, lcsetfn, stdunsetfn }; @@ -273,6 +279,7 @@ IPDEF2("WORDCHARS", wordchars_gsu, 0), IPDEF2("IFS", ifs_gsu, PM_DONTIMPORT), IPDEF2("_", underscore_gsu, PM_READONLY), +IPDEF2("KEYBOARD_HACK", keyboard_hack_gsu, PM_DONTIMPORT), #ifdef USE_LOCALE # define LCIPDEF(name) IPDEF2(name, lc_blah_gsu, PM_UNSET) @@ -335,6 +342,7 @@ IPDEF8("WATCH", &watch, "watch", 0), IPDEF8("PATH", &path, "path", PM_RESTRICTED), IPDEF8("PSVAR", &psvar, "psvar", 0), +IPDEF8("ZSH_EVAL_CONTEXT", &zsh_eval_context, "zsh_eval_context", PM_READONLY), /* MODULE_PATH is not imported for security reasons */ IPDEF8("MODULE_PATH", &module_path, "module_path", PM_DONTIMPORT|PM_RESTRICTED), @@ -343,12 +351,21 @@ #define IPDEF9(A,B,C) IPDEF9F(A,B,C,0) IPDEF9F("*", &pparams, NULL, PM_ARRAY|PM_SPECIAL|PM_DONTIMPORT|PM_READONLY), IPDEF9F("@", &pparams, NULL, PM_ARRAY|PM_SPECIAL|PM_DONTIMPORT|PM_READONLY), + +/* + * This empty row indicates the end of parameters available in + * all emulations. + */ {{NULL,NULL,0},BR(NULL),NULL_GSU,0,0,NULL,NULL,NULL,0}, #define IPDEF10(A,B) {{NULL,A,PM_ARRAY|PM_SPECIAL},BR(NULL),GSU(B),10,0,NULL,NULL,NULL,0} -/* The following parameters are not available in sh/ksh compatibility * - * mode. All of these have sh compatible equivalents. */ +/* + * The following parameters are not available in sh/ksh compatibility * + * mode. + */ + +/* All of these have sh compatible equivalents. */ IPDEF1("ARGC", argc_gsu, PM_READONLY), IPDEF2("HISTCHARS", histchars_gsu, PM_DONTIMPORT), IPDEF4("status", &lastval), @@ -367,9 +384,13 @@ IPDEF9("psvar", &psvar, "PSVAR"), IPDEF9("watch", &watch, "WATCH"), +IPDEF9F("zsh_eval_context", &zsh_eval_context, "ZSH_EVAL_CONTEXT", PM_READONLY), + IPDEF9F("module_path", &module_path, "MODULE_PATH", PM_RESTRICTED), IPDEF9F("path", &path, "PATH", PM_RESTRICTED), +/* These are known to zsh alone. */ + IPDEF10("pipestatus", pipestatus_gsu), {{NULL,NULL,0},BR(NULL),NULL_GSU,0,0,NULL,NULL,NULL,0}, @@ -440,7 +461,8 @@ * stuff to go ahead with the autoload stub with * no error status we're in for all sorts of mayhem? */ - zerr("unknown parameter: %s", nam); + zerr("autoloading module %s failed to define parameter: %s", mn, + nam); } } return hn; @@ -905,11 +927,17 @@ } -/* Copy a parameter */ +/* + * Copy a parameter + * + * If fakecopy is set, we are just saving the details of a special + * parameter. Otherwise, the result will be used as a real parameter + * and we need to do more work. + */ /**/ void -copyparam(Param tpm, Param pm, int toplevel) +copyparam(Param tpm, Param pm, int fakecopy) { /* * Note that tpm, into which we're copying, may not be in permanent @@ -920,7 +948,8 @@ tpm->node.flags = pm->node.flags; tpm->base = pm->base; tpm->width = pm->width; - if (!toplevel) + tpm->level = pm->level; + if (!fakecopy) tpm->node.flags &= ~PM_SPECIAL; switch (PM_TYPE(pm->node.flags)) { case PM_SCALAR: @@ -941,13 +970,15 @@ break; } /* - * If called from inside an associative array, that array is later going - * to be passed as a real parameter, so we need the gets and sets - * functions to be useful. However, the saved associated array is - * not itself special, so we just use the standard ones. - * This is also why we switch off PM_SPECIAL. + * If the value is going to be passed as a real parameter (e.g. this is + * called from inside an associative array), we need the gets and sets + * functions to be useful. + * + * In this case we assume the the saved parameter is not itself special, + * so we just use the standard functions. This is also why we switch off + * PM_SPECIAL. */ - if (!toplevel) + if (!fakecopy) assigngetset(tpm); } @@ -982,7 +1013,7 @@ return 0; /* Require balanced [ ] pairs with something between */ - if (!(ss = parse_subscript(++ss, 1))) + if (!(ss = parse_subscript(++ss, 1, ']'))) return 0; untokenize(s); return !ss[1]; @@ -1345,6 +1376,11 @@ len = arrlen(ta); if (beg < 0) beg += len; + if (down) { + if (beg < 0) + return 0; + } else if (beg >= len) + return len + 1; if (beg >= 0 && beg < len) { if (down) { if (!hasbeg) @@ -1363,6 +1399,11 @@ len = arrlen(ta); if (beg < 0) beg += len; + if (down) { + if (beg < 0) + return 0; + } else if (beg >= len) + return len + 1; if (beg >= 0 && beg < len) { if (down) { if (!hasbeg) @@ -1587,7 +1628,7 @@ *s++ = '['; /* Error handled after untokenizing */ - s = parse_subscript(s, flags & SCANPM_DQUOTED); + s = parse_subscript(s, flags & SCANPM_DQUOTED, ']'); /* Now we untokenize everything except inull() markers so we can check * * for the '*' and '@' special subscripts. The inull()s are removed * * in getarg() after we know whether we're doing reverse indexing. */ @@ -2234,9 +2275,22 @@ if (v->start > zlen) v->start = zlen; if (v->end < 0) { - v->end += zlen + 1; - if (v->end < 0) + v->end += zlen; + if (v->end < 0) { v->end = 0; + } else if (v->end >= zlen) { + v->end = zlen; + } else { +#ifdef MULTIBYTE_SUPPORT + if (isset(MULTIBYTE)) { + v->end += MB_METACHARLEN(z + v->end); + } else { + v->end++; + } +#else + v->end++; +#endif + } } else if (v->end > zlen) v->end = zlen; @@ -2537,8 +2591,15 @@ *ss = '\0'; if (!(v = getvalue(&vbuf, &s, 1))) createparam(t, PM_ARRAY); - else + else { + if (v->pm->node.flags & PM_READONLY) { + zerr("read-only variable: %s", v->pm->node.nam); + *ss = '['; + zsfree(val); + return NULL; + } flags &= ~ASSPM_WARN_CREATE; + } *ss = '['; v = NULL; } else { @@ -3824,6 +3885,46 @@ return errno; } +/* Function to get value for special parameter `KEYBOARD_HACK' */ + +/**/ +char * +keyboardhackgetfn(UNUSED(Param pm)) +{ + static char buf[2]; + + buf[0] = keyboardhackchar; + buf[1] = '\0'; + return buf; +} + + +/* Function to set value of special parameter `KEYBOARD_HACK' */ + +/**/ +void +keyboardhacksetfn(UNUSED(Param pm), char *x) +{ + if (x) { + int len, i; + + unmetafy(x, &len); + if (len > 1) { + len = 1; + zwarn("Only one KEYBOARD_HACK character can be defined"); /* could be changed if needed */ + } + for (i = 0; i < len; i++) { + if (!isascii(STOUC(x[i]))) { + zwarn("KEYBOARD_HACK can only contain ASCII characters"); + return; + } + } + keyboardhackchar = len ? STOUC(x[0]) : '\0'; + free(x); + } else + keyboardhackchar = '\0'; +} + /* Function to get value for special parameter `histchar' */ /**/ @@ -3918,7 +4019,7 @@ char * underscoregetfn(UNUSED(Param pm)) { - char *u = dupstring(underscore); + char *u = dupstring(zunderscore); untokenize(u); return u; diff -Nru zsh-4.3.10/Src/parse.c zsh-4.3.11/Src/parse.c --- zsh-4.3.10/Src/parse.c 2009-02-20 11:19:23.000000000 +0100 +++ zsh-4.3.11/Src/parse.c 2010-12-20 11:26:10.000000000 +0100 @@ -1199,6 +1199,10 @@ type = (xtok == IF ? WC_IF_IF : WC_IF_ELIF); par_save_list(complex); incmdpos = 1; + if (tok == ENDINPUT) { + cmdpop(); + YYERRORV(oecused); + } while (tok == SEPER) zshlex(); xtok = FI; @@ -1542,7 +1546,7 @@ par_simple(int *complex, int nr) { int oecused = ecused, isnull = 1, r, argc = 0, p, isfunc = 0, sr = 0; - int c = *complex, nrediradd; + int c = *complex, nrediradd, assignments = 0; r = ecused; for (;;) { @@ -1582,6 +1586,7 @@ ecstr(name); ecstr(str); isnull = 0; + assignments = 1; } else if (tok == ENVARRAY) { int oldcmdpos = incmdpos, n, type2; @@ -1602,6 +1607,7 @@ YYERROR(oecused); incmdpos = oldcmdpos; isnull = 0; + assignments = 1; } else break; zshlex(); @@ -1663,8 +1669,12 @@ zlong oldlineno = lineno; int onp, so, oecssub = ecssub; + /* Error if too many function definitions at once */ if (!isset(MULTIFUNCDEF) && argc > 1) YYERROR(oecused); + /* Error if preceding assignments */ + if (assignments) + YYERROR(oecused); *complex = c; lineno = 0; @@ -1803,13 +1813,17 @@ struct heredocs **hd; int htype = type; + /* + * Add two here for the string to remember the HERE + * terminator in raw and munged form. + */ if (idstring) { type |= REDIR_VARID_MASK; - ncodes = 4; + ncodes = 6; } else - ncodes = 3; + ncodes = 5; /* If we ever to change the number of codes, we have to change * the definition of WC_REDIR_WORDS. */ @@ -1818,10 +1832,16 @@ ecbuf[r] = WCB_REDIR(type); ecbuf[r + 1] = fd1; + /* + * r + 2: the HERE string we recover + * r + 3: the HERE document terminator, raw + * r + 4: the HERE document terminator, munged + */ if (idstring) - ecbuf[r + 3] = ecstrcode(idstring); + ecbuf[r + 5] = ecstrcode(idstring); - for (hd = &hdocs; *hd; hd = &(*hd)->next); + for (hd = &hdocs; *hd; hd = &(*hd)->next) + ; *hd = zalloc(sizeof(struct heredocs)); (*hd)->next = NULL; (*hd)->type = htype; @@ -1877,10 +1897,12 @@ /**/ void -setheredoc(int pc, int type, char *str) +setheredoc(int pc, int type, char *str, char *termstr, char *munged_termstr) { ecbuf[pc] = WCB_REDIR(type | REDIR_FROM_HEREDOC_MASK); ecbuf[pc + 2] = ecstrcode(str); + ecbuf[pc + 3] = ecstrcode(termstr); + ecbuf[pc + 4] = ecstrcode(munged_termstr); } /* @@ -2150,10 +2172,11 @@ ecadd(ecnpats++); } else if ((b[0] == Equals || b[0] == '=') && (b[1] == '~' || b[1] == Tilde) && !b[2]) { + /* We become an implicit COND_MODI but do not provide the first + * item, it's skipped */ ecadd(WCB_COND(COND_REGEX, 0)); ecstr(a); ecstr(c); - ecadd(ecnpats++); } else if (b[0] == '-') { if ((t0 = get_cond_num(b + 1)) > -1) { ecadd(WCB_COND(t0 + COND_NT, 0)); @@ -2429,10 +2452,15 @@ r->type = WC_REDIR_TYPE(code); r->fd1 = *s->pc++; r->name = ecgetstr(s, EC_DUP, NULL); - if (WC_REDIR_FROM_HEREDOC(code)) + if (WC_REDIR_FROM_HEREDOC(code)) { r->flags = REDIRF_FROM_HEREDOC; - else + r->here_terminator = ecgetstr(s, EC_DUP, NULL); + r->munged_here_terminator = ecgetstr(s, EC_DUP, NULL); + } else { r->flags = 0; + r->here_terminator = NULL; + r->munged_here_terminator = NULL; + } if (WC_REDIR_VARID(code)) r->varid = ecgetstr(s, EC_DUP, NULL); else @@ -2737,7 +2765,7 @@ fdsetflags(pre, ((map ? FDF_MAP : 0) | other)); fdsetother(pre, tlen); strcpy(fdversion(pre), ZSH_VERSION); - write(dfd, pre, FD_PRELEN * sizeof(wordcode)); + write_loop(dfd, (char *)pre, FD_PRELEN * sizeof(wordcode)); for (node = firstnode(progs); node; incnode(node)) { wcf = (WCFunc) getdata(node); @@ -2758,11 +2786,11 @@ head.flags = fdhbldflags(wcf->flags, (tail - n)); if (other) fdswap((Wordcode) &head, sizeof(head) / sizeof(wordcode)); - write(dfd, &head, sizeof(head)); + write_loop(dfd, (char *)&head, sizeof(head)); tmp = strlen(n) + 1; - write(dfd, n, tmp); + write_loop(dfd, n, tmp); if ((tmp &= (sizeof(wordcode) - 1))) - write(dfd, &head, sizeof(wordcode) - tmp); + write_loop(dfd, (char *)&head, sizeof(wordcode) - tmp); } for (node = firstnode(progs); node; incnode(node)) { prog = ((WCFunc) getdata(node))->prog; @@ -2770,7 +2798,7 @@ sizeof(wordcode) - 1) / sizeof(wordcode); if (other) fdswap(prog->prog, (((Wordcode) prog->strs) - prog->prog)); - write(dfd, prog->prog, tmp * sizeof(wordcode)); + write_loop(dfd, (char *)prog->prog, tmp * sizeof(wordcode)); } if (other) break; @@ -3085,6 +3113,8 @@ return; fd = movefd(fd); + if (fd == -1) + return; if ((addr = (Wordcode) mmap(NULL, mlen, PROT_READ, MAP_SHARED, fd, off)) == ((Wordcode) -1)) { diff -Nru zsh-4.3.10/Src/pattern.c zsh-4.3.11/Src/pattern.c --- zsh-4.3.10/Src/pattern.c 2009-06-01 11:03:36.000000000 +0200 +++ zsh-4.3.11/Src/pattern.c 2010-01-21 12:11:20.000000000 +0100 @@ -1795,9 +1795,9 @@ /* Get a character and increment */ -#define CHARREFINC(x, y) charrefinc(&(x), (y)) +#define CHARREFINC(x, y, z) charrefinc(&(x), (y), (z)) static wchar_t -charrefinc(char **x, char *y) +charrefinc(char **x, char *y, int *z) { wchar_t wc; size_t ret; @@ -1808,7 +1808,8 @@ ret = mbrtowc(&wc, *x, y-*x, &shiftstate); if (ret == MB_INVALID || ret == MB_INCOMPLETE) { - /* Error. Treat as single byte. */ + /* Error. Treat as single byte, but flag. */ + *z = 1; /* Reset the shift state for next time. */ memset(&shiftstate, 0, sizeof(shiftstate)); return (wchar_t) STOUC(*(*x)++); @@ -1865,7 +1866,7 @@ /* Increment a pointer past the current character. */ #define CHARINC(x, y) ((x)++) /* Get a character and increment */ -#define CHARREFINC(x, y) (STOUC(*(x)++)) +#define CHARREFINC(x, y, z) (STOUC(*(x)++)) /* Counter the number of characters between two pointers, smaller first */ #define CHARSUB(x,y) ((y) - (x)) @@ -2419,9 +2420,21 @@ while (chrop < chrend && patinput < patinend) { char *savpatinput = patinput; char *savchrop = chrop; - patint_t chin = CHARREFINC(patinput, patinend); - patint_t chpa = CHARREFINC(chrop, chrend); - if (!CHARMATCH(chin, chpa)) { + int badin = 0, badpa = 0; + /* + * Care with character matching: + * We do need to convert the character to wide + * representation if possible, because we may need + * to do case transformation. However, we should + * be careful in case one, but not the other, wasn't + * representable in the current locale---in that + * case they don't match even if the returned + * values (one properly converted, one raw) are + * the same. + */ + patint_t chin = CHARREFINC(patinput, patinend, &badin); + patint_t chpa = CHARREFINC(chrop, chrend, &badpa); + if (!CHARMATCH(chin, chpa) || badin != badpa) { fail = 1; patinput = savpatinput; chrop = savchrop; diff -Nru zsh-4.3.10/Src/prompt.c zsh-4.3.11/Src/prompt.c --- zsh-4.3.10/Src/prompt.c 2009-05-13 10:39:32.000000000 +0200 +++ zsh-4.3.11/Src/prompt.c 2010-06-03 21:36:16.000000000 +0200 @@ -1764,13 +1764,18 @@ struct colour_sequences fg_bg_sequences[2]; /* - * We need a buffer for colour sequence compostion. It may + * We need a buffer for colour sequence composition. It may * vary depending on the sequences set. However, it's inefficient * allocating it separately every time we send a colour sequence, * so do it once per refresh. */ static char *colseq_buf; +/* + * Count how often this has been allocated, for recursive usage. + */ +static int colseq_buf_allocs; + /**/ void set_default_colour_sequences(void) @@ -1801,9 +1806,13 @@ mod_export void allocate_colour_buffer(void) { - char **atrs = getaparam("zle_highlight"); + char **atrs; int lenfg, lenbg, len; + if (colseq_buf_allocs++) + return; + + atrs = getaparam("zle_highlight"); if (atrs) { for (; *atrs; atrs++) { if (strpfx("fg_start_code:", *atrs)) { @@ -1846,6 +1855,9 @@ mod_export void free_colour_buffer(void) { + if (--colseq_buf_allocs) + return; + DPUTS(!colseq_buf, "Freeing colour sequence buffer without alloc"); /* Free buffer for colour code composition */ free(colseq_buf); @@ -1913,8 +1925,13 @@ } else { tputs(tgoto(tcstr[tc], colour, colour), 1, putshout); } + /* That worked. */ + return; } - /* for 0 to 7 assume standard ANSI works, otherwise it won't. */ + /* + * Nope, that didn't work. + * If 0 to 7, assume standard ANSI works, otherwise it won't. + */ if (colour > 7) return; } diff -Nru zsh-4.3.10/Src/prototypes.h zsh-4.3.11/Src/prototypes.h --- zsh-4.3.10/Src/prototypes.h 2006-07-18 11:17:15.000000000 +0200 +++ zsh-4.3.11/Src/prototypes.h 2010-12-20 11:01:24.000000000 +0100 @@ -44,13 +44,6 @@ /* MISSING PROTOTYPES FOR VARIOUS OPERATING SYSTEMS */ -/* HP/UX 9 c89 */ -#if defined(__hpux) && defined(_XPG3) && !defined(_POSIX1_1988) -# define WRITE_ARG_2_T void * -#else -# define WRITE_ARG_2_T char * -#endif - #if defined(__hpux) && defined(_HPUX_SOURCE) && !defined(_XPG4_EXTENDED) # define SELECT_ARG_2_T int * #else diff -Nru zsh-4.3.10/Src/signals.c zsh-4.3.11/Src/signals.c --- zsh-4.3.10/Src/signals.c 2009-02-12 10:22:27.000000000 +0100 +++ zsh-4.3.11/Src/signals.c 2010-09-14 14:52:31.000000000 +0200 @@ -342,29 +342,38 @@ /**/ int -signal_suspend(UNUSED(int sig)) +signal_suspend(UNUSED(int sig), int wait_cmd) { int ret; - -#ifdef POSIX_SIGNALS + +#if defined(POSIX_SIGNALS) || defined(BSD_SIGNALS) sigset_t set; -#ifdef BROKEN_POSIX_SIGSUSPEND +# if defined(POSIX_SIGNALS) && defined(BROKEN_POSIX_SIGSUSPEND) sigset_t oset; -#endif /* BROKEN_POSIX_SIGSUSPEND */ +# endif sigemptyset(&set); -#ifdef BROKEN_POSIX_SIGSUSPEND + + /* SIGINT from the terminal driver needs to interrupt "wait" + * and to cause traps to fire, but otherwise should not be + * handled by the shell until after any foreground job has + * a chance to decide whether to exit on that signal. + */ + if (!(wait_cmd || isset(TRAPSASYNC) || + (sigtrapped[SIGINT] & ~ZSIG_IGNORED))) + sigaddset(&set, SIGINT); +#endif /* POSIX_SIGNALS || BSD_SIGNALS */ + +#ifdef POSIX_SIGNALS +# ifdef BROKEN_POSIX_SIGSUSPEND sigprocmask(SIG_SETMASK, &set, &oset); pause(); sigprocmask(SIG_SETMASK, &oset, NULL); -#else /* not BROKEN_POSIX_SIGSUSPEND */ +# else /* not BROKEN_POSIX_SIGSUSPEND */ ret = sigsuspend(&set); -#endif /* BROKEN_POSIX_SIGSUSPEND */ +# endif /* BROKEN_POSIX_SIGSUSPEND */ #else /* not POSIX_SIGNALS */ # ifdef BSD_SIGNALS - sigset_t set; - - sigemptyset(&set); ret = sigpause(set); # else # ifdef SYSV_SIGNALS @@ -391,6 +400,129 @@ /**/ int last_signal; +/* + * Wait for any processes that have changed state. + * + * The main use for this is in the SIGCHLD handler. However, + * we also use it to pick up status changes of jobs when + * updating jobs. + */ +/**/ +void +wait_for_processes(void) +{ + /* keep WAITING until no more child processes to reap */ + for (;;) { + /* save the errno, since WAIT may change it */ + int old_errno = errno; + int status; + Job jn; + Process pn; + pid_t pid; + pid_t *procsubpid = &cmdoutpid; + int *procsubval = &cmdoutval; + int cont = 0; + struct execstack *es = exstack; + + /* + * Reap the child process. + * If we want usage information, we need to use wait3. + */ +#if defined(HAVE_WAIT3) || defined(HAVE_WAITPID) +# ifdef WCONTINUED +# define WAITFLAGS (WNOHANG|WUNTRACED|WCONTINUED) +# else +# define WAITFLAGS (WNOHANG|WUNTRACED) +# endif +#endif +#ifdef HAVE_WAIT3 +# ifdef HAVE_GETRUSAGE + struct rusage ru; + + pid = wait3((void *)&status, WAITFLAGS, &ru); +# else + pid = wait3((void *)&status, WAITFLAGS, NULL); +# endif +#else +# ifdef HAVE_WAITPID + pid = waitpid(-1, &status, WAITFLAGS); +# else + pid = wait(&status); +# endif +#endif + + if (!pid) /* no more children to reap */ + break; + + /* check if child returned was from process substitution */ + for (;;) { + if (pid == *procsubpid) { + *procsubpid = 0; + if (WIFSIGNALED(status)) + *procsubval = (0200 | WTERMSIG(status)); + else + *procsubval = WEXITSTATUS(status); + use_cmdoutval = 1; + get_usage(); + cont = 1; + break; + } + if (!es) + break; + procsubpid = &es->cmdoutpid; + procsubval = &es->cmdoutval; + es = es->next; + } + if (cont) + continue; + + /* check for WAIT error */ + if (pid == -1) { + if (errno != ECHILD) + zerr("wait failed: %e", errno); + /* WAIT changed errno, so restore the original */ + errno = old_errno; + break; + } + + /* + * Find the process and job containing this pid and + * update it. + */ + pn = NULL; + if (findproc(pid, &jn, &pn, 0)) { +#if defined(HAVE_WAIT3) && defined(HAVE_GETRUSAGE) + struct timezone dummy_tz; + gettimeofday(&pn->endtime, &dummy_tz); + pn->status = status; + pn->ti = ru; +#else + update_process(pn, status); +#endif + update_job(jn); + } else if (findproc(pid, &jn, &pn, 1)) { + pn->status = status; + update_job(jn); + } else { + /* If not found, update the shell record of time spent by + * children in sub processes anyway: otherwise, this + * will get added on to the next found process that + * terminates. + */ + get_usage(); + } + /* + * Remember the status associated with $!, so we can + * wait for it even if it's exited. This value is + * only used if we can't find the PID in the job table, + * so it doesn't matter that the value we save here isn't + * useful until the process has exited. + */ + if (pn != NULL && pid == lastpid && lastpid_status != -1L) + lastpid_status = lastval2; + } +} + /* the signal handler */ /**/ @@ -449,99 +581,7 @@ switch (sig) { case SIGCHLD: - - /* keep WAITING until no more child processes to reap */ - for (;;) { - /* save the errno, since WAIT may change it */ - int old_errno = errno; - int status; - Job jn; - Process pn; - pid_t pid; - pid_t *procsubpid = &cmdoutpid; - int *procsubval = &cmdoutval; - int cont = 0; - struct execstack *es = exstack; - - /* - * Reap the child process. - * If we want usage information, we need to use wait3. - */ -#ifdef HAVE_WAIT3 -# ifdef HAVE_GETRUSAGE - struct rusage ru; - - pid = wait3((void *)&status, WNOHANG|WUNTRACED, &ru); -# else - pid = wait3((void *)&status, WNOHANG|WUNTRACED, NULL); -# endif -#else -# ifdef HAVE_WAITPID - pid = waitpid(-1, &status, WNOHANG|WUNTRACED); -# else - pid = wait(&status); -# endif -#endif - - if (!pid) /* no more children to reap */ - break; - - /* check if child returned was from process substitution */ - for (;;) { - if (pid == *procsubpid) { - *procsubpid = 0; - if (WIFSIGNALED(status)) - *procsubval = (0200 | WTERMSIG(status)); - else - *procsubval = WEXITSTATUS(status); - get_usage(); - cont = 1; - break; - } - if (!es) - break; - procsubpid = &es->cmdoutpid; - procsubval = &es->cmdoutval; - es = es->next; - } - if (cont) - continue; - - /* check for WAIT error */ - if (pid == -1) { - if (errno != ECHILD) - zerr("wait failed: %e", errno); - /* WAIT changed errno, so restore the original */ - errno = old_errno; - break; - } - - /* - * Find the process and job containing this pid and - * update it. - */ - if (findproc(pid, &jn, &pn, 0)) { -#if defined(HAVE_WAIT3) && defined(HAVE_GETRUSAGE) - struct timezone dummy_tz; - gettimeofday(&pn->endtime, &dummy_tz); - pn->status = status; - pn->ti = ru; -#else - update_process(pn, status); -#endif - update_job(jn); - } else if (findproc(pid, &jn, &pn, 1)) { - pn->status = status; - update_job(jn); - } else { - /* If not found, update the shell record of time spent by - * children in sub processes anyway: otherwise, this - * will get added on to the next found process that - * terminates. - */ - get_usage(); - } - } + wait_for_processes(); break; case SIGHUP: @@ -560,6 +600,7 @@ breaks = loops; errflag = 1; inerrflush(); + check_cursh_sig(SIGINT); } } break; @@ -823,7 +864,8 @@ * one, to aid in removing this one. However, if there's * already one at the current locallevel we just overwrite it. */ - if (!dontsavetrap && (isset(LOCALTRAPS) || sig == SIGEXIT) && + if (!dontsavetrap && + (sig == SIGEXIT ? !isset(POSIXTRAPS) : isset(LOCALTRAPS)) && locallevel && (!trapped || locallevel > (sigtrapped[sig] >> ZSIG_SHIFT))) dosavetrap(sig, locallevel); @@ -891,7 +933,7 @@ * so give it the next higher one. dosavetrap() is called * automatically where necessary. */ - if (sigtrapped[SIGEXIT]) { + if (sigtrapped[SIGEXIT] && !isset(POSIXTRAPS)) { locallevel++; unsettrap(SIGEXIT); locallevel--; @@ -909,7 +951,7 @@ { LinkNode ln; struct savetrap *st; - int exittr; + int exittr = 0; void *exitfn = NULL; /* @@ -917,9 +959,8 @@ * after all the other traps have been put back. * Don't do this inside another trap. */ - if (intrap) - exittr = 0; - else if ((exittr = sigtrapped[SIGEXIT])) { + if (!intrap && + !isset(POSIXTRAPS) && (exittr = sigtrapped[SIGEXIT])) { if (exittr & ZSIG_FUNC) { exitfn = removehashnode(shfunctab, "TRAPEXIT"); } else { @@ -964,7 +1005,8 @@ } if (exittr) { - dotrapargs(SIGEXIT, &exittr, exitfn); + if (!isset(POSIXTRAPS)) + dotrapargs(SIGEXIT, &exittr, exitfn); if (exittr & ZSIG_FUNC) shfunctab->freenode((HashNode)exitfn); else @@ -1178,7 +1220,7 @@ trap_state = TRAP_STATE_PRIMED; trapisfunc = isfunc = 0; - execode((Eprog)sigfn, 1, 0); + execode((Eprog)sigfn, 1, 0, "trap"); } runhookdef(AFTERTRAPHOOK, NULL); diff -Nru zsh-4.3.10/Src/subst.c zsh-4.3.11/Src/subst.c --- zsh-4.3.10/Src/subst.c 2009-05-20 11:00:58.000000000 +0200 +++ zsh-4.3.11/Src/subst.c 2010-12-16 10:26:50.000000000 +0100 @@ -675,6 +675,40 @@ return dest; } +#ifdef MULTIBYTE_SUPPORT +#define WCPADWIDTH(cchar, mw) wcpadwidth(cchar, mw) + +/* + * Width of character for padding purposes. + * 0: all characters count 1. + * 1: use width of multibyte character. + * 2: non-zero width characters count 1, zero width 0. + */ +static int +wcpadwidth(wchar_t wc, int multi_width) +{ + int width; + + switch (multi_width) + { + case 0: + return 1; + + case 1: + width = WCWIDTH(wc); + if (width >= 0) + return width; + return 0; + + default: + return WCWIDTH(wc) > 0 ? 1 : 0; + } +} + +#else +#define WCPADWIDTH(cchar, mw) (1) +#endif + /* * Pad the string str, returning a result from the heap (or str itself, * if it didn't need padding). If str is too large, it will be truncated. @@ -703,12 +737,6 @@ #endif ) { -#ifdef MULTIBYTE_SUPPORT -#define WCPADWIDTH(cchar) (multi_width ? WCWIDTH(cchar) : 1) -#else -#define WCPADWIDTH(cchar) (1) -#endif - char *def, *ret, *t, *r; int ls, ls2, lpreone, lpostone, lpremul, lpostmul, lr, f, m, c, cc, cl; convchar_t cchar; @@ -774,15 +802,20 @@ f = -f; MB_METACHARINIT(); while (f > 0) { - str += MB_METACHARLENCONV(str, &cchar); - f -= WCPADWIDTH(cchar); + cl = MB_METACHARLENCONV(str, &cchar); + if (!cl) + break; + str += cl; + f -= WCPADWIDTH(cchar, multi_width); } /* Now finish the first half. */ for (c = prenum; c > 0; ) { cl = MB_METACHARLENCONV(str, &cchar); + if (!cl) + break; while (cl--) *r++ = *str++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } else { if (f <= lpreone) { @@ -795,8 +828,11 @@ f = lpreone - f; /* So skip. */ for (t = preone; f > 0; ) { - t += MB_METACHARLENCONV(t, &cchar); - f -= WCPADWIDTH(cchar); + cl = MB_METACHARLENCONV(t, &cchar); + if (!cl) + break; + t += cl; + f -= WCPADWIDTH(cchar, multi_width); } /* Then copy the entire remainder. */ while (*t) @@ -813,8 +849,11 @@ /* Skip this much. */ m = lpremul - m; for (t = premul; m > 0; ) { - t += MB_METACHARLENCONV(t, &cchar); - m -= WCPADWIDTH(cchar); + cl = MB_METACHARLENCONV(t, &cchar); + if (!cl) + break; + t += cl; + m -= WCPADWIDTH(cchar, multi_width); } /* Output the rest. */ while (*t) @@ -825,9 +864,11 @@ MB_METACHARINIT(); for (c = lpremul, t = premul; c > 0; ) { cl = MB_METACHARLENCONV(t, &cchar); + if (!cl) + break; while (cl--) *r++ = *t++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } } @@ -840,7 +881,9 @@ /* Output the first half width of the original string. */ for (c = ls2; c > 0; ) { cl = MB_METACHARLENCONV(str, &cchar); - c -= WCPADWIDTH(cchar); + if (!cl) + break; + c -= WCPADWIDTH(cchar, multi_width); while (cl--) *r++ = *str++; } @@ -854,7 +897,9 @@ MB_METACHARINIT(); for (c = postnum; c > 0; ) { cl = MB_METACHARLENCONV(str, &cchar); - c -= WCPADWIDTH(cchar); + if (!cl) + break; + c -= WCPADWIDTH(cchar, multi_width); while (cl--) *r++ = *str++; } @@ -867,7 +912,9 @@ /* Can't fit unrepeated string, truncate it */ for (c = f; c > 0; ) { cl = MB_METACHARLENCONV(postone, &cchar); - c -= WCPADWIDTH(cchar); + if (!cl) + break; + c -= WCPADWIDTH(cchar, multi_width); while (cl--) *r++ = *postone++; } @@ -890,7 +937,9 @@ MB_METACHARINIT(); while (m > 0) { cl = MB_METACHARLENCONV(postmul, &cchar); - m -= WCPADWIDTH(cchar); + if (!cl) + break; + m -= WCPADWIDTH(cchar, multi_width); while (cl--) *r++ = *postmul++; } @@ -913,15 +962,20 @@ f = -f; MB_METACHARINIT(); while (f > 0) { - str += MB_METACHARLENCONV(str, &cchar); - f -= WCPADWIDTH(cchar); + cl = MB_METACHARLENCONV(str, &cchar); + if (!cl) + break; + str += cl; + f -= WCPADWIDTH(cchar, multi_width); } /* Copy the rest of the original string */ for (c = prenum; c > 0; ) { cl = MB_METACHARLENCONV(str, &cchar); + if (!cl) + break; while (cl--) *r++ = *str++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } else { /* @@ -941,8 +995,11 @@ f = lpreone - f; MB_METACHARINIT(); for (t = preone; f > 0; ) { - t += MB_METACHARLENCONV(t, &cchar); - f -= WCPADWIDTH(cchar); + cl = MB_METACHARLENCONV(t, &cchar); + if (!cl) + break; + t += cl; + f -= WCPADWIDTH(cchar, multi_width); } /* Copy the rest of preone */ while (*t) @@ -965,15 +1022,20 @@ m = lpremul - m; MB_METACHARINIT(); for (t = premul; m > 0; ) { - t += MB_METACHARLENCONV(t, &cchar); - m -= WCPADWIDTH(cchar); + cl = MB_METACHARLENCONV(t, &cchar); + if (!cl) + break; + t += cl; + m -= WCPADWIDTH(cchar, multi_width); } /* Now the rest of the repeated string. */ while (c > 0) { cl = MB_METACHARLENCONV(t, &cchar); + if (!cl) + break; while (cl--) *r++ = *t++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } for (cc = f / lpremul; cc--;) { @@ -983,9 +1045,11 @@ MB_METACHARINIT(); for (c = lpremul, t = premul; c > 0; ) { cl = MB_METACHARLENCONV(t, &cchar); + if (!cl) + break; while (cl--) *r++ = *t++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } } @@ -1021,9 +1085,11 @@ */ for (c = postnum; c > 0; ) { cl = MB_METACHARLENCONV(str, &cchar); + if (!cl) + break; while (cl--) *r++ = *str++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } else { /* @@ -1033,9 +1099,11 @@ */ for (c = ls; *str; ) { cl = MB_METACHARLENCONV(str, &cchar); + if (!cl) + break; while (cl--) *r++ = *str++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } MB_METACHARINIT(); if (f <= lpostone) { @@ -1046,9 +1114,11 @@ */ for (c = f; c > 0; ) { cl = MB_METACHARLENCONV(postone, &cchar); + if (!cl) + break; while (cl--) *r++ = *postone++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } } else { @@ -1057,9 +1127,11 @@ /* Copy the entire unrepeated string */ for (c = lpostone; *postone; ) { cl = MB_METACHARLENCONV(postone, &cchar); + if (!cl) + break; while (cl--) *r++ = *postone++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } if (lpostmul) { @@ -1068,9 +1140,11 @@ MB_METACHARINIT(); for (c = lpostmul, t = postmul; *t; ) { cl = MB_METACHARLENCONV(t, &cchar); + if (!cl) + break; while (cl--) *r++ = *t++; - c -= WCPADWIDTH(cchar); + c -= WCPADWIDTH(cchar, multi_width); } } /* @@ -1081,9 +1155,11 @@ MB_METACHARINIT(); while (m > 0) { cl = MB_METACHARLENCONV(postmul, &cchar); + if (!cl) + break; while (cl--) *r++ = *postmul++; - m -= WCPADWIDTH(cchar); + m -= WCPADWIDTH(cchar, multi_width); } } } @@ -1295,6 +1371,45 @@ return dst; } +/* + * See if an argument str looks like a subscript or length following + * a colon and parse it. It must be followed by a ':' or nothing. + * If this succeeds, expand and return the evaulated expression if + * found, else return NULL. + * + * We assume this is what is meant if the first character is not + * an alphabetic character or '&', which signify modifiers. + * + * Set *endp to point to the next character following. + */ +static char * +check_colon_subscript(char *str, char **endp) +{ + int sav; + + /* Could this be a modifier (or empty)? */ + if (!*str || ialpha(*str) || *str == '&') + return NULL; + + *endp = parse_subscript(str, 0, ':'); + if (!*endp) { + /* No trailing colon? */ + *endp = parse_subscript(str, 0, '\0'); + if (!*endp) + return NULL; + } + sav = **endp; + **endp = '\0'; + if (parsestr(str = dupstring(str))) + return NULL; + singsub(&str); + remnulargs(str); + untokenize(str); + + **endp = sav; + return str; +} + /* parameter substitution */ #define isstring(c) ((c) == '$' || (char)(c) == String || (char)(c) == Qstring) @@ -1358,7 +1473,8 @@ int plan9 = isset(RCEXPANDPARAM); /* * Likwise, but with ~ and ~~. Also, we turn it off later - * on if qt is passed down. + * on if qt is passed down. The value can go to 2 if we + * use ~ to force this on. */ int globsubst = isset(GLOBSUBST); /* @@ -1430,14 +1546,18 @@ */ int quotemod = 0, quotetype = QT_NONE, quoteerr = 0; /* - * (V) flag: fairly straightforward, except that as with so - * many flags it's not easy to decide where to put it in the order. + * Various fairly straightforward modifications, except that as with so + * many flags it's not easy to decide where to put them in the order. + * bit 0: (D) flag. + * bit 1: (V) flag. */ - int visiblemod = 0; + int mods = 0; /* * The (z) flag, nothing to do with SH_WORD_SPLIT which is tied * spbreak, see above; fairly straighforward in use but c.f. - * the comment for visiblemod. + * the comment for mods. + * + * This gets set to one of the LEXFLAGS_* values. */ int shsplit = 0; /* @@ -1485,7 +1605,7 @@ */ int aspar = 0; /* - * The (%) flag, c.f. visiblemod again. + * The (%) flag, c.f. mods again. */ int presc = 0; /* @@ -1520,6 +1640,12 @@ * and the argument passing to fetchvalue has another kludge. */ int subexp; + /* + * If we're referring to the positional parameters, then + * e.g ${*:1:1} refers to $1. + * This is for compatibility. + */ + int horrible_offset_hack = 0; *s++ = '\0'; /* @@ -1583,6 +1709,7 @@ switch (c) { case ')': case Outpar: + /* how can this happen? */ break; case '~': case Tilde: @@ -1648,12 +1775,25 @@ indord = 1; break; + case 'D': + mods |= 1; + break; case 'V': - visiblemod++; + mods |= 2; break; case 'q': - quotemod++, quotetype++; + if (quotetype == QT_DOLLARS) + goto flagerr; + if (s[1] == '-') { + if (quotemod) + goto flagerr; + s++; + quotemod = 1; + quotetype = QT_SINGLE_OPTIONAL; + } else { + quotemod++, quotetype++; + } break; case 'Q': quotemod--; @@ -1771,7 +1911,7 @@ case 'm': #ifdef MULTIBYTE_SUPPORT - multi_width = 1; + multi_width++; #endif break; @@ -1795,7 +1935,40 @@ break; case 'z': - shsplit = 1; + shsplit = LEXFLAGS_ACTIVE; + break; + + case 'Z': + t = get_strarg(++s, &arglen); + if (*t) { + sav = *t; + *t = 0; + while (*++s) { + switch (*s) { + case 'c': + /* Parse and keep comments */ + shsplit |= LEXFLAGS_COMMENTS_KEEP; + break; + + case 'C': + /* Parse and remove comments */ + shsplit |= LEXFLAGS_COMMENTS_STRIP; + break; + + case 'n': + /* Treat newlines as whitespace */ + shsplit |= LEXFLAGS_NEWLINE; + break; + + default: + *t = sav; + goto flagerr; + } + } + *t = sav; + s = t + arglen - 1; + } else + goto flagerr; break; case 'u': @@ -1807,6 +1980,25 @@ evalchar = 1; break; + case '_': + t = get_strarg(++s, &arglen); + if (*t) { + sav = *t; + *t = 0; + while (*++s) { + /* Reserved for future use */ + switch (*s) { + default: + *t = sav; + goto flagerr; + } + } + *t = sav; + s = t + arglen - 1; + } else + goto flagerr; + break; + default: flagerr: zerr("error in flags"); @@ -1860,12 +2052,12 @@ * spsep, NULL means $IFS. */ } else if (c == '~' || c == Tilde) { - /* GLOB_SUBST on or off (doubled) */ + /* GLOB_SUBST (forced) on or off (doubled) */ if ((c = *++s) == '~' || c == Tilde) { globsubst = 0; s++; } else - globsubst = 1; + globsubst = 2; } else if (c == '+') { /* * Return whether indicated parameter is set. @@ -1896,7 +2088,8 @@ break; } /* Don't activate special pattern characters if inside quotes */ - globsubst = globsubst && !qt; + if (qt) + globsubst = 0; /* * At this point, we usually expect a parameter name. @@ -2150,6 +2343,12 @@ val = getstrvalue(v); } } + /* See if this is a reference to the positional parameters. */ + if (v && v->pm && v->pm->gsu.a == &vararray_gsu && + (char ***)v->pm->u.data == &pparams) + horrible_offset_hack = 1; + else + horrible_offset_hack = 0; /* * Finished with the original parameter and its indices; * carry on looping to see if we need to do more indexing. @@ -2345,6 +2544,11 @@ if (!(flags & (SUB_MATCH|SUB_REST|SUB_BIND|SUB_EIND|SUB_LEN))) flags |= SUB_REST; + /* + * With ":" treat a value as unset if the variable is set but + * - (array) contains no elements + * - (scalar) contains an empty string + */ if (colf && !vunset) vunset = (isarr) ? !*aval : !*val || (*val == Nularg && !val[1]); @@ -2374,6 +2578,9 @@ opts[SHWORDSPLIT] = ws; copied = 1; spbreak = 0; + /* Leave globsubst on if forced */ + if (globsubst != 2) + globsubst = 0; } break; case ':': @@ -2547,8 +2754,14 @@ } getmatcharr(&aval, s, flags, flnum, replstr); } else { - if (vunset) + if (vunset) { + if (unset(UNSET)) { + *idend = '\0'; + zerr("%s: parameter not set", idbeg); + return NULL; + } val = dupstring(""); + } if (!copied) { val = dupstring(val); copied = 1; @@ -2575,6 +2788,116 @@ } val = dupstring(""); } + if (colf && inbrace) { + /* + * Look for ${PARAM:OFFSET} or ${PARAM:OFFSET:LENGTH}. + * This must appear before modifiers. For compatibility + * with bash we perform both standard string substitutions + * and math eval. + */ + char *check_offset2; + char *check_offset = check_colon_subscript(s, &check_offset2); + if (check_offset) { + zlong offset = mathevali(check_offset); + zlong length = (zlong)-1; + int offset_hack_argzero = 0; + if (errflag) + return NULL; + if ((*check_offset2 && *check_offset2 != ':')) { + zerr("invalid subscript: %s", check_offset); + return NULL; + } + if (*check_offset2) { + check_offset = check_colon_subscript(check_offset2 + 1, + &check_offset2); + if (*check_offset2 && *check_offset2 != ':') { + zerr("invalid length: %s", check_offset); + return NULL; + } + length = mathevali(check_offset); + if (errflag) + return NULL; + if (length < (zlong)0) { + zerr("invalid length: %s", check_offset); + return NULL; + } + } + if (horrible_offset_hack) { + /* + * As part of the 'orrible hoffset 'ack, + * (what hare you? Han 'orrible hoffset 'ack, + * sergeant major), if we are given a ksh/bash/POSIX + * style positional parameter array which includes + * offset 0, we use $0. + */ + if (offset == 0 && isarr) { + offset_hack_argzero = 1; + } else if (offset > 0) { + offset--; + } + } + if (isarr) { + int alen = arrlen(aval), count; + char **srcptr, **dstptr, **newarr; + + if (offset < 0) { + offset += alen; + if (offset < 0) + offset = 0; + } + if (offset_hack_argzero) + alen++; + if (length < 0) + length = alen; + if (offset > alen) + offset = alen; + if (offset + length > alen) + length = alen - offset; + count = length; + srcptr = aval + offset; + newarr = dstptr = (char **) + zhalloc((length+1)*sizeof(char *)); + if (count && offset_hack_argzero) { + *dstptr++ = dupstring(argzero); + count--; + } + while (count--) + *dstptr++ = dupstring(*srcptr++); + *dstptr = (char *)NULL; + aval = newarr; + } else { + char *sptr, *eptr; + if (offset < 0) { + MB_METACHARINIT(); + for (sptr = val; *sptr; ) { + sptr += MB_METACHARLEN(sptr); + offset++; + } + if (offset < 0) + offset = 0; + } + MB_METACHARINIT(); + for (sptr = val; *sptr && offset; ) { + sptr += MB_METACHARLEN(sptr); + offset--; + } + if (length >= 0) { + for (eptr = sptr; *eptr && length; ) { + eptr += MB_METACHARLEN(eptr); + length--; + } + val = dupstrpfx(sptr, eptr - sptr); + } else { + val = dupstring(sptr); + } + } + if (!*check_offset2) { + colf = 0; + } else { + s = check_offset2 + 1; + } + } + } if (colf) { /* * History style colon modifiers. May need to apply @@ -2801,8 +3124,26 @@ * the repetitions of the (q) flag. */ if (quotemod) { - if (quotetype > QT_DOLLARS) - quotetype = QT_DOLLARS; + int pre = 0, post = 0; + + if (quotemod > 0 && quotetype > QT_BACKSLASH) { + switch (quotetype) + { + case QT_DOLLARS: + /* space for "$" */ + pre = 2; + post = 1; + break; + + case QT_SINGLE_OPTIONAL: + /* quotes will be added for us */ + break; + + default: + pre = post = 1; + break; + } + } if (isarr) { char **ap; @@ -2816,20 +3157,20 @@ char *tmp; for (; *ap; ap++) { - int pre = quotetype != QT_DOLLARS ? 1 : 2; tmp = quotestring(*ap, NULL, quotetype); sl = strlen(tmp); - *ap = (char *) zhalloc(pre + sl + 2); + *ap = (char *) zhalloc(pre + sl + post + 1); strcpy((*ap) + pre, tmp); - ap[0][pre - 1] = ap[0][pre + sl] = - (quotetype != QT_DOUBLE ? '\'' : '"'); + if (pre) + ap[0][pre - 1] = ap[0][pre + sl] = + (quotetype != QT_DOUBLE ? '\'' : '"'); ap[0][pre + sl + 1] = '\0'; if (quotetype == QT_DOLLARS) ap[0][0] = '$'; } } else for (; *ap; ap++) - *ap = quotestring(*ap, NULL, QT_BACKSLASH); + *ap = quotestring(*ap, NULL, QT_BACKSLASH_SHOWNULL); } else { int one = noerrs, oef = errflag, haserr = 0; @@ -2853,20 +3194,20 @@ val = dupstring(val), copied = 1; if (quotemod > 0) { if (quotetype > QT_BACKSLASH) { - int pre = quotetype != QT_DOLLARS ? 1 : 2; int sl; char *tmp; tmp = quotestring(val, NULL, quotetype); sl = strlen(tmp); val = (char *) zhalloc(pre + sl + 2); strcpy(val + pre, tmp); - val[pre - 1] = val[pre + sl] = - (quotetype != QT_DOUBLE ? '\'' : '"'); + if (pre) + val[pre - 1] = val[pre + sl] = + (quotetype != QT_DOUBLE ? '\'' : '"'); val[pre + sl + 1] = '\0'; if (quotetype == QT_DOLLARS) val[0] = '$'; } else - val = quotestring(val, NULL, QT_BACKSLASH); + val = quotestring(val, NULL, QT_BACKSLASH_SHOWNULL); } else { int one = noerrs, oef = errflag, haserr; @@ -2887,19 +3228,26 @@ } /* * Transform special characters in the string to make them - * printable. + * printable, or to show directories, or possibly even both. */ - if (visiblemod) { + if (mods) { if (isarr) { char **ap; if (!copied) aval = arrdup(aval), copied = 1; - for (ap = aval; *ap; ap++) - *ap = nicedupstring(*ap); + for (ap = aval; *ap; ap++) { + if (mods & 1) + *ap = substnamedir(*ap); + if (mods & 2) + *ap = nicedupstring(*ap); + } } else { if (!copied) val = dupstring(val), copied = 1; - val = nicedupstring(val); + if (mods & 1) + val = substnamedir(val); + if (mods & 2) + val = nicedupstring(val); } } /* @@ -2913,10 +3261,10 @@ if (isarr) { char **ap; for (ap = aval; *ap; ap++) - list = bufferwords(list, *ap, NULL); + list = bufferwords(list, *ap, NULL, shsplit); isarr = 0; } else - list = bufferwords(NULL, val, NULL); + list = bufferwords(NULL, val, NULL, shsplit); if (!list || !firstnode(list)) val = dupstring(""); @@ -3248,6 +3596,13 @@ ptr1 += charlen; for (ptr2 = ptr1, charlen = 0; *ptr2; ptr2 += charlen) { convchar_t del2; + if ((*ptr2 == Bnull || *ptr2 == '\\') && ptr2[1]) { + /* in double quotes, the backslash isn't tokenized */ + if (*ptr2 == '\\') + *ptr2 = Bnull; + charlen = 2; + continue; + } charlen = MB_METACHARLENCONV(ptr2, &del2); #ifdef MULTIBYTE_SUPPORT if (del2 == WEOF) @@ -3267,6 +3622,13 @@ *ptr1end = '\0'; for (ptr3 = ptr2, charlen = 0; *ptr3; ptr3 += charlen) { convchar_t del3; + if ((*ptr3 == Bnull || *ptr3 == '\\') && ptr3[1]) { + /* in double quotes, the backslash isn't tokenized */ + if (*ptr3 == '\\') + *ptr3 = Bnull; + charlen = 2; + continue; + } charlen = MB_METACHARLENCONV(ptr3, &del3); #ifdef MULTIBYTE_SUPPORT if (del3 == WEOF) @@ -3292,9 +3654,20 @@ chuck(tt--); if (!isset(HISTSUBSTPATTERN)) untokenize(hsubl); - for (tt = hsubr = ztrdup(ptr2); *tt; tt++) - if (inull(*tt) && *tt != Bnullkeep) - chuck(tt--); + for (tt = hsubr = ztrdup(ptr2); *tt; tt++) { + if (inull(*tt) && *tt != Bnullkeep) { + if (*tt == Bnull && (tt[1] == '&' || tt[1] == '\\')) { + /* + * The substitution will treat \& and \\ + * specially. We need to leave real \'s + * as the first character for this to work. + */ + *tt = '\\'; + } else { + chuck(tt--); + } + } + } *ptr1end = sav1; *ptr3 = sav; *ptr = ptr3 - 1; @@ -3398,7 +3771,7 @@ subst(©, hsubl, hsubr, gbal); break; case 'q': - copy = quotestring(copy, NULL, QT_BACKSLASH); + copy = quotestring(copy, NULL, QT_BACKSLASH_SHOWNULL); break; case 'Q': { diff -Nru zsh-4.3.10/Src/system.h zsh-4.3.11/Src/system.h --- zsh-4.3.10/Src/system.h 2009-06-01 11:03:36.000000000 +0200 +++ zsh-4.3.11/Src/system.h 2010-02-22 11:12:31.000000000 +0100 @@ -37,7 +37,7 @@ #endif #endif -#if defined(__linux) || defined(__GNU__) +#if defined(__linux) || defined(__GNU__) || defined(__GLIBC__) /* * Turn on numerous extensions. * This is in order to get the functions for manipulating /dev/ptmx. @@ -304,16 +304,22 @@ # endif #endif +/* + * The number of file descriptors we'll allocate initially. + * We will reallocate later if necessary. + */ +#define ZSH_INITIAL_OPEN_MAX 64 #ifndef OPEN_MAX # ifdef NOFILE # define OPEN_MAX NOFILE # else /* so we will just pick something */ -# define OPEN_MAX 64 +# define OPEN_MAX ZSH_INITIAL_OPEN_MAX # endif #endif #ifndef HAVE_SYSCONF -# define zopenmax() ((long) OPEN_MAX) +# define zopenmax() ((long) (OPEN_MAX > ZSH_INITIAL_OPEN_MAX ? \ + ZSH_INITIAL_OPEN_MAX : OPEN_MAX)) #endif #ifdef HAVE_FCNTL_H diff -Nru zsh-4.3.10/Src/text.c zsh-4.3.11/Src/text.c --- zsh-4.3.10/Src/text.c 2008-09-11 19:00:29.000000000 +0200 +++ zsh-4.3.11/Src/text.c 2010-09-14 16:46:26.000000000 +0200 @@ -30,7 +30,7 @@ #include "zsh.mdh" #include "text.pro" -static char *tptr, *tbuf, *tlim; +static char *tptr, *tbuf, *tlim, *tpending; static int tsiz, tindent, tnewlins, tjob; static void @@ -41,6 +41,53 @@ tindent--; } +/* + * Add a pair of pending strings and a newline. + * This is used for here documents. It will be output when + * we have a lexically significant newline. + * + * This isn't that common and a multiple use on the same line is *very* + * uncommon; we don't try to optimise it. + * + * This is not used for job text; there we bear the inaccuracy + * of turning this into a here-string. + */ +static void +taddpending(char *str1, char *str2) +{ + int len = strlen(str1) + strlen(str2) + 1; + + /* + * We don't strip newlines from here-documents converted + * to here-strings, so no munging is required except to + * add a newline after the here-document terminator. + * However, because the job text doesn't automatically + * have a newline right at the end, we handle that + * specially. + */ + if (tpending) { + int oldlen = strlen(tpending); + tpending = realloc(tpending, len + oldlen); + sprintf(tpending + oldlen, "%s%s", str1, str2); + } else { + tpending = (char *)zalloc(len); + sprintf(tpending, "%s%s", str1, str2); + } +} + +/* Output the pending string where appropriate */ + +static void +tdopending(void) +{ + if (tpending) { + taddchr('\n'); + taddstr(tpending); + zsfree(tpending); + tpending = NULL; + } +} + /* add a character to the text buffer */ /**/ @@ -102,16 +149,20 @@ /**/ static void -taddnl(void) +taddnl(int no_semicolon) { int t0; if (tnewlins) { + tdopending(); taddchr('\n'); for (t0 = 0; t0 != tindent; t0++) taddchr('\t'); - } else + } else if (no_semicolon) { + taddstr(" "); + } else { taddstr("; "); + } } /* get a permanent textual representation of n */ @@ -250,7 +301,7 @@ while (1) { if (stack) { if (!(s = tstack)) - return; + break; if (s->pop) { tstack = s->prev; s->prev = tfree; @@ -275,7 +326,7 @@ } if (!(stack = (WC_LIST_TYPE(code) & Z_END))) { if (tnewlins) - taddnl(); + taddnl(0); else taddstr((WC_LIST_TYPE(code) & Z_ASYNC) ? " " : "; "); s->code = *state->pc++; @@ -355,7 +406,7 @@ if (!s) { taddstr("("); tindent++; - taddnl(); + taddnl(1); n = tpush(code, 1); n->u._subsh.end = state->pc + WC_SUBSH_SKIP(code); /* skip word only use for try/always */ @@ -363,7 +414,8 @@ } else { state->pc = s->u._subsh.end; dec_tindent(); - taddnl(); + /* semicolon is optional here but more standard */ + taddnl(0); taddstr(")"); stack = 1; } @@ -372,7 +424,7 @@ if (!s) { taddstr("{"); tindent++; - taddnl(); + taddnl(1); n = tpush(code, 1); n->u._subsh.end = state->pc + WC_CURSH_SKIP(code); /* skip word only use for try/always */ @@ -380,7 +432,8 @@ } else { state->pc = s->u._subsh.end; dec_tindent(); - taddnl(); + /* semicolon is optional here but more standard */ + taddnl(0); taddstr("}"); stack = 1; } @@ -412,7 +465,7 @@ } else { taddstr(" () {"); tindent++; - taddnl(); + taddnl(1); n = tpush(code, 1); n->u._funcdef.strs = state->strs; n->u._funcdef.end = end; @@ -423,7 +476,7 @@ state->strs = s->u._funcdef.strs; state->pc = s->u._funcdef.end; dec_tindent(); - taddnl(); + taddnl(0); taddstr("}"); stack = 1; } @@ -445,15 +498,15 @@ taddstr(" in "); taddlist(state, *state->pc++); } - taddnl(); + taddnl(0); taddstr("do"); } tindent++; - taddnl(); + taddnl(0); tpush(code, 1); } else { dec_tindent(); - taddnl(); + taddnl(0); taddstr("done"); stack = 1; } @@ -467,11 +520,11 @@ taddlist(state, *state->pc++); } tindent++; - taddnl(); + taddnl(0); tpush(code, 1); } else { dec_tindent(); - taddnl(); + taddnl(0); taddstr("done"); stack = 1; } @@ -484,14 +537,14 @@ tpush(code, 0); } else if (!s->pop) { dec_tindent(); - taddnl(); + taddnl(0); taddstr("do"); tindent++; - taddnl(); + taddnl(0); s->pop = 1; } else { dec_tindent(); - taddnl(); + taddnl(0); taddstr("done"); stack = 1; } @@ -500,14 +553,14 @@ if (!s) { taddstr("repeat "); taddstr(ecgetstr(state, EC_NODUP, NULL)); - taddnl(); + taddnl(0); taddstr("do"); tindent++; - taddnl(); + taddnl(0); tpush(code, 1); } else { dec_tindent(); - taddnl(); + taddnl(0); taddstr("done"); stack = 1; } @@ -522,7 +575,7 @@ if (state->pc >= end) { if (tnewlins) - taddnl(); + taddnl(0); else taddchr(' '); taddstr("esac"); @@ -530,7 +583,7 @@ } else { tindent++; if (tnewlins) - taddnl(); + taddnl(0); else taddchr(' '); taddstr("("); @@ -559,7 +612,7 @@ break; } if (tnewlins) - taddnl(); + taddnl(0); else taddchr(' '); taddstr("("); @@ -588,7 +641,7 @@ } dec_tindent(); if (tnewlins) - taddnl(); + taddnl(0); else taddchr(' '); taddstr("esac"); @@ -610,14 +663,14 @@ stack = 1; } else if (s->u._if.cond) { dec_tindent(); - taddnl(); + taddnl(0); taddstr("then"); tindent++; - taddnl(); + taddnl(0); s->u._if.cond = 0; } else if (state->pc < s->u._if.end) { dec_tindent(); - taddnl(); + taddnl(0); code = *state->pc++; if (WC_IF_TYPE(code) == WC_IF_ELIF) { taddstr("elif "); @@ -626,12 +679,12 @@ } else { taddstr("else"); tindent++; - taddnl(); + taddnl(0); } } else { s->pop = 1; dec_tindent(); - taddnl(); + taddnl(0); taddstr("fi"); stack = 1; } @@ -762,7 +815,7 @@ if (!s) { taddstr("{"); tindent++; - taddnl(); + taddnl(0); n = tpush(code, 0); state->pc++; /* this is the end of the try block alone */ @@ -770,14 +823,14 @@ } else if (!s->pop) { state->pc = s->u._subsh.end; dec_tindent(); - taddnl(); + taddnl(0); taddstr("} always {"); tindent++; - taddnl(); + taddnl(0); s->pop = 1; } else { dec_tindent(); - taddnl(); + taddnl(0); taddstr("}"); stack = 1; } @@ -790,6 +843,7 @@ return; } } + tdopending(); } /**/ @@ -828,27 +882,53 @@ taddchr('}'); } else if (f->fd1 != (IS_READFD(f->type) ? 0 : 1)) taddchr('0' + f->fd1); - taddstr(fstr[f->type]); - if (f->type != REDIR_MERGEIN && f->type != REDIR_MERGEOUT) - taddchr(' '); if (f->type == REDIR_HERESTR && (f->flags & REDIRF_FROM_HEREDOC)) { - /* - * Strings that came from here-documents are converted - * to here strings without quotation, so add that - * now. If tokens are present we need to do double quoting. - */ - if (!has_token(f->name)) { - taddchr('\''); - taddstr(quotestring(f->name, NULL, QT_SINGLE)); - taddchr('\''); + if (tnewlins) { + /* + * Strings that came from here-documents are converted + * to here strings without quotation, so convert them + * back. + */ + taddstr(fstr[REDIR_HEREDOC]); + taddstr(f->here_terminator); + taddpending(f->name, f->munged_here_terminator); } else { - taddchr('"'); - taddstr(quotestring(f->name, NULL, QT_DOUBLE)); - taddchr('"'); + taddstr(fstr[REDIR_HERESTR]); + /* + * Just a quick and dirty representation. + * Remove a terminating newline, if any. + */ + int fnamelen = strlen(f->name); + int sav; + if (fnamelen > 0 && f->name[fnamelen-1] == '\n') { + sav = 1; + f->name[fnamelen-1] = '\0'; + } else + sav = 0; + /* + * Strings that came from here-documents are converted + * to here strings without quotation, so add that + * now. If tokens are present we need to do double quoting. + */ + if (!has_token(f->name)) { + taddchr('\''); + taddstr(quotestring(f->name, NULL, QT_SINGLE)); + taddchr('\''); + } else { + taddchr('"'); + taddstr(quotestring(f->name, NULL, QT_DOUBLE)); + taddchr('"'); + } + if (sav) + f->name[fnamelen-1] = '\n'; } - } else + } else { + taddstr(fstr[f->type]); + if (f->type != REDIR_MERGEIN && f->type != REDIR_MERGEOUT) + taddchr(' '); taddstr(f->name); + } taddchr(' '); break; #ifdef DEBUG diff -Nru zsh-4.3.10/Src/utils.c zsh-4.3.11/Src/utils.c --- zsh-4.3.10/Src/utils.c 2009-05-19 13:18:11.000000000 +0200 +++ zsh-4.3.11/Src/utils.c 2010-12-20 11:00:54.000000000 +0100 @@ -1,3 +1,4 @@ + /* * utils.c - miscellaneous utilities * @@ -605,6 +606,44 @@ /**/ #endif /* MULTIBYTE_SUPPORT */ +/* + * Search the path for prog and return the file name. + * The returned value is unmetafied and in the unmeta storage + * area (N.B. should be duplicated if not used immediately and not + * equal to *namep). + * + * If namep is not NULL, *namep is set to the metafied programme + * name, which is in heap storage. + */ +/**/ +char * +pathprog(char *prog, char **namep) +{ + char **pp, ppmaxlen = 0, *buf, *funmeta; + struct stat st; + + for (pp = path; *pp; pp++) + { + int len = strlen(*pp); + if (len > ppmaxlen) + ppmaxlen = len; + } + buf = zhalloc(ppmaxlen + strlen(prog) + 2); + for (pp = path; *pp; pp++) { + sprintf(buf, "%s/%s", *pp, prog); + funmeta = unmeta(buf); + if (access(funmeta, F_OK) == 0 && + stat(funmeta, &st) >= 0 && + !S_ISDIR(st.st_mode)) { + if (namep) + *namep = buf; + return funmeta; + } + } + + return NULL; +} + /* get a symlink-free pathname for s relative to PWD */ /**/ @@ -691,6 +730,8 @@ zsfree(*pp); if (!strcmp(xbuf, "/")) continue; + if (!*xbuf) + continue; p = xbuf + strlen(xbuf); while (*--p != '/'); *p = '\0'; @@ -763,6 +804,26 @@ } } +/* + * Substitute a directory using a name. + * If there is none, return the original argument. + * + * At this level all strings involved are metafied. + */ + +/**/ +char * +substnamedir(char *s) +{ + Nameddir d = finddir(s); + + if (!d) + return quotestring(s, NULL, QT_BACKSLASH); + return zhtricat("~", d->node.nam, quotestring(s + strlen(d->dir), + NULL, QT_BACKSLASH)); +} + + /* Returns the current username. It caches the username * * and uid to try to avoid requerying the password files * * or NIS/NIS+ database. */ @@ -816,9 +877,13 @@ } } -/* See if a path has a named directory as its prefix. * - * If passed a NULL argument, it will invalidate any * - * cached information. */ +/* + * See if a path has a named directory as its prefix. + * If passed a NULL argument, it will invalidate any + * cached information. + * + * s here is metafied. + */ /**/ Nameddir @@ -857,9 +922,7 @@ scanhashtable(nameddirtab, 0, 0, 0, finddir_scan, 0); if (func) { - char *dir_meta = metafy(finddir_full, strlen(finddir_full), - META_ALLOC); - char **ares = subst_string_by_func(func, "d", dir_meta); + char **ares = subst_string_by_func(func, "d", finddir_full); int len; if (ares && arrlen(ares) >= 2 && (len = (int)zstrtol(ares[1], NULL, 10)) > finddir_best) { @@ -870,8 +933,6 @@ finddir_last->diff = len - strlen(finddir_last->node.nam); finddir_best = len; } - if (dir_meta != finddir_full) - zsfree(dir_meta); } return finddir_last; @@ -981,6 +1042,10 @@ return NULL; } +/* + * Compare directories. Both are metafied. + */ + /**/ static int dircmp(char *s, char *t) @@ -1179,6 +1244,7 @@ memcpy(arrnam + namlen, HOOK_SUFFIX, HOOK_SUFFIX_LEN); if ((arrptr = getaparam(arrnam))) { + arrptr = arrdup(arrptr); for (; *arrptr; arrptr++) { if ((shfunc = getshfunc(*arrptr))) { int newret = doshfunc(shfunc, lnklst, 1); @@ -1219,16 +1285,15 @@ char *eolmark = getsparam("PROMPT_EOL_MARK"); char *str; int percents = opts[PROMPTPERCENT], w = 0; - if (!eolmark || !*eolmark) + if (!eolmark) eolmark = "%B%S%#%s%b"; opts[PROMPTPERCENT] = 1; str = promptexpand(eolmark, 1, NULL, NULL, NULL); countprompt(str, &w, 0, -1); opts[PROMPTPERCENT] = percents; zputs(str, shout); - for (w = (int)columns - w - !hasxn; w > 0; w--) - putc(' ', shout); - putc('\r', shout); + fprintf(shout, "%*s\r%*s\r", (int)columns - w - !hasxn, "", w, ""); + fflush(shout); free(str); } @@ -1353,7 +1418,7 @@ usav = zalloc(underscoreused); if (usav) - memcpy(usav, underscore, underscoreused); + memcpy(usav, zunderscore, underscoreused); setunderscore(*s); @@ -1618,6 +1683,27 @@ } } +/* + * Ensure the fdtable is large enough for fd, and that the + * maximum fd is set appropriately. + */ +static void +check_fd_table(int fd) +{ + if (fd <= max_zsh_fd) + return; + + if (fd >= fdtable_size) { + int old_size = fdtable_size; + while (fd >= fdtable_size) + fdtable = zrealloc(fdtable, + (fdtable_size *= 2)*sizeof(*fdtable)); + memset(fdtable + old_size, 0, + (fdtable_size - old_size) * sizeof(*fdtable)); + } + max_zsh_fd = fd; +} + /* Move a fd to a place >= 10 and mark the new fd in fdtable. If the fd * * is already >= 10, it is not moved. If it is invalid, -1 is returned. */ @@ -1631,37 +1717,76 @@ #else int fe = movefd(dup(fd)); #endif + /* + * To close or not to close if fe is -1? + * If it is -1, we haven't moved the fd, so if we close + * it we lose it; but we're probably not going to be able + * to use it in situ anyway. So probably better to avoid a leak. + */ zclose(fd); fd = fe; } if(fd != -1) { - if (fd > max_zsh_fd) { - while (fd >= fdtable_size) - fdtable = zrealloc(fdtable, - (fdtable_size *= 2)*sizeof(*fdtable)); - max_zsh_fd = fd; - } + check_fd_table(fd); fdtable[fd] = FDT_INTERNAL; } return fd; } -/* Move fd x to y. If x == -1, fd y is closed. */ +/* + * Move fd x to y. If x == -1, fd y is closed. + * Returns y for success, -1 for failure. + */ /**/ -mod_export void +mod_export int redup(int x, int y) { + int ret = y; + if(x < 0) zclose(y); else if (x != y) { - while (y >= fdtable_size) - fdtable = zrealloc(fdtable, (fdtable_size *= 2)*sizeof(*fdtable)); - dup2(x, y); - if ((fdtable[y] = fdtable[x]) && y > max_zsh_fd) - max_zsh_fd = y; + if (dup2(x, y) == -1) { + ret = -1; + } else { + check_fd_table(y); + fdtable[y] = fdtable[x]; + if (fdtable[y] == FDT_FLOCK || fdtable[y] == FDT_FLOCK_EXEC) + fdtable[y] = FDT_INTERNAL; + } + /* + * Closing any fd to the locked file releases the lock. + * This isn't expected to happen, it's here for completeness. + */ + if (fdtable[x] == FDT_FLOCK) + fdtable_flocks--; zclose(x); } + + return ret; +} + +/* + * Indicate that an fd has a file lock; if cloexec is 1 it will be closed + * on exec. + * The fd should already be known to fdtable (e.g. by movefd). + * Note the fdtable code doesn't care what sort of lock + * is used; this simply prevents the main shell exiting prematurely + * when it holds a lock. + */ + +/**/ +mod_export void +addlockfd(int fd, int cloexec) +{ + if (cloexec) { + if (fdtable[fd] != FDT_FLOCK) + fdtable_flocks++; + fdtable[fd] = FDT_FLOCK; + } else { + fdtable[fd] = FDT_FLOCK_EXEC; + } } /* Close the given fd, and clear it from fdtable. */ @@ -1671,6 +1796,16 @@ zclose(int fd) { if (fd >= 0) { + /* + * We sometimes zclose() an fd twice where the second + * time is a catch-all in case there was a failure using + * the fd. This is harmless but we need to trap it + * for the error check here. + */ + DPUTS2(fd > max_zsh_fd && fdtable[fd] != FDT_UNUSED, + "BUG: fd is %d, max_zsh_fd is %d", fd, max_zsh_fd); + if (fdtable[fd] == FDT_FLOCK) + fdtable_flocks--; fdtable[fd] = FDT_UNUSED; while (max_zsh_fd > 0 && fdtable[max_zsh_fd] == FDT_UNUSED) max_zsh_fd--; @@ -1683,6 +1818,22 @@ return -1; } +/* + * Close an fd returning 0 if used for locking; return -1 if it isn't. + */ + +/**/ +mod_export int +zcloselockfd(int fd) +{ + if (fd > max_zsh_fd) + return -1; + if (fdtable[fd] != FDT_FLOCK && fdtable[fd] != FDT_FLOCK_EXEC) + return -1; + zclose(fd); + return 0; +} + #ifdef HAVE__MKTEMP extern char *_mktemp(char *); #endif @@ -2119,6 +2270,56 @@ return (getquery("ny", 1) == 'y'); } +/**/ +mod_export ssize_t +read_loop(int fd, char *buf, size_t len) +{ + ssize_t got = len; + + while (1) { + ssize_t ret = read(fd, buf, len); + if (ret == len) + break; + if (ret <= 0) { + if (ret < 0) { + if (errno == EINTR) + continue; + if (fd != SHTTY) + zwarn("read failed: %e", errno); + } + return ret; + } + buf += ret; + len -= ret; + } + + return got; +} + +/**/ +mod_export ssize_t +write_loop(int fd, const char *buf, size_t len) +{ + ssize_t wrote = len; + + while (1) { + ssize_t ret = write(fd, buf, len); + if (ret == len) + break; + if (ret < 0) { + if (errno == EINTR) + continue; + if (fd != SHTTY) + zwarn("write failed: %e", errno); + return -1; + } + buf += ret; + len -= ret; + } + + return wrote; +} + static int read1char(int echo) { @@ -2129,7 +2330,7 @@ return -1; } if (echo) - write(SHTTY, &c, 1); + write_loop(SHTTY, &c, 1); return STOUC(c); } @@ -2144,8 +2345,11 @@ ioctl(SHTTY, FIONREAD, (char *)&val); if (purge) { - for (; val; val--) - read(SHTTY, &c, 1); + for (; val; val--) { + if (read(SHTTY, &c, 1) != 1) { + /* Do nothing... */ + } + } } #endif @@ -2180,7 +2384,7 @@ if (noquery(purge)) { if (!isem) settyinfo(&shttyinfo); - write(SHTTY, "n\n", 2); + write_loop(SHTTY, "n\n", 2); return 'n'; } @@ -2203,9 +2407,9 @@ zbeep(); } if (c >= 0) - write(SHTTY, &c, 1); + write_loop(SHTTY, &c, 1); if (nl) - write(SHTTY, "\n", 1); + write_loop(SHTTY, "\n", 1); if (isem) { if (c != '\n') @@ -2234,7 +2438,7 @@ } } #endif - write(SHTTY, "\n", 1); + write_loop(SHTTY, "\n", 1); } } settyinfo(&shttyinfo); @@ -2489,10 +2693,10 @@ *buf++ = '0' + tm->tm_mday / 10; *buf++ = '0' + tm->tm_mday % 10; break; - case 'e': + case 'f': strip = 1; /* FALLTHROUGH */ - case 'f': + case 'e': if (tm->tm_mday > 9) *buf++ = '0' + tm->tm_mday / 10; else if (!strip) @@ -3046,9 +3250,9 @@ if ((vb = getsparam("ZBEEP"))) { int len; vb = getkeystring(vb, &len, GETKEYS_BINDKEY, NULL); - write(SHTTY, vb, len); + write_loop(SHTTY, vb, len); } else if (isset(BEEP)) - write(SHTTY, "\07", 1); + write_loop(SHTTY, "\07", 1); unqueue_signals(); } @@ -3128,7 +3332,8 @@ typtab[t0] |= ITOK | IMETA; for (t0 = (int)STOUC(Snull); t0 <= (int)STOUC(Nularg); t0++) typtab[t0] |= ITOK | IMETA | INULL; - for (s = ifs ? ifs : DEFAULT_IFS; *s; s++) { + for (s = ifs ? ifs : EMULATION(EMULATE_KSH|EMULATE_SH) ? + ztrdup(DEFAULT_IFS_SH) : ztrdup(DEFAULT_IFS); *s; s++) { int c = STOUC(*s == Meta ? *++s ^ 32 : *s); #ifdef MULTIBYTE_SUPPORT if (!isascii(c)) { @@ -3162,7 +3367,8 @@ } #ifdef MULTIBYTE_SUPPORT set_widearray(wordchars, &wordchars_wide); - set_widearray(ifs ? ifs : DEFAULT_IFS, &ifs_wide); + set_widearray(ifs ? ifs : EMULATION(EMULATE_KSH|EMULATE_SH) ? + ztrdup(DEFAULT_IFS_SH) : ztrdup(DEFAULT_IFS), &ifs_wide); #endif for (s = SPECCHARS; *s; s++) typtab[STOUC(*s)] |= ISPECIAL; @@ -3413,8 +3619,11 @@ * otherwise a copy of oldname with a corrected prefix is returned. * * Rationale for this, if there ever was any, has been forgotten. */ for (;;) { - while (*old == '/') + while (*old == '/') { + if ((new - newname) >= (sizeof(newname)-1)) + return NULL; *new++ = *old++; + } *new = '\0'; if (*old == '\0') return newname; @@ -3590,7 +3799,7 @@ { static int ep = 0; - if (jobbing) { + if (jobbing && interact) { #ifdef HAVE_TCSETPGRP if (SHTTY != -1 && tcsetpgrp(SHTTY, pgrp) == -1 && !ep) #else @@ -4258,6 +4467,8 @@ * until end of string. * * If width is 1, return total character width rather than number. + * If width is greater than 1, return 1 if character has non-zero width, + * else 0. */ /**/ @@ -4296,13 +4507,15 @@ } else if (width) { /* * Returns -1 if not a printable character. We - * turn this into 1 for backward compatibility. + * turn this into 0. */ int wcw = WCWIDTH(wc); - if (wcw >= 0) - num += wcw; - else - num++; + if (wcw > 0) { + if (width == 1) + num += wcw; + else + num++; + } } else num++; laststart = ptr; @@ -4400,7 +4613,7 @@ } /* - * Quote the string s and return the result. + * Quote the string s and return the result as a string from the heap. * * If e is non-zero, the * pointer it points to may point to a position in s and in e the position @@ -4408,6 +4621,11 @@ * * The last argument is a QT_ value defined in zsh.h other than QT_NONE. * + * Most quote styles other than backslash assume the quotes are to + * be added outside quotestring(). QT_SINGLE_OPTIONAL is different: + * the single quotes are only added where necessary, so the + * whole expression is handled here. + * * The string may be metafied and contain tokens. */ @@ -4417,20 +4635,60 @@ { const char *u, *tt; char *v; + int alloclen; + char *buf; + int sf = 0, shownull; /* - * With QT_BACKSLASH we may need to use $'\300' stuff. - * Keep memory usage within limits by allocating temporary - * storage and using heap for correct size at end. + * quotesub is used with QT_SINGLE_OPTIONAL. + * quotesub = 0: mechanism not active + * quotesub = 1: mechanism pending, no "'" yet; + * needs adding at quotestart. + * quotesub = 2: mechanism active, added opening "'"; need + * closing "'". */ - int alloclen = (instring == QT_BACKSLASH ? 7 : 4) * strlen(s) + 1; - char *buf = zshcalloc(alloclen); - int sf = 0; + int quotesub = 0, slen; + char *quotestart; convchar_t cc; const char *uend; - DPUTS(instring < QT_BACKSLASH || instring > QT_DOLLARS, + slen = strlen(s); + if (instring == QT_BACKSLASH_SHOWNULL) { + shownull = 1; + instring = QT_BACKSLASH; + } else { + shownull = 0; + } + switch (instring) + { + case QT_BACKSLASH: + /* + * With QT_BACKSLASH we may need to use $'\300' stuff. + * Keep memory usage within limits by allocating temporary + * storage and using heap for correct size at end. + */ + alloclen = slen * 7 + 1; + if (!*s && shownull) + alloclen += 2; /* for '' */ + break; + + case QT_SINGLE_OPTIONAL: + /* + * Here, we may need to add single quotes. + */ + alloclen = slen * 4 + 3; + quotesub = 1; + break; + + default: + alloclen = slen * 4 + 1; + break; + } + + tt = quotestart = v = buf = zshcalloc(alloclen); + + DPUTS(instring < QT_BACKSLASH || instring == QT_BACKTICK || + instring > QT_SINGLE_OPTIONAL, "BUG: bad quote type in quotestring"); - tt = v = buf; u = s; if (instring == QT_DOLLARS) { /* @@ -4472,6 +4730,13 @@ } else { + if (shownull) { + /* We can't show an empty string with just backslash quoting. */ + if (!*u) { + *v++ = '\''; + *v++ = '\''; + } + } /* * Here there are syntactic special characters, so * we start by going through bytewise. @@ -4526,21 +4791,77 @@ (u[-1] == '=' || u[-1] == ':')) || (*u == '~' && isset(EXTENDEDGLOB))) && (instring == QT_BACKSLASH || + instring == QT_SINGLE_OPTIONAL || (isset(BANGHIST) && *u == (char)bangchar && instring != QT_SINGLE) || (instring == QT_DOUBLE && (*u == '$' || *u == '`' || *u == '\"' || *u == '\\')) || (instring == QT_SINGLE && *u == '\''))) { - if (*u == '\n' || (instring == QT_SINGLE && *u == '\'')) { - if (unset(RCQUOTES)) { + if (instring == QT_SINGLE_OPTIONAL) { + if (quotesub == 1) { + /* + * We haven't yet had to quote at the start. + */ + if (*u == '\'') { + /* + * We don't need to. + */ + *v++ = '\\'; + } else { + /* + * It's now time to add quotes. + */ + if (v > quotestart) + { + char *addq; + + for (addq = v; addq > quotestart; addq--) + *addq = addq[-1]; + } + *quotestart = '\''; + v++; + quotesub = 2; + } + *v++ = *u++; + /* + * Next place to start quotes is here. + */ + quotestart = v; + } else if (*u == '\'') { + if (unset(RCQUOTES)) { + *v++ = '\''; + *v++ = '\\'; + *v++ = '\''; + /* Don't restart quotes unless we need them */ + quotesub = 1; + quotestart = v; + } else { + /* simplest just to use '' always */ + *v++ = '\''; + *v++ = '\''; + } + /* dealt with */ + u++; + } else { + /* else already quoting, just add */ + *v++ = *u++; + } + continue; + } else if (*u == '\n' || + (instring == QT_SINGLE && *u == '\'')) { + if (*u == '\n') { + *v++ = '$'; + *v++ = '\''; + *v++ = '\\'; + *v++ = 'n'; + *v++ = '\''; + } else if (unset(RCQUOTES)) { *v++ = '\''; if (*u == '\'') *v++ = '\\'; *v++ = *u; *v++ = '\''; - } else if (*u == '\n') - *v++ = '"', *v++ = '\n', *v++ = '"'; - else + } else *v++ = '\'', *v++ = '\''; u++; continue; @@ -4589,6 +4910,8 @@ } } } + if (quotesub == 2) + *v++ = '\''; *v = '\0'; if (e && *e == u) @@ -4876,7 +5199,7 @@ char *buf, tmp[1]; char *t, *tdest = NULL, *u = NULL, *sstart = s, *tbuf = NULL; char svchar = '\0'; - int meta = 0, control = 0; + int meta = 0, control = 0, ignoring = 0; int i; #if defined(HAVE_WCHAR_H) && defined(HAVE_WCTOMB) && defined(__STDC_ISO_10646__) wint_t wval; @@ -5299,11 +5622,22 @@ if (how & GETKEY_DOLLAR_QUOTE) { char *t2; for (t2 = tbuf; t2 < t; t2++) { + /* + * In POSIX mode, an embedded NULL is discarded and + * terminates processing. It just does, that's why. + */ + if (isset(POSIXSTRINGS)) { + if (*t2 == '\0') + ignoring = 1; + if (ignoring) + break; + } if (imeta(*t2)) { *tdest++ = Meta; *tdest++ = *t2 ^ 32; - } else + } else { *tdest++ = *t2; + } } /* * Reset use of temporary buffer. @@ -5622,8 +5956,8 @@ cap_free(caps); return 1; } - cap_free(caps); } + cap_free(caps); } #endif /* HAVE_CAP_GET_PROC */ return 0; diff -Nru zsh-4.3.10/Src/Zle/compcore.c zsh-4.3.11/Src/Zle/compcore.c --- zsh-4.3.10/Src/Zle/compcore.c 2009-01-13 13:15:38.000000000 +0100 +++ zsh-4.3.11/Src/Zle/compcore.c 2010-12-14 11:11:10.000000000 +0100 @@ -648,6 +648,17 @@ else compredirs = (char **) zshcalloc(sizeof(char *)); + /* + * We need to untokenize compparameter which is the + * raw internals of a parameter subscript. + * + * The double memory duplication is a bit ugly: the additional + * dupstring() is necessary because untokenize() might change + * the string length and so later zsfree() would get the wrong + * length of the string. + */ + compparameter = dupstring(compparameter); + untokenize(compparameter); compparameter = ztrdup(compparameter); compredirect = ztrdup(compredirect); zsfree(compquote); @@ -1470,13 +1481,13 @@ /* Put the string in the lexer buffer and call the lexer to * * get the words we have to expand. */ - zleparse = 1; ocs = zlemetacs; oll = zlemetall; ol = zlemetaline; addedx = 1; noerrs = 1; lexsave(); + lexflags = LEXFLAGS_ZLE; /* * tl is the length of the temporary string including * the space at the start and the x at the cursor position, @@ -1605,7 +1616,7 @@ } else p = NULL; - if (!got && !zleparse) { + if (!got && !lexflags) { DPUTS(!p, "no current word in substr"); got = 1; cur = i; @@ -1623,7 +1634,7 @@ noaliases = ona; strinend(); inpop(); - errflag = zleparse = 0; + errflag = 0; noerrs = ne; lexrestore(); wb = owb; @@ -2932,7 +2943,7 @@ comp_setunset(0, 0, CP_EXACTSTR, 0); } ai->exactm = cm; - } else if (useexact && !matcheq(cm, ai->exactm)) { + } else if (useexact && (!ai->exactm || !matcheq(cm, ai->exactm))) { ai->exact = 2; ai->exactm = NULL; if (incompfunc) diff -Nru zsh-4.3.10/Src/Zle/compctl.c zsh-4.3.11/Src/Zle/compctl.c --- zsh-4.3.10/Src/Zle/compctl.c 2008-11-12 11:06:37.000000000 +0100 +++ zsh-4.3.11/Src/Zle/compctl.c 2010-12-14 11:11:22.000000000 +0100 @@ -2789,10 +2789,10 @@ /* Put the string in the lexer buffer and call the lexer to * * get the words we have to expand. */ - zleparse = 1; addedx = 1; noerrs = 1; lexsave(); + lexflags = LEXFLAGS_ZLE; tmp = (char *) zhalloc(tl = sl + 3 + strlen(s)); strcpy(tmp, ss); tmp[sl] = ' '; @@ -2828,7 +2828,7 @@ addlinknode(foo, (p = ztrdup(tokstr))); else p = NULL; - if (!got && !zleparse) { + if (!got && !lexflags) { DPUTS(!p, "no current word in substr"); got = 1; cur = i; @@ -2843,7 +2843,7 @@ noaliases = ona; strinend(); inpop(); - errflag = zleparse = 0; + errflag = 0; noerrs = ne; lexrestore(); wb = owb; @@ -3703,8 +3703,8 @@ /* Put the string in the lexer buffer and call the lexer to * * get the words we have to expand. */ - zleparse = 1; lexsave(); + lexflags = LEXFLAGS_ZLE; tmpbuf = (char *)zhalloc(strlen(cc->str) + 5); sprintf(tmpbuf, "foo %s", cc->str); /* KLUDGE! */ inpush(tmpbuf, 0, NULL); @@ -3721,7 +3721,7 @@ noaliases = ona; strinend(); inpop(); - errflag = zleparse = 0; + errflag = 0; lexrestore(); /* Fine, now do full expansion. */ prefork(foo, 0); diff -Nru zsh-4.3.10/Src/Zle/complist.c zsh-4.3.11/Src/Zle/complist.c --- zsh-4.3.10/Src/Zle/complist.c 2009-01-20 11:33:10.000000000 +0100 +++ zsh-4.3.11/Src/Zle/complist.c 2010-08-31 20:09:16.000000000 +0200 @@ -187,15 +187,16 @@ #define COL_MA 21 #define COL_HI 22 #define COL_DU 23 +#define COL_SA 24 -#define NUM_COLS 24 +#define NUM_COLS 25 /* Names of the terminal strings. */ static char *colnames[] = { "no", "fi", "di", "ln", "pi", "so", "bd", "cd", "or", "mi", "su", "sg", "tw", "ow", "st", "ex", - "lc", "rc", "ec", "tc", "sp", "ma", "hi", "du", NULL + "lc", "rc", "ec", "tc", "sp", "ma", "hi", "du", "sa", NULL }; /* Default values. */ @@ -203,7 +204,7 @@ static char *defcols[] = { "0", "0", "1;31", "1;36", "33", "1;35", "1;33", "1;33", NULL, NULL, "37;41", "30;43", "30;42", "34;42", "37;44", "1;32", - "\033[", "m", NULL, "0", "0", "7", NULL, NULL + "\033[", "m", NULL, "0", "0", "7", NULL, NULL, "0" }; /* This describes a terminal string for a file type. */ @@ -872,17 +873,18 @@ * file modes. */ static int -putfilecol(char *group, char *n, mode_t m, int special) +putfilecol(char *group, char *filename, mode_t m, int special) { int colour = -1; Extcol ec; Patcol pc; + int len; nrefs = MAX_POS - 1; for (pc = mcolors.pats; pc; pc = pc->next) if ((!pc->prog || !group || pattry(pc->prog, group)) && - pattryrefs(pc->pat, n, -1, -1, 0, &nrefs, begpos, endpos)) { + pattryrefs(pc->pat, filename, -1, -1, 0, &nrefs, begpos, endpos)) { if (pc->cols[1]) { patcols = pc->cols; @@ -928,13 +930,29 @@ } for (ec = mcolors.exts; ec; ec = ec->next) - if (strsfx(ec->ext, n) && + if (strsfx(ec->ext, filename) && (!ec->prog || !group || pattry(ec->prog, group))) { zlrputs(ec->col); return 0; } + /* Check for suffix alias */ + len = strlen(filename); + /* shortest valid suffix format is a.b */ + if (len > 2) { + char *suf = filename + len - 1; + while (suf > filename+1) { + if (suf[-1] == '.') { + if (sufaliastab->getnode(sufaliastab, suf)) { + zcputs(group, COL_SA); + return 0; + } + break; + } + suf--; + } + } zcputs(group, COL_FI); return 0; @@ -974,6 +992,8 @@ !strcmp(cmd->nam, "menu-complete") || !strcmp(cmd->nam, "menu-expand-or-complete")) mrestlines = lines - 1; + else if (cmd == Th(z_acceptsearch)) + ret = 1; else { ungetkeycmd(); ret = 1; @@ -2572,7 +2592,7 @@ cmd != Th(z_selfinsertunmeta)))) { ungetkeycmd(); break; - } else if (cmd == Th(z_acceptline)) { + } else if (cmd == Th(z_acceptline) || cmd == Th(z_acceptsearch)) { if (mode == MM_FSEARCH || mode == MM_BSEARCH) { mode = 0; continue; @@ -3197,7 +3217,9 @@ !strcmp(cmd->nam, "reverse-menu-complete")) { mode = 0; comprecursive = 1; + unmetafy_line(); reversemenucomplete(zlenoargs); + metafy_line(); mselect = (*(minfo.cur))->gnum; setwish = 1; mline = -1; @@ -3316,7 +3338,23 @@ mlbeg = -1; showinglist = ((validlist && !nolist) ? -2 : 0); onlyexpl = oe; - if (!smatches) + if (acc && listshown) { + /* + * Clear the list without spending sixteen weeks of + * redrawing it in slightly different states first. + * The following seems to work. I'm not sure what + * the difference is between listshown and showinglist, + * but listshown looks like the traditional thing to + * check for in this file at least. + * + * showinglist has a normally undocumented value of 1, + * and an extra-specially undocumented value of -2, which + * seems to be a force---it appears we need to kick it out + * of that state, though it worries me that in some places + * the code actually forces it back into that state. + */ + clearlist = listshown = showinglist = 1; + } else if (!smatches) clearlist = listshown = 1; zrefresh(); } diff -Nru zsh-4.3.10/Src/Zle/compresult.c zsh-4.3.11/Src/Zle/compresult.c --- zsh-4.3.10/Src/Zle/compresult.c 2009-04-23 11:56:53.000000000 +0200 +++ zsh-4.3.11/Src/Zle/compresult.c 2010-08-15 20:40:06.000000000 +0200 @@ -2284,6 +2284,8 @@ zsfree(minfo.postbr); minfo.postbr = minfo.prebr = NULL; compwidget = NULL; + nmatches = 0; + amatches = NULL; return 0; } diff -Nru zsh-4.3.10/Src/Zle/computil.c zsh-4.3.11/Src/Zle/computil.c --- zsh-4.3.10/Src/Zle/computil.c 2008-11-17 10:44:03.000000000 +0100 +++ zsh-4.3.11/Src/Zle/computil.c 2010-07-26 16:00:47.000000000 +0200 @@ -1866,9 +1866,12 @@ Caopt ptr, wasopt = NULL, dopt; struct castate state; char *line, *oline, *pe, **argxor = NULL; - int cur, doff, argend, arglast, ne; + int cur, doff, argend, arglast; Patprog endpat = NULL, napat = NULL; LinkList sopts = NULL; +#if 0 + int ne; +#endif /* Free old state. */ @@ -1927,13 +1930,24 @@ dopt = NULL; doff = state.singles = arglast = 0; - /* remove quotes */ oline = line; +#if 0 + /* + * remove quotes. + * This is commented out: it doesn't allow you to discriminate + * between command line values that can be expanded and those + * that can't, and in some cases this generates inconsistency; + * for example, ~/foo\[bar unqotes to ~/foo[bar which doesn't + * work either way---it's wrong if the ~ is quoted, and + * wrong if the [ isn't quoted.. So it's now up to the caller to + * unquote. + */ line = dupstring(line); ne = noerrs; noerrs = 2; parse_subst_string(line); noerrs = ne; +#endif remnulargs(line); untokenize(line); @@ -2119,6 +2133,23 @@ if ((adef = state.def = ca_get_arg(d, state.nth)) && (state.def->type == CAA_RREST || state.def->type == CAA_RARGS)) { + + /* Bart 2009/11/17: + * We've reached the "rest" definition. If at this point + * we already found another definition that describes the + * current word, use that instead. If not, prep for the + * "narrowing" of scope to only the remaining words. + * + * We can't test ca_laststate.def in the loop conditions + * at the top because this same loop also handles the + * ':*PATTERN:MESSAGE:ACTION' form for multiple arguments + * after an option, which may need to continue scanning. + * There might be an earlier point at which this test can + * be made but tracking it down is not worth the effort. + */ + if (ca_laststate.def) + break; + state.inrest = 0; state.opt = (cur == state.nargbeg + 1 && (!multi || !*line || @@ -3931,6 +3962,22 @@ #define PATH_MAX2 (PATH_MAX * 2) +/* + * Return a list of files we should accept exactly, without + * trying pattern matching. + * + * This is based on the accept-exact style, which may be + * an array so is passed in via "accept". The trial files + * are input in "names". "skipped" is passed down straight + * from the file completion function: it's got something to + * do with other components in the path but it's hard to work out + * quite what. + * + * There is one extra trick here for Cygwin. Regardless of the style, + * if the file ends in a colon it has to be a drive or a special device + * file and we always accept it exactly because treating it as a pattern + * won't work. + */ static LinkList cfp_test_exact(LinkList names, char **accept, char *skipped) { @@ -3939,16 +3986,41 @@ struct stat st; LinkNode node; LinkList ret = newlinklist(), alist = NULL; +#ifdef __CYGWIN__ + int accept_off = 0; +#endif - if ((!(compprefix && *compprefix) && !(compsuffix && *compsuffix)) || - (!accept || !*accept || - ((!strcmp(*accept, "false") || !strcmp(*accept, "no") || - !strcmp(*accept, "off") || !strcmp(*accept, "0")) && !accept[1]))) + /* + * Don't do this unless completion has provided either a + * prefix or suffix from the command line. + */ + if (!(compprefix && *compprefix) && !(compsuffix && *compsuffix)) return NULL; - if (accept[1] || - (strcmp(*accept, "true") && strcmp(*accept, "yes") && - strcmp(*accept, "on") && strcmp(*accept, "1"))) { + /* + * See if accept-exact is off, implicitly or explicitly. + */ + if (!accept || !*accept || + ((!strcmp(*accept, "false") || !strcmp(*accept, "no") || + !strcmp(*accept, "off") || !strcmp(*accept, "0")) && !accept[1])) { +#ifdef __CYGWIN__ + accept_off = 1; +#else + /* If not Cygwin, nothing to do here. */ + return NULL; +#endif + } + + /* + * See if the style is something other than just a boolean. + */ + if ( +#ifdef __CYGWIN__ + !accept_off && +#endif + (accept[1] || + (strcmp(*accept, "true") && strcmp(*accept, "yes") && + strcmp(*accept, "on") && strcmp(*accept, "1")))) { Patprog prog; alist = newlinklist(); @@ -3963,6 +4035,10 @@ addlinknode(alist, prog); } } + /* + * Assemble the bits other than the set of file names: + * the other components, and the prefix and suffix. + */ sl = strlen(skipped) + (compprefix ? strlen(compprefix) : 0) + (compsuffix ? strlen(compsuffix) : 0); @@ -3974,10 +4050,48 @@ for (node = firstnode(names); node; incnode(node)) { l = strlen(p = (char *) getdata(node)); if (l + sl < PATH_MAX2) { +#ifdef __CYGWIN__ + char *testbuf; +#define TESTBUF testbuf +#else +#define TESTBUF buf +#endif strcpy(buf, p); strcpy(buf + l, suf); - - if (!ztat(buf, &st, 0)) { +#ifdef __CYGWIN__ + if (accept_off) { + int sl = strlen(buf); + /* + * If accept-exact is not set, accept this only if + * it looks like a special file such as a drive. + * We still test if it exists. + */ + if (!sl || strchr(buf, '/') || buf[sl-1] != ':') + continue; + if (sl == 2) { + /* + * Recent versions of Cygwin only recognise "c:/", + * but not "c:", as special directories. So + * we have to append the slash for the purpose of + * the test. + */ + testbuf = zhalloc(sl + 2); + strcpy(testbuf, buf); + testbuf[sl] = '/'; + testbuf[sl+1] = '\0'; + } else { + /* Don't do this with stuff like PRN: */ + testbuf = buf; + } + } else { + testbuf = buf; + } +#endif + if (!ztat(TESTBUF, &st, 0)) { + /* + * File exists; if accept-exact contained non-boolean + * values it must match those, too. + */ if (alist) { LinkNode anode; @@ -4539,6 +4653,15 @@ names, skipped, sdirs, fake); } +/* + * This function looks at device/inode pairs to determine if + * a file is one we should ignore because of its relationship + * to the current or parent directory. + * + * We don't follow symbolic links here, because typically + * a user will not want an explicit link to the current or parent + * directory ignored. + */ static void cf_ignore(char **names, LinkList ign, char *style, char *path) { @@ -4547,14 +4670,14 @@ char *n, *c, *e; tpar = !!strstr(style, "parent"); - if ((tpwd = !!strstr(style, "pwd")) && stat(pwd, &est)) + if ((tpwd = !!strstr(style, "pwd")) && lstat(pwd, &est)) tpwd = 0; if (!tpar && !tpwd) return; for (; (n = *names); names++) { - if (!ztat(n, &nst, 0) && S_ISDIR(nst.st_mode)) { + if (!ztat(n, &nst, 1) && S_ISDIR(nst.st_mode)) { if (tpwd && nst.st_dev == est.st_dev && nst.st_ino == est.st_ino) { addlinknode(ign, quotestring(n, NULL, QT_BACKSLASH)); continue; @@ -4570,7 +4693,7 @@ } } if (found || ((e = strrchr(c, '/')) && e > c + pl && - !ztat(c, &st, 0) && st.st_dev == nst.st_dev && + !ztat(c, &st, 1) && st.st_dev == nst.st_dev && st.st_ino == nst.st_ino)) addlinknode(ign, quotestring(n, NULL, QT_BACKSLASH)); } diff -Nru zsh-4.3.10/Src/Zle/zle.h zsh-4.3.11/Src/Zle/zle.h --- zsh-4.3.10/Src/Zle/zle.h 2009-04-23 11:56:31.000000000 +0200 +++ zsh-4.3.11/Src/Zle/zle.h 2010-03-22 20:49:07.000000000 +0100 @@ -419,6 +419,20 @@ typedef REFRESH_ELEMENT *REFRESH_STRING; +#if defined(MULTIBYTE_SUPPORT) && defined(__STDC_ISO_10646__) +#define ZSH_INVALID_WCHAR_BASE (0xe000U) +#define ZSH_INVALID_WCHAR_TEST(x) \ + ((unsigned)(x) >= ZSH_INVALID_WCHAR_BASE && \ + (unsigned)(x) <= (ZSH_INVALID_WCHAR_BASE + 255u)) +#define ZSH_INVALID_WCHAR_TO_CHAR(x) \ + ((char)((unsigned)(x) - ZSH_INVALID_WCHAR_BASE)) +#define ZSH_INVALID_WCHAR_TO_INT(x) \ + ((int)((unsigned)(x) - ZSH_INVALID_WCHAR_BASE)) +#define ZSH_CHAR_TO_INVALID_WCHAR(x) \ + ((wchar_t)(STOUC(x) + ZSH_INVALID_WCHAR_BASE)) +#endif + + #ifdef DEBUG #define METACHECK() \ DPUTS(zlemetaline == NULL, "line not metafied") diff -Nru zsh-4.3.10/Src/Zle/zle_hist.c zsh-4.3.11/Src/Zle/zle_hist.c --- zsh-4.3.10/Src/Zle/zle_hist.c 2009-03-16 11:05:59.000000000 +0100 +++ zsh-4.3.11/Src/Zle/zle_hist.c 2010-12-13 11:06:33.000000000 +0100 @@ -634,6 +634,7 @@ } } + fixsuffix(); metafy_line(); if (lastinsert && lastlen && lastpos <= zlemetacs && @@ -676,7 +677,7 @@ * a deleted word, because that can only have come * from a non-empty line. I think. */ - if (!(l = bufferwords(NULL, NULL, NULL))) { + if (!(l = bufferwords(NULL, NULL, NULL, 0))) { unmetafy_line(); return 1; } @@ -1454,6 +1455,8 @@ memset(&mbs, 0, sizeof(mbs)); while (charpos < end_pos) { ret = mb_metacharlenconv_r(zlemetaline + charpos, &wc, &mbs); + if (ret <= 0) /* Unrecognised, treat as single char */ + ret = 1; if (charpos <= pos && pos < charpos + ret) isearch_startpos = charcount; charcount++; @@ -1469,6 +1472,7 @@ } else isearch_active = 0; ref: + zlecallhook("zle-isearch-update", NULL); zrefresh(); if (!(cmd = getkeycmd()) || cmd == Th(z_sendbreak)) { int i; @@ -1667,6 +1671,7 @@ } statusline = NULL; unmetafy_line(); + zlecallhook("zle-isearch-exit", NULL); if (exitfn) exitfn(zlenoargs); selectkeymap(okeymap, 1); @@ -1942,7 +1947,7 @@ continue; zt = GETZLETEXT(he); if (zlinecmp(zt, zlemetaline) && - (*visrchstr == '^' ? strpfx(zt, visrchstr + 1) : + (*visrchstr == '^' ? strpfx(visrchstr + 1, zt) : zlinefind(zt, 0, visrchstr, 1, 1) != 0)) { if (--n <= 0) { unmetafy_line(); diff -Nru zsh-4.3.10/Src/Zle/zle_keymap.c zsh-4.3.11/Src/Zle/zle_keymap.c --- zsh-4.3.10/Src/Zle/zle_keymap.c 2009-01-28 10:27:46.000000000 +0100 +++ zsh-4.3.11/Src/Zle/zle_keymap.c 2010-09-20 11:27:46.000000000 +0200 @@ -58,11 +58,24 @@ Keymap keymap; /* the keymap itsef */ }; +/* Can't be deleted (.safe) */ #define KMN_IMMORTAL (1<<1) struct keymap { Thingy first[256]; /* base binding of each character */ HashTable multi; /* multi-character bindings */ + /* + * The "real" name of this keymap. + * For an aliased keymap, this is the first name to be defined. + * If this is deleted but there are other names we randomly pick another + * one, avoiding the name "main". The principal use + * for this is to make it clear what "main" is aliased to. + * + * If "main" is the only name for this map, this will be NULL. + * That's fine, there's no alias. We'll pick a primary if we + * alias "main" again. + */ + KeymapName primary; int flags; /* various flags (see below) */ int rc; /* reference count */ }; @@ -162,6 +175,70 @@ return kmn; } + +/* + * Reference a keymap from a keymapname. + * Used when linking keymaps. This includes the first link to a + * newly created keymap. + */ + +static void +refkeymap_by_name(KeymapName kmn) +{ + refkeymap(kmn->keymap); + if (!kmn->keymap->primary && strcmp(kmn->nam, "main") != 0) + kmn->keymap->primary = kmn; +} + +/* + * Communication to keymap scanner when looking for a new primary name. + */ +static Keymap km_rename_me; + +/* Find a new primary name for a keymap. See below. */ + +static void +scanprimaryname(HashNode hn, int ignored) +{ + KeymapName n = (KeymapName) hn; + + (void)ignored; + + /* Check if we've already found a new primary name. */ + if (km_rename_me->primary) + return; + /* Don't use "main". */ + if (!strcmp(n->nam, "main")) + return; + if (n->keymap == km_rename_me) + km_rename_me->primary = n; +} + +/* + * Unreference a keymap from a keymapname. + * Used when unlinking keymaps to ensure there is still a primary + * name for the keymap, unless it is an unaliased "main". + */ +static void +unrefkeymap_by_name(KeymapName kmname) +{ + Keymap km = kmname->keymap; + if (unrefkeymap(km) && km->primary == kmname) { + /* + * The primary name for the keymap has gone, + * but the keymap is still referred to; find a new primary name + * for it. Sort the keymap to make the result deterministic. + */ + /* Set the primary name to NULL so we can check if we've found one */ + km->primary = NULL; + km_rename_me = km; + scanhashtable(keymapnamtab, 1, 0, 0, scanprimaryname, 0); + /* Just for neatness */ + km_rename_me = NULL; + } +} + + /**/ static void freekeymapnamnode(HashNode hn) @@ -169,7 +246,7 @@ KeymapName kmn = (KeymapName) hn; zsfree(kmn->nam); - unrefkeymap(kmn->keymap); + unrefkeymap_by_name(kmn); zfree(kmn, sizeof(*kmn)); } @@ -354,7 +431,7 @@ return 1; if(n->keymap == km) return 0; - unrefkeymap(n->keymap); + unrefkeymap_by_name(n); n->keymap = km; } else { n = makekeymapnamnode(km); @@ -362,21 +439,29 @@ n->flags |= KMN_IMMORTAL; keymapnamtab->addnode(keymapnamtab, ztrdup(name), n); } - refkeymap(km); + refkeymap_by_name(n); return 0; } /**/ -void refkeymap(Keymap km) +void +refkeymap(Keymap km) { km->rc++; } +/* Unreference keymap, returning new reference count, 0 if deleted */ + /**/ -void unrefkeymap(Keymap km) +int +unrefkeymap(Keymap km) { - if (!--km->rc) + if (!--km->rc) { deletekeymap(km); + return 0; + } + + return km->rc; } /* Select a keymap as the current ZLE keymap. Can optionally fall back * @@ -401,22 +486,11 @@ } if(name != curkeymapname) { char *oname = curkeymapname; - Thingy chgthingy; curkeymapname = ztrdup(name); - if (oname && zleactive && strcmp(oname, curkeymapname) && - (chgthingy = rthingy_nocreate("zle-keymap-select"))) { - char *args[2]; - int saverrflag = errflag, savretflag = retflag; - args[0] = oname; - args[1] = NULL; - errflag = retflag = 0; - execzlefunc(chgthingy, args, 1); - unrefthingy(chgthingy); - errflag = saverrflag; - retflag = savretflag; - } + if (oname && zleactive && strcmp(oname, curkeymapname)) + zlecallhook("zle-keymap-select", oname); zsfree(oname); } curkeymap = km; @@ -639,7 +713,7 @@ int (*func) _((char *, char *, Keymap, char **, Options, char)); int min, max; } const opns[] = { - { 'l', 0, bin_bindkey_lsmaps, 0, 0 }, + { 'l', 0, bin_bindkey_lsmaps, 0, -1 }, { 'd', 0, bin_bindkey_delall, 0, 0 }, { 'D', 0, bin_bindkey_del, 1, -1 }, { 'A', 0, bin_bindkey_link, 2, 2 }, @@ -722,22 +796,53 @@ /**/ static int -bin_bindkey_lsmaps(UNUSED(char *name), UNUSED(char *kmname), UNUSED(Keymap km), UNUSED(char **argv), Options ops, UNUSED(char func)) +bin_bindkey_lsmaps(char *name, UNUSED(char *kmname), UNUSED(Keymap km), char **argv, Options ops, UNUSED(char func)) { - scanhashtable(keymapnamtab, 1, 0, 0, scanlistmaps, OPT_ISSET(ops,'L')); - return 0; + int ret = 0; + if (*argv) { + for (; *argv; argv++) { + KeymapName kmn = (KeymapName) + keymapnamtab->getnode(keymapnamtab, *argv); + if (!kmn) { + zwarnnam(name, "no such keymap: `%s'", *argv); + ret = 1; + } else { + scanlistmaps((HashNode)kmn, OPT_ISSET(ops,'L')); + } + } + } else { + scanhashtable(keymapnamtab, 1, 0, 0, scanlistmaps, OPT_ISSET(ops,'L')); + } + return ret; } /**/ static void -scanlistmaps(HashNode hn, int list) +scanlistmaps(HashNode hn, int list_verbose) { KeymapName n = (KeymapName) hn; - if(list) { - fputs("bindkey -N ", stdout); - if(n->nam[0] == '-') - fputs("-- ", stdout); + if (list_verbose) { + Keymap km = n->keymap; + /* + * Don't list ".safe" as a bindkey command; we can't + * actually create it that way. + */ + if (!strcmp(n->nam, ".safe")) + return; + fputs("bindkey -", stdout); + if (km->primary && km->primary != n) { + KeymapName pn = km->primary; + fputs("A ", stdout); + if (pn->nam[0] == '-') + fputs("-- ", stdout); + quotedzputs(pn->nam, stdout); + fputc(' ', stdout); + } else { + fputs("N ", stdout); + if(n->nam[0] == '-') + fputs("-- ", stdout); + } quotedzputs(n->nam, stdout); } else nicezputs(n->nam, stdout); diff -Nru zsh-4.3.10/Src/Zle/zle_main.c zsh-4.3.11/Src/Zle/zle_main.c --- zsh-4.3.10/Src/Zle/zle_main.c 2009-01-28 10:24:45.000000000 +0100 +++ zsh-4.3.11/Src/Zle/zle_main.c 2010-12-20 10:59:54.000000000 +0100 @@ -84,6 +84,14 @@ int mark; /* + * Status ($?) saved before function entry. This is the + * status we need to use in prompts. + */ + +/**/ +static int pre_zle_status; + +/* * Last character pressed. * * Depending how far we are with processing, the lastcharacter may @@ -1107,7 +1115,6 @@ char *s; int old_errno = errno; int tmout = getiparam("TMOUT"); - Thingy initthingy; #if defined(HAVE_POLL) || defined(HAVE_SELECT) /* may not be set, but that's OK since getiparam() returns 0 == off */ @@ -1125,10 +1132,16 @@ pptbuf = unmetafy(promptexpand(lp ? *lp : NULL, 0, NULL, NULL, &pmpt_attr), &pptlen); - write(2, (WRITE_ARG_2_T)pptbuf, pptlen); + write_loop(2, pptbuf, pptlen); free(pptbuf); return shingetline(); } + /* + * The current status is what we need if we are going + * to display a prompt. We'll remember it here for + * use further in. + */ + pre_zle_status = lastval; keytimeout = (time_t)getiparam("KEYTIMEOUT"); if (!shout) { @@ -1201,29 +1214,15 @@ zrefresh(); - if ((initthingy = rthingy_nocreate("zle-line-init"))) { - char *args[2]; - args[0] = initthingy->nam; - args[1] = NULL; - execzlefunc(initthingy, args, 1); - unrefthingy(initthingy); - errflag = retflag = 0; - } + zlecallhook("zle-line-init", NULL); zlecore(); - if (done && !exit_pending && !errflag && - (initthingy = rthingy_nocreate("zle-line-finish"))) { - int saverrflag = errflag; - int savretflag = retflag; - char *args[2]; - args[0] = initthingy->nam; - args[1] = NULL; - execzlefunc(initthingy, args, 1); - unrefthingy(initthingy); - errflag = saverrflag; - retflag = savretflag; - } + if (errflag) + setsparam("ZLE_LINE_ABORTED", zlegetline(NULL, NULL)); + + if (done && !exit_pending && !errflag) + zlecallhook("zle-line-finish", NULL); statusline = NULL; invalidatelist(); @@ -1756,6 +1755,14 @@ static int reexpanding; if (!reexpanding++) { + /* + * If we're displaying a status in the prompt, it + * needs to be the toplevel one, not the one from + * any status set within the local zle function. + */ + int local_lastval = lastval; + lastval = pre_zle_status; + free(lpromptbuf); lpromptbuf = promptexpand(raw_lp ? *raw_lp : NULL, 1, NULL, NULL, &pmpt_attr); @@ -1763,6 +1770,7 @@ free(rpromptbuf); rpromptbuf = promptexpand(raw_rp ? *raw_rp : NULL, 1, NULL, NULL, &rpmpt_attr); + lastval = local_lastval; } reexpanding--; } diff -Nru zsh-4.3.10/Src/Zle/zle_misc.c zsh-4.3.11/Src/Zle/zle_misc.c --- zsh-4.3.10/Src/Zle/zle_misc.c 2009-04-23 12:22:03.000000000 +0200 +++ zsh-4.3.11/Src/Zle/zle_misc.c 2010-12-13 11:06:34.000000000 +0100 @@ -843,7 +843,7 @@ if (zmult <= 0) return 1; - if ((l = bufferwords(NULL, NULL, &i))) { + if ((l = bufferwords(NULL, NULL, &i, 0))) { i -= (zmult-1); if (i < 0) return 1; diff -Nru zsh-4.3.10/Src/Zle/zle_params.c zsh-4.3.11/Src/Zle/zle_params.c --- zsh-4.3.10/Src/Zle/zle_params.c 2009-03-13 11:04:29.000000000 +0100 +++ zsh-4.3.11/Src/Zle/zle_params.c 2010-08-11 14:48:20.000000000 +0200 @@ -76,6 +76,8 @@ { get_widgetfunc, nullstrsetfn, zleunsetfn }; static const struct gsu_scalar widgetstyle_gsu = { get_widgetstyle, nullstrsetfn, zleunsetfn }; +static const struct gsu_scalar zle_state_gsu = +{ get_zle_state, nullstrsetfn, zleunsetfn }; static const struct gsu_integer bufferlines_gsu = { get_bufferlines, NULL, zleunsetfn }; @@ -134,6 +136,7 @@ { "WIDGET", PM_SCALAR | PM_READONLY, GSU(widget_gsu), NULL }, { "WIDGETFUNC", PM_SCALAR | PM_READONLY, GSU(widgetfunc_gsu), NULL }, { "WIDGETSTYLE", PM_SCALAR | PM_READONLY, GSU(widgetstyle_gsu), NULL }, + { "ZLE_STATE", PM_SCALAR | PM_READONLY, GSU(zle_state_gsu), NULL }, { NULL, 0, NULL, NULL } }; @@ -334,8 +337,19 @@ static char * get_prebuffer(UNUSED(Param pm)) { - if (chline) + /* + * Use the editing current history line, not necessarily the + * history line that's currently in the history mechanism + * since our line may have been stacked. + */ + if (zle_chline) { + /* zle_chline was NULL terminated when pushed onto the stack */ + return dupstring(zle_chline); + } + if (chline) { + /* hptr is valid */ return dupstrpfx(chline, hptr - chline); + } return dupstring(""); } @@ -684,3 +698,60 @@ break; } } + +/**/ +static char * +get_zle_state(UNUSED(Param pm)) +{ + char *zle_state = NULL, *ptr = NULL; + int itp, istate, len = 0; + + /* + * When additional substrings are added, they should be kept in + * alphabetical order, so the user can easily match against this + * parameter: if [[ $ZLE_STATE == *bar*foo*zonk* ]]; then ...; fi + */ + for (itp = 0; itp < 2; itp++) { + char *str; + /* + * Currently there is only one state: insert or overwrite. + * This loop is to make it easy to add others. + */ + for (istate = 0; istate < 1; istate++) { + int slen; + switch (istate) { + case 0: + if (insmode) { + str = "insert"; + } else { + str = "overwrite"; + } + break; + + default: + str = ""; + } + slen = strlen(str); + if (itp == 0) { + /* Accumulating length */ + if (istate) + len++; /* for space */ + len += slen; + } else { + /* Accumulating string */ + if (istate) + *ptr++ = ' '; + memcpy(ptr, str, slen); + ptr += slen; + } + } + if (itp == 0) { + len++; /* terminating NULL */ + ptr = zle_state = (char *)zhalloc(len); + } else { + *ptr = '\0'; + } + } + + return zle_state; +} diff -Nru zsh-4.3.10/Src/Zle/zle_refresh.c zsh-4.3.11/Src/Zle/zle_refresh.c --- zsh-4.3.10/Src/Zle/zle_refresh.c 2009-05-11 10:44:48.000000000 +0200 +++ zsh-4.3.11/Src/Zle/zle_refresh.c 2010-12-20 10:51:44.000000000 +0100 @@ -247,8 +247,9 @@ * for the first few elements of region_highlights. * 0: region between point and mark * 1: isearch region + * 2: suffix */ -#define N_SPECIAL_HIGHLIGHTS (2) +#define N_SPECIAL_HIGHLIGHTS (3) /* * Number of elements in region_highlights. * This includes the special elements above. @@ -340,6 +341,7 @@ int special_atr_on_set = 0; int region_atr_on_set = 0; int isearch_atr_on_set = 0; + int suffix_atr_on_set = 0; struct region_highlight *rhp; special_atr_on = default_atr_on = 0; @@ -361,7 +363,7 @@ /* reset attributes for consistency... usually unnecessary */ special_atr_on = default_atr_on = 0; special_atr_on_set = region_atr_on_set = - isearch_atr_on_set = 1; + isearch_atr_on_set = suffix_atr_on_set = 1; } else if (strpfx("default:", *atrs)) { match_highlight(*atrs + 8, &default_atr_on); } else if (strpfx("special:", *atrs)) { @@ -373,6 +375,9 @@ } else if (strpfx("isearch:", *atrs)) { match_highlight(*atrs + 8, &(region_highlights[1].atr)); isearch_atr_on_set = 1; + } else if (strpfx("suffix:", *atrs)) { + match_highlight(*atrs + 7, &(region_highlights[2].atr)); + suffix_atr_on_set = 1; } } } @@ -384,6 +389,8 @@ region_highlights->atr = TXTSTANDOUT; if (!isearch_atr_on_set) region_highlights[1].atr = TXTUNDERLINE; + if (!suffix_atr_on_set) + region_highlights[2].atr = TXTBOLDFACE; allocate_colour_buffer(); } @@ -1060,6 +1067,13 @@ } else { region_highlights[1].start = region_highlights[1].end = -1; } + /* check for an active completion suffix */ + if (suffixnoinslen) { + region_highlights[2].start = zlecs - suffixnoinslen; + region_highlights[2].end = zlecs; + } else { + region_highlights[2].start = region_highlights[2].end = -1; + } if (clearlist && listshown > 0) { if (tccan(TCCLEAREOD)) { @@ -1249,7 +1263,11 @@ } } #ifdef MULTIBYTE_SUPPORT - else if (iswprint(*t) && (width = WCWIDTH(*t)) > 0) { + else if ( +#ifdef __STDC_ISO_10646__ + !ZSH_INVALID_WCHAR_TEST(*t) && +#endif + iswprint(*t) && (width = WCWIDTH(*t)) > 0) { int ichars; if (width > rpms.sen - rpms.s) { int started = 0; @@ -1353,6 +1371,12 @@ wchar_t wc; int started = 0; +#ifdef __STDC_ISO_10646__ + if (ZSH_INVALID_WCHAR_TEST(*t)) { + int c = ZSH_INVALID_WCHAR_TO_INT(*t); + sprintf(dispchars, "<%.02x>", c); + } else +#endif if ((unsigned)*t > 0xffffU) { sprintf(dispchars, "<%.08x>", (unsigned)*t); } else { @@ -1765,7 +1789,7 @@ /* 0: setup */ nl = nbuf[ln]; rnllen = nllen = nl ? ZR_strlen(nl) : 0; - if (obuf[ln]) { + if (ln < olnct && obuf[ln]) { ol = obuf[ln]; ollen = ZR_strlen(ol); } @@ -1976,7 +2000,7 @@ newline: foobar / characters, then we have six matches */ if (tccan(TCDEL)) { int first = 1; - for (i = 1; ol[i].chr; i++) + for (i = 1; ol[i].chr; i++) { if (tcdelcost(i) < wpfxlen(ol + i, nl)) { /* * Some terminals will output the current @@ -1999,15 +2023,19 @@ i = 0; break; } + } if (!i) continue; } - /* inserting characters - characters pushed off the right should be - annihilated, but we don't do this if we're on the last line lest - undesired scrolling occurs due to `illegal' characters on screen */ - - if (tccan(TCINS) && (vln != lines - 1)) { /* not on last line */ - for (i = 1; nl[i].chr; i++) + /* + * inserting characters - characters pushed off the right + * should be annihilated, but we don't do this if we're on the + * last line lest undesired scrolling occurs due to `illegal' + * characters on screen + */ + if (tccan(TCINS) && (vln != lines - 1)) { + /* not on last line */ + for (i = 1; nl[i].chr; i++) { if (tcinscost(i) < wpfxlen(ol, nl + i)) { tc_inschars(i); zwrite(nl, i); @@ -2020,19 +2048,37 @@ #endif char_ins += i; ccs = (vcs += i); - /* if we've pushed off the right, truncate oldline */ - for (i = 0; ol[i].chr && i < winw - ccs; i++); + /* + * if we've pushed off the right, truncate + * oldline + */ + for (i = 0; ol[i].chr && i < winw - ccs; i++) + ; #ifdef MULTIBYTE_SUPPORT while (ol[i].chr == WEOF) i++; -#endif + if (i >= winw - ccs) { + /* + * Yes, we're over the right. + * Make sure we truncate at the real + * character, not a WEOF added to + * make up the width. + */ + while (ol[i-1].chr == WEOF) + i--; + ol[i] = zr_zr; + ins_last = 1; + } +#else if (i >= winw - ccs) { ol[i] = zr_zr; ins_last = 1; } +#endif i = 0; break; } + } if (!i) continue; } @@ -2059,8 +2105,15 @@ if (now_off) settextattributes(TXT_ATTR_OFF_FROM_ON(now_off)); + /* + * This is deliberately called if nl->chr is WEOF + * in order to keep text attributes consistent. + * We check for WEOF inside. + */ zputc(nl); - nl++, ol++; + nl++; + if (ol->chr) + ol++; ccs++, vcs++; #ifdef MULTIBYTE_SUPPORT /* @@ -2317,7 +2370,7 @@ if (tmpline[t0] == ZWC('\t')) vsiz = (vsiz | 7) + 2; #ifdef MULTIBYTE_SUPPORT - else if (iswprint(tmpline[t0]) && (width = WCWIDTH(tmpline[t0]) > 0)) { + else if (iswprint(tmpline[t0]) && ((width = WCWIDTH(tmpline[t0])) > 0)) { vsiz += width; if (isset(COMBININGCHARS) && IS_BASECHAR(tmpline[t0])) { while (t0 < tmpll-1 && IS_COMBINING(tmpline[t0+1])) diff -Nru zsh-4.3.10/Src/Zle/zle_tricky.c zsh-4.3.11/Src/Zle/zle_tricky.c --- zsh-4.3.10/Src/Zle/zle_tricky.c 2009-02-25 11:20:33.000000000 +0100 +++ zsh-4.3.11/Src/Zle/zle_tricky.c 2010-12-14 11:11:38.000000000 +0100 @@ -632,16 +632,16 @@ origline = dupstring(zlemetaline); origcs = zlemetacs; origll = zlemetall; - if (!isfirstln && chline != NULL) { - /* If we are completing in a multi-line buffer (which was not * - * taken from the history), we have to prepend the stuff saved * - * in chline to the contents of line. */ - + if (!isfirstln && (chline != NULL || zle_chline != NULL)) { ol = dupstring(zlemetaline); - /* Make sure that chline is zero-terminated. */ - *hptr = '\0'; + /* + * Make sure that chline is zero-terminated. + * zle_chline always is and hptr doesn't point into it anyway. + */ + if (!zle_chline) + *hptr = '\0'; zlemetacs = 0; - inststr(chline); + inststr(zle_chline ? zle_chline : chline); chl = zlemetacs; zlemetacs += ocs; } else @@ -1067,6 +1067,10 @@ int t0, tt0, i, j, k, cp, rd, sl, ocs, ins, oins, ia, parct, varq = 0; int ona = noaliases; /* + * Index of word being considered + */ + int wordpos; + /* * qsub fixes up the offset into the current completion word * for changes made by the lexer. That currently means the * effect of RCQUOTES on embedded pairs of single quotes. @@ -1136,12 +1140,12 @@ zsfree(varname); varname = NULL; insubscr = 0; - zleparse = 1; clwpos = -1; lexsave(); + lexflags = LEXFLAGS_ZLE; inpush(dupstrspace(linptr), 0, NULL); strinbeg(0); - i = tt0 = cp = rd = ins = oins = linarr = parct = ia = redirpos = 0; + wordpos = tt0 = cp = rd = ins = oins = linarr = parct = ia = redirpos = 0; /* This loop is possibly the wrong way to do this. It goes through * * the previously massaged command line using the lexer. It stores * @@ -1154,8 +1158,9 @@ do { qsub = 0; - lincmd = ((incmdpos && !ins && !incond) || (oins == 2 && i == 2) || - (ins == 3 && i == 1)); + lincmd = ((incmdpos && !ins && !incond) || + (oins == 2 && wordpos == 2) || + (ins == 3 && wordpos == 1)); linredir = (inredir && !ins); oins = ins; /* Get the next token. */ @@ -1198,7 +1203,7 @@ strcpy(rdop, tokstrings[tok]); strcpy(rdstr, rdop); /* Record if we haven't had the command word yet */ - if (i == redirpos) + if (wordpos == redirpos) redirpos++; } if (tok == DINPAR) @@ -1208,17 +1213,25 @@ if (tok == ENDINPUT) break; if ((ins && (tok == DOLOOP || tok == SEPER)) || - (ins == 2 && i == 2) || (ins == 3 && i == 3) || + (ins == 2 && wordpos == 2) || (ins == 3 && wordpos == 3) || tok == BAR || tok == AMPER || tok == BARAMP || tok == AMPERBANG || - ((tok == DBAR || tok == DAMPER) && !incond)) { + ((tok == DBAR || tok == DAMPER) && !incond) || + /* + * Special case: we might reach a new command (incmdpos set) + * if we've already found the string we're completing (tt set) + * without hitting one of the above if we're using one of + * the special zsh forms of delimiting for conditions and + * loops that I really loathe having to support. + */ + (tt && incmdpos)) { /* This is one of the things that separate commands. If we * * already have the things we need (e.g. the token strings), * * leave the loop. */ if (tt) break; /* Otherwise reset the variables we are collecting data in. */ - i = tt0 = cp = rd = ins = redirpos = 0; + wordpos = tt0 = cp = rd = ins = redirpos = 0; } if (lincmd && (tok == STRING || tok == FOR || tok == FOREACH || tok == SELECT || tok == REPEAT || tok == CASE)) { @@ -1228,15 +1241,46 @@ zsfree(cmdstr); cmdstr = ztrdup(tokstr); /* If everything before is a redirection, don't reset the index */ - if (i != redirpos) - i = redirpos = 0; + if (wordpos != redirpos) + wordpos = redirpos = 0; } - if (!zleparse && !tt0) { + if (!lexflags && !tt0) { /* This is done when the lexer reached the word the cursor is on. */ tt = tokstr ? dupstring(tokstr) : NULL; + /* + * If there was a proper interface between this + * function and the lexical analyser, we wouldn't + * have to fix things up. + * + * Fix up backslash-newline pairs in zlemetaline + * that the lexer will have removed. As we're + * looking back at the zlemetaline version it's + * still using untokenized quotes. + */ + for (i = j = k = 0, u = zlemetaline + wb; + u < zlemetaline + we; u++) { + if (*u == '`' && !(k & 1)) + i++; + else if (*u == '\"' && !(k & 1) && !(i & 1)) + j++; + else if (*u == '\'' && !(j & 1)) + k++; + else if (*u == '\\' && u[1] && !(k & 1)) + { + if (u[1] == '\n') { + /* Removed by lexer in tt */ + qsub += 2; + } + u++; + } + } + /* + * Fix up RCQUOTES quotes that the + * the lexer will also have removed. + */ if (isset(RCQUOTES) && tt) { - char *tt1, *e = tt + zlemetacs - wb; + char *tt1, *e = tt + zlemetacs - wb - qsub; for (tt1 = tt; *tt1; tt1++) { if (*tt1 == Snull) { char *p; @@ -1251,7 +1295,7 @@ chuck(tt + zlemetacs - wb - qsub); tt0 = tok; /* Store the number of this word. */ - clwpos = i; + clwpos = wordpos; cp = lincmd; rd = linredir; ia = linarr; @@ -1271,39 +1315,39 @@ if (!tokstr) continue; /* Hack to allow completion after `repeat n do'. */ - if (oins == 2 && !i && !strcmp(tokstr, "do")) + if (oins == 2 && !wordpos && !strcmp(tokstr, "do")) ins = 3; /* We need to store the token strings of all words (for some of * * the more complicated compctl -x things). They are stored in * * the clwords array. Make this array big enough. */ - if (i + 1 == clwsize) { + if (wordpos + 1 == clwsize) { int n; clwords = (char **)realloc(clwords, (clwsize *= 2) * sizeof(char *)); - for(n = clwsize; --n > i; ) + for(n = clwsize; --n > wordpos; ) clwords[n] = NULL; } - zsfree(clwords[i]); + zsfree(clwords[wordpos]); /* And store the current token string. */ - clwords[i] = ztrdup(tokstr); + clwords[wordpos] = ztrdup(tokstr); sl = strlen(tokstr); /* Sometimes the lexer gives us token strings ending with * * spaces we delete the spaces. */ - while (sl && clwords[i][sl - 1] == ' ' && - (sl < 2 || (clwords[i][sl - 2] != Bnull && - clwords[i][sl - 2] != Meta))) - clwords[i][--sl] = '\0'; + while (sl && clwords[wordpos][sl - 1] == ' ' && + (sl < 2 || (clwords[wordpos][sl - 2] != Bnull && + clwords[wordpos][sl - 2] != Meta))) + clwords[wordpos][--sl] = '\0'; /* If this is the word the cursor is in and we added a `x', * * remove it. */ - if (clwpos == i++ && addedx) { + if (clwpos == wordpos++ && addedx) { zlemetacs_qsub = zlemetacs - qsub; - chuck(&clwords[i - 1][((zlemetacs_qsub - wb) >= sl) ? + chuck(&clwords[wordpos - 1][((zlemetacs_qsub - wb) >= sl) ? (sl - 1) : (zlemetacs_qsub - wb)]); } } while (tok != LEXERR && tok != ENDINPUT && - (tok != SEPER || (zleparse && !tt0))); + (tok != SEPER || (lexflags && !tt0))); /* Calculate the number of words stored in the clwords array. */ - clwnum = (tt || !i) ? i : i - 1; + clwnum = (tt || !wordpos) ? wordpos : wordpos - 1; zsfree(clwords[clwnum]); clwords[clwnum] = NULL; t0 = tt0; @@ -1316,7 +1360,7 @@ } strinend(); inpop(); - errflag = zleparse = 0; + errflag = lexflags = 0; if (parbegin != -1) { /* We are in command or process substitution if we are not in * a $((...)). */ @@ -2663,7 +2707,6 @@ noaliases = ona; strinend(); inpop(); - zleparse = 0; lexrestore(); expanding = 0; @@ -2763,8 +2806,8 @@ int curlincmd; char *s = NULL; - zleparse = 2; lexsave(); + lexflags = LEXFLAGS_ZLE; metafy_line(); inpush(dupstrspace(zlemetaline), 0, NULL); strinbeg(1); @@ -2781,11 +2824,11 @@ cmdwe = zlemetall + 1 - inbufct; } } - while (tok != ENDINPUT && tok != LEXERR && zleparse); + while (tok != ENDINPUT && tok != LEXERR && lexflags); popheap(); strinend(); inpop(); - errflag = zleparse = 0; + errflag = 0; unmetafy_line(); lexrestore(); diff -Nru zsh-4.3.10/Src/Zle/zle_utils.c zsh-4.3.11/Src/Zle/zle_utils.c --- zsh-4.3.10/Src/Zle/zle_utils.c 2009-01-05 15:10:23.000000000 +0100 +++ zsh-4.3.11/Src/Zle/zle_utils.c 2010-12-10 11:49:55.000000000 +0100 @@ -120,11 +120,19 @@ size_t ret; char *ptr; - ret = wctomb(buf, inchar); - if (ret <= 0) { - /* Ick. */ - buf[0] = '?'; - return 1; +#ifdef __STDC_ISO_10646__ + if (ZSH_INVALID_WCHAR_TEST(inchar)) { + buf[0] = ZSH_INVALID_WCHAR_TO_CHAR(inchar); + ret = 1; + } else +#endif + { + ret = wctomb(buf, inchar); + if (ret <= 0) { + /* Ick. */ + buf[0] = '?'; + return 1; + } } ptr = buf + ret - 1; for (;;) { @@ -196,13 +204,20 @@ for (i=0; i < inll; i++, incs--) { if (incs == 0) outcs = mb_len; - j = wcrtomb(s + mb_len, instr[i], &mbs); - if (j == -1) { - /* invalid char; what to do? */ - s[mb_len++] = ZWC('?'); - memset(&mbs, 0, sizeof(mbs)); - } else { - mb_len += j; +#ifdef __STDC_ISO_10646__ + if (ZSH_INVALID_WCHAR_TEST(instr[i])) { + s[mb_len++] = ZSH_INVALID_WCHAR_TO_CHAR(instr[i]); + } else +#endif + { + j = wcrtomb(s + mb_len, instr[i], &mbs); + if (j == -1) { + /* invalid char */ + s[mb_len++] = ZWC('?'); + memset(&mbs, 0, sizeof(mbs)); + } else { + mb_len += j; + } } } if (incs == 0) @@ -332,6 +347,13 @@ while (ll > 0) { size_t cnt = mbrtowc(outptr, inptr, ll, &mbs); +#ifdef __STDC_ISO_10646__ + if (cnt == MB_INCOMPLETE || cnt == MB_INVALID) { + /* Use private encoding for invalid single byte */ + *outptr = ZSH_CHAR_TO_INVALID_WCHAR(*inptr); + cnt = 1; + } +#else /* * At this point we don't handle either incomplete (-2) or * invalid (-1) multibyte sequences. Use the current length @@ -339,6 +361,7 @@ */ if (cnt == MB_INCOMPLETE || cnt == MB_INVALID) break; +#endif if (cnt == 0) { /* Converting '\0' returns 0, but a '\0' is a real @@ -1214,3 +1237,35 @@ } else return undo(args); } + +/* + * Call a ZLE hook: a user-defined widget called at a specific point + * within the line editor. + * + * A single argument arg is passed to the function (in addition to the + * function name). It may be NULL. + */ + +/**/ +void +zlecallhook(char *name, char *arg) +{ + Thingy thingy = rthingy_nocreate(name); + int saverrflag, savretflag; + char *args[3]; + + if (!thingy) + return; + + saverrflag = errflag; + savretflag = retflag; + + args[0] = thingy->nam; + args[1] = arg; + args[2] = NULL; + execzlefunc(thingy, args, 1); + unrefthingy(thingy); + + errflag = saverrflag; + retflag = savretflag; +} diff -Nru zsh-4.3.10/Src/zsh.h zsh-4.3.11/Src/zsh.h --- zsh-4.3.10/Src/zsh.h 2009-03-24 13:34:47.000000000 +0100 +++ zsh-4.3.11/Src/zsh.h 2010-12-14 11:09:52.000000000 +0100 @@ -127,6 +127,10 @@ #define DEFAULT_IFS " \t\n\203 " +/* As specified in the standard (POSIX 2008) */ + +#define DEFAULT_IFS_SH " \t\n" + /* * Character tokens. * These should match the characters in ztokens, defined in lex.c @@ -210,8 +214,19 @@ * in those cases where we need to represent a complete set. */ QT_BACKTICK, + /* + * Single quotes, but the default is not to quote unless necessary. + * This is only useful as an argument to quotestring(). + */ + QT_SINGLE_OPTIONAL, + /* + * As QT_BACKSLASH, but a NULL string is shown as ''. + */ + QT_BACKSLASH_SHOWNULL }; +#define QT_IS_SINGLE(x) ((x) == QT_SINGLE || (x) == QT_SINGLE_OPTIONAL) + /* * Lexical tokens: unlike the character tokens above, these never * appear in strings and don't necessarily represent a single character. @@ -343,6 +358,15 @@ * Entry used by output from the XTRACE option. */ #define FDT_XTRACE 3 +/* + * Entry used for file locking. + */ +#define FDT_FLOCK 4 +/* + * As above, but the fd is not marked for closing on exec, + * so the shell can still exec the last process. + */ +#define FDT_FLOCK_EXEC 5 #ifdef PATH_DEV_FD /* * Entry used by a process substition. @@ -350,7 +374,7 @@ * decremented on exit; we don't close entries greater than * FDT_PROC_SUBST except when closing everything. */ -#define FDT_PROC_SUBST 4 +#define FDT_PROC_SUBST 6 #endif /* Flags for input stack */ @@ -573,6 +597,8 @@ int fd1, fd2; char *name; char *varid; + char *here_terminator; + char *munged_here_terminator; }; /* The number of fds space is allocated for * @@ -763,7 +789,9 @@ #define WC_REDIR_FROM_HEREDOC(C) ((int)(wc_data(C) & REDIR_FROM_HEREDOC_MASK)) #define WCB_REDIR(T) wc_bld(WC_REDIR, (T)) /* Size of redir is 4 words if REDIR_VARID_MASK is set, else 3 */ -#define WC_REDIR_WORDS(C) (WC_REDIR_VARID(C) ? 4 : 3) +#define WC_REDIR_WORDS(C) \ + ((WC_REDIR_VARID(C) ? 4 : 3) + \ + (WC_REDIR_FROM_HEREDOC(C) ? 2 : 0)) #define WC_ASSIGN_TYPE(C) (wc_data(C) & ((wordcode) 1)) #define WC_ASSIGN_TYPE2(C) ((wc_data(C) & ((wordcode) 2)) >> 1) @@ -923,6 +951,7 @@ int badcshglob; pid_t cmdoutpid; int cmdoutval; + int use_cmdoutval; int trap_return; int trap_state; int trapisfunc; @@ -1718,6 +1747,28 @@ #define PRINT_WHENCE_FUNCDEF (1<<9) #define PRINT_WHENCE_WORD (1<<10) +/* Return values from loop() */ + +enum loop_return { + /* Loop executed OK */ + LOOP_OK, + /* Loop executed no code */ + LOOP_EMPTY, + /* Loop encountered an error */ + LOOP_ERROR +}; + +/* Return values from source() */ + +enum source_return { + /* Source ran OK */ + SOURCE_OK = 0, + /* File not found */ + SOURCE_NOT_FOUND = 1, + /* Internal error sourcing file */ + SOURCE_ERROR = 2 +}; + /***********************************/ /* Definitions for history control */ /***********************************/ @@ -1772,6 +1823,40 @@ #define HFILE_NO_REWRITE 0x0020 #define HFILE_USE_OPTIONS 0x8000 +/* + * Flags argument to bufferwords() used + * also by lexflags variable. + */ +/* + * Kick the lexer into special string-analysis + * mode without parsing. Any bit set in + * the flags has this effect, but this + * has otherwise all the default effects. + */ +#define LEXFLAGS_ACTIVE 0x0001 +/* + * Being used from zle. This is slightly more intrusive + * (=> grotesquely non-modular) than use from within + * the main shell, so it's a separate flag. + */ +#define LEXFLAGS_ZLE 0x0002 +/* + * Parse comments and treat each comment as a single string + */ +#define LEXFLAGS_COMMENTS_KEEP 0x0004 +/* + * Parse comments and strip them. + */ +#define LEXFLAGS_COMMENTS_STRIP 0x0008 +/* + * Either of the above + */ +#define LEXFLAGS_COMMENTS (LEXFLAGS_COMMENTS_KEEP|LEXFLAGS_COMMENTS_STRIP) +/* + * Treat newlines as whitespace + */ +#define LEXFLAGS_NEWLINE 0x0010 + /******************************************/ /* Definitions for programable completion */ /******************************************/ @@ -1891,6 +1976,7 @@ HISTIGNOREALLDUPS, HISTIGNOREDUPS, HISTIGNORESPACE, + HISTLEXWORDS, HISTNOFUNCTIONS, HISTNOSTORE, HISTREDUCEBLANKS, @@ -1934,9 +2020,14 @@ OCTALZEROES, OVERSTRIKE, PATHDIRS, + PATHSCRIPT, POSIXALIASES, POSIXBUILTINS, + POSIXCD, POSIXIDENTIFIERS, + POSIXJOBS, + POSIXSTRINGS, + POSIXTRAPS, PRINTEIGHTBIT, PRINTEXITVALUE, PRIVILEGED, @@ -1967,6 +2058,7 @@ SHWORDSPLIT, SINGLECOMMAND, SINGLELINEZLE, + SOURCETRACE, SUNKEYBOARDHACK, TRANSIENTRPROMPT, TRAPSASYNC, diff -Nru zsh-4.3.10/Src/zsh.mdd zsh-4.3.11/Src/zsh.mdd --- zsh-4.3.10/Src/zsh.mdd 2009-01-13 11:07:40.000000000 +0100 +++ zsh-4.3.11/Src/zsh.mdd 2010-07-09 16:47:49.000000000 +0200 @@ -2,7 +2,7 @@ link=static load=yes # load=static should replace use of alwayslink -functions='Functions/Exceptions/* Functions/Misc/* Functions/MIME/* Functions/Prompts/* Functions/VCS_Info/* Functions/VCS_Info/Backends/*' +functions='Functions/Chpwd/* Functions/Exceptions/* Functions/Misc/* Functions/MIME/* Functions/Prompts/* Functions/VCS_Info/* Functions/VCS_Info/Backends/*' nozshdep=1 alwayslink=1 diff -Nru zsh-4.3.10/Test/A01grammar.ztst zsh-4.3.11/Test/A01grammar.ztst --- zsh-4.3.10/Test/A01grammar.ztst 2009-04-21 11:31:49.000000000 +0200 +++ zsh-4.3.11/Test/A01grammar.ztst 2010-03-18 17:30:58.000000000 +0100 @@ -23,6 +23,22 @@ true | false 1:Exit status of pipeline with builtins (false) + false + $nonexistent_variable +0:Executing command that evaluates to empty resets status + + false + sleep 1 & + print $? + # a tidy test is a happy test + wait $! +0:Starting background command resets status +>0 + + false + . /dev/null +0:Sourcing empty file resets status + fn() { local foo; read foo; print $foo; } coproc fn print -p coproc test output @@ -378,10 +394,15 @@ >true-2 >false - if true; print true + if { true } print true + if { false } print false 0:Short form of `if' >true + eval "if" +1:Short form of `if' can't be too short +?(eval):1: parse error near `if' + for name ( word1 word2 word3 ) print $name 0:Form of `for' with parentheses. >word1 @@ -514,4 +535,45 @@ >value >not#comment - + . ./nonexistent +127: Attempt to "." non-existent file. +?(eval):.:1: no such file or directory: ./nonexistent + + echo '[[' >bad_syntax + . ./bad_syntax +126: Attempt to "." file with bad syntax. +?./bad_syntax:2: parse error near `\n' + + echo 'false' >dot_false + . ./dot_false + print $? + echo 'true' >dot_true + . ./dot_true + print $? +0:Last status of successfully executed "." file is retained +>1 +>0 + + echo 'echo $?' >dot_status + false + . ./dot_status +0:"." file sees status from previous command +>1 + + mkdir test_path_script + print "#!/bin/sh\necho Found the script." >test_path_script/myscript + chmod u+x test_path_script/myscript + path=($PWD/test_path_script $path) + export PATH + $ZTST_testdir/../Src/zsh -f -o pathscript myscript +0:PATHSCRIPT option +>Found the script. + + $ZTST_testdir/../Src/zsh -f myscript +127q:PATHSCRIPT option not used. +?$ZTST_testdir/../Src/zsh: can't open input file: myscript + + $ZTST_testdir/../Src/zsh -fc 'echo $0; echo $1' myargzero myargone +0:$0 is traditionally if bizarrely set to the first argument with -c +>myargzero +>myargone diff -Nru zsh-4.3.10/Test/A02alias.ztst zsh-4.3.11/Test/A02alias.ztst --- zsh-4.3.10/Test/A02alias.ztst 2009-03-03 18:08:12.000000000 +0100 +++ zsh-4.3.11/Test/A02alias.ztst 2010-03-25 16:13:56.000000000 +0100 @@ -36,3 +36,9 @@ >Without >This command has the argument true >With + + print -u $ZTST_fd 'This test hangs the shell when it fails...' + alias cat='LC_ALL=C cat' + cat <(echo foo | cat) +0:Alias expansion works at the end of parsed strings +>foo diff -Nru zsh-4.3.10/Test/A03quoting.ztst zsh-4.3.11/Test/A03quoting.ztst --- zsh-4.3.10/Test/A03quoting.ztst 2007-11-07 10:35:48.000000000 +0100 +++ zsh-4.3.11/Test/A03quoting.ztst 2010-11-19 18:51:07.000000000 +0100 @@ -42,6 +42,7 @@ unsetopt rcquotes 0:Yes RC_QUOTES with single quotes >' +# ' Deconfuse Emacs quoting rules print '<\u0041>' printf '%s\n' $'<\u0042>' @@ -52,3 +53,24 @@ > > > + + null1="$(print -r a$'b\0c'd)" + null2="$(setopt posixstrings; print -r a$'b\0c'd)" + for string in $null1 $null2; do + print ":" + for (( i = 1; i <= $#string; i++ )); do + char=$string[$i] + print $(( [#16] #char )) + done + done +0:Embedded null characters in $'...' strings. +>: +>16#61 +>16#62 +>16#0 +>16#63 +>16#64 +>: +>16#61 +>16#62 +>16#64 diff -Nru zsh-4.3.10/Test/A04redirect.ztst zsh-4.3.11/Test/A04redirect.ztst --- zsh-4.3.10/Test/A04redirect.ztst 2008-11-12 11:51:21.000000000 +0100 +++ zsh-4.3.11/Test/A04redirect.ztst 2010-09-14 16:46:26.000000000 +0200 @@ -134,6 +134,10 @@ > $foo$foo met celeste 'but with extra' "stuff to test quoting" >Last line + read -r line <<' HERE' + HERE +1:No input, not even newline, from empty here document. + # # exec tests: perform these in subshells so if they fail the # shell won't exit. diff -Nru zsh-4.3.10/Test/A05execution.ztst zsh-4.3.11/Test/A05execution.ztst --- zsh-4.3.10/Test/A05execution.ztst 2008-08-07 18:25:35.000000000 +0200 +++ zsh-4.3.11/Test/A05execution.ztst 2010-12-06 11:11:35.000000000 +0100 @@ -171,3 +171,10 @@ 0:trap ZERR >Command failed again. >Command failed again. + + false + sleep 1000 & + print $? + kill $! +0:Status reset by starting a backgrounded command +>0 diff -Nru zsh-4.3.10/Test/A06assign.ztst zsh-4.3.11/Test/A06assign.ztst --- zsh-4.3.10/Test/A06assign.ztst 2006-09-27 15:10:04.000000000 +0200 +++ zsh-4.3.11/Test/A06assign.ztst 2010-08-31 21:32:57.000000000 +0200 @@ -277,3 +277,18 @@ > > > + + call() { print $HELLO; } + export HELLO=world + call + HELLO=universe call + call + HELLO=${HELLO}liness call + call + unset HELLO +0:save and restore when using original value in temporary +>world +>universe +>world +>worldliness +>world diff -Nru zsh-4.3.10/Test/B04read.ztst zsh-4.3.11/Test/B04read.ztst --- zsh-4.3.10/Test/B04read.ztst 2005-04-25 12:33:30.000000000 +0200 +++ zsh-4.3.11/Test/B04read.ztst 2009-07-24 20:35:53.000000000 +0200 @@ -24,6 +24,18 @@ 0:read specified number of chars >foo + for char in y Y n N X $'\n'; do + read -q -u0 <<<$char + print $? + done +0:read yes or no, default no +>0 +>0 +>1 +>1 +>1 +>1 + read -d: <<0xFF >FF + array=(1) + x=0 + (( array[++x]++ )) + print $x + print $#array + print $array +0:no double increment for subscript +>1 +>1 +>2 + + # This is a bit naughty... the value of array + # isn't well defined since there's no sequence point + # between the increments of x, however we just want + # to be sure that in this case, unlike the above, + # x does get incremented twice. + x=0 + array=(1 2) + (( array[++x] = array[++x] + 1 )) + print $x +0:double increment for repeated expression +>2 diff -Nru zsh-4.3.10/Test/C02cond.ztst zsh-4.3.11/Test/C02cond.ztst --- zsh-4.3.10/Test/C02cond.ztst 2008-11-25 10:56:01.000000000 +0100 +++ zsh-4.3.11/Test/C02cond.ztst 2010-10-11 10:35:39.000000000 +0200 @@ -251,6 +251,61 @@ fi 0:regex tests shouldn't crash + (if zmodload -i zsh/regex 2>/dev/null; then + string="this has stuff in it" + bad_regex=0 + if [[ $string =~ "h([a-z]*) s([a-z]*) " ]]; then + if [[ "$MATCH $MBEGIN $MEND" != "has stuff 6 15" ]]; then + print -r "regex variables MATCH MBEGIN MEND: + '$MATCH $MBEGIN $MEND' + should be: + 'has stuff 6 15'" + bad_regex=1 + else + results=("as 7 8" "tuff 11 14") + for i in 1 2; do + if [[ "$match[$i] $mbegin[$i] $mend[$i]" != $results[i] ]]; then + print -r "regex variables match[$i] mbegin[$i] mend[$i]: + '$match[$i] $mbegin[$i] $mend[$i]' + should be + '$results[$i]'" + bad_regex=1 + break + fi + done + fi + (( bad_regex )) || print OK + else + print -r "regex failed to match '$string'" + fi + else + # if it didn't load, tough, but not a test error + print OK + fi) +0:MATCH, MBEGIN, MEND, match, mbegin, mend +>OK + + (if zmodload -i zsh/regex 2>/dev/null; then + if [[ a =~ a && b == b ]]; then + print OK + else + print "regex =~ inverted following test" + fi + else + # not a test error + print OK + fi) +0:regex infix operator should not invert following conditions +>OK + + [[ -fail badly ]] +2:Error message for unknown prefix condition +?(eval):1: unknown condition: -fail + + [[ really -fail badly ]] +2:Error message for unknown infix condition +?(eval):1: unknown condition: -fail + %clean # This works around a bug in rm -f in some versions of Cygwin chmod 644 unmodish diff -Nru zsh-4.3.10/Test/C03traps.ztst zsh-4.3.11/Test/C03traps.ztst --- zsh-4.3.10/Test/C03traps.ztst 2008-09-01 14:06:51.000000000 +0200 +++ zsh-4.3.11/Test/C03traps.ztst 2010-09-12 20:56:41.000000000 +0200 @@ -350,6 +350,43 @@ >trap >Working 0 + { trap 'echo This subshell is exiting' EXIT; } | cat +0: EXIT trap set in current shell at left of pipeline +>This subshell is exiting + + ( trap 'echo This subshell is also exiting' EXIT; ) | cat +0: EXIT trap set in subshell at left of pipeline +>This subshell is also exiting + + ( trap 'echo Should only appear once at the end' EXIT + ( : trap reset here ) | cat + : trap not reset but not part of shell command list | cat + echo nothing after this should appear $( : trap reset here too) + ) +0: EXIT trap set in subshell reset in subsubshell +>nothing after this should appear +>Should only appear once at the end + + echo $( trap 'echo command substitution exited' EXIT ) +0: EXIT trap set in command substitution +>command substitution exited + + (cd ..; $ZTST_exe -fc 'setopt posixtraps; + TRAPEXIT() { print Exited; } + fn1() { trap; } + setopt localtraps # should be ignored by EXIT + fn2() { TRAPEXIT() { print No, really exited; } } + fn1 + fn2 + fn1') +0:POSIX_TRAPS option +>TRAPEXIT () { +> print Exited +>} +>TRAPEXIT () { +> print No, really exited +>} +>No, really exited %clean diff -Nru zsh-4.3.10/Test/C04funcdef.ztst zsh-4.3.11/Test/C04funcdef.ztst --- zsh-4.3.10/Test/C04funcdef.ztst 2009-01-05 15:10:23.000000000 +0100 +++ zsh-4.3.11/Test/C04funcdef.ztst 2009-07-11 18:43:01.000000000 +0200 @@ -1,5 +1,27 @@ %test + fn1() { return 1; } + fn2() { + fn1 + print $? + return 2 + } + fn2 +2:Basic status returns from functions +>1 + + fnz() { } + false + fnz +0:Empty function body resets status + + fn3() { return 3; } + fnstat() { print $?; } + fn3 + fnstat +0:Status is not reset on non-empty function body +>3 + function f$$ () { print regress expansion of function names } diff -Nru zsh-4.3.10/Test/D02glob.ztst zsh-4.3.11/Test/D02glob.ztst --- zsh-4.3.10/Test/D02glob.ztst 2008-11-18 10:56:46.000000000 +0100 +++ zsh-4.3.11/Test/D02glob.ztst 2010-02-19 13:27:47.000000000 +0100 @@ -343,6 +343,47 @@ 0:Exclusions with complicated path specifications >glob.tmp/dir1 glob.tmp/dir2 glob.tmp/dir4 + print -l -- glob.tmp/*(P:-f:) +0:Prepending words to each argument +>-f +>glob.tmp/a +>-f +>glob.tmp/b +>-f +>glob.tmp/c +>-f +>glob.tmp/dir1 +>-f +>glob.tmp/dir2 +>-f +>glob.tmp/dir3 +>-f +>glob.tmp/dir4 + + print -l -- glob.tmp/*(P:one word:P:another word:) +0:Prepending two words to each argument +>one word +>another word +>glob.tmp/a +>one word +>another word +>glob.tmp/b +>one word +>another word +>glob.tmp/c +>one word +>another word +>glob.tmp/dir1 +>one word +>another word +>glob.tmp/dir2 +>one word +>another word +>glob.tmp/dir3 +>one word +>another word +>glob.tmp/dir4 + [[ "" = "" ]] && echo OK 0:Empty strings >OK @@ -384,7 +425,7 @@ >/ [[:WORD:]] yes [[ foo = (#c0)foo ]] -1:Misplaced (#c...) flag +2:Misplaced (#c...) flag ?(eval):1: bad pattern: (#c0)foo mkdir glob.tmp/dir5 diff -Nru zsh-4.3.10/Test/D04parameter.ztst zsh-4.3.11/Test/D04parameter.ztst --- zsh-4.3.10/Test/D04parameter.ztst 2009-04-30 13:08:37.000000000 +0200 +++ zsh-4.3.11/Test/D04parameter.ztst 2010-12-20 10:51:44.000000000 +0100 @@ -221,6 +221,18 @@ >\\foo matched by \\*\\ >a\\b not matched by \\*\\ + ( + setopt globsubst + foo="boring*" + print ${foo+$foo} + print ${foo+"$foo"} + print ${~foo+"$foo"} + ) +0:globsubst together with nested quoted expansion +>boringfile +>boring* +>boringfile + print -l "${$(print one word)}" "${=$(print two words)}" 0:splitting of $(...) inside ${...} >one word @@ -319,11 +331,25 @@ print -r ${(qq)foo} print -r ${(qqq)foo} print -r ${(qqqq)foo} + print -r ${(q-)foo} 0:${(q...)...} >playing\ \'stupid\'\ \"games\"\ \\w\\i\\t\\h\ \$quoting. >'playing '\''stupid'\'' "games" \w\i\t\h $quoting.' >"playing 'stupid' \"games\" \\w\\i\\t\\h \$quoting." >$'playing \'stupid\' "games" \\w\\i\\t\\h $quoting.' +>'playing '\'stupid\'' "games" \w\i\t\h $quoting.' + + print -r -- ${(q-):-foo} + print -r -- ${(q-):-foo bar} + print -r -- ${(q-):-"*(.)"} + print -r -- ${(q-):-"wow 'this is cool' or is it?"} + print -r -- ${(q-):-"no-it's-not"} +0:${(q-)...} minimal single quoting +>foo +>'foo bar' +>'*(.)' +>'wow '\''this is cool'\'' or is it?' +>no-it\'s-not foo="'and now' \"even the pubs\" \\a\\r\\e shut." print -r ${(Q)foo} @@ -363,6 +389,104 @@ >) >ten( more + strings=( + 'foo=(1 2 3)' + '(( 3 + 1 == 8 / 2 ))' + 'for (( i = 1 ; i < 10 ; i++ ))' + '((0.25542 * 60) - 15)*60' + ) + for string in $strings; do + array=(${(z)string}) + for (( i = 1; i <= ${#array}; i++ )); do + print -r -- "${i}:${array[i]}:" + done + done +0:Some syntactical expressions that are hard to split into words with (z). +>1:foo=(: +>2:1: +>3:2: +>4:3: +>5:): +>1:(( 3 + 1 == 8 / 2 )): +>1:for: +>2:((: +# Leading whitespace is removed, because the word proper hasn't started; +# trailing whitespace is left because the word is terminated by the +# semicolon or double parentheses. Bit confusing but sort of consistent. +>3:i = 1 ;: +>4:i < 10 ;: +>5:i++ : +>6:)): +# This one needs resolving between a math expression and +# a command, which causes interesting effects internally. +>1:(: +>2:(: +>3:0.25542: +>4:*: +>5:60: +>6:): +>7:-: +>8:15: +>9:): +>10:*60: + + + line=$'A line with # someone\'s comment\nanother line # (1 more\nanother one' + print "*** Normal ***" + print -l ${(z)line} + print "*** Kept ***" + print -l ${(Z+c+)line} + print "*** Removed ***" + print -l ${(Z+C+)line} +0:Comments with (z) +>*** Normal *** +>A +>line +>with +># +>someone's comment +>another line # (1 more +>another one +>*** Kept *** +>A +>line +>with +># someone's comment +>; +>another +>line +># (1 more +>; +>another +>one +>*** Removed *** +>A +>line +>with +>; +>another +>line +>; +>another +>one + + line='with comment # at the end' + print -l ${(Z+C+)line} +0:Test we don't get an additional newline token +>with +>comment + + line=$'echo one\necho two # with a comment\necho three' + print -l ${(Z+nc+)line} +0:Treating zplit newlines as ordinary whitespace +>echo +>one +>echo +>two +># with a comment +>echo +>three + psvar=(dog) setopt promptsubst foo='It shouldn'\''t $(happen) to a %1v.' @@ -933,6 +1057,51 @@ >/ >/ + baz=foo/bar + zab=oof+rab + print ${baz:s/\//+/} + print "${baz:s/\//+/}" + print ${zab:s/+/\//} + print "${zab:s/+/\//}" +0:Quoting of separator in substitution modifier +>foo+bar +>foo+bar +>oof/rab +>oof/rab + + bsbs='X\\\\Y' + print -r -- ${bsbs:s/\\/\\/} + print -r -- "${bsbs:s/\\/\\/}" + print -r -- ${bsbs:s/\\\\/\\\\/} + print -r -- "${bsbs:s/\\\\/\\\\/}" + print -r -- ${bsbs:gs/\\/\\/} + print -r -- "${bsbs:gs/\\/\\/}" + print -r -- ${bsbs:gs/\\\\/\\\\/} + print -r -- "${bsbs:gs/\\\\/\\\\/}" +0:Handling of backslashed backslashes in substitution modifier +>X\\\\Y +>X\\\\Y +>X\\\\Y +>X\\\\Y +>X\\\\Y +>X\\\\Y +>X\\\\Y +>X\\\\Y + + print -r ${${:-one/two}:s,/,X&Y,} + print -r ${${:-one/two}:s,/,X\&Y,} + print -r ${${:-one/two}:s,/,X\\&Y,} + print -r "${${:-one/two}:s,/,X&Y,}" + print -r "${${:-one/two}:s,/,X\&Y,}" + print -r "${${:-one/two}:s,/,X\\&Y,}" +0:Quoting of ampersand in substitution modifier RHS +>oneX/Ytwo +>oneX&Ytwo +>oneX\/Ytwo +>oneX/Ytwo +>oneX&Ytwo +>oneX\/Ytwo + nully=($'a\0c' $'a\0b\0b' $'a\0b\0a' $'a\0b\0' $'a\0b' $'a\0' $'a') for string in ${(o)nully}; do for (( i = 1; i <= ${#string}; i++ )); do @@ -984,6 +1153,34 @@ >sunny >day +# ' emacs likes this close quote + + a=(sping spang spong bumble) + print ${a[(i)spong]} + print ${a[(i)spung]} + print ${a[(ib.1.)spong]} + print ${a[(ib.4.)spong]} + print ${a[(ib.10.)spong]} +0:In and out of range reverse matched indices without and with b: arrays +>3 +>5 +>3 +>5 +>5 + + a="thrimblewuddlefrong" + print ${a[(i)w]} + print ${a[(i)x]} + print ${a[(ib.3.)w]} + print ${a[(ib.10.)w]} + print ${a[(ib.30.)w]} +0:In and out of range reverse matched indices without and with b: strings +>9 +>20 +>9 +>20 +>20 + foo="line:with::missing::fields:in:it" print -l ${(s.:.)foo} 0:Removal of empty fields in unquoted splitting @@ -1120,3 +1317,87 @@ >LOST >Subscript flags returning single values >STRING key= val= + + print $zsh_eval_context[1] + [[ $ZSH_EVAL_CONTEXT = ${(j.:.)zsh_eval_context} ]] || print Not equal! + (( icontext = ${#zsh_eval_context} + 1 )) + contextfn() { print $(print $zsh_eval_context[icontext,-1]); } + contextfn +0:$ZSH_EVAL_CONTEXT and $zsh_eval_context +>toplevel +>shfunc cmdsubst + + foo="123456789" + print ${foo:3} + print ${foo: 1 + 3} + print ${foo:$(( 2 + 3))} + print ${foo:$(echo 3 + 3)} + print ${foo:3:1} + print ${foo: 1 + 3:(4-2)/2} + print ${foo:$(( 2 + 3)):$(( 7 - 6 ))} + print ${foo:$(echo 3 + 3):`echo 4 - 3`} + print ${foo: -1} + print ${foo: -10} +0:Bash-style offsets, scalar +>456789 +>56789 +>6789 +>789 +>4 +>5 +>6 +>7 +>9 +>123456789 + + foo=(1 2 3 4 5 6 7 8 9) + print ${foo:3} + print ${foo: 1 + 3} + print ${foo:$(( 2 + 3))} + print ${foo:$(echo 3 + 3)} + print ${foo:3:1} + print ${foo: 1 + 3:(4-2)/2} + print ${foo:$(( 2 + 3)):$(( 7 - 6 ))} + print ${foo:$(echo 3 + 3):`echo 4 - 3`} + print ${foo: -1} + print ${foo: -10} +0:Bash-style offsets, array +>4 5 6 7 8 9 +>5 6 7 8 9 +>6 7 8 9 +>7 8 9 +>4 +>5 +>6 +>7 +>9 +>1 2 3 4 5 6 7 8 9 + + testfn() { + emulate -L sh + set -A foo 1 2 3 + set -- 1 2 3 + str=abc + echo ${foo[*]:0:1} + echo ${foo[*]:1:1} + echo ${foo[*]: -1:1} + : + echo ${*:0:1} + echo ${*:1:1} + echo ${*: -1:1} + : + echo ${str:0:1} + echo ${str:1:1} + echo ${str: -1:1} + } + testfn +0:Bash-style offsets, Bourne-style indexing +>1 +>2 +>3 +>testfn +>1 +>3 +>a +>b +>c diff -Nru zsh-4.3.10/Test/D07multibyte.ztst zsh-4.3.11/Test/D07multibyte.ztst --- zsh-4.3.10/Test/D07multibyte.ztst 2009-05-08 16:22:55.000000000 +0200 +++ zsh-4.3.11/Test/D07multibyte.ztst 2010-10-11 10:35:39.000000000 +0200 @@ -232,6 +232,12 @@ <«»ignored >«» + read -q -u0 mb + print $? +0:multibyte character makes read -q return false +<« +>1 + # See if the system grokks first-century Greek... ioh="Ἐν ἀρχῇ ἦν ὁ λόγος, καὶ ὁ λόγος ἦν πρὸς τὸν θεόν, καὶ θεὸς ἦν ὁ λόγος." for (( i = 1; i <= ${#ioh}; i++ )); do @@ -441,3 +447,21 @@ print $(( [#16] #REPLY )) 0:read passes through invalid multibyte characters >0xC5 + + word=abcま + word[-1]= + print $word + word=abcま + word[-2]= + print $word + word=abcま + word[4]=d + print $word + word=abcま + word[3]=not_c + print $word +0:assignment with negative indices +>abc +>abま +>abcd +>abnot_cま diff -Nru zsh-4.3.10/Test/D08cmdsubst.ztst zsh-4.3.11/Test/D08cmdsubst.ztst --- zsh-4.3.10/Test/D08cmdsubst.ztst 2007-12-10 14:55:13.000000000 +0100 +++ zsh-4.3.11/Test/D08cmdsubst.ztst 2009-07-11 18:43:01.000000000 +0200 @@ -89,3 +89,12 @@ X=$(exit 2) $(exit 0) || print $? 0:variable assignments processed after other substitutions >2 + + false + `` +0:Empty command substitution resets status + + false + echo `echo $?` +0:Non-empty command substitution inherits status +>1 diff -Nru zsh-4.3.10/Test/D09brace.ztst zsh-4.3.11/Test/D09brace.ztst --- zsh-4.3.10/Test/D09brace.ztst 1970-01-01 01:00:00.000000000 +0100 +++ zsh-4.3.11/Test/D09brace.ztst 2010-12-05 22:07:48.000000000 +0100 @@ -0,0 +1,99 @@ +# Tests for brace expansion + +%prep + + foo=(a b c) + arr=(foo bar baz) + +%test + + print X{1,2,{3..6},7,8}Y +0:Basic brace expansion +>X1Y X2Y X3Y X4Y X5Y X6Y X7Y X8Y + + print ${foo}{one,two,three}$arr +0:Brace expansion with arrays, no RC_EXPAND_PARAM +>a b conefoo ctwofoo cthreefoo bar baz + + print ${^foo}{one,two,three}$arr +0:Brace expansion with arrays, with RC_EXPAND_PARAM (1) +>aonefoo atwofoo athreefoo bonefoo btwofoo bthreefoo conefoo ctwofoo cthreefoo bar baz + + print ${foo}{one,two,three}$^arr +0:Brace expansion with arrays, with RC_EXPAND_PARAM (2) +>a b conefoo ctwofoo cthreefoo conebar ctwobar cthreebar conebaz ctwobaz cthreebaz + + print ${^foo}{one,two,three}$^arr +0:Brace expansion with arrays, with RC_EXPAND_PARAM (3) +>aonefoo atwofoo athreefoo aonebar atwobar athreebar aonebaz atwobaz athreebaz bonefoo btwofoo bthreefoo bonebar btwobar bthreebar bonebaz btwobaz bthreebaz conefoo ctwofoo cthreefoo conebar ctwobar cthreebar conebaz ctwobaz cthreebaz + + print X{01..4}Y +0:Numeric range expansion, padding (1) +>X01Y X02Y X03Y X04Y + + print X{1..04}Y +0:Numeric range expansion, padding (2) +>X01Y X02Y X03Y X04Y + + print X{7..12}Y +0:Numeric range expansion, padding (or not) (3) +>X7Y X8Y X9Y X10Y X11Y X12Y + + print X{07..12}Y +0:Numeric range expansion, padding (4) +>X07Y X08Y X09Y X10Y X11Y X12Y + + print X{7..012}Y +0:Numeric range expansion, padding (5) +>X007Y X008Y X009Y X010Y X011Y X012Y + + print X{4..1}Y +0:Numeric range expansion, decreasing +>X4Y X3Y X2Y X1Y + + print X{1..4}{1..4}Y +0:Numeric range expansion, combined braces +>X11Y X12Y X13Y X14Y X21Y X22Y X23Y X24Y X31Y X32Y X33Y X34Y X41Y X42Y X43Y X44Y + + print X{-4..4}Y +0:Numeric range expansion, negative numbers (1) +>X-4Y X-3Y X-2Y X-1Y X0Y X1Y X2Y X3Y X4Y + + print X{4..-4}Y +0:Numeric range expansion, negative numbers (2) +>X4Y X3Y X2Y X1Y X0Y X-1Y X-2Y X-3Y X-4Y + + print X{004..-4..2}Y +0:Numeric range expansion, stepping and padding (1) +>X004Y X002Y X000Y X-02Y X-04Y + + print X{4..-4..02}Y +0:Numeric range expansion, stepping and padding (1) +>X04Y X02Y X00Y X-2Y X-4Y + + print X{1..32..3}Y +0:Numeric range expansion, step alignment (1) +>X1Y X4Y X7Y X10Y X13Y X16Y X19Y X22Y X25Y X28Y X31Y + + print X{1..32..-3}Y +0:Numeric range expansion, step alignment (2) +>X31Y X28Y X25Y X22Y X19Y X16Y X13Y X10Y X7Y X4Y X1Y + + print X{32..1..3}Y +0:Numeric range expansion, step alignment (3) +>X32Y X29Y X26Y X23Y X20Y X17Y X14Y X11Y X8Y X5Y X2Y + + print X{32..1..-3}Y +0:Numeric range expansion, step alignment (4) +>X2Y X5Y X8Y X11Y X14Y X17Y X20Y X23Y X26Y X29Y X32Y + + setopt brace_ccl + print X{za-q521}Y + unsetopt brace_ccl +0:BRACE_CCL on +>X1Y X2Y X5Y XaY XbY XcY XdY XeY XfY XgY XhY XiY XjY XkY XlY XmY XnY XoY XpY XqY XzY + + print X{za-q521}Y +0:BRACE_CCL off +>X{za-q521}Y + diff -Nru zsh-4.3.10/Test/.distfiles zsh-4.3.11/Test/.distfiles --- zsh-4.3.10/Test/.distfiles 2009-04-24 11:08:42.000000000 +0200 +++ zsh-4.3.11/Test/.distfiles 2010-12-06 11:11:35.000000000 +0100 @@ -28,6 +28,7 @@ D06subscript.ztst D07multibyte.ztst D08cmdsubst.ztst +D09brace.ztst E01options.ztst E02xtrace.ztst Makefile.in diff -Nru zsh-4.3.10/Test/E01options.ztst zsh-4.3.11/Test/E01options.ztst --- zsh-4.3.10/Test/E01options.ztst 2008-08-11 10:38:57.000000000 +0200 +++ zsh-4.3.11/Test/E01options.ztst 2010-10-19 12:52:34.000000000 +0200 @@ -998,7 +998,7 @@ >two >words - fn() { unset foo; print $foo; } + fn() { unset foo; print value is $foo; } setopt nounset print option unset unset by setting nounset eval fn @@ -1008,9 +1008,32 @@ 0:UNSET option >option unset unset by setting nounset >option unset reset -> +>value is ?fn: foo: parameter not set + fn1() { unset foo; print value 1 is ${foo#bar}; } + fn2() { unset foo; print value 2 is ${foo%bar}; } + fn3() { unset foo; print value 3 is ${foo/bar}; } + setopt nounset + print option unset unset by setting nounset + eval fn1 + eval fn2 + eval fn3 + print option unset reset + setopt unset + fn1 + fn2 + fn3 +0:UNSET option with operators +>option unset unset by setting nounset +>option unset reset +>value 1 is +>value 2 is +>value 3 is +?fn1: foo: parameter not set +?fn2: foo: parameter not set +?fn3: foo: parameter not set + fn() { emulate -L zsh setopt warncreateglobal diff -Nru zsh-4.3.10/Test/V01zmodload.ztst zsh-4.3.11/Test/V01zmodload.ztst --- zsh-4.3.10/Test/V01zmodload.ztst 2008-08-22 17:41:06.000000000 +0200 +++ zsh-4.3.11/Test/V01zmodload.ztst 2010-06-14 13:57:08.000000000 +0200 @@ -135,7 +135,7 @@ print "Shouldn't get here.") 1:Failed builtin autoload ?(eval):3: module `zsh/parameter' has no such feature: `b:fail': autoload cancelled -?(eval):3: unknown builtin: fail +?(eval):3: autoloading module zsh/parameter failed to define builtin: fail (zmodload -u zsh/parameter zmodload -aF zsh/parameter p:fail @@ -143,7 +143,7 @@ print "Shouldn't get here.") 1:Failed parameter autoload ?(eval):3: module `zsh/parameter' has no such feature: `p:fail': autoload cancelled -?(eval):3: unknown parameter: fail +?(eval):3: autoloading module zsh/parameter failed to define parameter: fail (zmodload -u zsh/parameter zmodload -aF zsh/parameter c:fail @@ -151,14 +151,14 @@ print "Shouldn't get here.") 2:Failed condition autoload ?(eval):3: module `zsh/parameter' has no such feature: `c:fail': autoload cancelled -?(eval):3: unknown condition: -foo +?(eval):3: unknown condition: -fail (zmodload -u zsh/parameter zmodload -aF zsh/parameter f:fail (( fail() )) ) 2:Failed math function autoload ?(eval):3: module `zsh/parameter' has no such feature: `f:fail': autoload cancelled -?(eval):3: unknown function: fail +?(eval):3: autoloading module zsh/parameter failed to define math function: fail zmodload -aF zsh/parameter f:fail2 1:Immediate autoload failure on non-existent feature when module loaded diff -Nru zsh-4.3.10/Util/mkdisttree.sh zsh-4.3.11/Util/mkdisttree.sh --- zsh-4.3.10/Util/mkdisttree.sh 2000-05-06 10:05:25.000000000 +0200 +++ zsh-4.3.11/Util/mkdisttree.sh 2009-06-01 19:23:29.000000000 +0200 @@ -46,7 +46,7 @@ trap 'rm -f $filelist; rm -rf $disttree; exit 1' 1 2 15 ( cd $sdir_top - find . -name '?*.*' -prune -o -name .distfiles -print + find . -name .git -prune -o -name '?*.*' -prune -o -name .distfiles -print ) > $filelist ( while read dfn; do subdir=`echo $dfn | sed 's,/\.distfiles$,,'` diff -Nru zsh-4.3.10/Util/preconfig zsh-4.3.11/Util/preconfig --- zsh-4.3.10/Util/preconfig 2007-07-03 19:04:26.000000000 +0200 +++ zsh-4.3.11/Util/preconfig 2009-06-01 19:23:29.000000000 +0200 @@ -1,6 +1,6 @@ #! /bin/sh -find . -name '?*.*' -prune -o -name .preconfig -print | ( +find . -name .git -prune -o -name '?*.*' -prune -o -name .preconfig -print | ( while read pre; do cmd=`echo $pre | sed 's,^,cd ,;s,/\([^/]*\)$, \&\& ./\1,'` echo >&2 "$cmd"