[mew-win32 4384] Re: 拡張子

INOUE Tomohiro ml at example.com
2006年 4月 21日 (金) 10:55:29 JST


井上です。

Kazu Yamamoto (山本和彦) <kazu at example.com> wrote:
> WDS 用の関数を定義しておきました。
> 
> wdsgrep.exe のみインストールされていれば、自動的にそれが選ばれます。
> 明示的に選びたい場合は、"kc" で 'wds とするか、
> (setq mew-search-method 'wds)
> として下さい。

ありがとうございます!

現状の wdsgrep にあうように、関数を少し修正しました(添付パッチ)。

wdsgrep の方も、"kM" が働くように更新しています。
http://ext.noue.org/ext/src/wdsgrep-latest.zip

これで Mew の中だけで一通りの動作が完結するようになったと思います。

ここで改めて手順を書いおきます。

- Windows Desktop Search, .NET Framework, wdsgrep.exe をそれぞれインストール
- Mew の設定で (setq mew-use-suffix t) とする
  場合によっては (setq mew-search-method 'wds) も
- Mew から "kM" (一度だけ) → バックグラウンドでインデックス作成
- "k/" や "k?" で検索

ただし、新規ではないメールを検索対象にするには、各フォルダ上で "s all"
してメールに ".mew" を付けてやる必要があります。
ほんとはこれをやってくれるスクリプトが欲しいところが、Windows の
コマンドプロンプト (cmd.exe) でやろうとすると、結構面倒ですね。


> > また、現状だと "k?" が +folder では動くんですが、%folder だと動かない
> > ようです。これは後で調べてみて修正します。
> 
> 僕の環境では、%folder でも、なぜかちゃんと動いています。:-)

その後、私の環境でも動きました。
どうやらインデックスが不完全な状態で試していたようです。


-- 井上 知洋

-------------- next part --------------
Index: mew-search.el
===================================================================
RCS file: /cvsmew/mew/mew-search.el,v
retrieving revision 1.19
diff -u -r1.19 mew-search.el
--- mew-search.el	18 Apr 2006 04:59:18 -0000	1.19
+++ mew-search.el	20 Apr 2006 11:28:44 -0000
@@ -422,11 +422,11 @@
 ;;;
 
 (defun mew-search-wds (pattern path)
-  (setq pattern (mew-cs-encode-string pattern 'shift_jis))
+  (setq pattern (mew-cs-encode-string pattern w32-system-coding-system))
   (let* ((ent (mew-search-get-ent mew-search-method))
 	 (prog (mew-search-get-prog ent)))
     (mew-plet
-     (call-process prog nil t nil "-m" "-p" path "-s" "-q" pattern))))
+     (call-process prog nil t nil "-e" mew-suffix "-p" path "-s" pattern))))
 
 (defun mew-search-with-wds (pattern folder)
   (let* ((path (mew-expand-folder folder))
@@ -467,34 +467,29 @@
     (list file rttl)))
 
 (defun mew-wds-index-folder (folder)
-  "Make WDS index for this folder."
+  "Make WDS index for all folders."
   (interactive)
-  (let* ((ent (mew-search-get-ent mew-search-method))
-	 (prog (mew-search-get-prog ent)))
-    (start-process prog nil prog "-m" "-i" (mew-expand-folder folder))
-    (message "WDS indexing for %s in background..." folder)))
+  (mew-wds-index-all))
 
 (defun mew-wds-index-all ()
   "Make WDS index for all folders."
   (interactive)
   (let* ((ent (mew-search-get-ent mew-search-method))
 	 (prog (mew-search-get-prog ent)))
-    (start-process prog nil prog "-m" "-r" "-i" (mew-expand-folder "+"))
+    (start-process prog nil prog "-R" (format "%s=%s" mew-suffix ".eml"))
     (message "WDS indexing for all folders in background...")))
 
 (defun mew-wds-register ()
-  "Register WDS component"
+  "Register '.mew' to WDS"
   (interactive)
-  (message "Registering WDS component...")
-  (call-process mew-prog-wds nil nil nil "-R")
-  (message "Registering WDS component...done"))
+  (message "Registering suffix '%s' to WDS..." mew-suffix)
+  (call-process mew-prog-wds nil nil nil "-R" (format "%s=%s" mew-suffix ".eml"))
+  (message "Registering suffix '%s' to WDS...done" mew-suffix))
 
 (defun mew-wds-unregister ()
-  "Unregister WDS component"
+  "Unregister '.mew' from WDS"
   (interactive)
-  (message "Unregistering WDS component...")
-  (call-process mew-prog-wds nil nil nil "-U")
-  (message "Unregistering WDS component...done"))
+  (message "This command cannot be used"))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;


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