Subject: bug#54481: 29.0.50; [PATCH] Rewrite hl-line

From: Po Lu <[email-masked]>
Date: Tue, 22 Mar 2022 08:25:55 +0800

Lars Ingebrigtsen <[email-masked]> writes:

> Makes sense to me, so I've applied the patch to Emacs 29.

Now, ironically, that patch introduced at least two incompatible changes
which are likely to affect users: `hl-line' is no longer a face, and
`hl-line-face' (a variable) has been replaced by the face.

Of course, with no updates to the version field, NEWS, or the
documentation.  I tried to fix it, but I might've missed something.

> The one thing I was unsure about was things like this:
>
>> -(defun hl-line-unload-function ()
>> -  "Unload the Hl-Line library."
>
> We normally don't remove functions like this, but just make them
> obsolete.  But in this case it seems unlikely to me that anybody would
> actually ever use these functions, so I didn't alter that part.  But if
> anybody complains, we should take them the normal obsoletion route.

With that change, unloading the hl-line feature leaves stray overlays
around.  Which I also fixed by restoring the old definition.

This function is called by Emacs automatically when hl-line is unloaded,
and is not for users to call anyway.

Thanks.