>> Additionally, on emacs-devel Zhiwei Chen said this: >> >> It failed to work when buffer is auto selected via >> `display-buffer-alist’. When the point moves to the *Occur* buffer, >> typing “n”, “p” still sends “n”, “p” to isearch. >> >> (defun display-buffer-select (buffer alist) >> (let ((window (display-buffer-below-selected buffer alist))) >> (when (window-live-p window) >> (select-window window)))) >> >> (setq display-buffer-alist '(("\\*Occur\\*" (display-buffer-select)))) >> >> Maybe this could be handled as well? > > And this one is strange, too, for two reasons: > > - display-buffer-select is not a documented action, and does not even > appear in the sources (even Google does not find it!), yet it works; > Whooops, I guess I was becoming a bit tired after too many hours of hacking, of course it's defined right above ;-) Anyway, the other question is relevant : > > - After this action, point has moved, but (current-buffer) does not > return the buffer where point is; (window-buffer (selected-window)) > does. It seems to me that at the top-level these two should always be > equal; apparently they are not. > > Again it's not clear to me whether the bug is here or elsewhere, but the > attached patch fixes the original problem and the two bugs. > > Cc'ing Martin, who may have some insights on the above two points. >