X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=handlers%2F40_search.sh;h=c558f5394b9cd01b8a86063d69a291de094b7fbc;hb=0054bedc4d290102bb839f81da9dc3a44e3bf679;hp=3db8987164a867273aab6de87d504395aa838166;hpb=b45089e38287dd6da2cab48069cae40805f98da3;p=shellwiki diff --git a/handlers/40_search.sh b/handlers/40_search.sh index 3db8987..c558f53 100644 --- a/handlers/40_search.sh +++ b/handlers/40_search.sh @@ -5,14 +5,17 @@ . "$_EXEC/cgilite/storage.sh" I="$_DATA/index" -words="$(GET q |tr '] \t\n\r!\"#'\''()*+,./:;<=>?\\^_`{|}~[-' ' ')" +words="$( GET q | sed -E ' + :X $bY; N; bX; :Y + s;([] \t\n\r!\"#'\''()*+,./:;<=>?\\^_`{|}~[-]|%[1-9A-Fa-f]{2})+; ;g +')" for w in ${words}; do [ ! -f "$I/$w" ] && continue while read date doc freq num total; do P="$_DATA/pages$(UNSTRING "$doc")" - d="$(stat -c %Y -- "$P/#page.md")" + d="$(stat -c %Y -- "$P/#index.flag")" [ "$d" -gt "$date" ] && continue printf '%s %f\n' "$doc" "$freq"