Subject: Re: bug#36861: 27.0.50; display-fill-column-indicator-mode in log-edit-mode

From: Juri Linkov <[email-masked]>
Date: Sun, 04 Aug 2019 01:31:59 +0300

>> >>   (log-edit-mode . ((log-edit-font-lock-gnu-style . t)
>> >> -                   (log-edit-setup-add-author . t)))
>> >> +                   (log-edit-setup-add-author . t)
>> >> +                   (display-fill-column-indicator-column . 78)
>> >> +                   (eval . (display-fill-column-indicator-mode))))
>> >
>> > This will cause an annoying message and prompt when editing Emacs
>> > sources with an Emacs which doesn't yet have
>> > display-fill-column-indicator-mode, right?  Can we avoid that?  I
>> > routinely need to work on the latest sources with an older Emacs.
>> 
>> Shouldn't local-variables functions ignore undefined variables and commands?
>> Probably not, since such change won't help for older versions.
>
> Right, and we cannot summarily allow any variables a given Emacs
> doesn't know about, that'd we unsafe.

Actually by using the word "ignore" I meant to not set an unbound variable
(currently `hack-local-variables' defines and sets unbound variables).
But this is not backward-compatible change.

>> Then one way is to put such lines to the init file
>> to avoid typing `y' to confirm local variables
>> while using emacs-26 to commit emacs-27 changes:
>
> Rather than requiring users of older Emacsen to change their init
> files in such strange ways, which will/might be a problem when they
> upgrade to Emacs 27, why not expect users who want the early detection
> of long lines to turn on display-fill-column-indicator-mode in their
> init files?  IOW, the solution that requires changes to one's init
> files goes both ways.

I don't understand why display-fill-column-indicator customization
should be more complicated than necessary?  Why it requires adding
these lines:

                   (display-fill-column-indicator-column . 78)
                   (eval . (display-fill-column-indicator-mode))

when it should be enough to avoid eval by:

                   (display-fill-column-indicator-column . 78)
                   (display-fill-column-indicator . t)

Is it because the only purpose of display-fill-column-indicator-mode
is to set display-fill-column-indicator-character?  But then why
display-fill-column-indicator-character is not nil by default?
This contradicts the docstring of display-fill-column-indicator-character
that says that the default is U+2502, but actually the default is nil.

I'm CC-ing the author of display-fill-column-indicator:
Could you please consider setting the default value of
display-fill-column-indicator-character?  This could
simplify customization.