Subject: bug#37213: Execute set-window-margins. left-margin-width remains 0.

From: martin rudalics <[email-masked]>
Date: Thu, 29 Aug 2019 09:46:34 +0200

> Hello, Emacs.

Hello, Alan.

 > In Emacs-27, recent master branch, do:
 >
 > emacs -Q
 > M-: (set-window-margins (selected-window) 2) ; This works.

In which sense?

 > M-: left-margin-width.
 >
 > The result is that left-margin-width is still at zero, although the
 > value should be 2.  This is a bug.

Neither of the last two statements is correct.  'set-window-margins'
sets the margin widths of its WINDOW argument (the selected window in
your case) and triggers an update of the display.  If WINDOW's buffer
is currently displayed in another window as well, the margins of that
other window remain unaffected.  You can verify that by splitting your
window before invoking 'set-window-margins'.

'left-margin-width' is the buffer-local value of the left margin for
showing that buffer in a window.  That value is put into effect only
when 'set-window-buffer' has a window display that buffer.  You can
verfiy this by setting 'left-margin-width' to some different value
before splitting the window as suggested above.

Concludingly, you've been comparing apples and oranges here.  If the
doc-strings or the manual made you do so, please consider adjusting
their texts appropriately.  Gladly, your questions was about margins
only; with fringes we would even have a frame parameter to take into
account here ...

Thanks, martin