GNU bug report logs - #5477
23.1.91; diary-unhide-everything sometimes doesn't

Previous Next

Package: emacs;

Reported by: Stephen Berman <stephen.berman <at> gmx.net>

Date: Mon, 25 Jan 2010 22:10:02 UTC

Severity: normal

Done: Glenn Morris <rgm <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 5477 in the body.
You can then email your comments to 5477 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#5477; Package emacs. (Mon, 25 Jan 2010 22:10:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Stephen Berman <stephen.berman <at> gmx.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 25 Jan 2010 22:10:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Stephen Berman <stephen.berman <at> gmx.net>
To: bug-gnu-emacs <at> gnu.org
Subject: 23.1.91; diary-unhide-everything sometimes doesn't
Date: Mon, 25 Jan 2010 22:38:31 +0100
If diary-list-entries applies to a narrowed buffer, it widens it before
making it invisible (due to bug#5093).  However, it can happen that
narrowing is restored before diary-unhide-everything applies, with the
result that only the narrowed portion of the buffer becomes visible
again.  The simplest reproducible recipe I could find may seem
contrived, but it makes strictly legitimate use of Emacs libraries (I
have more complex local changes to Todo mode that also suffer from it):

1. Save the following text as ~/.todo-do:

    -*- mode: todo; todo-categories: ("test" "Todo"); -*-
     --- test
     January 25, 2010 19:47 steve: another item
    --- End
     ---------------------------------------------------------------------------
     --- Todo
     January 25, 2010 19:48 steve: todo item
    --- End
     ---------------------------------------------------------------------------

   What matters is that there are at least two Todo categories and
   todo-prefix is not interpretable by diary-lib, e.g. here it is just
   the empty string (the following space is required by Todo mode).

2. emacs -Q
3. M-x todo-show, answer y to apply the local variable list.  A "search
   failed" error occurs because the value of todo-prefix is (still) the
   default "*/*".  So kill the Todo buffer, do M-x customize-variable
   RET todo-prefix, make it match the string in the above ~/.todo-do
   file (the empty string), save for the current session, and call
   todo-show again.  The Todo buffer shows the item in category "test",
   and pressing + or - will show the item in category "Todo". 
4. Save the following as ~/diary:

    #include "~/.todo-do"
    
    Jan 25, 2010 diary item

5. M-: (add-hook 'diary-list-entries-hook 'diary-include-other-diary-files)
6. M-x calendar, then type `d' on Jan 25 (the actual date is probably
   irrelevant).
=> Now todo-show only displays one category (whichever was current
before doing the step 6), the other category is invisible.

The patch below fixes this bug.

In GNU Emacs 23.1.91.2 (i686-pc-linux-gnu, GTK+ Version 2.18.1)
 of 2010-01-25 on escher
Windowing system distributor `The X.Org Foundation', version 11.0.10605000
Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t


2010-01-25  Stephen Berman  <stephen.berman <at> gmx.net>

	* diary-lib.el (diary-unhide-everything): Widen before removing
        overlays (bug#XXXX). 


*** /tmp/ediff16825Y0s	2010-01-25 22:16:53.000000000 +0100
--- /data/steve/bzr/emacs/quickfixes/lisp/calendar/diary-lib.el	2010-01-25 22:13:51.000000000 +0100
***************
*** 804,810 ****
  (defun diary-unhide-everything ()
    "Show all invisible text in the diary."
    (kill-local-variable 'diary-selective-display)
!   (remove-overlays (point-min) (point-max) 'invisible 'diary)
    (kill-local-variable 'mode-line-format))
  
  (defvar original-date)                  ; bound in diary-list-entries
--- 804,813 ----
  (defun diary-unhide-everything ()
    "Show all invisible text in the diary."
    (kill-local-variable 'diary-selective-display)
!   (save-excursion
!     (save-restriction
!       (widen)
!       (remove-overlays (point-min) (point-max) 'invisible 'diary)))
    (kill-local-variable 'mode-line-format))
  
  (defvar original-date)                  ; bound in diary-list-entries





Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#5477; Package emacs. (Tue, 26 Jan 2010 20:22:01 GMT) Full text and rfc822 format available.

Message #8 received at 5477 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: Stephen Berman <stephen.berman <at> gmx.net>
Cc: 5477 <at> debbugs.gnu.org
Subject: Re: bug#5477: 23.1.91; diary-unhide-everything sometimes doesn't
Date: Tue, 26 Jan 2010 15:21:32 -0500
Stephen Berman wrote:

>   (defun diary-unhide-everything ()
>     "Show all invisible text in the diary."
>     (kill-local-variable 'diary-selective-display)
> !   (save-excursion
> !     (save-restriction
> !       (widen)
> !       (remove-overlays (point-min) (point-max) 'invisible 'diary)))
>     (kill-local-variable 'mode-line-format))

This seems fine. Is your save-excursion really necessary?




Information forwarded to owner <at> debbugs.gnu.org, bug-gnu-emacs <at> gnu.org:
bug#5477; Package emacs. (Tue, 26 Jan 2010 21:06:02 GMT) Full text and rfc822 format available.

Message #11 received at 5477 <at> debbugs.gnu.org (full text, mbox):

From: Stephen Berman <stephen.berman <at> gmx.net>
To: Glenn Morris <rgm <at> gnu.org>
Cc: 5477 <at> debbugs.gnu.org
Subject: Re: bug#5477: 23.1.91; diary-unhide-everything sometimes doesn't
Date: Tue, 26 Jan 2010 22:05:00 +0100
On Tue, 26 Jan 2010 15:21:32 -0500 Glenn Morris <rgm <at> gnu.org> wrote:

> Stephen Berman wrote:
>
>>   (defun diary-unhide-everything ()
>>     "Show all invisible text in the diary."
>>     (kill-local-variable 'diary-selective-display)
>> !   (save-excursion
>> !     (save-restriction
>> !       (widen)
>> !       (remove-overlays (point-min) (point-max) 'invisible 'diary)))
>>     (kill-local-variable 'mode-line-format))
>
> This seems fine. Is your save-excursion really necessary?

No, it's superfluous, sorry.  That nesting is so common, I didn't stop
to think.  Thanks for the heads up.

Steve Berman

*** /tmp/ediff3766uVW	2010-01-26 21:56:24.000000000 +0100
--- /home/steve/bzr/emacs/quickfixes/lisp/calendar/diary-lib.el	2010-01-26 21:55:19.000000000 +0100
***************
*** 804,810 ****
  (defun diary-unhide-everything ()
    "Show all invisible text in the diary."
    (kill-local-variable 'diary-selective-display)
!   (remove-overlays (point-min) (point-max) 'invisible 'diary)
    (kill-local-variable 'mode-line-format))
  
  (defvar original-date)                  ; bound in diary-list-entries
--- 804,812 ----
  (defun diary-unhide-everything ()
    "Show all invisible text in the diary."
    (kill-local-variable 'diary-selective-display)
!   (save-restriction
!     (widen)
!     (remove-overlays (point-min) (point-max) 'invisible 'diary))
    (kill-local-variable 'mode-line-format))
  
  (defvar original-date)                  ; bound in diary-list-entries




Reply sent to Glenn Morris <rgm <at> gnu.org>:
You have taken responsibility. (Tue, 26 Jan 2010 21:15:02 GMT) Full text and rfc822 format available.

Notification sent to Stephen Berman <stephen.berman <at> gmx.net>:
bug acknowledged by developer. (Tue, 26 Jan 2010 21:15:02 GMT) Full text and rfc822 format available.

Message #16 received at 5477-done <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: 5477-done <at> debbugs.gnu.org
Subject: Re: bug#5477: 23.1.91; diary-unhide-everything sometimes doesn't
Date: Tue, 26 Jan 2010 16:14:09 -0500
Thanks, I will install this later.

I'm closing this now to test some debbugs changes I have made.




bug archived. Request was from Debbugs Internal Request <bug-gnu-emacs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Wed, 24 Feb 2010 12:24:05 GMT) Full text and rfc822 format available.

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

Previous Next


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