w_refuri="$(URL "$PATH_INFO")?$(HTML "$QUERY_STRING")"
+w_str_s="$(STRING "$SEARCH")"
+w_str_f="$(STRING "$FILTER")"
+
w_ascii='
s-0-0-g; s-1-1-g; s-2-2-g; s-3-3-g; s-4-4-g; s-5-5-g;
s-6-6-g; s-7-7-g; s-8-8-g; s-9-9-g;
[ "$ORDER" = Length ] && w_colength=checked
[ "$ORDER" = Group ] && w_cogroup=checked
+w_bmname=
+w_bmname(){
+ [ "$w_bmname" ] || w_bmname="$(
+ bm="$_DATA/.index/bookmarks"
+ name="$(grep -m1 -aF " search=${w_str_s} filter=${w_str_f}${CR}" "$bm" 2>&-)"
+
+ if [ "$name" ]; then
+ printf '%s' "$name" |cut -f1 |UNSTRING |HTML
+ else
+ printf '%s\t%s' "$SEARCH" "$FILTER" \
+ | sed -r '/^\t$/{ s;\t;All;; q;}
+ /.*\t$/{ s;\t$;;; q;}
+ /^\t.*/{ s;^\t;;;
+ :x; s;(^|[~^|])([^|^~:]+):;\1;; tx;
+ s;\^; and ;g; s;\|;,;g; s;~;not ;g; q;}' \
+ | HTML
+ fi
+ )"
+ printf '%s' "$w_bmname"
+}
+
w_bookmarks(){
- local name='' cf='' cs='' bm="$_DATA/.index/bookmarks" proposed_name=''
+ local bm="$_DATA/.index/bookmarks" name='' search='' filter=''
[ ! -d "${bm%/*}" ] && return 0
[ ! -f "$bm" ] && touch "$bm"
- [ "$SEARCH" ] && cs="$(STRING "$SEARCH")"
- [ "$FILTER" ] && cf="$(STRING "$FILTER")"
-
- name="$(grep -m1 -aF " search=$cs filter=$cf${CR}" "$bm" |cut -f1 |UNSTRING)"
- [ ! "$name" ] && proposed_name="$(
- printf '%s\t%s' "$SEARCH" "$FILTER" \
- |sed -r '/^\t$/{ s;\t;All;; q;}
- /.*\t$/{ s;\t$;;; q;}
- /^\t.*/{ s;^\t;;;
- :x; s;(^|[~^|])([^|^~:]+):;\1;; tx;
- s;\^; and ;g; s;\|;,;g; s;~;not ;g; q;}'
- )"
+ grep -qaF " search=$w_str_s filter=${w_str_f}${CR}" "$bm" && name=Update || name=Add
printf '[form #bookmarks action=?a=bookmark method=POST
[a href="#" x]
[button type="submit" %s]' \
"$w_refuri" \
"$(HTML "$SEARCH")" "$(HTML "$FILTER")" \
- "$(HTML "${name:-${proposed_name}}")" \
- "${name:+Update}${proposed_name:+Add}"
+ "$(w_bmname)" "${name}"
[ "$name" ] && printf ' [submit "delete" "delete" Delete]'
sort "$bm" |while read -r name search filter; do
search="${search#search=}" filter="${filter#filter=}" filter="${filter%${CR}}"
- [ "$search" = "${cs}" -a "$filter" = "${cf}" ] && continue
+ [ "$search" = "${w_str_s}" -a "$filter" = "${w_str_f}" ] && continue
name="$(UNSTRING "$name")";
search="$(UNSTRING "${search}" |URL)";
filter="$(UNSTRING "${filter}" |URL)";
printf '[label .link %s]
- [a .link target=blank href="?o=Name&s=%s&f=%s" by Name]
- [a .link target=blank href="?o=Date&s=%s&f=%s" by Date]
- [a .link target=blank href="?o=Length&s=%s&f=%s" by Length]
- [a .link target=blank href="?o=Group&s=%s&f=%s" by Group]
+ [a .link target=blank href="/?o=Name&s=%s&f=%s" by Name]
+ [a .link target=blank href="/?o=Date&s=%s&f=%s" by Date]
+ [a .link target=blank href="/?o=Length&s=%s&f=%s" by Length]
+ [a .link target=blank href="/?o=Group&s=%s&f=%s" by Group]
[br]' \
"$(HTML "$name" |sed 's;,\;;&[wbr];g;')" \
"$search" "$filter" \