zsh-workers
 help / color / mirror / code / Atom feed
* Re: Bug#448465: zsh completion for coreutils cut
@ 2007-10-29 13:56 Clint Adams
       [not found] ` <20071030060305.273140@gmx.net>
  0 siblings, 1 reply; 3+ messages in thread
From: Clint Adams @ 2007-10-29 13:56 UTC (permalink / raw)
  To: zsh-workers; +Cc: Dr. Markus Waldeck, 448465

On Mon, Oct 29, 2007 at 10:39:44AM +0100, Dr. Markus Waldeck wrote:
> Is there a design decision to handle i18n?
> 
> I checked all existing completion files but I did not find any hint!

As far as I know, you're the first one to try it; there's not even any
i18n in the main shell.

> #compdef cut
> 
> local _cut_args
> 
> declare -A _cut_args
> 
> case $LANG in
>   de_DE.UTF-8)
>      _cut_args=(
>            bytes           "nur diese Bytes ausgeben" 
>            characters      "nur diese Zeichen ausgeben" 
>            delimiter       "Delimiter anstelle von Tabulator als Trenner benutzen"
>            fields          "nur diese Felder und alle Zeilen OHNE Trennzeichen ausgeben"
>            n               "(ignoriert)"
>            complement      "das Komplement der Menge der gewählten Bytes, Zeichen oder Felder bilden"
>            only-delimited  "keine Zeilen ausgeben, die keinen Trenner enthalten"
>            ouput-delimiter "Zeichenkette als Ausgabetrennzeichen benutzen"
>            help            "diese Hilfe anzeigen und beenden"
>            version         "Versionsinformation anzeigen und beenden"
>      )
>   ;;
>   *)
>      _cut_args=(
>            bytes           "select only these bytes"
>            characters      "select only these characters"
>            delimiter       "use DELIM instead of TAB for field delimiter"
>            fields          "select only these fields and lines whitout the delimiter character"
>            n               "(ignored)"
>            complement      "complement the set of selected bytes, characters or fields"
>            only-delimited  "do not print lines not containing delimiters"
>            ouput-delimiter "use STRING as the output delimiter"
>            help            "display this help and exit"
>            version         "output version information and exit"
>      )
>   ;;
> esac
> 
> _arguments \
>         '(--bytes -b)'{--bytes=,-b}'['$_cut_args[bytes]']' \
>         '(--characters -c)'{--characters=,-c}'['$_cut_args[characters]']' \
>         '(--delimiter -d)'{--delimiter=,-d}'['$_cut_args[delimiter]']' \
>         '(--fields -f)'{--fields=,-f}'['$_cut_args[fields]']' \
>         '-n['$_cut_args[n]']' \
>         '--complement['$_cut_args[complement]']' \
>         '(--only-delimited -s)'{--only-delimited=,-s}'['$_cut_args[only-delimited]']' \
>         '--ouput-delimiter['$_cut_args[ouput-delimiter]']' \
>         '--help['$_cut_args[help]']' \
>         '--version['$_cut_args[version]']' \

A couple tweaks; the "local" was redundant and "output" was misspelled a
few times.

Index: Completion/Unix/Command/_cut
===================================================================
RCS file: Completion/Unix/Command/_cut
diff -N Completion/Unix/Command/_cut
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ Completion/Unix/Command/_cut	29 Oct 2007 13:31:32 -0000
@@ -0,0 +1,46 @@
+#compdef cut
+
+typeset -A _cut_args
+
+case $LANG in
+  (de_DE.UTF-8)
+     _cut_args=(
+           bytes           "nur diese Bytes ausgeben" 
+           characters      "nur diese Zeichen ausgeben" 
+           delimiter       "Delimiter anstelle von Tabulator als Trenner benutzen"
+           fields          "nur diese Felder und alle Zeilen OHNE Trennzeichen ausgeben"
+           n               "(ignoriert)"
+           complement      "das Komplement der Menge der gewählten Bytes, Zeichen oder Felder bilden"
+           only-delimited  "keine Zeilen ausgeben, die keinen Trenner enthalten"
+           output-delimiter "Zeichenkette als Ausgabetrennzeichen benutzen"
+           help            "diese Hilfe anzeigen und beenden"
+           version         "Versionsinformation anzeigen und beenden"
+     )
+  ;;
+  (*)
+     _cut_args=(
+           bytes           "select only these bytes"
+           characters      "select only these characters"
+           delimiter       "use DELIM instead of TAB for field delimiter"
+           fields          "select only these fields and lines whitout the delimiter character"
+           n               "(ignored)"
+           complement      "complement the set of selected bytes, characters or fields"
+           only-delimited  "do not print lines not containing delimiters"
+           output-delimiter "use STRING as the output delimiter"
+           help            "display this help and exit"
+           version         "output version information and exit"
+     )
+  ;;
+esac
+
+_arguments \
+        '(--bytes -b)'{--bytes=,-b}'['$_cut_args[bytes]']' \
+        '(--characters -c)'{--characters=,-c}'['$_cut_args[characters]']' \
+        '(--delimiter -d)'{--delimiter=,-d}'['$_cut_args[delimiter]']' \
+        '(--fields -f)'{--fields=,-f}'['$_cut_args[fields]']' \
+        '-n['$_cut_args[n]']' \
+        '--complement['$_cut_args[complement]']' \
+        '(--only-delimited -s)'{--only-delimited=,-s}'['$_cut_args[only-delimited]']' \
+        '--output-delimiter['$_cut_args[output-delimiter]']' \
+        '--help['$_cut_args[help]']' \
+        '--version['$_cut_args[version]']'


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Bug#448465: zsh completion for coreutils cut
       [not found] ` <20071030060305.273140@gmx.net>
@ 2007-10-30 17:15   ` Clint Adams
       [not found]     ` <20071030200829.208660@gmx.net>
  0 siblings, 1 reply; 3+ messages in thread
From: Clint Adams @ 2007-10-30 17:15 UTC (permalink / raw)
  To: Dr. Markus Waldeck; +Cc: zsh-workers

On Tue, Oct 30, 2007 at 07:03:05AM +0100, Dr. Markus Waldeck wrote:
> There is a much more important problem: VERSIONING!
> How to handle different implementations of the same program
> (coreutils cut vs. BSD cut)?
> Or different versions with different options of the same program?
> A professional completion would only display the relevant options!

Check the documentation for the _pick_variant function.


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Bug#448465: zsh completion for coreutils cut
       [not found]     ` <20071030200829.208660@gmx.net>
@ 2007-10-31  0:12       ` Clint Adams
  0 siblings, 0 replies; 3+ messages in thread
From: Clint Adams @ 2007-10-31  0:12 UTC (permalink / raw)
  To: Dr. Markus Waldeck; +Cc: zsh-workers

On Tue, Oct 30, 2007 at 09:08:29PM +0100, Dr. Markus Waldeck wrote:
> _pick_variant requires that a program is verbose.
> 
> Please add the following lines.
> 
> if _pick_variant gnu="Free Soft" unix --version; then
>     case $LANG in
> ...
>             '--version['$_cut_args[version]']'
> fi

The alternate form is a poorly-done rendition for FreeBSD cut.

Index: Completion/Unix/Command/_cut
===================================================================
RCS file: /cvsroot/zsh/zsh/Completion/Unix/Command/_cut,v
retrieving revision 1.1
diff -u -r1.1 _cut
--- Completion/Unix/Command/_cut	29 Oct 2007 14:00:32 -0000	1.1
+++ Completion/Unix/Command/_cut	31 Oct 2007 00:11:06 -0000
@@ -2,38 +2,39 @@
 
 typeset -A _cut_args
 
-case $LANG in
-  (de_DE.UTF-8)
-     _cut_args=(
-           bytes           "nur diese Bytes ausgeben" 
-           characters      "nur diese Zeichen ausgeben" 
-           delimiter       "Delimiter anstelle von Tabulator als Trenner benutzen"
-           fields          "nur diese Felder und alle Zeilen OHNE Trennzeichen ausgeben"
-           n               "(ignoriert)"
-           complement      "das Komplement der Menge der gewählten Bytes, Zeichen oder Felder bilden"
-           only-delimited  "keine Zeilen ausgeben, die keinen Trenner enthalten"
-           output-delimiter "Zeichenkette als Ausgabetrennzeichen benutzen"
-           help            "diese Hilfe anzeigen und beenden"
-           version         "Versionsinformation anzeigen und beenden"
-     )
-  ;;
-  (*)
-     _cut_args=(
-           bytes           "select only these bytes"
-           characters      "select only these characters"
-           delimiter       "use DELIM instead of TAB for field delimiter"
-           fields          "select only these fields and lines whitout the delimiter character"
-           n               "(ignored)"
-           complement      "complement the set of selected bytes, characters or fields"
-           only-delimited  "do not print lines not containing delimiters"
-           output-delimiter "use STRING as the output delimiter"
-           help            "display this help and exit"
-           version         "output version information and exit"
-     )
-  ;;
-esac
+if _pick_variant gnu="Free Soft" unix --version; then
+  case $LANG in
+    (de_DE.UTF-8)
+       _cut_args=(
+             bytes           "nur diese Bytes ausgeben" 
+             characters      "nur diese Zeichen ausgeben" 
+             delimiter       "Delimiter anstelle von Tabulator als Trenner benutzen"
+             fields          "nur diese Felder und alle Zeilen OHNE Trennzeichen ausgeben"
+             n               "(ignoriert)"
+             complement      "das Komplement der Menge der gewählten Bytes, Zeichen oder Felder bilden"
+             only-delimited  "keine Zeilen ausgeben, die keinen Trenner enthalten"
+             output-delimiter "Zeichenkette als Ausgabetrennzeichen benutzen"
+             help            "diese Hilfe anzeigen und beenden"
+             version         "Versionsinformation anzeigen und beenden"
+       )
+    ;;
+    (*)
+       _cut_args=(
+             bytes           "select only these bytes"
+             characters      "select only these characters"
+             delimiter       "use DELIM instead of TAB for field delimiter"
+             fields          "select only these fields and lines whitout the delimiter character"
+             n               "(ignored)"
+             complement      "complement the set of selected bytes, characters or fields"
+             only-delimited  "do not print lines not containing delimiters"
+             output-delimiter "use STRING as the output delimiter"
+             help            "display this help and exit"
+             version         "output version information and exit"
+       )
+    ;;
+  esac
 
-_arguments \
+  _arguments \
         '(--bytes -b)'{--bytes=,-b}'['$_cut_args[bytes]']' \
         '(--characters -c)'{--characters=,-c}'['$_cut_args[characters]']' \
         '(--delimiter -d)'{--delimiter=,-d}'['$_cut_args[delimiter]']' \
@@ -44,3 +45,13 @@
         '--output-delimiter['$_cut_args[output-delimiter]']' \
         '--help['$_cut_args[help]']' \
         '--version['$_cut_args[version]']'
+else
+  _arguments \
+    '-b[list specifies byte positions]:list:' \
+    '-c[list specifies character positions]:list:' \
+    '-d[use alternate delimeter]:delimeter:' \
+    '-f[list specifies fields]:list:' \
+    '-n[do not split multi-byte characters]' \
+    '-s[suppress lines with no delimeters]' \
+    '*:file:_files'
+fi


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2007-10-31  0:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-10-29 13:56 Bug#448465: zsh completion for coreutils cut Clint Adams
     [not found] ` <20071030060305.273140@gmx.net>
2007-10-30 17:15   ` Clint Adams
     [not found]     ` <20071030200829.208660@gmx.net>
2007-10-31  0:12       ` Clint Adams

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).