]> git.plutz.net Git - serve0/commitdiff
speed up tag genration
authorPaul Hänsch <paul@plutz.net>
Mon, 23 Jul 2018 20:54:59 +0000 (22:54 +0200)
committerPaul Hänsch <paul@plutz.net>
Mon, 23 Jul 2018 20:54:59 +0000 (22:54 +0200)
widgets.sh

index f64930661445622732d23b372caaa082a8ce7ea1..a7fb63381366fdb5b154845038d4727700ffcc40 100644 (file)
@@ -196,8 +196,11 @@ w_advsearch(){
 
       printf '%s\n' "$w_tags" \
       | { [ "$category" = '*' ] && grep -avF ':' || grep -awF "${category}"; } \
-      | { for n in 1 2 3 4 5 6 7 8 9 0; do line || break; done; sort; } \
-      | while read -r tag; do
+      | { for n in 1 2 3 4 5 6 7 8 9 0; do
+          read -r line && printf '%s\n' "$line" || break;
+          done;  # path 10 lines through without modification
+          sort;  # and sort remaining lines
+      } | while read -r tag; do
         [ "$tag" ] || continue
         t=''; [ ! "${f%%*|${tag}|*}" ] && t=checked
         printf '[option %s value="%s"\n%s]' "$t" "$tag" "${tag#*:}"
@@ -229,8 +232,11 @@ w_tagging(){
     printf '[fieldset [legend %s:][select name=tag size=4 multiple' "$category"
     printf %s "$w_tags" \
     | { [ "$category" = 'Tags' ] && grep -avF ':' || grep -awF "${category}"; } \
-    | { for n in 1 2 3 4 5 6 7 8 9 0; do line || break; done; sort; } \
-    | while read -r tag; do
+    | { for n in 1 2 3 4 5 6 7 8 9 0; do
+        read -r line && printf '%s\n' "$line" || break
+        done;
+        sort;
+    } | while read -r tag; do
       [ "$tag" ] || continue
       printf '[option value="%s"\n%s]' "$tag" "${tag#*:}"
     done