xyzzy ファイラの標準の圧縮形式を ZIP にする
xyzzy の二画面ファイラで圧縮ファイルを作ろうとしたとき、拡張子を入力しないと LHA で圧縮され拡張子 lzh が付与される。
毎回 .zip と打つのは面倒だし、LHA はサポートが終了しており、なおかつ脆弱性が残されたままなので変更したい。
ファイラの動作は lisp/filer.l で定義されており、この中の filer-get-archive-name という関数を .xyzzy で上書きすることで動作を変更する。
具体的には lisp/filer.l の filer-get-archive-name の関数定義を丸ごと .xyzzy にコピーしてきて一部を書き換える。
;; ファイラのデフォルト圧縮形式をZIPにする (lisp/filer.l を上書き) (in-package "editor") (defun filer-get-archive-name () ; : ; : ; (ここは filer.l そのまま) ; : ; : (t (concat file ".zip"))) ;; ここを .zip に書き換える (merge-pathnames (cdr (assoc 'base data)) (filer-get-directory))))))) (in-package "user")
M-x load-file で .xyzzy を読み込みなおすと変更が反映される。