(defvar gpg-work-directory (expand-file-name "~/.gpg.work") "*Work directory of GPG.") (defalias 'gpg-make-temp-file1 (if (fboundp 'make-temp-file) 'make-temp-file 'make-temp-name)) (defun gpg-make-temp-file (file) (cond ((and (file-exists-p gpg-work-directory) (file-directory-p gpg-work-directory)) (set-file-modes gpg-work-directory ?\700)) ((not (file-exists-p gpg-work-directory)) (make-directory gpg-work-directory) (set-file-modes gpg-work-directory ?\700)) ((and (file-exists-p gpg-work-directory) (file-writable-p gpg-work-directory) (y-or-n-p (format "%s is not directory. Remove it? " gpg-work-directory))) (delete-file gpg-work-directory) (make-directory gpg-work-directory) (set-file-modes gpg-work-directory ?\700)) (t (error (format "%s has something error" gpg-work-directory)))) (gpg-make-temp-file1 (expand-file-name (file-name-nondirectory file) gpg-work-directory)))こんなことをやりつつ、他のリモートファイルもケアして、gpg.el の機能や gpg for Dired が tramp 経由でも動くようにしてみたけど、もうちょっといろいろやらないと公開できないなぁ。
一時ファイルを作るのが切ないので、find-fileしてバッファをgpgに投げつけるようなコードをスクラッチから書こうとしてみたんですが、んー、どうもうまくいかない。
stdin/out を使うのですよね。そっちの方がおしゃれだからぼくもやってみます。
簡単な試験コード書いて実験したんですけど、ローカルのファイルだとうまくいく。でも、リモートだとgpgに投げるところで刺さるんだなあ。なぞ… というわけで、白井さんのコードに期待(他力本願
うーむ、最初 default-directory かな?と思ったのですが、違うみたいですね。がんばります。