1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-11-19 13:33:52 +01:00

21611: Added Firefox completion support.

This commit is contained in:
Felix Rosencrantz 2005-08-15 14:39:54 +00:00
parent 243539fa30
commit 821c0fd80d
2 changed files with 45 additions and 14 deletions

@ -1,3 +1,7 @@
2005-08-15 Felix Rosencrantz <f.rosencrantz@gmail.com>
* 21611: Completion/X/Command/_mozilla: Added Firefox support.
2005-08-15 Peter Stephenson <pws@csr.com>
* 21610: Src/system.h, Src/Zle/zle_hist.c, Src/Zle/zle_keymap.c,

@ -1,37 +1,42 @@
#compdef mozilla mozilla-firefox mozilla-xremote-client
#compdef mozilla mozilla-firefox mozilla-xremote-client firefox
local curcontext="$curcontext" state line expl ret=1 suf
typeset -A opt_args
local popts="-installer -CreateProfile -P -ProfileWizard -ProfileManager -SelectProfile"
local -a mozopts
if [[ $service = *remote* ]]; then
state=remote
else
_x_arguments -C \
if [[ $service != *firefox* ]]; then
mozopts=(
"($popts)-installer[start with 4.x migration window]"
"($popts)-CreateProfile:profile"
"($popts)-ProfileWizard[start with profile wizard]"
"($popts)-SelectProfile[start with profile selection dialog]"
'-splash[enable splash screen]'
'-chat[start with IRC client]'
'-news[start with news]'
'-venkman[start with JavaScript debugger]'
'-terminal[start with command line terminal]'
'-mail[start with mail]'
'-compose[start with messenger compose]:URL:_urls'
)
fi
_x_arguments -C $mozopts \
'-height[height of startup window]:height' \
'(-)'{-h,-help}'[show usage message]' \
"($popts)-installer[start with 4.x migration window]" \
'-width[width of startup window]:width' \
'(-)'{-v,-version}'[show the version number and build date]' \
"($popts)-CreateProfile:profile" \
"($popts)-P[start with profile]:profile:compadd ~/.mozilla/*/*.slt(\:h\:t)" \
"($popts)-ProfileWizard[start with profile wizard]" \
"($popts)-P[start with profile]:profile:->profile" \
"($popts)-ProfileManager[start with profile manager]" \
"($popts)-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
fi
@ -104,4 +109,26 @@ if [[ "$state" = "urls" ]]; then
fi
fi
if [[ $state == "profile" ]]; then
if [[ $service == *firefox* ]]; then
local -a profiles text profiledir
case "$OSTYPE" in
darwin*) profiledir=~/"Library/Application Support/Firefox" ;;
*) profiledir=~/.mozilla/firefox/ ;;
esac
profiles=(${(f)"$(< ${profiledir}/profiles.ini)"})
profiles=(${(M)${profiles}:#(\[Profile|(Path|Name)=)*})
text=${(F)profiles}
profiles=(${(f)text//(#b)\[Profile([0-9]##)\]
Name=([^
]##|)
Path=([^
]##|)/$match[2]})
profiles=(${profiles%:})
compadd $profiles
else
compadd ~/.mozilla/*/*.slt(\:h\:t)
fi
fi
return ret