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

yatex.org