filters="${_GET[f]}"
debug "FILTERS: $filters"
-present_filter(){ printf %s "$*" |sed -r 's;(^|!|\^|\|)([^!\^\|:]+:);\1;g;s;\^; \&\; ;g' }
+present_filter(){
+ printf %s\\n "$*" \
+ | sed -r 's;(^|!|\^|\|)([^!\^\|:]+:);\1;g;s;\^;\n;g' \
+ | sort -r \
+ | sed -r '$q;s;$; \&\; ;g'
+}
if [ -n "$search" ]; then
TITLE="$search by $order"
else
filterex="s;^([0-9]+\t){3}(.+)\n.*$;\2;p"
printf '%s\n' "$filter" |tr '^' '\n' \
- | sed -r 's;[]\/\(\)\\\^\$\|\?\.\+\*\;\[\{\}];\\\\&;g' \
+ | sed -r 's;[]\/\(\)\\\^\$\?\.\+\*\;\[\{\}];\\\\&;g' \
| while read each; do
[ "${each:0:1}" = '!' ] && filterex="/^[^\n]+\n(.*\|)?(${each#?})(\|.*)?$/d;{${filterex}}" \
|| filterex="/^[^\n]+\n(.*\|)?(${each})(\|.*)?$/{${filterex}}"