]> git.plutz.net Git - serve0/blobdiff - widgets.sh
call sed via xargs, which seems to be quicker than find -exec
[serve0] / widgets.sh
index cd9dda30ca344037e5db60751e9c8a990eec9bfe..f825c12c8213678ab4bb74caab25a61cba128bea 100644 (file)
@@ -14,11 +14,12 @@ c_tags="$_DATA/.index/tags.cache"; c_tagcategories="$_DATA/.index/tagcategories.
 if [ ! -s "$c_tags" -o ! -s "$c_tagcategories" ] \
    || [ "$(find "$_DATA/" -path '*/.index/meta' -newer "$c_tags")" ]
   then
-  w_tags="$( local cn=1
+  w_tags="$( cn=1
     find "$_DATA/" -path '*/.index/meta' -print0 \
-    | xargs -r0 sed -r '
+    | xargs -0 -r sed -E '
       s;^.*\t.*\t.*\ttags=(.*)\tcomment=.*\t.*\r$;\1;;
-      s;,;\n;g;'"$UNSTRING" \
+      s;,;\n;g;' \
+    | UNSTRING \
     | { sort; printf '\n'; } \
     | while read -r tag; do
       [ "$tag" = "$otag" ] \
@@ -188,7 +189,7 @@ w_advsearch(){
             $n "${t:+checked}" $n $n
 
     f="|${f#\~}|"
-    printf '*\n%s\n' "$w_tagcategories" \
+    printf '*\n%s\n$\n' "$w_tagcategories" \
     | while read -r category; do
       lbid="cat_${n}_${category}"
 
@@ -217,6 +218,8 @@ w_advsearch(){
         # printf '[option %s value="%s"\n%s]' "$t" "$tag" "$d"
        printf '[label [checkbox "tag_%s" "%s" %s] %s]' "$n" "$tag" "$t" "$d"
       done
+      d="${f##*\$:}" d="${d%%\|*}"
+      [ "$category" = \$ ] && printf '[input name="tag_%i" value="%s"]' "$n" "$(HTML "$d")"
       printf '\n]'
     done
     printf ']'