Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: completion



In article <199908270703.JAA16459@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
  Sven Wischnowsky <wischnow@xxxxxxxxxxxxxxxxxxxxxxx> writes:

> Or -- in case something else went wrong -- just use the version of
> `_arguments' I currently have...

Hm. It has small problems about caching with short options.

Also, I modified cvs completion functions.

Index: Completion/Base/_arguments
===================================================================
RCS file: /projects/zsh/zsh/Completion/Base/_arguments,v
retrieving revision 1.1.1.15
diff -u -F^( -r1.1.1.15 _arguments
--- _arguments	1999/08/27 07:09:33	1.1.1.15
+++ _arguments	1999/08/27 08:21:07
@@ -123,7 +123,7 @@
   done
 
   if [[ -n "$_args_cache_single" ]]; then
-    _args_cache_soptseq="${(@j::)${(@M)${(@k)opts[(R)]}:#[-+]?}#[-+]}"
+    _args_cache_soptseq="${(@j::)${(@M)${(@k)_args_cache_opts[(R)]}:#[-+]?}#[-+]}"
     if [[ -n "$_args_cache_soptseq" ]]; then
       _args_cache_soptseq="[$_args_cache_soptseq]#"
       _args_cache_soptseq1="$_args_cache_soptseq#"
@@ -131,7 +131,7 @@
       _args_cache_soptseq=''
       _args_cache_soptseq1=''
     fi
-    _args_cache_sopts="${(@j::)${(@M)${(@k)opts}:#[-+]?}#[-+]}${(@j::)${(@M)${(@k)dopts}:#[-+]?}#[-+]}${(@j::)${(@M)${(@k)odopts}:#[-+]?}#[-+]}"
+    _args_cache_sopts="${(@j::)${(@M)${(@k)_args_cache_opts}:#[-+]?}#[-+]}${(@j::)${(@M)${(@k)_args_cache_dopts}:#[-+]?}#[-+]}${(@j::)${(@M)${(@k)_args_cache_odopts}:#[-+]?}#[-+]}"
   else
     _args_cache_soptseq=''
     _args_cache_soptseq1=''
Index: Completion/Cvs/_cvs
===================================================================
RCS file: /projects/zsh/zsh/Completion/Cvs/_cvs,v
retrieving revision 1.1.1.1
diff -u -F^( -r1.1.1.1 _cvs
--- _cvs	1999/08/26 11:08:17	1.1.1.1
+++ _cvs	1999/08/27 08:21:08
@@ -10,5 +10,5 @@
   '-d+:cvsroot:_cvs_root' \
   '-e+:editor:_cvs_editor' \
   '-s+:user variable:_cvs_user_variable' \
-  '-z:gzip level:_cvs_gzip_level' \
+  '-z+:gzip level:_cvs_gzip_level' \
   '*::cvs command:_cvs_command'
Index: Completion/Cvs/_cvs_command
===================================================================
RCS file: /projects/zsh/zsh/Completion/Cvs/_cvs_command,v
retrieving revision 1.1.1.2
diff -u -F^( -r1.1.1.2 _cvs_command
--- _cvs_command	1999/08/26 12:23:55	1.1.1.2
+++ _cvs_command	1999/08/27 08:21:08
@@ -1,40 +1,43 @@
 #autoload
 
 typeset -A cmds
-cmds=(add "ad new"            admin "adm rcs"         annotate ann
-      checkout "co get"       commit "ci com"         diff "di dif"
-      edit ""                 editors ""              export "exp ex"
-      history "hi his"        import "im imp"         init ""
-      log "lo rlog"           login "logon lgn"       logout ""
-      rdiff patch             release "re rel"        remove "rm delete"
-      status "st stat"        rtag "rt rfreeze"       tag "ta freeze"
-      unedit ""               update "up upd"         watch ""
+cmds=(add " ad new "          admin " adm rcs "       annotate " ann "
+      checkout " co get "     commit " ci com "       diff " di dif "
+      edit ""                 editors ""              export " exp ex "
+      history " hi his "      import " im imp "       init ""
+      log " lo rlog "         login " logon lgn "     logout ""
+      rdiff " patch pa "      release " re rel "      remove " rm delete "
+      status " st stat "      rtag " rt rfreeze "     tag " ta freeze "
+      unedit ""               update " up upd "       watch ""
       watchers "")
 
 if (( CURRENT == 1 )); then
   compadd ${(k)cmds} || compadd ${(kv)=cmds}
 else
-  case "$words[1]" in
-    add|ad|new) _cvs_add;;
-    admin|adm|rcs) _cvs_admin;;
-    annotate|ann) _cvs_annotate;;
-    checkout|co|get) _cvs_checkout;;
-    commit|ci|com) _cvs_commit;;
-    diff|di|dif) _cvs_diff;;
+  case "${${(k)cmds[(R)* $words[1] *]}:-$words[1]}" in
+    add) _cvs_add;;
+    admin) _cvs_admin;;
+    annotate) _cvs_annotate;;
+    checkout) _cvs_checkout;;
+    commit) _cvs_commit;;
+    diff) _cvs_diff;;
     edit) _cvs_edit;;
     editors) _cvs_editors;;
-    export|exp|ex) _cvs_export;;
-    history|hi|his) _cvs_history;;
-    import|im|imp) _cvs_import;;
+    export) _cvs_export;;
+    history) _cvs_history;;
+    import) _cvs_import;;
     init) _cvs_init;;
-    login|logon|lgn|logout) _cvs_login;;
-    rdiff|patch|pa) _cvs_rdiff;;
-    release|re|rel) _cvs_release;;
-    remove|rm|delete) _cvs_remove;;
-    status|st|stat) _cvs_status;;
-    tag|ta|freeze) _cvs_tag;;
+    log) _cvs_log;;
+    login) _cvs_login;;
+    logout) _cvs_logout;;
+    rdiff) _cvs_rdiff;;
+    release) _cvs_release;;
+    remove) _cvs_remove;;
+    status) _cvs_status;;
+    rtag) _cvs_rtag;;
+    tag) _cvs_tag;;
     unedit) _cvs_unedit;;
-    update|up|upd) _cvs_update;;
+    update) _cvs_update;;
     watch) _cvs_watch;;
     watchers) _cvs_watchers;;
     *) _message "unknown cvs command: $words[1]";;
diff -Paur Completion/Cvs/_cvs_logout Completion/Cvs+/_cvs_logout
--- Completion/Cvs/_cvs_logout	Thu Jan  1 09:00:00 1970
+++ Completion/Cvs/_cvs_logout	Fri Aug 27 17:08:54 1999
@@ -0,0 +1,3 @@
+#autoload
+
+false
-- 
Tanaka Akira



Messages sorted by: Reverse Date, Date, Thread, Author