[xyzzy:08384] *before-save-buffer-hook* と no-or-yes-p
- Subject: [xyzzy:08384] *before-save-buffer-hook* と no-or-yes-p
- From: おおば正宏 (OHBA Masahiro) <arbos@xxxxxxxxxxxxxxx>
- X-mailer: KaMail-0.0.2.5[01/12/02] on xyzzy-0.2.2.228 (windows-2000)
- X-yzzy-version: 0.2.2.228
つづけて失礼します、おおばです。質問があります。長くなりますが、
よろしくお願いします。
前メールのrenumber-sections.lは番号の並びを
%%% #2 %%% #1
%%% #3 -> %%% #2
%%% #7.5 %%% #2.1
このように書き換えるものなのですが、*before-save-buffer-hook*に
hookしてセーブ時に自動実行しようとしています。
番号の並びに不整合(1.2 の次に階層が飛んで 1.2.3.4が来る場合)が
あると no-or-yes-p ダイアログボックスを出して、"No"なら
(goto-point (point-max))で検索を終了させ、"Yes"ならどうにか体裁を
つけて最後までやってしまうのですが、
* 不整合がなければ最後まで行ってセーブ完了。
* no-or-yes-pで"No"を選択すればそこまでの処理でセーブして完了。
しかし、ここで"Yes"を選択するとリナンバーの処理は終わりますが、セ
ーブされません。
そこで以下のコードを*scrach*バッファでそれぞれ評価して、test.txt
を作り、適当に改行をして(modifiedにして)save-bufferしてみました。
(実験する時、編集中のbufferがあればsaveしてから行ってください)
(defun save-test ()
(interactive)
(cond ((no-or-yes-p "さぁ、どっち!")
(insert (format nil "Yesです\n")))
(t
(insert (format nil "Noです\n")))
))
(add-hook '*before-save-buffer-hook* #'save-test)
文字は出力されましたが、........ あっ、どちらもセーブされません。
yes-or-no-pでも同じ結果でした。私は根本的に使い方を間違っているの
でしょうか。よろしくご教授下さい。
--
OHBA Masahiro (おおば正宏)
mailto:arbos@xxxxxxxxxxxxxxxx
http://www.venus.dti.ne.jp/~arbos/