Subject: bug#67390: 28; shorthands-font-lock-shorthands assumes shorthand uses same separator

From: Joseph Turner <[email-masked]>
Date: Tue, 21 May 2024 15:05:54 -0700

Joseph Turner via "Bug reports for GNU Emacs, the Swiss army knife of text editors" <[email-masked]> writes:

> João Távora <[email-masked]> writes:
>
>> On Sat, Feb 3, 2024 at 8:01 PM Joseph Turner
>> <[email-masked]> wrote:
>>
>>> I'm still reproducing the check-declare bug on my machine. It appears
>>> that binding `enable-local-variables' to nil around the call to
>>> `hack-local-variables' means that `read-symbol-shorthands' is not set.
>>> Can we bind `enable-local-variables' to `:safe' instead?
>>
>> It could be some bootstrapping issue, since the safe spec of that particular
>> variable itself needs to be autoloaded.  I vaguely remember something like
>> this and I _think_ it was fixed.
>>
>> Anyway, I can't reproduce this with this test:
>>
>>    src/emacs -Q --batch --eval '(check-declare-file
>> "~/tmp/hyperdrive.el/hyperdrive-lib.el")'
>>
>> where ~/tmp/hyperdrive.el is a checkout of your hyperdrive library.
>>
>> This doesn't output anything, which I think is the expected result.
>>
>> How are you testing?
>
> Hmm... I just compiled from master with
>
> ./configure --with-x-toolkit=no --with-xpm=ifavailable
> --with-jpeg=ifavailable --with-gif=ifavailable --with-tiff=ifavailable
> --with-gnutls=ifavailable && make
>
> then I ran
>
> src/emacs -Q --batch --eval '(check-declare-file "~/.local/src/hyperdrive.el/hyperdrive-lib.el")'
>
> which produced
>
> uncompressing textsec-check.el.gz...
> uncompressing textsec-check.el.gz...done
> ../hyperdrive.el/hyperdrive-lib.el:44:Warning (check-declare): said
> ‘h/mode’ was defined in ../hyperdrive.el/hyperdrive.el: function not
> found
> ../hyperdrive.el/hyperdrive-lib.el:508:Warning (check-declare): said
> ‘h/history’ was defined in ../hyperdrive.el/hyperdrive-history.el:
> function not found
> ../hyperdrive.el/hyperdrive-lib.el:1332:Warning (check-declare): said
> ‘h/dir-handler’ was defined in ../hyperdrive.el/hyperdrive-dir.el:
> function not found
>
> Would someone else kindly attempt to reproduce the issue?

I just rebuilt from master ce8e292bca84f29cea540e3e23e88ec7a5d1674e

with the following settings

./configure --with-x-toolkit=no --with-xpm=ifavailable
--with-jpeg=ifavailable --with-gif=ifavailable --with-tiff=ifavailable
--with-gnutls=ifavailable && make

src/emacs -Q --batch --eval '(check-declare-file "~/.local/src/hyperdrive.el/hyperdrive-lib.el")'

returns the following:

uncompressing textsec-check.el.gz...
uncompressing textsec-check.el.gz...done
../hyperdrive.el/hyperdrive-lib.el:535:Warning (check-declare): said ‘h/history’
 was defined in ../hyperdrive.el/hyperdrive-history.el: function not found
../hyperdrive.el/hyperdrive-lib.el:44:Warning (check-declare): said ‘h/mode’ was
 defined in ../hyperdrive.el/hyperdrive.el: function not found
../hyperdrive.el/hyperdrive-lib.el:1333:Warning (check-declare): said ‘h/blob-mo
de’ was defined in ../hyperdrive.el/hyperdrive.el: function not found
../hyperdrive.el/hyperdrive-lib.el:1383:Warning (check-declare): said ‘h/dir-han
dler’ was defined in ../hyperdrive.el/hyperdrive-dir.el: function not found

Can anyone else reproduce this error?

Thank you!

Joseph