>> I believe this patch is a change for the better: > > Could you resend it as unified diff? Or push to > a branch. diff-context->unified doesn't seem to work on the patch you sent. I thought maybe context diff is easier to read in this case, but here is unified diff below. >> 1. makes next-error-function buffer-local > > Interesting. > >> 2. sets both buffer-local and global values > > Why? If next-error-find-buffer-function can find the appropriate buffer, it > can use the local value in it. We need the global value as well to get the last next-error buffer when there is no buffer-local value yet in the current buffer. >> 3. adds customizable next-error-find-buffer-function >> >> 4. moves window-on-frame-visibility code to separate function >> that can be used to customize for backward-compatibility > > Do we get a built-in alternative to this value? If we just provide > a customization point, that nice, but not a significant improvement. You mean to remove next-error-buffer-on-selected-frame? Or maybe to do the other way: add more predefined functions like a function to use window-local navigation as an alternative. >> 5. adds next-error-select-buffer to manually switch to another >> next-error capable buffer > > Not having tried the patch yet... Will the user have to do that after > semi-accidentally opening a changelog-mode buffer, in order not to switch > to its error list? When the user visits a ChangeLog buffer from *grep*, then next-error continues the *grep* navigation. When the user visit a ChangeLog file by any other command, then next-error navigates entries in that ChangeLog buffer. But in case when the user changes mind and decides to switch from *grep* navigation to ChangeLog navigation, there is this new command. >> 6. message to show which next-error buffer is currently used > > Every time we call `next-error'? That's right.