From ef70792d06f6bce71b5d51b507372252b187a666 Mon Sep 17 00:00:00 2001 From: GSI2016 <2016@groovy-skills.com> Date: Fri, 8 Apr 2016 20:31:47 -0300 Subject: [PATCH] made list of urls unique when $DMENU_HAS_VERTICAL --- examples/data/scripts/load_url_from_history.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/data/scripts/load_url_from_history.sh b/examples/data/scripts/load_url_from_history.sh index 3c9af67e7..ce533c92e 100755 --- a/examples/data/scripts/load_url_from_history.sh +++ b/examples/data/scripts/load_url_from_history.sh @@ -12,8 +12,12 @@ readonly DMENU_OPTIONS="xmms vertical resize" # choose from all entries, sorted and uniqued if $DMENU_HAS_VERTICAL; then # choose an item in reverse order, showing also the date and page titles - # pick the last field from the first 3 fields. this way you can pick a url (prefixed with date & time) or type just a new url. - goto="$( tac "$UZBL_HISTORY_FILE" | $DMENU | cut -d ' ' -f -3 | awk '{ print $NF }' )" + + # tac: output history in reverse, awk: remove duplicate URLs, $DMENU: present to dmenu, + # cut: get the first three fields, awk: pick the last field + # As opposed to just getting the third field directly, the combination of cut+awk allows + # to enter a completely new URL (which would be field number 1 or $NF, but not 3). + goto="$( tac "$UZBL_HISTORY_FILE" | awk '!a[$3]++' | $DMENU | cut -d ' ' -f -3 | awk '{ print $NF }' )" else readonly current="$( tail -n 1 "$UZBL_HISTORY_FILE" | cut -d ' ' -f 3 )" goto="$( ( print "$current\n"; cut -d ' ' -f 3 < "$UZBL_HISTORY_FILE" | grep -v -e "^$current\$" | sort -u ) | $DMENU )"