develooper Front page | perl.perl5.porters | Postings from March 2007

[perl #41686] [PATCH] v5.8.8 pod2html -- option --quota-style us for "q" => ``q'' conversion

Thread Next
From:
Jari Aalto
Date:
March 3, 2007 15:09
Subject:
[perl #41686] [PATCH] v5.8.8 pod2html -- option --quota-style us for "q" => ``q'' conversion
Message ID:
rt-3.6.HEAD-2051-1172947782-1608.41686-75-0@perl.org
# New Ticket Created by  Jari Aalto 
# Please include the string:  [perl #41686]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=41686 >



This is a bug report for perl from jaalto@cante.cante.net,
generated with the help of perlbug 1.35 running under perl v5.8.8.


-----------------------------------------------------------------
[Please enter your report here]

The quotation style

	"quotation"

is I believe read and understood all over the world. However,
the pod2html converts these into:

	``quotation''

which I believe is US specific quotation style (not used in Europe).

SOLUTION

The default quotation style should stay as it is written in the POD,
so following patch adds a separate command line option:

	--quote-style-us

to instruct to specifucally use following conversion for HTML output:

	"quotation"  => ``quotation''

Jari

Please note, that this patch is based on previous work that I have
submitted (see bug report titled: "[perl #41685] [PATCH] v5.8.8
pod2html -- Add new option --prelink to treat <pre>..</pre> URLs")

+
 =item recurse

     --recurse
@@ -228,7 +234,7 @@
 my($Dircache, $Itemcache);
 my @Begin_Stack;
 my @Libpods;
-my($Htmlroot, $Htmldir, $Htmlfile, $Htmlfileurl, $Prelink);
+my($Htmlroot, $Htmldir, $Htmlfile, $Htmlfileurl, $Prelink, $QuoteStyleUS);
 my($Podfile, @Podpath, $Podroot);
 my $Css;

@@ -295,6 +301,7 @@
     $Verbose = 0;              # not verbose by default
     $Doindex = 1;              # non-zero if we should generate an index
     $Prelink = 0;              # Treat <pre>..</pre> for URLsx
+    $QuoteStyleUS = 0;         # Treat "quote" as ``quote'' in HTML
     $Backlink = '';            # text for "back to top" links
     $Listlevel = 0;            # current list depth
     @Listend = ();             # the text to use to end the list.
@@ -647,6 +654,8 @@
   --podroot      - filesystem base directory from which all relative paths
                    in podpath stem (default is .).
   --[no]quiet    - suppress some benign warning messages (default is off).
+  --quote-style-us
+                 - convert "Quotation" into ``Quotation'' in HTML
   --[no]recurse  - recurse on those subdirectories listed in podpath
                    (default behaviour).
   --title        - title that will appear in resulting html file.
@@ -661,7 +670,7 @@
     my ($opt_backlink,$opt_cachedir,$opt_css,$opt_flush,$opt_header,$opt_help,
        $opt_htmldir,$opt_htmlroot,$opt_index,$opt_infile,$opt_libpods,
        $opt_netscape,$opt_outfile,$opt_prelink,
-        $opt_podpath,$opt_podroot,$opt_quiet,
+        $opt_podpath,$opt_podroot,$opt_quote_style_us,$opt_quiet,
        $opt_recurse,$opt_title,$opt_verbose,$opt_hiddendirs);

     unshift @ARGV, split ' ', $Config{pod2html} if $Config{pod2html};
@@ -683,6 +692,7 @@
                            'prelink'    => \$opt_prelink,
                            'podpath=s'  => \$opt_podpath,
                            'podroot=s'  => \$opt_podroot,
+                           'quote-style-us' => \$opt_quote_style_us,
                            'quiet!'     => \$opt_quiet,
                            'recurse!'   => \$opt_recurse,
                            'title=s'    => \$opt_title,
@@ -708,6 +718,7 @@
     $Htmlfile = $opt_outfile  if defined $opt_outfile;
     $Prelink  = $opt_prelink  if defined $opt_prelink;
     $Podroot  = $opt_podroot  if defined $opt_podroot;
+    $QuoteStyleUS = $opt_quote_style_us   if defined $opt_quote_style_us;
     $Quiet    = $opt_quiet    if defined $opt_quiet;
     $Recurse  = $opt_recurse  if defined $opt_recurse;
     $Title    = $opt_title    if defined $opt_title;
@@ -1439,8 +1450,12 @@
     if( $$quote && $text =~ s/"/''/s ){
         $$quote = 0;
     }
-    while ($text =~ s/"([^"]*)"/``$1''/sg) {};
-    $$quote = 1 if $text =~ s/"/``/s;
+
+    if ( $QuoteStyleUS )
+    {
+        while ($text =~ s/"([^"]*)"/``$1''/sg) {};
+        $$quote = 1 if $text =~ s/"/``/s;
+    }

     # keep track of leading and trailing white-space
     $lead  = ($text =~ s/\A(\s+)//s ? $1 : "");



[Please do not change anything below this line]
-----------------------------------------------------------------
---
Flags:
    category=core
    severity=medium
---
Site configuration information for perl v5.8.8:

Configured by Debian Project at Wed Dec  6 23:17:41 UTC 2006.

Summary of my perl5 (revision 5 version 8 subversion 8) configuration:
  Platform:
    osname=linux, osvers=2.6.18.3, archname=i486-linux-gnu-thread-multi
    uname='linux saens 2.6.18.3 #1 smp sat nov 25 13:39:52 est 2006 i686 gnulinux '
    config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.8 -Dsitearch=/usr/local/lib/perl/5.8.8 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.8 -Dd_dosuid -des'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
  Compiler:
    cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O2',
    cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include'
    ccversion='', gccversion='4.1.2 20061115 (prerelease) (Debian 4.1.1-20)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=4, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/usr/local/lib'
    libpth=/usr/local/lib /lib /usr/lib
    libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt
    perllibs=-ldl -lm -lpthread -lc -lcrypt
    libc=/lib/libc-2.3.6.so, so=so, useshrplib=true, libperl=libperl.so.5.8.8
    gnulibc_version='2.3.6'
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E'
    cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib'

Locally applied patches:
    

---
@INC for perl v5.8.8:
    /home/jaalto/var/lib/code/perl
    /etc/perl
    /usr/local/lib/perl/5.8.8
    /usr/local/share/perl/5.8.8
    /usr/lib/perl5
    /usr/share/perl5
    /usr/lib/perl/5.8
    /usr/share/perl/5.8
    /usr/local/lib/site_perl
    /usr/local/lib/perl/5.8.7
    /usr/local/share/perl/5.8.7
    /usr/local/lib/perl/5.8.4
    /usr/local/share/perl/5.8.4
    .

---
Environment for perl v5.8.8:
    HOME=/home/jaalto
    LANG (unset)
    LANGUAGE (unset)
    LC_ALL=en_US
    LD_LIBRARY_PATH (unset)
    LOGDIR (unset)
    PATH=/usr/local/bin:/home/jaalto/var/link/bin:/sbin:/bin:/usr/bin:/usr/sbin:/usr/share/bin:/usr/bin/X11:/usr/games
    PERL5LIB=/home/jaalto/var/lib/code/perl
    PERL_BADLANG (unset)
    SHELL=/bin/bash


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About