Subject: bug#62413: 29.0.60; [PATCH] save-place-mode cannot restore saved position

From: Eli Zaretskii <[email-masked]>
Date: Thu, 30 Mar 2023 08:34:03 +0300

> From: Liu Hui <[email-masked]>
> Date: Thu, 30 Mar 2023 10:49:39 +0800
> Cc: [email-masked]
> 
> Eli Zaretskii <[email-masked]> 于2023年3月28日周二 20:03写道：
> >
> > > I agree that it is better to avoid mixed file name formats, and then
> > > save-place-find-file-hook can be fixed simply. The difficult part is
> > > how to rewrite save-place-alist automatically.
> >
> > Isn't it just a matter of going through the list and calling
> > abbreviate-file-name on each file name there?
> 
> The conversion itself is easy. But users can change the value of
> save-place-abbreviate-file-names anytime. To make sure the list is
> always consistent with save-place-abbreviate-file-names, I think an
> internal variable is needed to record the old value. If they are
> different when save-place-to-alist is called, we rewrite the list. Is
> it OK?

I think there's a cleaner way: a defcustom can have a :set function,
which is called each time the variable is customized; this setter
function should be defined for a defcustom when changing its value has
non-trivial effects.  So we can define such a setter function to
rewrite the list, and document in the doc string of the defcustom that
users should not just set the value with setq, but instead use either
setopt or "M-x customize-variable".  WDYT?