Subject: bug#51580: hl-line-mode doesn't override global-hl-line-mode in current buffer

From: Stefan Kangas <[email-masked]>
Date: Tue, 2 Nov 2021 23:47:14 -0700

It seems like there is currently no way to use `global-hl-line-mode'
while disabling it for individual buffers.

Steps to reproduce:

0. emacs -Q
1. M-x global-hl-line-mode
2. M-x hl-line-mode

Now, `global-hl-line-mode' is still in effect, and lines are still
highlighted.  I expect that running `hl-line-mode' turns off line
highlighting.

There is a comment in hl-line.el saying:

    ;; You could make variable `global-hl-line-mode' buffer-local and set
    ;; it to nil to avoid highlighting specific buffers, when the global
    ;; mode is used.

However, if I say M-x global-hl-line-mode and then

    M-: (setq-default global-hl-line-mode nil)

the highlighting overlay is left on the current line.