GNU bug report logs - #5370
M-x hexl-mode M-x hexl-mode leaves unwanted ruler

Previous Next

Package: emacs;

Reported by: Juanma Barranquero <lekktu <at> gmail.com>

Date: Wed, 13 Jan 2010 04:53:01 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Juanma Barranquero <lekktu <at> gmail.com>
Subject: bug#5370: closed (Re: M-x hexl-mode M-x hexl-mode leaves unwanted
 ruler)
Date: Wed, 30 Jun 2010 22:47:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#5370: M-x hexl-mode M-x hexl-mode leaves unwanted ruler

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 5370 <at> debbugs.gnu.org.

-- 
5370: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5370
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Chong Yidong <cyd <at> stupidchicken.com>
To: Juanma Barranquero <lekktu <at> gmail.com>
Cc: 5370-done <at> debbugs.gnu.org
Subject: Re: M-x hexl-mode M-x hexl-mode leaves unwanted ruler
Date: Wed, 30 Jun 2010 18:46:52 -0400
> The second call to hexl-mode bypasses most of the hexl-mode
> initialization, but runs `hexl-mode-hook', which by default contains
> `hexl-activate-ruler', so the ruler is initialized again. `ruler-mode'
> already has code to save header-line-format, but it seems like it
> isn't dealing too well with reentering.
>
> So, I think the bug is in ruler-mode. But, what to do? Create a stack
> of previous header-line-format's?

The solution is to avoid saving the old header-line-format if Ruler mode
is already on.  I've checked in a fix.

[Message part 3 (message/rfc822, inline)]
From: Juanma Barranquero <lekktu <at> gmail.com>
To: Bug-Gnu-Emacs <bug-gnu-emacs <at> gnu.org>
Subject: M-x hexl-mode M-x hexl-mode leaves unwanted ruler
Date: Wed, 13 Jan 2010 05:52:12 +0100
  emacs -Q
  M-x hexl-mode <RET>
  y              ; to the question about discarding undo
  M-x hexl-mode <RET>
  C-c C-c

now *scratch* has a ruler, thanks to `header-line-format' containing

   (:eval (funcall ruler-mode-ruler-function))

while `ruler-mode' is nil (so M-x ruler-mode doesn't remove it).

The second call to hexl-mode bypasses most of the hexl-mode
initialization, but runs `hexl-mode-hook', which by default contains
`hexl-activate-ruler', so the ruler is initialized again. `ruler-mode'
already has code to save header-line-format, but it seems like it
isn't dealing too well with reentering.

So, I think the bug is in ruler-mode. But, what to do? Create a stack
of previous header-line-format's? At some point the thing turns
ridiculous. In the case above, however, it is a real bug (though
harmless) because the unwary user will have a hard time removing the
ruler.

Still, shouldn't hexl-activate-ruler be a noop when the buffer is
already in hexl-mode? It is certainly possible to do

  M-x hexl-mode  ; you have a hexl ruler
  M-x ruler-mode  ; to turn it off
  M-x hexl-mode  ; you get it back

but I can't really say whether the user would expect at that point to
have a hexl ruler or not in the buffer :-)

    Juanma




This bug report was last modified 15 years and 42 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.