diff options
-rw-r--r-- | ChangeLog | 207 | ||||
-rw-r--r-- | Completion/Base/_arguments | 4 | ||||
-rw-r--r-- | Completion/Core/.distfiles | 8 | ||||
-rw-r--r-- | Completion/User/_mailboxes | 6 | ||||
-rw-r--r-- | Completion/User/_mutt | 2 | ||||
-rw-r--r-- | Config/version.mk | 4 | ||||
-rw-r--r-- | Doc/Makefile.in | 60 | ||||
-rw-r--r-- | Doc/Zsh/.distfiles | 2 | ||||
-rw-r--r-- | Functions/Misc/.distfiles | 5 | ||||
-rw-r--r-- | Functions/Misc/is-at-least | 33 | ||||
-rw-r--r-- | Functions/Misc/nslookup | 49 | ||||
-rw-r--r-- | Makefile.in | 2 | ||||
-rw-r--r-- | Src/Modules/.distfiles | 1 | ||||
-rw-r--r-- | Src/builtin.c | 1 | ||||
-rw-r--r-- | Src/init.c | 7 | ||||
-rw-r--r-- | Src/zsh.h | 6 |
16 files changed, 314 insertions, 83 deletions
diff --git a/ChangeLog b/ChangeLog index 09f3d0810..efcce9dd8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,212 @@ +2000-02-11 Peter Stephenson <pws@pwstephenson.fsnet.co.uk> + + * pws: Config/version.mk: 3.1.6-dev-18 + + * Tanaka Akira: 9683: Completion/User/_diff_options: shut up error + messages (after other attempts from Oliver and Bart). + + * Alexandre: 9681: Completion/User/_prcs: argument handling. + + * Sven: 9680: Completion/Core/_files, + Completion/Core/_multi_parts, Completion/Core/_path_files, + Completion/Core/_sep_parts: use of -M option. + + * Sven: 9677, 9679: Completion/Commands/_read_comp, + Completion/Core/_approximate, Completion/Core/_expand, + Completion/Core/_main_complete, Completion/Core/_match, + Doc/Zsh/compctl.yo, Doc/Zsh/compsys.yo, Doc/Zsh/compwid.yo, + Src/Zle/comp.h, Src/Zle/compcore.c, Src/Zle/compctl.c, + Src/Zle/complete.c: $compmatchers bites the dust, use new matcher + style. + + * Sven: 9676: Src/Zle/computil.c: yet more argument subtleties. + + * Tanaka Akira: 9674: Test/10prompt.ztst: some nameless idiot got + the bits of the date wrong. + + * Sven: 9664: Completion/Core/_path_files: optimisation with + arrays. + + * Sven: 9659: Doc/Zsh/compsys.yo: mention complete-in-words + behaviour. + + * Sven: 9657: Completion/Core/_approximate, + Completion/Core/_description, Completion/Core/_main_complete, + Completion/Core/_matcher, Completion/Core/_path_files, + Completion/Core/_prefix, Doc/Zsh/compsys.yo, Src/Zle/complete.c + (plus Completion/Core/.distfiles change by hand): new _matcher + completer allows more control along the lines of $compmatchers. + + * Johan: 9653: Functions/Misc/is-at-least, + Functions/Misc/.distfiles (added by hand): function to check + version numbers. + + * Johan: 9651: Completion/User/_cvs: handle no CVS tags case better. + + * Sven: 9650: Completion/User/_gunzip, Completion/User/_gzip: + handle .tgz files. + + * Sven: 9648: Completion/Core/_files, + Completion/Core/_multi_parts, Completion/Core/_path_files, + Completion/Core/_sep_parts, Doc/Zsh/mod_zutil.yo, + Src/Modules/zutil.c: Bartised version of zparseopts; + fix _path_files -S ''. + + * Bart: 9639: Doc/Zsh/options.yo, Doc/Zsh/redirect.yo: typos in + 9625. + + * Tanaka Akira: 9638: Completion/User/_cvs: _cvs_rtag had no + default implementation. + + * Sven: 9635: Completion/Core/_description, + Completion/Core/_files, Completion/Core/_multi_parts, + Completion/Core/_path_files, Completion/Core/_sep_parts, + Doc/Zsh/mod_zutil.yo, Src/Modules/zutil.c, Src/Modules/zutil.mdd: + improved performance for completion functions; option-parsing + builtin. + + * Akim Demaille <akim@epita.fr>: 9634: Src/builtin.c: trap '' 1 + segfaulted. + + * Sven: 9633: Src/init.c: change logic in 9591. + + * Sven: 9632: Test/05command.ztst: error spotted by improved + autoload error checking. + + * Alexandre: 9625: Src/zsh.h, Src/options.c, Src/init.c, + Src/exec.c, Doc/Zsh/redirect.yo, Doc/Zsh/options.yo: SHNULLCMD and + CSHNULLCMD options to allow better sh/csh emulation without + fiddling with parameters. + + * Sven: 9623: Completion/Core/_path_files: another version of + 9616. + + * Sven: 9621: Src/Zle/computil.c: completion incorrectly adding + space. + + * Sven: 9619: Completion/User/_texi: completion for texinfo; + added Completion/User/.distfiles by hand. + + * Sven: 9618: Src/Zle/computil.c: memory leak in caching. + + * Sven: 9616: Completion/Core/_path_files: bad test with a + pattern. + + * Sven: 9615: Completion/Builtins/_zstyle, Doc/Zsh/compsys.yo: + rename and document some styles. + + * Sven: 9614: Src/exec.c: esglob wasn't initialised properly. + + * Alexandre: 9606: Completion/Builtins/_zstyle: two missing + styles. + + * Sven: 9600: Src/exec.c: wordcode problem in execpline(). + + * Bart: 9591: Src/init.c: zsh/compctl didn't get loaded + automatically any more. + + * Geoff: 9589: Doc/Makefile.in: put back ^A's from 9584. + + * Tanaka Akira: 9585: Doc/Makefile.in: possible logic problems + with 9584. + + * Geoff: 9584: Doc/Makefile.in: sh problems with creating + modlist.yo. + + * Alexandre: 9583: Functions/Misc/nslookup: fix context name for + new scheme. + + * Sven: 9390, 9394, hunk from 9396: ./Doc/Makefile.in, + Doc/Zsh/mod_zpty.yo, Doc/Zsh/.distfiles, Functions/Misc/nslookup, + Src/Modules/.distfiles, Src/Modules/zpty.c, Src/Modules/zpty.mdd, + Src/builtin.c, Src/init.c, Src/zsh.h: zpty module. + +2000-02-05 Peter Stephenson <pws@pwstephenson.fsnet.co.uk> + + * Tanaka Akira: 9579: Completion/Debian/_deb_packages: was using + bad cache variable. + +2000-02-04 Peter Stephenson <pws@pwstephenson.fsnet.co.uk> + + * Sven: 9569: Completion/Core/_main_complete, + Completion/Core/_prefix, Doc/Zsh/compsys.yo, Src/Zle/compcore.c: + new complete-prefix completer _prefix; fix suffix matching + problems. + + * Sven: 9568: Src/Zle/computil.c: fix difficulties with remaining + arguments. + + * Sven: 9562: Completion/Base/_arg_compile, + Completion/Base/_arguments, Completion/Base/_command_names, + Completion/Builtins/_hash, Completion/User/_gdb, + Completion/User/_ssh, Completion/User/_strip, Completion/X/_xrdb, + Completion/X/_xutils, Src/Zle/computil.c: failure to follow links + completing commands; bad long option handling in some cases + + * Sven: 9560 (second hunk only): Src/Zle/computil.c: more + argument fixes. + + * Sven: 9559: Doc/Zsh/compsys.yo: better documentation for `+' + argument handling. + + * Sven: 9558: Src/exec.c, Src/parse.c: trapping of autoloading + errors wasn't up to scratch. + + * Alexandre: 9557: Completion/User/_flex: problem handling + `+' argument. + +2000-02-03 Peter Stephenson <pws@pwstephenson.fsnet.co.uk> + + * Oliver: 9547: Src/parse.c, Src/hist.c: more fixups for exporting + on AIX. + + * Sven: 9546: Completion/Base/_arguments, + Completion/Base/_combination, Completion/Base/_describe, + Completion/Base/_first, Completion/Base/_jobs, + Completion/Base/_subscript, Completion/Base/_tilde, + Completion/Base/_values, Completion/Builtins/_pids, + Completion/Builtins/_popd, Completion/Builtins/_sched, + Completion/Builtins/_signals, Completion/Builtins/_stat, + Completion/Builtins/_zftp, Completion/Builtins/_zstyle, + Completion/Commands/_complete_help, + Completion/Commands/_correct_word, + Completion/Commands/_expand_word, + Completion/Commands/_history_complete_word, + Completion/Core/_alternative, Completion/Core/_approximate, + Completion/Core/_complete, Completion/Core/_correct, + Completion/Core/_description, Completion/Core/_expand, + Completion/Core/_files, Completion/Core/_list, + Completion/Core/_main_complete, Completion/Core/_match, + Completion/Core/_menu, Completion/Core/_message, + Completion/Core/_normal, Completion/Core/_oldlist, + Completion/Core/_path_files, Completion/Core/_setup, + Completion/Core/_sort_tags, Completion/Core/_tags, + Completion/Core/compinit, Completion/Debian/_apt, + Completion/Debian/_deb_packages, Completion/User/_cvs, + Completion/User/_domains, Completion/User/_groups, + Completion/User/_hosts, Completion/User/_ports, + Completion/User/_socket, Completion/User/_urls, + Completion/User/_users, Completion/X/_x_color, Doc/Zsh/compsys.yo, + Etc/completion-style-guide, + Functions/Zle/incremental-complete-word, Functions/Zle/predict-on: + more consistent form for style contexts in completion system, + :completion:<func>:<completer>:<command>:<argument>:<tag>. + + * Sven: 9545: Src/Modules/zutil.c: don't use freed structs. + + * Tanaka Akira: 9544: Src/Modules/zutil.c: handle case for + undefined match data in zregexparse. + + * Sven: 9542: Src/Zle/complete.c: use permanently allocated memory + for copied special parameters. + + * Sven: 9541: Src/Modules/zutil.c: zstyle looks up style names + first. + 2000-02-02 Peter Stephenson <pws@pwstephenson.fsnet.co.uk> + * pws: Config/version.mk: version 3.1.6-dev-17 + * Bart: 9533: Src/signals.c: make sure shell doesn't send itself SIGHUP when exiting. diff --git a/Completion/Base/_arguments b/Completion/Base/_arguments index 19288b7ca..258b56b3a 100644 --- a/Completion/Base/_arguments +++ b/Completion/Base/_arguments @@ -256,8 +256,8 @@ if (( $# )) && comparguments -i "$autod" "$@"; then if [[ -z "$matched$mesg" ]] && _requested options && { ! zstyle -t ":completion:${curcontext}:options" prefix-needed || - [[ ( "$origpre" = [-+]* || -z "$aret$mesg" ) && - nm -eq compstate[nmatches] ]] } ; then + [[ "$origpre" = [-+]* || + ( -z "$aret$mesg" && nm -eq compstate[nmatches] ) ]] } ; then local prevpre="$PREFIX" previpre="$IPREFIX" PREFIX="$origpre" diff --git a/Completion/Core/.distfiles b/Completion/Core/.distfiles index a015dc79d..d540450e3 100644 --- a/Completion/Core/.distfiles +++ b/Completion/Core/.distfiles @@ -1,10 +1,10 @@ DISTFILES_SRC=' .distfiles _alternative _approximate _compalso _complete _correct _description - _expand _files _funcall _list _main_complete _match - _matcher _menu _multi_parts _message _normal _oldlist - _options _parameters _path_files _prefix _requested - _sep_parts _set_options _setup _sort_tags _tags + _expand _files _funcall _list _main_complete _match _matcher + _menu _multi_parts _message _normal _oldlist _options + _parameters _path_files _prefix _requested _sep_parts + _set_options _setup _sort_tags _tags _unset_options _wanted compdump compinit compinstall ' diff --git a/Completion/User/_mailboxes b/Completion/User/_mailboxes index a0c95859d..97628ef9a 100644 --- a/Completion/User/_mailboxes +++ b/Completion/User/_mailboxes @@ -38,9 +38,5 @@ if (( ! $+_mailbox_cache )) then _mailbox_cache=($_mailbox_cache $mboxes $maildirboxes $MHboxes) fi -if _wanted files expl 'mailbox specification'; then - local opre=$PREFIX - [[ $PREFIX = +* ]] && PREFIX="$~maildirectory/${PREFIX#+}" +_wanted files expl 'mailbox specification' && compadd "$@" "$expl[@]" - "$_mailbox_cache[@]" - PREFIX=$opre -fi diff --git a/Completion/User/_mutt b/Completion/User/_mutt index 851db8f7e..dfb50ae3a 100644 --- a/Completion/User/_mutt +++ b/Completion/User/_mutt @@ -1,6 +1,6 @@ #compdef mutt -local curcontext="$curcontext" state line ret=1 +local curcontext="$curcontext" state line muttrc="~/.muttrc" ret=1 _arguments -C \ '::recipient:->userhost' \ diff --git a/Config/version.mk b/Config/version.mk index 510317494..9cd86724f 100644 --- a/Config/version.mk +++ b/Config/version.mk @@ -27,5 +27,5 @@ # This must also serve as a shell script, so do not add spaces around the # `=' signs. -VERSION=3.1.6-dev-17 -VERSION_DATE='February 2, 2000' +VERSION=3.1.6-dev-18 +VERSION_DATE='February 11, 2000' diff --git a/Doc/Makefile.in b/Doc/Makefile.in index 49b16f888..e56bb0c55 100644 --- a/Doc/Makefile.in +++ b/Doc/Makefile.in @@ -51,7 +51,7 @@ zshoptions.1 zshparam.1 zshzftpsys.1 zshzle.1 zshall.1 # yodl documentation -YODLDOC = $(MAN) texi +YODLDOC = $(MAN) zsh.texi MODDOCSRC = \ Zsh/mod_cap.yo Zsh/mod_clone.yo \ @@ -60,7 +60,7 @@ Zsh/mod_computil.yo \ Zsh/mod_deltochar.yo Zsh/mod_example.yo Zsh/mod_files.yo \ Zsh/mod_mapfile.yo Zsh/mod_mathfunc.yo Zsh/mod_parameter.yo Zsh/mod_sched.yo \ Zsh/mod_stat.yo Zsh/mod_zftp.yo Zsh/mod_zle.yo Zsh/mod_zleparameter.yo \ -Zsh/mod_zutil.yo Zsh/mod_zprof.yo +Zsh/mod_zutil.yo Zsh/mod_zprof.yo Zsh/mod_zpty.yo YODLSRC = zmacros.yo zman.yo ztexi.yo Zsh/arith.yo Zsh/builtins.yo \ Zsh/compat.yo Zsh/compctl.yo Zsh/compsys.yo Zsh/compwid.yo Zsh/cond.yo \ @@ -73,30 +73,25 @@ Zsh/seealso.yo Zsh/zftpsys.yo Zsh/zle.yo # ========== DEPENDENCIES FOR BUILDING ========== -all: man texi ../META-FAQ +all: $(MAN) zsh.texi ../META-FAQ .PHONY: all -everything: all dvi ps html +everything: all zsh.dvi zsh_us.ps zsh_a4.ps zsh_toc.html .PHONY: everything -dvi: zsh.dvi -.PHONY: dvi - zsh.dvi: $(sdir)/zsh.texi - $(TEXI2DVI) $< - -texi: $(sdir)/zsh.texi -.PHONY: texi + $(TEXI2DVI) $(sdir)/zsh.texi -$(sdir)/zsh.texi: - $(YODL) -o $@ -I$(sdir) -w ztexi.yo version.yo zsh.yo; \ - test -f $@ - -info: zsh.info -.PHONY: info +zsh.texi $(sdir)/zsh.texi: + case $@ in \ + */*) target=$@ ;; \ + *) target=$(sdir)/$@ ;; \ + esac; \ + $(YODL) -o $$target -I$(sdir) -w ztexi.yo version.yo zsh.yo; \ + test -f $$target zsh.info: $(sdir)/zsh.texi - $(MAKEINFO) $< + $(MAKEINFO) $(sdir)/zsh.texi .yo.1: case $@ in \ @@ -108,26 +103,14 @@ zsh.info: $(sdir)/zsh.texi ;; esac; \ test -f $$target -ps: us_ps a4_ps -.PHONY: ps - -us_ps: zsh_us.ps -.PHONY: us_ps - zsh_us.ps: zsh.dvi - $(DVIPS) -t letter -o $@ $< - -a4_ps: zsh_a4.ps -.PHONY: a4_ps + $(DVIPS) -t letter -o $@ zsh.dvi zsh_a4.ps: zsh.dvi - $(DVIPS) -t a4 -o $@ $< - -html: zsh_toc.html -.PHONY: html + $(DVIPS) -t a4 -o $@ zsh.dvi zsh_toc.html: $(sdir)/zsh.texi - $(TEXI2HTML) $< + $(TEXI2HTML) $(sdir)/zsh.texi zshall.1: zsh.yo case $@ in \ @@ -147,10 +130,7 @@ zshall.1: zsh.yo $(YODLDOC): version.yo -$(sdir)/zsh.texi: $(YODLSRC) - -man: $(MAN) -.PHONY: man +zsh.texi: $(YODLSRC) $(MAN): zmacros.yo zman.yo @@ -245,7 +225,7 @@ uninstall: uninstall.man .PHONY: uninstall # install man pages, creating install directory if necessary -install.man: man +install.man: $(MAN) $(sdir_top)/mkinstalldirs $(DESTDIR)$(mandir)/man1 for file in $(MAN); do \ $(INSTALL_DATA) $(sdir)/$$file $(DESTDIR)$(mandir)/man1/`echo $$file | sed 's|zsh|$(tzsh)|'` || exit 1; \ @@ -253,7 +233,7 @@ install.man: man .PHONY: install.man # install info pages, creating install directory if necessary -install.info: texi +install.info: zsh.texi $(sdir_top)/mkinstalldirs $(DESTDIR)$(infodir) rm -rf infodir mkdir infodir @@ -287,7 +267,7 @@ uninstall.info: .PHONY: uninstall.info # install HTML manual -install.html: html +install.html: zsh_toc.html $(sdir_top)/mkinstalldirs $(DESTDIR)$(htmldir) for file in zsh_*.html; do \ $(INSTALL_DATA) $$file $(DESTDIR)$(htmldir) || exit 1; \ diff --git a/Doc/Zsh/.distfiles b/Doc/Zsh/.distfiles index 4bfa02dd6..fd1c27874 100644 --- a/Doc/Zsh/.distfiles +++ b/Doc/Zsh/.distfiles @@ -7,7 +7,7 @@ DISTFILES_SRC=' mod_computil.yo mod_deltochar.yo mod_example.yo mod_files.yo mod_mapfile.yo mod_mathfunc.yo mod_parameter.yo mod_sched.yo mod_stat.yo mod_zftp.yo mod_zle.yo mod_zleparameter.yo mod_zutil.yo - mod_zprof.yo + mod_zprof.yo mod_zpty.yo modules.yo modmenu.yo manmodmenu.yo options.yo params.yo prompt.yo redirect.yo restricted.yo seealso.yo zftpsys.yo zle.yo diff --git a/Functions/Misc/.distfiles b/Functions/Misc/.distfiles index 474c9cf74..e57056c03 100644 --- a/Functions/Misc/.distfiles +++ b/Functions/Misc/.distfiles @@ -1,5 +1,6 @@ DISTFILES_SRC=' .distfiles - acx allopt cat cdmatch cdmatch2 checkmail colors cx harden mere multicomp - nslookup proto pushd randline run-help yp yu zed zless zls zmv + acx allopt cat cdmatch cdmatch2 checkmail colors cx harden + is-at-least mere multicomp nslookup proto pushd randline + run-help yp yu zed zless zls zmv ' diff --git a/Functions/Misc/is-at-least b/Functions/Misc/is-at-least new file mode 100644 index 000000000..b85e9b1a3 --- /dev/null +++ b/Functions/Misc/is-at-least @@ -0,0 +1,33 @@ +# $Id: is-at-least,v 1.1.1.1 2000/02/11 19:46:46 akr Exp $ -*- shell-script -*- +# +# Test whether $ZSH_VERSION (or some value of your choice, if a second argument +# is provided) is greater than or equal to x.y.z-r (in argument one). In fact, +# it'll accept any dot/dash-separated string of numbers as its second argument +# and compare it to the dot/dash-separated first argument. Leading non-number +# parts of a segment (such as the "zefram" in 3.1.2-zefram4) are not considered +# when the comparison is done; only the numbers matter. Any left-out segments +# in the first argument that are present in the version string compared are +# considered as zeroes, eg 3 == 3.0 == 3.0.0 == 3.0.0.0 and so on. +# +# Usage examples: +# is-at-least 3.1.6-15 && setopt NO_GLOBAL_RCS +# is-at-least 3.1.0 && setopt HIST_REDUCE_BLANKS +# is-at-least 586 $MACHTYPE && echo 'You could be running Mandrake!' + +function is-at-least() +{ + emulate zsh ; setopt LOCAL_OPTIONS + local IFS=".-" min_cnt=0 ver_cnt=0 part min_ver version + min_ver=(${=1}) + version=(${=2:-$ZSH_VERSION} 0) + while (( $min_cnt <= ${#min_ver} )) { + while [[ "$part" != <-> ]] { + [[ $[++ver_cnt] > ${#version} ]] && return 0 + part=${version[ver_cnt]##*[^0-9]} + } + [[ $[++min_cnt] > ${#min_ver} ]] && return 0 + (( part > min_ver[min_cnt] )) && return 0 + (( part < min_ver[min_cnt] )) && return 1 + part='' + } +} diff --git a/Functions/Misc/nslookup b/Functions/Misc/nslookup index d59a5e66c..2103a839b 100644 --- a/Functions/Misc/nslookup +++ b/Functions/Misc/nslookup @@ -1,34 +1,33 @@ # Simple wrapper function for `nslookup'. With completion if you are using # the function based completion system. -setopt localoptions completealiases +setopt localoptions localtraps completealiases -local char line compcontext=nslookup pid +local tmp line compcontext=nslookup curcontext='nslookup:::' pmpt -trap 'print -p exit;return' INT +zmodload -e zsh/zpty || zmodload -i zsh/zpty -coproc command nslookup -pid=$! +trap 'return 130' INT +trap 'zpty -d nslookup' EXIT -while read -pk 1 char; do - line="$line$char" - [[ "$line" = *' -> ' ]] && break -done -print -nr - "$line" - -line='' -while vared -p '> ' line; do - print -p "$line" - line='' - while read -pk 1 char; do - line="$line$char" - [[ "$line" = *' -> ' ]] && break - done - print -nr - "$line" - line='' +pmpt=() +zstyle -s ':nslookup' prompt tmp && pmpt=(-p "$tmp") +zstyle -s ':nslookup' rprompt tmp && pmpt=("$pmpt[@]" -r "$tmp") +(( $#pmpt )) || pmpt=(-p '> ') + +zpty nslookup nslookup + +zpty -r nslookup line '*> ' +print -nr "$line" + +while line=''; vared -he "$pmpt[@]" line; do + print -s "$line" + [[ "$line" = exit ]] && break + + zpty -w nslookup "$line" + + zpty -r nslookup line '*> ' || break + print -nr "$line" done -print -p exit -wait $pid +zpty -w nslookup 'exit' diff --git a/Makefile.in b/Makefile.in index 7f8e8fb0e..addd62c30 100644 --- a/Makefile.in +++ b/Makefile.in @@ -42,7 +42,7 @@ INSTALL = @INSTALL@ # default target all: config.h - @for subdir in Src Doc Etc; do \ + @for subdir in Src Doc; do \ (cd $$subdir && $(MAKE) $(MAKEDEFS) $@) || exit 1; \ done diff --git a/Src/Modules/.distfiles b/Src/Modules/.distfiles index 5bb3f6ef6..4ef91ad62 100644 --- a/Src/Modules/.distfiles +++ b/Src/Modules/.distfiles @@ -11,4 +11,5 @@ DISTFILES_SRC=' zftp.mdd zftp.c zprof.mdd zprof.c zutil.mdd zutil.c + zpty.mdd zpty.c ' diff --git a/Src/builtin.c b/Src/builtin.c index 96c86d291..6b09eb3aa 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -3219,6 +3219,7 @@ zexit(int val, int from_signal) } if (sigtrapped[SIGEXIT]) dotrap(SIGEXIT); + runhookdef(EXITHOOK, NULL); if (mypid != getpid()) _exit(val); else diff --git a/Src/init.c b/Src/init.c index 1921935eb..0dc063f7b 100644 --- a/Src/init.c +++ b/Src/init.c @@ -89,6 +89,11 @@ mod_export int (*getkeyptr) _((int)); mod_export int alloc_stackp; #endif +/**/ +mod_export struct hookdef zshhooks[] = { + HOOKDEF("exit", NULL, HOOKF_ALL), +}; + /* keep executing lists until EOF found */ /**/ @@ -560,6 +565,8 @@ setupvals(void) # endif #endif + addhookdefs(argzero, zshhooks, sizeof(zshhooks)/sizeof(*zshhooks)); + init_eprog(); getkeyptr = NULL; diff --git a/Src/zsh.h b/Src/zsh.h index ea8ba8598..51c21d073 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -1651,3 +1651,9 @@ typedef unsigned char * (*ZleReadFn) _((char *, char *, int)); /***************************************/ #define mod_export + +/***************************************/ +/* Hooks in core. */ +/***************************************/ + +#define EXITHOOK (zshhooks + 0) |