summaryrefslogtreecommitdiff
path: root/Completion/X/Command/_netscape
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/X/Command/_netscape')
-rw-r--r--Completion/X/Command/_netscape92
1 files changed, 92 insertions, 0 deletions
diff --git a/Completion/X/Command/_netscape b/Completion/X/Command/_netscape
new file mode 100644
index 000000000..99d6ee45c
--- /dev/null
+++ b/Completion/X/Command/_netscape
@@ -0,0 +1,92 @@
+#compdef netscape
+
+local curcontext="$curcontext" state line ret=1 suf
+typeset -A opt_args
+
+_x_arguments -C \
+ '-xrm:resource:_x_resource' \
+ '-help[show usage message]' \
+ '-version[show the version number and build date]' \
+ '-visual[use a specific server visual]:id-or-number:' \
+ '-install[install a private colormap]' \
+ '-no-install[use the default colormap]' \
+ '-ncols[max no. of colors to allocate for images]:n:' \
+ '-mono[force 1-bit-deep image display]' \
+ '-iconic[start up iconified]' \
+ '-remote[execute a command in an existing Netscape]:remote command:->remote' \
+ '-id[id of X window to send remote commands to]:window-id:' \
+ '-raise[raise window following remote command]' \
+ "-noraise[don't raise window following remote command]" \
+ '-nethelp[show nethelp]' \
+ -{dont-force-window-stacking,no-about-splash} \
+ -{,no-}{,irix-}session-management \
+ -{done-save,ignore}-geometry-prefs \
+ -{component-bar,composer,edit,messenger,mail,discussions,news} \
+ '*:location:->urls' && ret=0
+
+[[ "$state" = "urls" ]] &&
+ _files "$@" && return 0
+
+# Handle netscape remote commands
+if [[ "$state" = "remote" ]]; then
+ local -a remote_commands
+ remote_commands=(openURL openFile saveAs mailto addBookmark)
+
+ compset -P '*\('
+ if compset -S '(|\\)\)*'; then
+ set - -S "" "$@"
+ else
+ set - -S"${${QIPREFIX:+)}:-\)}$compstate[quote] " "$@"
+ fi
+ case $IPREFIX in
+ openURL*|addBookmark*) state=urls;;
+ openFile*) _files "$@" -W ~;;
+ saveAs*)
+ if compset -P "*,"; then
+ _wanted types expl 'data type' \
+ compadd "$@" -M 'm:{a-zA-Z}={A-Za-z}' HTML Text PostScript && ret=0
+ else
+ compset -S ",*" || suf=","
+ _files -qS "$suf" -W ~ && ret=0
+ fi
+ ;;
+ mailto*)
+ compset -P "*,"
+ if compset -P '*@'; then
+ _wanted hosts expl 'remote host name' _hosts -q -S, && ret=0
+ else
+ compset -S "@*" || suf="@"
+ _wanted users expl 'login name' _users -q -S "$suf" && ret=0
+ fi
+ ;;
+ *)
+ compset -S '(|\\)\(*' || suf="${${QIPREFIX:+(}:-\(}"
+ _wanted commands expl 'remote commands' \
+ compadd -qS "$suf" -M 'm:{a-zA-Z}={A-Za-z}' -a \
+ remote_commands && ret=0
+ ;;
+ esac
+fi
+
+if [[ "$state" = "urls" ]]; then
+ # Complete netscape urls
+ if compset -P about: ; then
+ _wanted values expl 'about what' \
+ compadd "$@" authors blank cache document fonts global hype image-cache \
+ license logo memory-cache mozilla plugins && ret=0
+ elif compset -P news: ; then
+ _newsgroups "$@" && ret=0
+ else
+ _tags prefixes
+ while _tags; do
+ while _next_label prefixes expl 'URL prefix' "$@"; do
+ _urls "$expl[@]" && ret=0
+ compset -S '[^:]*'
+ compadd -S '' "$expl[@]" about: news: mocha: javascript: && ret=0
+ done
+ (( ret )) || return 0
+ done
+ fi
+fi
+
+return ret