summaryrefslogtreecommitdiff
path: root/Completion/Unix/Command/_surfraw
diff options
context:
space:
mode:
authorMarc Chantreux <eiro@phear.org>2021-03-11 19:08:57 +0100
committerOliver Kiddle <opk@zsh.org>2021-04-06 14:42:07 +0200
commitccc7ff90a46d7b1bdcf61bae2dba20d68dca7654 (patch)
tree669077d17ffd5bd7400a1f13908ff4efabea5e77 /Completion/Unix/Command/_surfraw
parent2c000ee7bab65f950fd4bec2077332d90ef5417a (diff)
downloadzsh-ccc7ff90a46d7b1bdcf61bae2dba20d68dca7654.tar.gz
zsh-ccc7ff90a46d7b1bdcf61bae2dba20d68dca7654.zip
users/26579: changes from review including parameter expansion to replace awk
Diffstat (limited to 'Completion/Unix/Command/_surfraw')
-rw-r--r--Completion/Unix/Command/_surfraw30
1 files changed, 17 insertions, 13 deletions
diff --git a/Completion/Unix/Command/_surfraw b/Completion/Unix/Command/_surfraw
index 343d275cc..4838f1e58 100644
--- a/Completion/Unix/Command/_surfraw
+++ b/Completion/Unix/Command/_surfraw
@@ -430,19 +430,23 @@ case $state in
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)"$(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
+ local -UT XDG_CONFIG_DIRS xdg_config_dirs
+ local it
+ # list the applets
+ set -- ${${(f)"$(_call_program elvi surfraw -elvi)"}%%[[:space:]]##-- *}
+ shift # the first line is an header: remove it
+ # then list the bookmarks
+ for it in \
+ $^xdg_config_dirs/surfraw/bookmarks(Nr) \
+ /etc/xdg/surfraw/bookmarks(Nr) \
+ /etc/surfraw.bookmarks(Nr) \
+ ${XDG_CONFIG_HOME-$HOME/.config}/surfraw/bookmarks(Nr) \
+ $HOME/.surfraw.bookmarks(Nr)
+ do
+ read -d'\0' it < $it
+ set -- "$@" ${${(f)it}%%[[:space:]]*}
+ done
+ _wanted elvi expl elvi compadd "$@" && ret=0
;;
esac