[mew-dist 28635] HyperEstraierでインデックス更新中でも検索をしたい

HORIE Tetsuya t_horie at example.com
2008年 9月 25日 (木) 00:34:55 JST


はじめまして。
堀江といいます。

HyperEstraierを検索エンジンに使っている場合で、kMでインデックスを更新
中に、k/で検索すると、Emacsが固まってしまいます。

http://hyperestraier.sourceforge.net/uguide-ja.html#tips
を参考に以下のパッチを作ってみました。

取り込んでいただけるとうれしいです。

では。

Index: mewest
===================================================================
RCS file: /cvsmew/mew/bin/mewest,v
retrieving revision 1.19
diff -u -r1.19 mewest
--- mewest	21 Mar 2008 03:59:58 -0000	1.19
+++ mewest	24 Sep 2008 15:16:29 -0000
@@ -12,7 +12,9 @@
 RM=rm
 MKDIR=mkdir
 BASEDIR=${HOME}/Mail
-INDEXDIR=casket
+INDEXDIR_ORG=casket
+INDEXDIR_REPLICA=casket_replica
+INDEXDIR=${INDEXDIR_ORG}
 OUTPUT=${OUTPUT:-/dev/null}
 LOCK=${BASEDIR}/.mewest.lock
 CYGWINENV=no
@@ -126,6 +128,13 @@
 fi
 
 if [ -d "${BASEDIR}/${INDEXDIR}" ]; then
+    echo "Replicating index..."
+    if [ -d "${BASEDIR}/${INDEXDIR_REPLICA}" ]; then
+	rm -fr "${BASEDIR}/${INDEXDIR_REPLICA}"
+    fi
+    cp -R "${BASEDIR}/${INDEXDIR}" "${BASEDIR}/${INDEXDIR_REPLICA}"
+    INDEXDIR=${INDEXDIR_REPLICA}
+    echo "Replicating index...done"
     echo "Purging old messages..."
     ${ESTCMD} purge "`path_conv \"${BASEDIR}/${INDEXDIR}\"`" "`path_conv \"${TGTDIR}\"`" > ${OUTPUT} ||\
       cleanup_lock_exit "Purging old messages...failed"
@@ -144,6 +153,12 @@
     cleanup_lock_exit "Indexing new messages...failed"
 
 echo "Indexing new messages...done"
+if [ "${BASEDIR}/${INDEXDIR}" = "${BASEDIR}/${INDEXDIR_REPLICA}" ]; then
+    echo "Replacing old index with new one..."
+    rm -fr "${BASEDIR}/${INDEXDIR_ORG}"
+    mv "${BASEDIR}/${INDEXDIR_REPLICA}" "${BASEDIR}/${INDEXDIR_ORG}"
+    echo "Replacing old index with new one...done"
+fi
 
 # clean up lock
 ${RM} -fr "${LOCK}"




Mew-dist メーリングリストの案内