Mercurial > hgrepos > hgweb.cgi > s4
diff s4-blog.sh @ 510:2a70b6c7ffad
Add search-log and %-escaping
author | HIROSE Yuuji <yuuji@gentei.org> |
---|---|
date | Thu, 14 Mar 2019 12:48:07 +0900 |
parents | d34b8f36501c |
children | 3fcaea2892a8 |
line wrap: on
line diff
--- a/s4-blog.sh Thu Mar 14 10:28:42 2019 +0900 +++ b/s4-blog.sh Thu Mar 14 12:48:07 2019 +0900 @@ -775,11 +775,18 @@ } searchart() { kwd=`getpar kwd|nkf -wZ1` # Convert Zenkaku-SPC to ASCII-SPC + bloglist=`getpar bloglist|sed 's/[^0-9,]//g'` kwdgrp="" authcond="" if [ -z "$kwd" ]; then echo "検索語を指定してください" | html p; return fi + if logstart "$searchlog"; then + { echo "kwd=$kwd" + test -n "$bloglist" && echo "bloglist=$bloglist" + } >> $searchlog + logend "$searchlog" + fi if expr x"$kwd" : 'x#[1-9][0-9]*$' >/dev/null 1>&2; then # Like '#1234', assume as artID rowid=$((${kwd#\#} + 0)) # Force to be a number @@ -820,7 +827,13 @@ if [ -n "$ctime" ]; then kc=$kc${kc:+" AND "}"ctime > '${ctime}'" else - kc=$kc${kc:+" AND "}"content LIKE '%$k%'" + e="" + case "$k" in + *${likeesc}*) e="" ;; # Giving up char-escaping + *%*|*_*) k=`echo "$k"|sed "s/\([%_]\)/${likeesc}\1/g"` + e=" ESCAPE '$likeesc'" ;; + esac + kc=$kc${kc:+" AND "}"content LIKE '%$k%'$e" fi done fi @@ -844,7 +857,6 @@ msg="(`linkhome $author` さんの書き込みから)" fi fi - bloglist=`getpar bloglist|sed 's/[^0-9,]//g'` if [ -n "$bloglist" ]; then blogcond="AND bl.rid IN ($bloglist)" fi