GNU bug report logs - #78820
31.0.50; savehist timer does not run repeatedly

Previous Next

Package: emacs;

Reported by: Daniel Mendler <mail <at> daniel-mendler.de>

Date: Wed, 18 Jun 2025 00:24:01 UTC

Severity: normal

Tags: fixed

Found in version 31.0.50

Fixed in version 31.1

Done: Robert Pluim <rpluim <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


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

From: Daniel Mendler <mail <at> daniel-mendler.de>
To: Stéphane Marks <shipmints <at> gmail.com>
Cc: Eli Zaretskii <eliz <at> gnu.org>, 78820 <at> debbugs.gnu.org,
 monnier <at> iro.umontreal.ca
Subject: Re: bug#78820: 31.0.50; savehist timer does not run repeatedly
Date: Wed, 18 Jun 2025 14:20:11 +0200
Stéphane Marks <shipmints <at> gmail.com> writes:

> On Wed, Jun 18, 2025 at 7:55 AM Eli Zaretskii <eliz <at> gnu.org> wrote:
>
>> > Cc: "Stefan Monnier" <monnier <at> iro.umontreal.ca>
>> > Date: Wed, 18 Jun 2025 02:23:14 +0200
>> > From:  Daniel Mendler via "Bug reports for GNU Emacs,
>> >  the Swiss army knife of text editors" <bug-gnu-emacs <at> gnu.org>
>> >
>> > It seems that the savehist timer does not run repeatedly. run-with-timer
>> > is called with repeat argument t.
>> >
>> > (run-with-timer savehist-autosave-interval t #'savehist-autosave)
>> >
>> > If I understand correctly, the correct call should look like this:
>> >
>> > (run-with-timer t savehist-autosave-interval #'savehist-autosave)
>> > (run-with-timer savehist-autosave-interval savehist-autosave-interval
>> #'savehist-autosave)
>>
>> Why do you think so?  The calling sequence of run-with-timer is this:
>>
>>   (run-with-timer SECS REPEAT FUNCTION &rest ARGS)
>>
>> So what savehist.el does appears to be correct.  Or what am I missing?
>>
>
> (defun savehist--manage-timer ()
> ;; should be
>    (run-with-timer savehist-autosave-interval
>                    savehist-autosave-interval #'savehist-autosave))
> ;; not silly t
>    (run-with-timer savehist-autosave-interval t #'savehist-autosave))

To clarify, with the argument t, the timer does not run repeatedly, but
only once. That's the problem. Btw I wonder if it would make sense to
allow Stéphane's calling convention too and just dtrt. It is not
obviously silly imo.

Daniel




This bug report was last modified 28 days ago.

Previous Next


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