[mew-win32 4384] Re: 拡張子

INOUE Tomohiro <[email protected]>
Newsgroups gmane.mail.mew.windows
Message-ID <[email protected]>
井上です。

Kazu Yamamoto (山本和彦) <[email protected]> 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 でも、なぜかちゃんと動いています。:-)

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


-- 井上 知洋
mew-search.diff (text/plain, 2.4 KB)
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"))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.