[PATCH][ZE2] zend_highlight.c <font> change

php.internals

Lisa Seelye

22 years ago
Attached is a patch to change the behavior of source highlighting functions to use <span style="color"> instead of <font color="color">. This patch also introduces \n and \t when the parser encounters one (this change is mainly for readability). The reasoning is: the <font> tag is depreciated[1], and \n and \t should be preserved, and not just translated into <br /> and &nbsp;'s (respectively). [1]: http://www.w3.org/TR/html4/present/graphics.html#edef-FONT Please CC me on replies.
-- Regards, -Lisa <Vix ulla tam iniqua pax, quin bello vel aequissimo sit potior>

Greg Beaver

22 years ago
Hi, At the very least, the portion that adds in \n to <br \> is necessary to fix a bug in Internet Explorer experienced by PEAR documentation users. The source code examples in the manual at pear.php.net are highlighted with highlight_string(), and the lack of \n causes the rendered page examples (not HTML source - viewable graphical text) to cut-and-paste as a single line, something very annoying to deal with. Regards, Greg Lisa Seelye wrote:

Curt Zirzow

22 years ago
* Thus wrote Lisa Seelye (lisa@gentoo.org):
> Attached is a patch to change the behavior of source highlighting > functions to use <span style="color"> instead of <font color="color">. > This patch also introduces \n and \t when the parser encounters one > (this change is mainly for readability).
Slight problem with: zend_printf("<span style=\"color: %s;\">\n", last_color); Although it is a much more elegant solution. Some people consider inline style attributes bad. Curt
-- "I used to think I was indecisive, but now I'm not so sure."

Greg Beaver

22 years ago
Lisa, With my testing, <br />\n causes a double line break in Netscape Mail and Internet Explorer 6 on windows. However, using \n inside <pre> instead of <br /> works in both browsers. For my test, I took the page at http://pear.php.net/manual/en/core.pear.pear.seterrorhandling.php and replaced the <br /> with \n. I've uploaded a copy to: http://www.chiaraquartet.net/test_br.html I would appreciate it if people with older versions of Netscape/IE, any version of Mozilla, Opera, Konqueror, etc. would take a look and speak up if the example doesn't work correctly. Regards, Greg Lisa Seelye wrote:

Lisa Seelye

22 years ago
On Wed, 2003-10-29 at 22:31, Greg Beaver wrote:
> Lisa, > > With my testing, <br />\n causes a double line break in Netscape Mail > and Internet Explorer 6 on windows. However, using \n inside <pre> > instead of <br /> works in both browsers. For my test, I took the page > at http://pear.php.net/manual/en/core.pear.pear.seterrorhandling.php and > > replaced the <br /> with \n. I've uploaded a copy to: > > http://www.chiaraquartet.net/test_br.html > > I would appreciate it if people with older versions of Netscape/IE, any > version of Mozilla, Opera, Konqueror, etc. would take a look and speak > up if the example doesn't work correctly.
The purpose of the \n (and \t) was to break up the outputted html source. During my browser testing, Opera 7.21, Netscape 4.76, Mozilla 1.5, and IE 6 all behaved normally: Within the pre-formatted <code> blocks, all of the test browsers did not display any problems. That is to say, the existing <br /> put page breaks, and the new \n introduced a carriage return in the html source. I would dare say the behavior of Netscape Mail (double line break) is exclusive to it. I could not reproduce any double line break in IE 6 (with the requisite service packs and security patches). With regards to your test page, it looks fine (rendered and source) with Opera 7.21.
-- Regards, -Lisa <Vix ulla tam iniqua pax, quin bello vel aequissimo sit potior>