[Mew-dist 04720] grep Japanese
Mito
mit at example.com
1998年 5月 14日 (木) 20:46:55 JST
pick 関係で日本語の検索に関してです。
Emacs 20 だけだと思いますが、mew-piolet() で write を
mew-cs-noconv にした場合、引き数に渡る文字列も変換されないた
め、日本語検索ができませんでした。
# XEmacs 2x では問題なく検索できました。
# 私の環境だけの問題でしたら教えてください。
とりあえず mew-summary-pick の
(mew-piolet
mew-cs-autoconv mew-cs-noconv
(mew-im-call-process nil mew-prog-imgrep ;; xxx
(format "--src=%s" folder)
(format "--expression=%s" epat) range))
の部分の mew-cs-noconv を nil にすると上手く検索できるように
なりましたが、これは call-process の場合で、start-process の
場合は nil にしても内部コード(emacs-mule?)のまま渡ってしまい
検索できませんでした。
もちろん、
(mew-set-process-cs mew-summary-buffer-process read mew-cs-noconv)
の mew-cs-noconv を nil や euc-jp-unix などにしてもだめでし
た。
色々やってはみたのですが、start-process の引き数のコード変換
をする方法が判りませんでしたので、start-process に渡す前にコー
ド変換するようにしてみました。
imls や imgrep なども日本語にしか対応していないようですので、
とりあえずOKかなと思い、call-process の方もこのようにしてみ
ました。
他によい解決策がありましたらお願いします。
ついでに、iso-2022-jp で imls --grep をするとGrep.pm の
parse_expression() で、エラーになったので、安直ですが修正し
てみました。
# 必要性はないと思いますが。
--
5/14 20:08頃
NECソフトウェア新潟 水戸
mailto:mit at example.com \n
-------------- next part --------------
--- mew-pick.el 1998/05/14 09:24:52 1.1
+++ mew-pick.el 1998/05/14 09:26:01
@@ -286,7 +286,12 @@
mew-cs-autoconv mew-cs-noconv
(mew-im-call-process nil mew-prog-imgrep ;; xxx
(format "--src=%s" folder)
- (format "--expression=%s" epat) range))
+ (format "--expression=%s"
+ (if (and mew-temacs-p
+ (eq mew-mule-version 3))
+ (mew-cs-encode-string epat 'euc-jp)
+ epat))
+ range))
(goto-char (point-min))
(cond
((looking-at "imgrep: no message") (message "No such messages") nil)
-------------- next part --------------
--- mew-scan.el 1998/05/14 09:12:15 1.1
+++ mew-scan.el 1998/05/14 09:30:13
@@ -147,8 +147,13 @@
((equal mode 'mew-virtual-mode)
(list
(concat "--src=" (mew-join "," folders))
- (concat "--grep=" grep)))
- ))
+ (concat "--grep="
+ (if (and mew-temacs-p
+ (eq mew-mule-version 3))
+ (mew-cs-encode-string
+ grep 'euc-jp)
+ grep))))
+ ))
))
))
(mew-set-process-cs mew-summary-buffer-process read mew-cs-noconv)
-------------- next part --------------
--- Grep.pm.in 1998/05/14 04:26:04 1.1
+++ Grep.pm.in 1998/05/14 10:43:23
@@ -149,6 +149,10 @@
my ($token, $quote) = ('') x 2;
my $str;
+
+ require 'jcode.pl';
+ $expr = jcode::euc($expr) if jcode::what($expr) eq 'jis' ;
+
LEX:
foreach $str (split($STOPCHARS, $expr)) {
Mew-dist メーリングリストの案内