[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

Re: /bin/sh



>>>>> In [emacs-w3m : No.07931] 野宮 賢さん wrote:

山岡> (progn (require 'executable) (executable-find "sh"))

> nil です。ちょっとやりましたところ、

> (progn (require 'executable) (executable-find "sh.exe"))
> (progn (require 'executable) (executable-find "/bin/sh.exe"))
> (progn (require 'executable) (executable-find "g:/bin/sh.exe"))

> だと、"g:/bin/sh.exe" が返って来ます。これらの sh.exe を sh とします
> と、悉く nil が返って来ます。

;; ことごとく、と読むのですね。^^;;

漸くわかりました。Meadow では sh に対して sh.exe が返ってきたの
でそういうものだと思ってしまったんですが、それは以下のデフォルト
設定があるからでした。

(defvar executable-binary-suffixes
  (if (memq system-type '(ms-dos windows-nt))
      '(".exe" ".com" ".bat" ".cmd" ".btm" "")
    '("")))

これは先端の Emacs でもほぼ同じで、OS/2 は対象になっていないんで
すね。

> 以前、白井さんのアドヴァイスで、.emacs に

> (setq exec-suffix-list '("" ".exe" ".com" ".bat" ".cmd"))

> という設定を入れてあるのですが....

それは APEL の path-util.el を使う場合の設定です。Emacs に付属し
ている executable.el も使うことを考慮して、

(setq executable-binary-suffixes '(".exe" ".com" ".bat" ".cmd" ".btm" ""))

といったものを追加しておくのが良いのではないでしょうか。

Emacs-w3m の方でも一時的に自前でそれを行なうようにして、それでも
なお shell を見つけることができなかった場合は、エラーを起こす
(ただしコンパイルするときなどのみ) ように戻しておきました。