* bug#40844: html mode sometimes fooled by apostrophe
@ 2020-04-25 11:26 積丹尼 Dan Jacobson
2020-04-25 14:09 ` Noam Postavsky
0 siblings, 1 reply; 3+ messages in thread
From: 積丹尼 Dan Jacobson @ 2020-04-25 11:26 UTC (permalink / raw)
To: 40844
$ wget https://www.jidanni.org/lang/pinyin/older.html
$ emacs -q older.html
You will see that by mid-file, emacs has already got confused by
U+0027 APOSTROPHE
causing it to turn on and off font-lock-string-face!
So there is something in this file that causes it to screw up.
emacs-version "26.3"
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#40844: html mode sometimes fooled by apostrophe
2020-04-25 11:26 bug#40844: html mode sometimes fooled by apostrophe 積丹尼 Dan Jacobson
@ 2020-04-25 14:09 ` Noam Postavsky
0 siblings, 0 replies; 3+ messages in thread
From: Noam Postavsky @ 2020-04-25 14:09 UTC (permalink / raw)
To: 積丹尼 Dan Jacobson; +Cc: 40844
tags 40844 + confirmed
found 40844 27.0.91
quit
積丹尼 Dan Jacobson <jidanni@jidanni.org> writes:
> $ wget https://www.jidanni.org/lang/pinyin/older.html
> $ emacs -q older.html
>
> You will see that by mid-file, emacs has already got confused by
> U+0027 APOSTROPHE
> causing it to turn on and off font-lock-string-face!
> So there is something in this file that causes it to screw up.
Seems to be related to the paren character, here's a smaller
reproducer:
<!DOCTYPE html>
<html>
<body>
(and counties' names
</body>
</html>
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#40844: html mode sometimes fooled by apostrophe
2021-06-13 12:21 ` bug#43941: bug#40844: html mode sometimes fooled by apostrophe Lars Ingebrigtsen
@ 2021-06-13 18:14 ` Stephen Berman
0 siblings, 0 replies; 3+ messages in thread
From: Stephen Berman @ 2021-06-13 18:14 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: 40844, 43941, jidanni
On Sun, 13 Jun 2021 14:21:36 +0200 Lars Ingebrigtsen <larsi@gnus.org> wrote:
> Stephen Berman <stephen.berman@gmx.net> writes:
>
>> I made a silly mistake (it was late and I was tired). Here is a
>> corrected version:
>
> I can confirm that this patch solves the test cases here.
Thanks for checking.
>> With this patch, when any of the paired-bracket characters is followed
>> by `'' in html-mode, there is indeed no string face fontification on the
>> latter (and following characters). The following function demonstrates
>> this:
>
> [...]
>
>> I wanted to turn this function into a test, and that's what the
>> commented out lines are supposed to do. But when I uncomment these
>> lines and call this function with the unpatched (i.e. current) version
>> of sgml-mode-syntax-table, it still shows default face for `'' with all
>> the paired-bracket characters. Yet when I step through the function
>> with Ediff, I do see some cases with font-lock-string-face. I don't
>> understand what's going on here.
>
> Might be a timing issue, perhaps?
I tried adding sit-for at different points but it made no difference.
> In any case, the patch is an improvement, so perhaps that should be
> pushed anyway?
Upthread Eli said "some SGML/HTML expert should say if that is TRT".
I'm no such expert so I can't make that decision. FWIW, I rewrote the
test using ert, and the result is as above: it passes with the patch, as
expected, but also without the patch, even though in the latter case the
test buffer clearly contains characters fontified with
font-lock-string-face. And just as I wrote above, when stepping through
the ert-deftest using the unpatched sgml-tag-syntax-table, the test does
fail as expected. Here's the test, in case someone else wants to see if
they can figure it out; I haven't succeeded:
(ert-deftest sgml-test-brackets ()
"Test fontification of apostrophe preceded by paired-bracket character."
(let ((buf (get-buffer-create "*sgml-test*"))
brackets results)
(map-char-table
(lambda (key value)
(setq brackets (cons (list
(if (consp key)
(list (car key) (cdr key))
key)
value)
brackets)))
(unicode-property-table-internal 'paired-bracket))
(setq brackets (delete-dups (flatten-tree brackets)))
(setq brackets (append brackets (list ?$ ?% ?& ?* ?+ ?/)))
(with-current-buffer buf
(erase-buffer)
(fundamental-mode)
(while brackets
(let ((char (string (pop brackets))))
(insert (concat "<p>" char "'s</p>\n"))))
(html-mode)
(goto-char (point-min))
(while (not (eobp))
(goto-char (next-single-char-property-change (point) 'face))
(let ((val (get-text-property (point) 'face)))
(when val
(should-not (eq val 'font-lock-string-face))))))))
Steve Berman
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2021-06-13 18:14 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-04-25 11:26 bug#40844: html mode sometimes fooled by apostrophe 積丹尼 Dan Jacobson
2020-04-25 14:09 ` Noam Postavsky
-- strict thread matches above, loose matches on Subject: below --
2020-10-11 14:30 bug#43941: HTML+ mode: dangerous apostrophe after fullwidth parenthesis 積丹尼 Dan Jacobson
2020-10-12 14:48 ` Eli Zaretskii
2020-10-12 15:11 ` Stephen Berman
2020-10-12 15:20 ` Eli Zaretskii
2020-10-12 16:17 ` Stephen Berman
2020-10-12 16:29 ` Eli Zaretskii
2020-10-12 17:21 ` Stephen Berman
2020-10-12 17:38 ` Eli Zaretskii
2020-10-12 21:26 ` Stephen Berman
2020-10-13 10:37 ` Stephen Berman
2021-06-13 12:21 ` bug#43941: bug#40844: html mode sometimes fooled by apostrophe Lars Ingebrigtsen
2021-06-13 18:14 ` Stephen Berman
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.