[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:1534] exec-suffix-list (Re: X-Face-Mule 0.27 is released)



Keiichi Suzuki <keiichi@xxxxxxxxx> writes:

> mw32script.el 内で再定義するというのが良いように思えます。
> 
> こんな感じでいかがでしょうか?
> 
> (eval-when-compile
>   (require 'ange-ftp))
> 
> (defun mw32script-file-executable-p (filename)
>   (or (funcall mw32script-original-file-executable-p filename)
>       (and (or (not (fboundp 'ange-ftp-ftp-name))
>                (not (ange-ftp-ftp-name filename)))
>            (mw32script-resolve-script filename)
>            t)))
> 
> (defvar mw32script-original-file-executable-p
>   (prog1
>     (symbol-function 'file-executable-p)
>     (fset 'file-executable-p 'mw32script-file-executable-p)))

圭一さんのを参考にして、以下のようにしてみました。
ちょっと試してみてください。
ange-ftpはfind-file-name-handlerで引っかけてくれるので、
対処は不要だと思います。将来的にはarugment-editingは
file-executable-pまで面倒をみるように変更します。

from himi

Index: mw32script.el
===================================================================
RCS file: g:/repdev/Meadow/lisp/international/mw32script.el,v
retrieving revision 1.3
diff -c -r1.3 mw32script.el
*** mw32script.el	1999/07/17 00:54:42	1.3
--- mw32script.el	1999/10/05 03:43:29
***************
*** 30,35 ****
--- 30,36 ----
  This only works with Meadow version Alpha-3.00 or later.")
  
  (defvar mw32script-recursive nil)
+ (defvar mw32script-original-file-executable-p nil)
  ;; end --- options
  (defvar mw32script-bufsiz 256)
  (defvar mw32script-buffer-tmp " *mw32script*")
***************
*** 167,177 ****
  	      (cons argv0 ret)))
  	(funcall default-process-argument-editing-function argument)))))
  
  (defun mw32script-init ()
    (interactive)
    (mw32script-make-pathext-regexp)
    (define-process-argument-editing
      ".*"
!     (function mw32script-argument-editing-function) 'last))
  
  (provide 'mw32script)
--- 168,190 ----
  	      (cons argv0 ret)))
  	(funcall default-process-argument-editing-function argument)))))
  
+ (defun mw32script-file-executable-p (filename)
+   (or (funcall mw32script-original-file-executable-p filename)
+       (mw32script-resolve-script filename)
+       t)))
+ 
  (defun mw32script-init ()
    (interactive)
    (mw32script-make-pathext-regexp)
    (define-process-argument-editing
      ".*"
!     (function mw32script-argument-editing-function) 'last)
!   (add-to-list 'exec-suffix-list "")
!   (if (not mw32script-original-file-executable-p)
!       (progn
! 	(setq mw32script-original-file-executable-p
! 	      (symbol-function 'file-executable-p))
! 	(fset 'file-executable-p
! 	      (symbol-function 'mw32script-file-executable-p)))))
  
  (provide 'mw32script)