From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#17777: [Emacs-diffs] emacs-24 r117241: Fix bug #17777 with keyboard macros and visual-order cursor movement. Date: Sun, 15 Jun 2014 19:12:29 +0300 Message-ID: <83sin6up76.fsf@gnu.org> References: <83tx7mvqhn.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: plane.gmane.org X-Trace: ger.gmane.org 1402848806 14426 80.91.229.3 (15 Jun 2014 16:13:26 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 15 Jun 2014 16:13:26 +0000 (UTC) Cc: 17777@debbugs.gnu.org To: Stefan Monnier Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Jun 15 18:13:18 2014 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1WwD3U-0004N3-L1 for geb-bug-gnu-emacs@m.gmane.org; Sun, 15 Jun 2014 18:13:16 +0200 Original-Received: from localhost ([::1]:39199 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WwD3U-0004UL-2g for geb-bug-gnu-emacs@m.gmane.org; Sun, 15 Jun 2014 12:13:16 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:51085) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WwD3L-0004SJ-Uz for bug-gnu-emacs@gnu.org; Sun, 15 Jun 2014 12:13:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WwD3G-0004B8-Pb for bug-gnu-emacs@gnu.org; Sun, 15 Jun 2014 12:13:07 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:57297) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WwD3G-0004B2-M5 for bug-gnu-emacs@gnu.org; Sun, 15 Jun 2014 12:13:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.80) (envelope-from ) id 1WwD3G-0002D2-5W for bug-gnu-emacs@gnu.org; Sun, 15 Jun 2014 12:13:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 15 Jun 2014 16:13:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 17777 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 17777-submit@debbugs.gnu.org id=B17777.14028487668469 (code B ref 17777); Sun, 15 Jun 2014 16:13:02 +0000 Original-Received: (at 17777) by debbugs.gnu.org; 15 Jun 2014 16:12:46 +0000 Original-Received: from localhost ([127.0.0.1]:48447 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WwD30-0002CW-0A for submit@debbugs.gnu.org; Sun, 15 Jun 2014 12:12:46 -0400 Original-Received: from mtaout24.012.net.il ([80.179.55.180]:59677) by debbugs.gnu.org with esmtp (Exim 4.80) (envelope-from ) id 1WwD2w-0002CF-Pv for 17777@debbugs.gnu.org; Sun, 15 Jun 2014 12:12:44 -0400 Original-Received: from conversion-daemon.mtaout24.012.net.il by mtaout24.012.net.il (HyperSendmail v2007.08) id <0N7700800WPFH300@mtaout24.012.net.il> for 17777@debbugs.gnu.org; Sun, 15 Jun 2014 19:08:36 +0300 (IDT) Original-Received: from HOME-C4E4A596F7 ([87.69.4.28]) by mtaout24.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0N77001WBWUB9D70@mtaout24.012.net.il>; Sun, 15 Jun 2014 19:08:35 +0300 (IDT) In-reply-to: X-012-Sender: halo1@inter.net.il X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.15 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:90402 Archived-At: > From: Stefan Monnier > Cc: 17777@debbugs.gnu.org > Date: Sun, 15 Jun 2014 00:14:06 -0400 > > >> > if (w->window_end_valid > >> > + && NILP (Vexecuting_kbd_macro) > >> > && !windows_or_buffers_changed > >> > && b > >> > && !b->clip_changed > >> NILP (Vexecuting_kbd_macro) seems like a workaround. > > It isn't. > >> Why can't the glyph matrix be used in this case? > > Because cursor position is not up-to-date in that case. > >> I means which part of the glyph matrix is wrong in the OP's recipe > >> (since this makes no change to the buffer)? > > The cursor position. > > But that can occur even without executing kbd macros, no? Not sure what you mean by that. > Wouldn't it be better to ignore the cursor position given in the glyph > matrix and use (point) instead? For the method that is based on up-to-date glyph matrices, I need to know the glyph where the cursor is displayed. The glyph coordinates of that glyph are stored in the w->cursor structure, and updated by redisplay. The problem in the case in point was that redisplay is not called as long as a macro is running. So the coordinates from which move-point-visually starts are incorrect. I see no easy way of finding the cursor glyph coordinates by starting from point; a (not so easy) way is the second method used by that function.