I think you've always been able to make overlay-arrow-position buffer-local.
The problem arises when two arrows try to display in the _same_ buffer, then
the local value masks the global value. Perhaps this will never happen in
Gnus, but in case it does, a good way is to use overlay-arrow-variable-list
(which _is_ new to to Emacs 22):
Well, the following doesn't work in 21.3 but does in recent cvs
versions (I get an arrow in each buffer in the latter):
(progn
(switch-to-buffer "buf1")
(delete-other-windows)
(make-variable-buffer-local 'overlay-arrow-position)
(setq overlay-arrow-position (make-marker))
(set-marker overlay-arrow-position (point-min))
(with-current-buffer (pop-to-buffer "buf2")
(make-variable-buffer-local 'overlay-arrow-position)
(setq overlay-arrow-position (make-marker))
(set-marker overlay-arrow-position (point-min))))
Maybe I'm missing something, but I don't see why you need to use
`overlay-arrow-variable-list' since you can just make
`overlay-arrow-position' buffer local where you need it and get a
local arrow that way. Or is that abusing `overlay-arrow-position'
which might be intended to be a single global arrow?
_______________________________________________
Emacs-devel mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-devel