Subject: bug#3971 closed by Juanma Barranquero <[email-masked]> (Re: bug#3971: 23.1.50; linum-mode kills right margin)

From: [email-masked] (Emacs bug Tracking System)
Date: Tue, 22 Sep 2009 00:20:06 +0000

This is an automatic notification regarding your bug report
which was filed against the emacs package:

#3971: 23.1.50; linum-mode kills right margin

It has been closed by Juanma Barranquero <[email-masked]>.

Their explanation is attached below along with your original report.
If this explanation is unsatisfactory and you have not received a
better one in a separate message then please contact Juanma Barranquero <[email-masked]> by
replying to this email.

-- 
3971: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3971
Emacs Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#3971: 23.1.50; linum-mode kills right margin
From: Juanma Barranquero <[email-masked]>
To: Lennart Borgman <[email-masked]>
Cc: [email-masked]
Date: Tue, 22 Sep 2009 02:09:43 +0200

On Thu, Jul 30, 2009 at 07:24, Lennart Borgman
<[email-masked]> wrote:

> Or, maybe it is better to redefine set-window-margins so that a nil
> argument for a margin means "don't touch"...?

I think that would be cleaner, because 0 is already available to set a
margin to "no margin".

But that's an interface change, so for now I've installed your change,
which fixes the bug.

    Juanma

Subject: 23.1.50; linum-mode kills right margin
From: Lennart Borgman <[email-masked]>
To: [email-masked]
Date: Thu, 30 Jul 2009 06:38:26 +0200

linum-mode kills the right margin. It should not touch it since it
does not use it. The following patch fixes this:

Index: linum.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/linum.el,v
retrieving revision 1.11
diff -c -b -r1.11 linum.el
*** linum.el	18 Jan 2009 01:45:38 -0000	1.11
--- linum.el	30 Jul 2009 04:35:10 -0000
***************
*** 108,114 ****
    (mapc #'delete-overlay linum-overlays)
    (setq linum-overlays nil)
    (dolist (w (get-buffer-window-list (current-buffer) nil t))
!     (set-window-margins w 0)))

  (defun linum-update-current ()
    "Update line numbers for the current buffer."
--- 108,114 ----
    (mapc #'delete-overlay linum-overlays)
    (setq linum-overlays nil)
    (dolist (w (get-buffer-window-list (current-buffer) nil t))
!     (set-window-margins w 0 (cdr (window-margins w)))))

  (defun linum-update-current ()
    "Update line numbers for the current buffer."
***************
*** 163,169 ****
              (overlay-put ov 'linum-str str))))
        (forward-line)
        (setq line (1+ line)))
!     (set-window-margins win width)))

  (defun linum-after-change (beg end len)
    ;; update overlays on deletions, and after newlines are inserted
--- 163,169 ----
              (overlay-put ov 'linum-str str))))
        (forward-line)
        (setq line (1+ line)))
!     (set-window-margins win width (cdr (window-margins win)))))

  (defun linum-after-change (beg end len)
    ;; update overlays on deletions, and after newlines are inserted

In GNU Emacs 23.1.50.1 (i386-mingw-nt5.1.2600)
 of 2009-06-30
Windowing system distributor `Microsoft Corp.', version 5.1.2600
configured using `configure --with-gcc (3.4) --no-opt --cflags
-Ic:/g/include -fno-crossjumping'