Perl / perl5

🐪 The Perl programming language
https://dev.perl.org/perl5/
Other
1.85k stars 527 forks source link

[PATCH] pod2html: embedded E<> tags in C<> are doubly escaped. #1173

Closed p5pRT closed 20 years ago

p5pRT commented 24 years ago

Migrated from rt.perl.org#2142 (status was 'resolved')

Searchable as RT2142$

p5pRT commented 24 years ago

From adam@doogie.org

Created by doogie@debian.org

The following pod fragment is incorrectly processed by pod2html​:

C\<FOO . serialize &E\ save_FOO.sh>

This produces in the generated .html file​:

\FOO . serialize &&gt; save_FOO.sh\

Note how the & from the E\<> is escaped. This keeps it from displaying correctly inside browsers.

The following patch fixes it\, at least for me.

===

Inline Patch ```diff --- Html.pm.orig Sat Jan 22 11:29:20 2000 +++ Html.pm.new Sat Feb 12 21:40:49 2000 @@ -1202,7 +1202,7 @@ # process the text within the pod-escape so that any escapes # which must occur do. - process_text(\$params, 0) unless $tag eq 'L'; + process_text(\$params, 0) unless $tag eq 'L' || $tag eq 'C'; $s1 = $params; if (!$tag || $tag eq " ") { # <> : no tag @@ -1242,6 +1242,7 @@ sub html_escape { my $rest = $_[0]; $rest =~ s/&/&/g; + process_text(\$rest, 0); $rest =~ s//>/g; $rest =~ s/"/"/g; ```

===

Using this patch\, I get this now in the .html file​:

\FOO . serialize &> save_FOO.sh\

Perl Info ``` Site configuration information for perl 5.00503: Configured by randolph at Sat Jan 22 10:22:49 MST 2000. Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration: Platform: osname=linux, osvers=2.3.39, archname=i386-linux uname='linux samwise.tausq.org 2.3.39 #1 smp wed jan 12 05:59:50 mst 2000 i686 unknown ' hint=recommended, useposix=true, d_sigaction=define usethreads=undef useperlio=undef d_sfio=undef Compiler: cc='cc', optimize='-O2 ', gccversion=2.95.2 19991109 (Debian GNU/Linux) cppflags='-Dbool=char -DHAS_BOOL -D_REENTRANT -DDEBIAN -I/usr/local/include' ccflags ='-Dbool=char -DHAS_BOOL -D_REENTRANT -DDEBIAN -I/usr/local/include' stdchar='char', d_stdstdio=undef, usevfork=false intsize=4, longsize=4, ptrsize=4, doublesize=8 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 alignbytes=4, usemymalloc=n, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lnsl -lndbm -lgdbm -ldbm -ldb -ldl -lm -lc -lposix -lcrypt libc=, so=so, useshrplib=false, libperl=libperl.a Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-rdynamic' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' Locally applied patches: @INC for perl 5.00503: /usr/lib/perl5/5.005/i386-linux /usr/lib/perl5/5.005 /usr/local/lib/site_perl/i386-linux /usr/local/lib/site_perl /usr/lib/perl5 . Environment for perl 5.00503: HOME=/root LANG=C LANGUAGE (unset) LD_LIBRARY_PATH (unset) LOGDIR (unset) PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin PERL_BADLANG (unset) SHELL=/bin/bash ----BEGIN GEEK CODE BLOCK---- Version: 3.12 GCS d- s: a-- c+++ UL++++ P+ L++++ !E W+ M o+ K- W--- !O M- !V PS-- PE++ Y+ PGP++ t* 5++ X+ tv b+ D++ G e h*! !r z? -----END GEEK CODE BLOCK----- ----BEGIN PGP INFO---- Adam Heath Finger Print | KeyID 67 01 42 93 CA 37 FB 1E 63 C9 80 1D 08 CF 84 0A | DE656B05 PGP AD46 C888 F587 F8A3 A6DA 3261 8A2C 7DC2 8BD4 A489 | 8BD4A489 GPG -----END PGP INFO----- ```
p5pRT commented 23 years ago

From The RT System itself

This patch no longer applies\, Pod​::HTML IS VERY DIFFERENT.