Subject: Re: bug#4512: 23.1; html-mode C-c C-f on runs of <P>

From: Stefan Monnier <[email-masked]>
Date: Tue, 22 Sep 2009 17:45:34 -0400

> In a html-mode buffer with runs of successive <P> tags, like

>     (progn
>       (switch-to-buffer "foo")
>       (dotimes (i 5000) (insert (format "<p> abc\n" i)))
>       (goto-char (point-min))
>       (html-mode))

> pressing C-c C-f gets an error

>     Variable binding depth exceeds max-specpdl-size

> instead of going forward.  The way C-c C-f `sgml-skip-tag-forward'
> requires a closing </P> etc is no doubt what's wanted for sgml, but for
> the looser html it'd be good if it recognised some closing tags are
> optional.

The necessary info is already present and used by the indentation
code, via the function sgml-unclosed-tag-p.  All it needs is for someone
to figure out how to merge the indentation's navigation code with the
sgml-skip-tag-(for|back)ward  code (which predates it, but wasn't good
enough).

        Stefan