fenrirの起動オプションが変化したので変えたとか

 ちょっと前のFenrirの更新で起動オプションが複数色々、微妙に変わっていたので、それに合わせてlispを色々変えた。後、今見るとやり方が非常に汚かったので適当に直してみたり。古い奴見ると、何か汚くて全部書き換えたくなるから、余り見ないようにしてるんだけど、Fenrirのは実際の不都合がありそうだったのでついでに多少は綺麗にした。動作も少し/dir=のオプションが付いたのに合わせて変えてみたり。

■具体的に何をするか

  • fenrirからxyzzyのファイラを開く
  • xyzzyのファイラからfenrirを呼び出す
  • xyzzyのファイラからfenrirのメニューを呼び出す

■変えたところ

  • Fenrirの起動オプションの/dir=と/key=を使い分けるようにした
  • fenrirの起動オプションが/cmd=から/cmdtarget=に変更するのに合わせた
  • filer-to-fenrir-menuを追加して、ポチエスのようにxyzzyのファイラからFenrirのメニューが出るようにした。
  • *fenrir-menu-path*と*fenrir-path*でFenrirの.exeの場所とかメニュー用のコマンド書いたtextの場所を指定できるように。
  • 後は微妙にコード変えたくらい

■設定する所

(setq *fenrir-menu-path* "ここにfenrirのメニューのパス(ex: 0enter.txtとか)")
(setq *fenrir-menu-path* "ここにfenrir.exeのパス")

■コード

;---------------------------------------------------------------
;Fenrirからxyzzyのファイラを開く
(defvar *my-file-open-directory* nil)
(defun my-file-open-directory ()
  ; コマンドラインではフラグだけを立てて
  ; 実際の作業はmy-file-open-directoryに任せる。
  (setq *my-file-open-directory* t))

(defun fenrir-to-filer (arg)
  (interactive)
  (when (and *my-file-open-directory*
			 (file-directory-p arg))
	(setq *my-file-open-directory* nil)
	(filer arg)
	(plain-error "open-directory: done")))

(add-hook '*before-find-file-hook* 'fenrir-to-filer)
;Fenrirの方の設定は
;[.\\\;
;xyzzyFiler|C:\xyzzy\xyzzycli.exe -f my-file-open-directory "%P"
;]

;--------------------------------------------------------------
;ファイラからFenrirにキーを渡す
(defvar *fenrir-path* "c:\\fenrir\\fenrir.exe")
(defvar *fenrir-menu-path* "c:\\fenrir\\cmd\\2enter.txt")
(defun filer-to-fenrir()
  (interactive)
  (let (key)
	(if (file-directory-p (filer-get-current-file))
		(setq key " /dir=")
	  (setq key " /key="))
	(call-process
	 (concat *fenrir-path*
			 key
			 (map-slash-to-backslash (filer-get-current-file))))
	))

;キー設定keyは適当
(define-key filer-keymap #\C-j 'filer-to-fenrir)

;ファイラからFenrirのメニューをだす
(defun filer-to-fenrir-menu()
  (interactive)
  (let ((cmdfile (concat "\" /cmdfile=" *fenrir-menu-path*)))
	(call-process
	 (concat *fenrir-path*
			 " /cmdtarget=\""
			 (map-slash-to-backslash (filer-get-current-file))
			 cmdfile))
	))
;key setting
(define-key filer-keymap #\M-j 'filer-to-fenrir-menu)

Pukiwikiとかの更新
が面倒。一応この辺だけは更新したけど、だるい感じ。というかページが長くなりすぎて回答の場所をチョット編集するのが大変と言うか。単純にページを分割しまくれば良いだけの話なのかもしれないけど。
http://himadatanode.qp.land.to/pukiwiki/index.php?FenrirApocrypha%2FAdvancedGuide