From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Alan Mackenzie Newsgroups: gmane.emacs.bugs Subject: bug#37213: Execute set-window-margins. left-margin-width remains 0. Date: Sat, 31 Aug 2019 11:59:11 +0000 Message-ID: <20190831115911.GC4822@ACM> References: <20190828185352.GA4530@ACM> <83r255ayq9.fsf@gnu.org> <20190828195706.GB4530@ACM> <83o908bhh2.fsf@gnu.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="247477"; mail-complaints-to="usenet@blaine.gmane.org" User-Agent: Mutt/1.10.1 (2018-07-13) Cc: 37213@debbugs.gnu.org To: Eli Zaretskii Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Aug 31 14:00:26 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1i423O-0012EH-1r for geb-bug-gnu-emacs@m.gmane.org; Sat, 31 Aug 2019 14:00:26 +0200 Original-Received: from localhost ([::1]:44228 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i423M-0004Yz-5m for geb-bug-gnu-emacs@m.gmane.org; Sat, 31 Aug 2019 08:00:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:47715) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i4232-0004Yb-4U for bug-gnu-emacs@gnu.org; Sat, 31 Aug 2019 08:00:05 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i4230-0007ac-Un for bug-gnu-emacs@gnu.org; Sat, 31 Aug 2019 08:00:04 -0400 Original-Received: from debbugs.gnu.org ([209.51.188.43]:46234) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i4230-0007aV-RT for bug-gnu-emacs@gnu.org; Sat, 31 Aug 2019 08:00:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1i4230-0004a9-MY for bug-gnu-emacs@gnu.org; Sat, 31 Aug 2019 08:00:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Alan Mackenzie Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 31 Aug 2019 12:00:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 37213 X-GNU-PR-Package: emacs Original-Received: via spool by 37213-submit@debbugs.gnu.org id=B37213.156725275517517 (code B ref 37213); Sat, 31 Aug 2019 12:00:02 +0000 Original-Received: (at 37213) by debbugs.gnu.org; 31 Aug 2019 11:59:15 +0000 Original-Received: from localhost ([127.0.0.1]:55055 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1i422F-0004YS-2u for submit@debbugs.gnu.org; Sat, 31 Aug 2019 07:59:15 -0400 Original-Received: from colin.muc.de ([193.149.48.1]:33053 helo=mail.muc.de) by debbugs.gnu.org with smtp (Exim 4.84_2) (envelope-from ) id 1i422D-0004YK-Tp for 37213@debbugs.gnu.org; Sat, 31 Aug 2019 07:59:14 -0400 Original-Received: (qmail 66245 invoked by uid 3782); 31 Aug 2019 11:06:21 -0000 Original-Received: from acm.muc.de (p2E5D5E4B.dip0.t-ipconnect.de [46.93.94.75]) by colin.muc.de (tmda-ofmipd) with ESMTP; Sat, 31 Aug 2019 13:06:20 +0200 Original-Received: (qmail 5898 invoked by uid 1000); 31 Aug 2019 11:59:11 -0000 Content-Disposition: inline In-Reply-To: <83o908bhh2.fsf@gnu.org> X-Delivery-Agent: TMDA/1.1.12 (Macallan) X-Primary-Address: acm@muc.de X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.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" Xref: news.gmane.org gmane.emacs.bugs:166113 Archived-At: Hello, Eli. On Thu, Aug 29, 2019 at 09:42:17 +0300, Eli Zaretskii wrote: > > Date: Wed, 28 Aug 2019 19:57:06 +0000 > > Cc: 37213@debbugs.gnu.org > > From: Alan Mackenzie > > > I don't think this is a bug. This variable is for _setting_ the > > > margin width, not for _returning_ its width as set "by other means". > > > See its documentation. > > The documentation says "This variable specifies the width of the left > > margin". As best, this is unclear. What you're saying is that the > > variable ceases to specify that width, should the margin be altered by > > other means. > > I maintain that this is either a bug in the documentation, or in the > > code. > I'm okay with clarifying the documentation, but let's first agree what > needs clarifying there. How about the following, purely pragmatic, patch? diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi index 7c0a56dcad..428fe9595a 100644 --- a/doc/lispref/display.texi +++ b/doc/lispref/display.texi @@ -5016,7 +5016,9 @@ Display Margins Setting these variables does not immediately affect the window. These variables are checked when a new buffer is displayed in the window. Thus, you can make changes take effect by calling -@code{set-window-buffer}. +@code{set-window-buffer}. Do not use these variables to try to +determine the current width of the left or right margin. Instead, use +the function @code{window-margins}. You can also set the margin widths immediately. With this patch applied, I'd be happy for the bug to be closed. > > If the former, it should explicitly state that the variable is > > write-only, and its read value is undefined. It should say that the > > function window-margins should be used instead. > > But it might be easier just to amend the code. There appear to be just > > two ways to set the width of the left margin (or the right margin), so > > if it gets set the second way, why not just set that variable? Could > > this do any harm? (Note: I haven't looked at the code, yet.) > Think about it: left-margin-width is a per-buffer variable. A buffer > can be displayed in zero or more windows, and the margin is a window > property. How can a single buffer-local variable reflect a value that > can be different in different windows, and can even be meaningless if > the buffer is not displayed in any window? OK. > What happens in the code is that when a buffer is displayed in a > window, this variable is consulted, and the window's margin-width > attribute set accordingly. The window margins can grow or shrink > thereafter, and the function window-margins then returns this window > attribute's value at any given moment for a specific window. Thanks for the explanation. -- Alan Mackenzie (Nurermberg, Germany).