GNU bug report logs -
#5477
23.1.91; diary-unhide-everything sometimes doesn't
Previous Next
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your message dated Tue, 26 Jan 2010 16:14:09 -0500
with message-id <navdeod0wu.fsf <at> fencepost.gnu.org>
and subject line Re: bug#5477: 23.1.91; diary-unhide-everything sometimes doesn't
has caused the Emacs bug report #5477,
regarding 23.1.91; diary-unhide-everything sometimes doesn't
to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact bug-gnu-emacs <at> gnu.org
immediately.)
--
5477: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=5477
Emacs Bug Tracking System
Contact bug-gnu-emacs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
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
[Message part 3 (message/rfc822, inline)]
Thanks, I will install this later.
I'm closing this now to test some debbugs changes I have made.
This bug report was last modified 15 years and 175 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.