emacs-pid for v18 (Re: Maildir message filename containing regexp meta characters)
Shuhei KOBAYASHI
shuhei @ aqua.ocn.ne.jp
2001年 4月 18日 (水) 19:39:34 JST
Tick してあった mail を整理していて,
[Wanderlust:04288] (Date: Fri, 3 Mar 2000 20:50:52 +0900)
という mail から以下のような関数を発掘したのですが, 需要はありますか?
>>>>> In <u66v4z300.wl @ pingu.ak.nines.nec.co.jp>,
>>>>> Mito <mit @ nines.nec.co.jp> wrote:
> Nemacs 用の emacs-pid はこんなんでいいのかな?
> lock file に記述されている getpid() の値を利用しています。
[...]
> lock できないシステムでは動かないだろうし、PATH_LOCK が全然
> 別の場所に指定されて make されたものでも動かないと思いますが、
> これで良かったら、poe-18.el に commit してもらえませんか?
ちょっと調べた限りでは lock-buffer と unlock-buffer は常に定義される
みたいですが, lock file が期待通りにできない環境があるのでしょうか?
PATH_LOCK の方は lock-directory を定義することで対処してみました.
(defvar lock-directory (expand-file-name "../lock/" exec-directory))
(defun emacs-pid ()
"Return the process ID of Emacs, as an integer."
(let* ((pid-file-name (concat " emacs-pid "
(substring (current-time-string) 11 19)))
(pid-file (expand-file-name pid-file-name lock-directory)))
(with-temp-buffer
(setq buffer-file-name pid-file-name)
(unwind-protect
(progn
(set-buffer-modified-p t)
(lock-buffer)
(if (file-exists-p pid-file)
(progn
(erase-buffer)
(insert-file-contents pid-file)
(read (current-buffer)))
;; `emacs-pid' must return some integer.
;; この値では問題があるでしょうか?
(` (, (lsh -1 -1)))))
(unlock-buffer)
(set-buffer-modified-p nil)))))
;; with-temp-buffer を使っているのが気に入らないのだけど, とりあえず...
;; (installer が 'poe を require しているため, たまたま動いているのです)
--
Shuhei KOBAYASHI
More information about the APEL-ja
mailing list