+#!/bin/zsh
+
+if [ -n "${CONTENT_LENGTH}" -a "${CONTENT_LENGTH}" -gt 0 ]; then
+(head -c "${CONTENT_LENGTH}"; echo)|sed 's:&:\n:g;s:\r::g' |while read line; do
+ case "$line" in
+ type[0-9]=neg)
+ [ -z "$filters" ] && filters="!"
+ [ -n "$filters" ] && egrep -q '(^|\^|\||!)$' <<<"$filters" || filters="${filters}^!"
+ ;;
+ type[0-9]=pos)
+ egrep -q '(^|\^|\||!)$' <<<"$filters" || filters="${filters}^"
+ ;;
+ category=*)
+ category="$(sed 's/^category=//;s/+/ /g;s/%/\\x/g' <<<"$line")"
+ category="$(echo -e "${category}" |sed 's/\t/ /g;s/\r//g;s/\\/\\\\/g' |head -n1)"
+ ;;
+ filter=*)
+ filter="$(sed 's/^filter=//;s/+/ /g;s/%/\\x/g' <<<"$line")"
+ filter="$(echo -e "${filter}" |sed 's/\t/ /g;s/\r//g;s/\\/\\\\/g' |head -n1)"
+ egrep -q '(^|\^|\||!)$' <<<"${filters}" || filters="${filters}|"
+ filters="${filters}${filter}"
+ ;;
+ cfilter=*)
+ cfilter="$(sed 's/^cfilter=//;s/+/ /g;s/%/\\x/g' <<<"$line")"
+ cfilter="$(echo -e "${cfilter}" |sed 's/\t/ /g;s/\r//g;s/\\/\\\\/g' |head -n1)"
+ egrep -q '(^|\^|\||!)$' <<<"${filters}" || filters="${filters}|"
+ [ -n "$cfilter" ] && filters="${filters}${category}:${cfilter}"
+ ;;
+ o=Name) order=Name;;
+ o=Date) order=Date;;
+ o=Length) order=Length;;
+ esac
+done
+fi
+
+echo "?o=${order}&f=${filters}" >>${DATA}/meta/recent
+echo -n "Location: ?o=${order}&f=${filters}\n\n"