unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Federico Tedin <federicotedin@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: juri@linkov.net, 32777@debbugs.gnu.org
Subject: bug#32777: 27.0.50; window-buffer gets wrong point
Date: Tue, 2 Oct 2018 09:31:25 -0300	[thread overview]
Message-ID: <CAA8GjPnZjcAPzextyszA+hJMSf=nJQh=+aQ7FNfiED7zdEe57g@mail.gmail.com> (raw)
In-Reply-To: <83wor12fut.fsf@gnu.org>

> Can you explain the change?  The minibuffer window is already the
> selected window at this point (look at the implementation of
> minibuffer-selected-window), so using with-selected-window, which
> seems to be the only real change in the above, should be redundant.

This was my reasoning:

Calling "minibuffer-selected-window" returns the last selected window
before switching to the minibuffer. Then, calling "window-buffer" with
that window will return that window's buffer.

The problem is that when "with-current-buffer" is called with the
resulting buffer, it that buffer has been opened on more than one
window, the active window will be set according to a criteria which I
haven't figured out yet, but not necessarily to the same exact window
"minibuffer-selected-window" returned.

The way I tested this was the following:
1) On a frame, open three windows. On the first two, open *scratch*.
On the third one, open
any other buffer.
2) Insert some content into buffer *scratch* ("hello").
3) Make sure the first window is selected, and move the point to (point-min).
4) M-x eval-expression (with-current-buffer "*scratch*" (message "%s"
(point))) should yield "1".
5) Select the second window, and move the point to (point-max).
6) M-x eval-expression (with-current-buffer "*scratch*" (message "%s"
(point))) should yield "7".
7) Now, select the third window.
8) M-x eval-expression (with-current-buffer "*scratch*" (message "%s" (point)))

The last point yields "1" in my case. If I wanted it to yield "7", I
would have to explicitly select the second window.  So from this, I
reasoned that using M-n when in read-extended-command, it will try to
read a command from the last selected window's buffer, but the value
of the point can vary if there's more than one window visiting that
buffer (like in the test case originally described by Juri). Please
correct me if I'm wrong.

> Also, with-selected-window makes the window's buffer current, so why
> did you need with-current-buffer in addition?  What am I missing?

This was an oversight on my part.





  reply	other threads:[~2018-10-02 12:31 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-19 22:55 bug#32777: 27.0.50; window-buffer gets wrong point Juri Linkov
2018-09-30  4:03 ` Federico Tedin
2018-10-02  2:07   ` Federico Tedin
2018-10-02  3:21     ` Eli Zaretskii
2018-10-02 12:31       ` Federico Tedin [this message]
2018-10-13  9:19         ` Eli Zaretskii
2018-10-13 13:08           ` martin rudalics
2018-10-15  7:56             ` martin rudalics
2018-12-21  0:18               ` Juri Linkov
2018-12-21  9:15                 ` martin rudalics
2018-12-21 16:02                   ` Eli Zaretskii
2018-12-23  9:40                     ` martin rudalics
2018-12-29  9:59                       ` martin rudalics
2018-12-29 23:10                         ` Juri Linkov
2018-12-30  9:49                           ` martin rudalics

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAA8GjPnZjcAPzextyszA+hJMSf=nJQh=+aQ7FNfiED7zdEe57g@mail.gmail.com' \
    --to=federicotedin@gmail.com \
    --cc=32777@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    --cc=juri@linkov.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).