GNU bug report logs - #73291
31.0.50; `clean-buffer-list' activates `midnight-mode'

Previous Next

Package: emacs;

Reported by: Manuel Giraud <manuel <at> ledu-giraud.fr>

Date: Mon, 16 Sep 2024 07:51:02 UTC

Severity: normal

Found in version 31.0.50

Fixed in version 31.1

Done: Stefan Kangas <stefankangas <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: Michael Heerdegen <michael_heerdegen <at> web.de>
Cc: 73291 <at> debbugs.gnu.org, manuel <at> ledu-giraud.fr
Subject: bug#73291: 31.0.50; `clean-buffer-list' activates `midnight-mode'
Date: Tue, 17 Sep 2024 16:46:02 +0300
> From: Michael Heerdegen <michael_heerdegen <at> web.de>
> Cc: Eli Zaretskii <eliz <at> gnu.org>,  Manuel Giraud <manuel <at> ledu-giraud.fr>,
>   73291 <at> debbugs.gnu.org
> Date: Tue, 17 Sep 2024 15:17:45 +0200
> 
> Manuel Giraud via "Bug reports for GNU Emacs, the Swiss army knife of
> text editors" <bug-gnu-emacs <at> gnu.org> writes:
> 
> > > -  (when (timerp midnight-timer) (cancel-timer midnight-timer))
> > > -  (setq midnight-timer
> > > -        (run-at-time (if (numberp tm) (+ (midnight-next) tm) tm)
> > > -                     midnight-period #'run-hooks 'midnight-hook)))
> > > +  (when (timerp midnight-timer)
> > > +    (cancel-timer midnight-timer)
> > > +    (setq midnight-timer
> > > +          (run-at-time (if (numberp tm) (+ (midnight-next) tm) tm)
> > > +                       midnight-period #'run-hooks 'midnight-hook))))
> > >
> > >  (defcustom midnight-delay 3600
> > >    "The number of seconds after the midnight when the `midnight-timer' is run.
> > >
> > > Can you try this and see if it solves the problem, and doesn't break
> > > the other uses of midnight-mode and or clean-buffer-list?
> >
> > Thanks.  It solves the issue of activacting the midnight-mode: now
> > `clean-buffer-list' is just done once and won't run the next day.  But
> > now, when I do M-x midnight-mode, I get the following error:
> >
> > timer--activate: Invalid or uninitialized timer
> 
> Maybe we could instead check whether `midnight-mode' is on, Eli?

Sorry, I don't understand what you have in mind: check where?

What needs to be done is to make sure midnight-timer is a timer
(calling timer-create if not) before we call midnight-delay-set,
because it will only initialize the delay if midnight-timer is already
a timer.

Alternatively, we could call run-at-time directly from midnight-mode.

But I guess you meant some third possibility?




This bug report was last modified 239 days ago.

Previous Next


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