zsh-workers
 help / color / mirror / code / Atom feed
* PATCH: rdesktop completion
@ 2014-10-21 18:42 Oliver Kiddle
  0 siblings, 0 replies; only message in thread
From: Oliver Kiddle @ 2014-10-21 18:42 UTC (permalink / raw)
  To: Zsh workers

New completion function.

Oliver

diff --git a/Completion/X/Command/_rdesktop b/Completion/X/Command/_rdesktop
new file mode 100644
index 0000000..0bd08d9
--- /dev/null
+++ b/Completion/X/Command/_rdesktop
@@ -0,0 +1,71 @@
+#compdef rdesktop
+
+local curcontext="$curcontext" state line expl redir ret=1
+typeset -A opt_args
+
+_arguments -C -s \
+  '-u[username]:username:_users' \
+  '-d[domain]:domain' \
+  '-s[shell]:startup shell' \
+  '-c[working directory]:directory:_directories' \
+  '-p[password]:password' \
+  '-n[hostname]:host:_hosts' \
+  '-k[keyboard map]:keyboard map' \
+  '(-f)-g[geometry]:geometry (WxH)' \
+  '(-g)-f[fullscreen mode]' \
+  '-b[force server to use bitmaps for screen updates]' \
+  '-B[use X server backing store]' \
+  '-E[disable encryption]' \
+  "-m[don't send mouse motion events]" \
+  '-C[use private colormap]' \
+  '-D[hide window decorations]' \
+  '-K[do not override window manager key bindings]' \
+  '-S[single application mode]' \
+  '-T[set window title]:title' \
+  '-N[enable numlock synchronisation]' \
+  '-X[embed in another window]:window:_x_window' \
+  '-a[colour depth]:depth:(8 15 16 24)' \
+  '-z[enable compression]' \
+  '-x[bandwidth performance behaviour]:experience:((b\:broadband l\:lan m\:modem))' \
+  '-P[enable bitmap caching]' \
+  '*-r[device redirection]: :->redirection' \
+  '-0[attach to server console]' \
+  '(-5)-4[use RDP version 4]' \
+  '(-4)-5[use RDP version 5]' \
+  ':server:->hostsport' && ret=0
+
+case $state in
+  hostsport)
+    if compset -P '*:'; then
+      _ports && ret=0
+    else
+      compset -S ':*'
+      _hosts && ret=0
+    fi
+  ;;
+  redirection)
+    redir="${PREFIX%%:*}"
+    if compset -P '*='; then
+      curcontext="${curcontext%:*}:$redir"
+      compset -P '*='
+      case $redir in
+	comport|lptport) _wanted devices expl device _files -g '*(-%)' && ret=0 ;;
+	disk) _directories && ret=0 ;;
+	printer) _printers && ret=0 ;;
+	scard) _message -e aliases 'alias name' ;;
+      esac
+    else
+      compset -S '=*'
+      _values -S : 'redirection' \
+	'comport:port' \
+	'disk:sharename' \
+	'lptport:lptport' \
+	'printer:printername:_printers -S=' \
+	'sound:sound:(local off remote)' \
+	'lspci' \
+	'scard:sound card name' && ret=0
+    fi
+  ;;
+esac
+ 
+return ret


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2014-10-21 18:49 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-10-21 18:42 PATCH: rdesktop completion Oliver Kiddle

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).