[mew-win32 4531] NTEmacs で start-process, call-process が無限再帰する
Hayashi Masahiro ( 林 雅博 )
mhayashi1120 at example.com
2009年 2月 5日 (木) 21:49:45 JST
林と申します。
[mew-win32 4516] あたりのスレッドに触発されて最近 Meadow に加えて
NTEmacs も使っているのですが、NTEmacs で mw32script を load-path におく
と start-process, call-process 呼び出しすべてが無限再帰してしまいません
か?
# 1 年近く前の変更ですけど他の方のは動いているのでしょうか?
勘違いしているかもしれないので実験してみました。
(defun hoge (msg)
(message msg))
(hoge "hoge1")
=> "hoge1"
(defalias 'hoge-original 'hoge)
(defun hoge (msg)
(apply 'hoge-original '("hoge2")))
(hoge "hoge1")
=> Lisp nesting exceeds `max-lisp-eval-depth'
Index: mew-win32.el
===================================================================
RCS file: /cvsmew/mew/mew-win32.el,v
retrieving revision 1.67
diff -u -r1.67 mew-win32.el
--- mew-win32.el 21 Jan 2009 05:55:00 -0000 1.67
+++ mew-win32.el 5 Feb 2009 04:54:26 -0000
@@ -62,7 +62,7 @@
(require 'mw32script)
(file-error nil)) ;; NTEmacs
(mw32script-make-pathext-regexp)
- (defalias 'call-process-original 'call-process)
+ (defvar mew-w32-call-process-original (symbol-function 'call-process))
(defun call-process (PROGRAM INFILE BUFFER DISPLAY &rest PROGRAM-ARGS)
(let (prog sargs)
(setq prog (mw32script-openp PROGRAM))
@@ -70,12 +70,12 @@
(setq prog (mew-which-exec PROGRAM))
(setq sargs (mw32script-resolve-script prog)))
(if sargs
- (apply 'call-process-original
+ (apply mew-w32-call-process-original
(car sargs) INFILE BUFFER DISPLAY
prog PROGRAM-ARGS)
- (apply 'call-process-original
+ (apply mew-w32-call-process-original
PROGRAM INFILE BUFFER DISPLAY PROGRAM-ARGS))))
- (defalias 'start-process-original 'start-process)
+ (defvar mew-w32-start-process-original (symbol-function 'start-process))
(defun start-process (NAME BUFFER PROGRAM &rest PROGRAM-ARGS)
(let (prog sargs)
(setq prog (mw32script-openp PROGRAM))
@@ -83,9 +83,9 @@
(setq prog (mew-which-exec PROGRAM))
(setq sargs (mw32script-resolve-script prog)))
(if sargs
- (apply 'start-process-original
+ (apply mew-w32-start-process-original
NAME BUFFER (car sargs) prog PROGRAM-ARGS)
- (apply 'start-process-original
+ (apply mew-w32-start-process-original
NAME BUFFER PROGRAM PROGRAM-ARGS))))))
;; printing
Mew-win32 メーリングリストの案内