Subject: bug#77140: [PATCH] Strip text properties on recentf entries

From: Ship Mints <[email-masked]>
Date: Fri, 21 Mar 2025 09:21:12 -0400

On Thu, Mar 20, 2025 at 11:09 PM Stefan Kangas <[email-masked]>
wrote:

> Ship Mints <[email-masked]> writes:
>
> > On Thu, Mar 20, 2025 at 12:57 PM Ship Mints <[email-masked]> wrote:
> >
> >> Text properties are added by common completion frameworks, and serve no
> >> purpose when stored in 'recentf-save-file', waste space, and slow
> loading
> >> the file.
> >>
> >> I did not add this to NEWS as I consider this non-user visible.  Happy
> to
> >> add this if the maintainers disagree.
> >>
> >> I've been running recentf with 'substring-no-properties' for ages and
> >> others should benefit, by default.
> >>
> >> -Stephane
> >>
> >
> > savehist already does this implicitly.  Perhaps it shouldn't even be
> > optional as I made it (it was an easy change).
>
> I think we should do this unconditionally, as the point here is to
> locate the file and nothing else.
>
> For the record, could you also provide details on which completion
> frameworks that add text properties?  Do text properties cause any other
> issues than wasted space?  It's enough to mention these detail here in
> the bug report, I think, no need to add it to the commit message.
>
> No need for NEWS here, I agree.
>

Pretty much all completions, core and packages, that rely on metadata or
apply faces, add text properties to completion candidates.  The variable
'minibuffer-allow-text-properties' can be bound to nil but if you read
https://lists.gnu.org/archive/html/bug-gnu-emacs/2025-02/msg00952.html you'll
see there cases where it can't accomplish its claim.

Revised patch attached.