読者です 読者をやめる 読者になる 読者になる

anything-read-bufferの件つづき

read-bufferって内部でread-buffer-functionが定義されていればそれを、定義されていなければcompleting-readを呼び出す。
anything-completing-readがanythingの結果がnilの場合keyboard-quitしているんだからanything-read-bufferがkeyboard-quitしないのは対応がとれていな気がする。
keyboard-quitを返す場合はこんな感じか。デフォルト値にnilを渡すことってあるのかな?入力がキャンセルされたのかデフォルト値のnilが帰ってきたのか判断ができないのが問題になりそう。

--- a/plugins/anything-complete.el
+++ b/plugins/anything-complete.el
@@ -745,10 +745,11 @@ It accepts one argument, selected candidate.")
 (defun anything-read-buffer (prompt &optional default require-match start matches-set)
   "`anything' replacement for `read-buffer'."
   (let (anything-input-idle-delay)
-    (anything-noresume (arb-sources prompt
-                                    (if (bufferp default) (buffer-name default) default)
-                                    require-match start matches-set)
-                       start prompt nil nil "*anything complete*")))
+    (or (anything-noresume (arb-sources prompt
+                                        (if (bufferp default) (buffer-name default) default)
+                                        require-match start matches-set)
+                           start prompt nil nil "*anything complete*")
+        (keyboard-quit))))
 
 (defun* arb-sources (prompt default require-match start matches-set &optional (additional-attrs '((action . identity))))
   `(,(ac-default-source default t)