From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.devel Subject: Re: [Emacs-diffs] master fd8f724: * src/xdisp.c (overlay_arrows_changed_p): Fix last change. Date: Tue, 28 Feb 2017 12:47:05 -0500 Message-ID: References: <83y3wqnvol.fsf@gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1488304999 22521 195.159.176.226 (28 Feb 2017 18:03:19 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 28 Feb 2017 18:03:19 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Eli Zaretskii Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Tue Feb 28 19:03:15 2017 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cim7D-00057k-Tr for ged-emacs-devel@m.gmane.org; Tue, 28 Feb 2017 19:03:12 +0100 Original-Received: from localhost ([::1]:36050 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cim7K-0007Xo-2h for ged-emacs-devel@m.gmane.org; Tue, 28 Feb 2017 13:03:18 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52203) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cilrn-0002KD-0b for emacs-devel@gnu.org; Tue, 28 Feb 2017 12:47:15 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cilrm-0001He-2c for emacs-devel@gnu.org; Tue, 28 Feb 2017 12:47:15 -0500 Original-Received: from ironport2-out.teksavvy.com ([206.248.154.181]:44988) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1cilrg-0001FD-Gn; Tue, 28 Feb 2017 12:47:08 -0500 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AeBgB9trVY/7993mhdHAEBBAEBCgEBg1CEd4tJkHApAZA4hFOCDYYcBAICgixCFgECAQEBAQEBAWIohHEBBAFWIwULCzQSFBgNJIoCCLNEizEBAQEBBgIBJYs7ijkFkFKLUZxohlxIkmomAi+BASEUCCyFDR0ZgWYiiiUBAQE X-IPAS-Result: A0AeBgB9trVY/7993mhdHAEBBAEBCgEBg1CEd4tJkHApAZA4hFOCDYYcBAICgixCFgECAQEBAQEBAWIohHEBBAFWIwULCzQSFBgNJIoCCLNEizEBAQEBBgIBJYs7ijkFkFKLUZxohlxIkmomAi+BASEUCCyFDR0ZgWYiiiUBAQE X-IronPort-AV: E=Sophos;i="5.35,220,1484024400"; d="scan'208";a="294018451" Original-Received: from 104-222-125-191.cpe.teksavvy.com (HELO pastel.home) ([104.222.125.191]) by smtp.teksavvy.com with ESMTP; 28 Feb 2017 12:47:05 -0500 Original-Received: by pastel.home (Postfix, from userid 20848) id E89AC6564F; Tue, 28 Feb 2017 12:47:05 -0500 (EST) In-Reply-To: <83y3wqnvol.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 28 Feb 2017 18:10:02 +0200") X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 206.248.154.181 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:212655 Archived-At: > Stefan, I don't understand the new semantics of > overlay_arrows_changed_p, and even less so after your latest updates. Does the patch below clarify the situation and clean up the behavior enough? I'm still wondering about /* FIXME: Don't we have a problem, using such a global * "last-position" if the variable is buffer-local? */ -- Stefan diff --git a/src/xdisp.c b/src/xdisp.c index 4e87001abf..1f8878408b 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -13338,12 +13338,15 @@ overlay_arrow_in_current_buffer_p (void) /* Return true if any overlay_arrows have moved or overlay-arrow-string - has changed. */ + has changed. + If SET_REDISPLAY is true, additionally, set the `redisplay' bit in those + buffers that are affected. */ static bool overlay_arrows_changed_p (bool set_redisplay) { Lisp_Object vlist; + bool changed = false; for (vlist = Voverlay_arrow_variable_list; CONSP (vlist); @@ -13370,12 +13373,13 @@ overlay_arrows_changed_p (bool set_redisplay) { if (buf) bset_redisplay (buf); + changed = true; } else return true; } } - return false; + return changed; } /* Mark overlay arrows to be updated on next redisplay. */ @@ -13397,6 +13401,8 @@ update_overlay_arrows (int up_to_date) if (up_to_date > 0) { Lisp_Object val = find_symbol_value (var); + if (!MARKERP (val)) + continue; Fput (var, Qlast_arrow_position, COERCE_MARKER (val)); Fput (var, Qlast_arrow_string,