Mac OS X 向け SKK 環境。 約 5 ヶ月ぶりの version up。
UNIX 系 OS 上で動く Windows API の実装。
emacsen な定番 mail user agent。 所謂人柱版。
深い意味もなくパッチを書いてみた。
--- ps2pdf.el.orig 2006-12-23 13:47:31.000000000 +0900 +++ ps2pdf.el 2006-12-23 19:45:01.000000000 +0900 @@ -43,6 +43,9 @@ ;;; Code: +(require 'advice) +(require 'ps-print) + (defcustom ps2pdf-gs-program "gs" "Path to GhostView program. For GNU/Linux and Unix-ish systems, this will typically just be @@ -51,8 +54,14 @@ :type 'string :group 'ps2pdf) +(defcustom ps2pdf-open-program (if (eq system-type 'darwin) "open" "gpdf") + "Path to PDF document viewer (not for w32)." + :type 'string + :group 'ps2pdf) + (defun ps2pdf-convert (file) "Convert Postscript FILE to PDF." + (setq file (expand-file-name file)) (let* ((pdf-file (concat (file-name-sans-extension file) ".pdf")) (result (call-process ps2pdf-gs-program nil nil t @@ -69,9 +78,14 @@ (let ((pdf-file (ps2pdf-convert file))) (message "PDF file %s created successfully" pdf-file))) +(defun ps2pdf-make-temp-file (prefix &optional dir-flag suffix) + (if (< 3 (length (ad-arglist (symbol-function 'make-temp-file)))) + (make-temp-file prefix dir-flag suffix) + (make-temp-file prefix dir-flag))) + (defun ps2pdf-with-faces (type) "Create PDF from buffer or region." - (let ((fname (make-temp-file "ps2pdf-buffer" nil ".ps")) + (let ((fname (ps2pdf-make-temp-file "ps2pdf-buffer" nil ".ps")) (pdf-file)) (cond ((eq type 'buffer) (ps-print-buffer-with-faces fname)) @@ -83,23 +97,21 @@ (message "PDF file %s created successfully" pdf-file) pdf-file)) -(defun ps2pdf-from-buffer () - "Create PDF from buffer." - (ps2pdf-with-faces 'buffer)) - (defun ps2pdf-from-region () - "Create PDF from region." - (ps2pdf-with-faces 'region)) - -(defun w32-ps2pdf-from-region () "Create PDF from region and open it." (interactive) - (w32-shell-execute "Open" (ps2pdf-from-region))) + (if (fboundp 'w32-shell-execute) + (w32-shell-execute "Open" (ps2pdf-with-faces 'region)) + (shell-command + (format "%s %s" ps2pdf-open-program (ps2pdf-with-faces 'region))))) -(defun w32-ps2pdf-from-buffer () +(defun ps2pdf-from-buffer () "Create PDF from buffer and open it." (interactive) - (w32-shell-execute "Open" (ps2pdf-from-buffer))) + (if (fboundp 'w32-shell-execute) + (w32-shell-execute "Open" (ps2pdf-with-faces 'buffer)) + (shell-command + (format "%s %s" ps2pdf-open-program (ps2pdf-with-faces 'buffer))))) (defun ps2pdf-reset-faces () "Reset faces.
Mac OS X 10.4 on G4 上の GNU Emacs 22.0.50 では動いた。
Debian sarge 上の GNU Emacs 21.4 でも動く (まだ確認してないけど、これって単純なバージョンの問題なのかな?)。
make-temp-file()
の引数をいじれば
最初に書いた修正を適用していただいた。 適用報告のメールに「arigato gosaimashita」と書いてあった。 :-)
オレンジニュースから。 とりあえず読もうかな。