emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Buffer local `switch-to-buffer-preserve-window-point'


From: Evgeny Zajcev
Subject: Buffer local `switch-to-buffer-preserve-window-point'
Date: Mon, 30 Nov 2020 11:03:30 +0300

I think we should add to the documentation that buffer local values for `switch-to-buffer-obey-display-actions' and `switch-to-buffer-preserve-window-point' won't work as user would expect.

The problem with their buffer local values is that they are used for buffer logic *before* buffer is set as current, see `switch-to-buffer'.  We should either use `(buffer-local-value NAME buffer)' to get their values in `switch-to-buffer', or add to the documentation that they should not have buffer local values.

Here is code snippet to trigger unexpected behaviour:

  ;; Switch to scratch and eval
  (progn
    (setq switch-to-buffer-preserve-window-point t)
    (with-current-buffer (get-buffer-create "pwp")
     (setq-local switch-to-buffer-preserve-window-point nil)
     (insert "asnoteh asoensnaot heusnatoeh usanotehu aeosntuhaoe")
     (point))
    (switch-to-buffer "pwp")
    (switch-to-other-buffer 1)
   
    (with-current-buffer "pwp"
     (goto-char 10)
     (point))
    (switch-to-buffer "pwp")
    ;; Expecting point to be at 10 position, but it remains at the end
    ;; of the line
    )

What do you think?

Thanks

--
lg

reply via email to

[Prev in Thread] Current Thread [Next in Thread]