diff options
Diffstat (limited to 'Completion')
-rw-r--r-- | Completion/Unix/Command/_webbrowser | 2 | ||||
-rw-r--r-- | Completion/X/Command/.distfiles | 1 | ||||
-rw-r--r-- | Completion/X/Command/_mozilla | 99 |
3 files changed, 101 insertions, 1 deletions
diff --git a/Completion/Unix/Command/_webbrowser b/Completion/Unix/Command/_webbrowser index b0e6b1c21..bde1372be 100644 --- a/Completion/Unix/Command/_webbrowser +++ b/Completion/Unix/Command/_webbrowser @@ -1,3 +1,3 @@ -#compdef amaya arena chimera express grail gzilla hotjava mmm mozilla opera www xmosaic Mosaic galeon +#compdef amaya arena chimera express grail gzilla hotjava mmm opera www xmosaic Mosaic galeon konqueror skipstone light dillo _urls -f diff --git a/Completion/X/Command/.distfiles b/Completion/X/Command/.distfiles index 5cc5d5e6d..da4d54381 100644 --- a/Completion/X/Command/.distfiles +++ b/Completion/X/Command/.distfiles @@ -2,4 +2,5 @@ DISTFILES_SRC=' .distfiles _gv _netscape _xauth _xfig _xrdb _xterm _xwit _nedit _vnc _x_utils _xdvi _xmodmap _xset _xv +_mozilla ' diff --git a/Completion/X/Command/_mozilla b/Completion/X/Command/_mozilla new file mode 100644 index 000000000..30cfe8dc9 --- /dev/null +++ b/Completion/X/Command/_mozilla @@ -0,0 +1,99 @@ +#compdef mozilla + +local curcontext="$curcontext" state line ret=1 suf +typeset -A opt_args + +_x_arguments -C \ + '-height[height of startup window]:height:' \ + '(-h)-help[show usage message]' \ + '(-help)-h[show usage message]' \ + '-installer[start with 4.x migration window]' \ + '-width[width of startup window]:width:' \ + '(-v)-version[show the version number and build date]' \ + '(-version)-v[show the version number and build date]' \ + '-CreateProfile:profile:' \ + '-P[start with profile]:profile:' \ + '-ProfileWizard[start with profile wizard]' \ + '-ProfileManager[start with profile manager]' \ + '-SelectProfile[start with profile selection dialog]' \ + '-UILocale:locale:' \ + '-contentLocale:locale:' \ + '-remote[execute a command in an existing Mozilla]:remote command:->remote' \ + '-splash[enable splash screen]' \ + '-chat[start with IRC client]' \ + '-news[start with news]' \ + '-jsconsole[start with JavaScript Console]' \ + '-venkman[start with JavaScript debugger]' \ + '-terminal[start with command line terminal]' \ + '-edit[start with editor]:url:_urls' \ + '-chrome[load the specified chrome]:url:_urls' \ + '-mail[start with mail]' \ + '-compose[start with messenger compose]:url:_urls' \ + '*:location:->urls' && ret=0 + +[[ "$state" = "urls" ]] && + _files "$@" && return 0 + +# Handle mozilla 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 mozilla 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 |