summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command
diff options
context:
space:
mode:
authorMarc Chantreux <eiro@phear.org>2021-02-27 16:27:35 +0100
committerOliver Kiddle <opk@zsh.org>2021-03-31 01:16:21 +0200
commit7518b20a01bd27a9246d9b040ba5f972ab686e62 (patch)
treebe5936e011135d09b89341347c35f9b57cc7b521 /Completion/Unix/Command
parentfc82e8193bad79db5de9e40ec99814fe401ad876 (diff)
downloadzsh-7518b20a01bd27a9246d9b040ba5f972ab686e62.tar.gz
zsh-7518b20a01bd27a9246d9b040ba5f972ab686e62.zip
users/26557: add bookmarks support and remove the header from the final list in surfraw completion
Diffstat (limited to 'Completion/Unix/Command')
-rw-r--r--Completion/Unix/Command/_surfraw18
1 files changed, 16 insertions, 2 deletions
diff --git a/Completion/Unix/Command/_surfraw b/Completion/Unix/Command/_surfraw
index f945f1ca9..343d275cc 100644
--- a/Completion/Unix/Command/_surfraw
+++ b/Completion/Unix/Command/_surfraw
@@ -424,12 +424,26 @@ case $state in
yubnub)
_message -e command 'Yubnub Command'
;;
+ *)
+ _message -e string 'search string'
+ ;;
esac
;;
elvi)
+ local -UT XDG_CONFIG_DIRS xcd
+ # as it starts with a space, the header becomes an empty
+ # string removed by the list expansion
_wanted elvi expl elvi compadd \
- ${${${(f)"$(_call_program elvi surfraw -elvi)"}%%[[:space:]]##--*}%:*} && ret=0
+ ${${(f)"$(surfraw -elvi)"}%%[[:space:]]*} $(
+ # extract the keys of all bookmarks (should be in surfraw itself)
+ awk '{keys[$1]=1} END {for (k in keys) print k}' \
+ $^xcd/surfraw/bookmarks(Nr) \
+ /etc/xdg/surfraw/bookmarks(Nr) \
+ /etc/surfraw.bookmarks(Nr) \
+ ${XDG_CONFIG_HOME-${HOME?homeless}/.config}/surfraw/bookmarks(Nr) \
+ ${HOME?homeless}/.surfraw.bookmarks(Nr)
+ ) && ret=0
;;
-esac
+esac
return ret