Patchwork [1/2] Support @documentencoding in scripts/texi2pod.pl

login
register
mail settings
Submitter Michael Tokarev
Date Feb. 2, 2012, 2:16 p.m.
Message ID <1328192202-23450-1-git-send-email-mjt@msgid.tls.msk.ru>
Download mbox | patch
Permalink /patch/139146/
State New
Headers show

Comments

Michael Tokarev - Feb. 2, 2012, 2:16 p.m.
Currently our texi2pod ignores @documentencoding even if it is set
properly in *.texi files.  This results in a mojibake in documents
generated from qemu.pod (which is generated from qemu-doc.texi by
texi2pod), because the rest of the tools assumes ASCII encoding.

This patch recognizes first @documentencoding in input and places
it at the beginning of output as =encoding directive.

Signed-Off-By: Michael Tokarev <mjt@tls.msk.ru>
---
 scripts/texi2pod.pl |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)
Michael Tokarev - March 11, 2012, 9:56 a.m.
Ping?  It's been more than a month since this patch has been posted.

Maybe it is a good candidate for -trivial queue?

Thanks,

/mjt

On 02.02.2012 18:16, Michael Tokarev wrote:
> Currently our texi2pod ignores @documentencoding even if it is set
> properly in *.texi files.  This results in a mojibake in documents
> generated from qemu.pod (which is generated from qemu-doc.texi by
> texi2pod), because the rest of the tools assumes ASCII encoding.
> 
> This patch recognizes first @documentencoding in input and places
> it at the beginning of output as =encoding directive.
> 
> Signed-Off-By: Michael Tokarev <mjt@tls.msk.ru>
> ---
>  scripts/texi2pod.pl |    9 +++++++++
>  1 files changed, 9 insertions(+), 0 deletions(-)
> 
> diff --git a/scripts/texi2pod.pl b/scripts/texi2pod.pl
> index 9ed056a..94097fb 100755
> --- a/scripts/texi2pod.pl
> +++ b/scripts/texi2pod.pl
> @@ -36,6 +36,7 @@ $fnno = 1;
>  $inf = "";
>  $ibase = "";
>  @ipath = ();
> +$encoding = undef;
>  
>  while ($_ = shift) {
>      if (/^-D(.*)$/) {
> @@ -97,6 +98,12 @@ while(<$inf>) {
>      /^\@setfilename\s+([^.]+)/ and $fn = $1, next;
>      /^\@settitle\s+([^.]+)/ and $tl = postprocess($1), next;
>  
> +    # Look for document encoding
> +    /^\@documentencoding\s+([^.]+)/ and do {
> +        $encoding = $1 unless defined $encoding;
> +        next;
> +    };
> +
>      # Identify a man title but keep only the one we are interested in.
>      /^\@c\s+man\s+title\s+([A-Za-z0-9-]+)\s+(.+)/ and do {
>  	if (exists $defs{$1}) {
> @@ -336,6 +343,8 @@ $inf = pop @instack;
>  
>  die "No filename or title\n" unless defined $fn && defined $tl;
>  
> +print "=encoding $encoding\n\n" if defined $encoding;
> +
>  $sects{NAME} = "$fn \- $tl\n";
>  $sects{FOOTNOTES} .= "=back\n" if exists $sects{FOOTNOTES};
>
Stefan Hajnoczi - March 12, 2012, 8:21 a.m.
On Sun, Mar 11, 2012 at 01:56:41PM +0400, Michael Tokarev wrote:
> Ping?  It's been more than a month since this patch has been posted.
> 
> Maybe it is a good candidate for -trivial queue?

One thing I don't understand is where you actually use
@documentencoding?  I don't see it in you 2 patches.

Stefan
Michael Tokarev - March 12, 2012, 10:14 a.m.
On 12.03.2012 12:21, Stefan Hajnoczi wrote:
> On Sun, Mar 11, 2012 at 01:56:41PM +0400, Michael Tokarev wrote:
>> Ping?  It's been more than a month since this patch has been posted.
>>
>> Maybe it is a good candidate for -trivial queue?
> 
> One thing I don't understand is where you actually use
> @documentencoding?  I don't see it in you 2 patches.

It is already used in the existing docs, that's the
whole point ;)

Thanks,

/mjt
Stefan Hajnoczi - March 12, 2012, 10:33 a.m.
On Mon, Mar 12, 2012 at 10:14 AM, Michael Tokarev <mjt@tls.msk.ru> wrote:
> On 12.03.2012 12:21, Stefan Hajnoczi wrote:
>> On Sun, Mar 11, 2012 at 01:56:41PM +0400, Michael Tokarev wrote:
>>> Ping?  It's been more than a month since this patch has been posted.
>>>
>>> Maybe it is a good candidate for -trivial queue?
>>
>> One thing I don't understand is where you actually use
>> @documentencoding?  I don't see it in you 2 patches.
>
> It is already used in the existing docs, that's the
> whole point ;)

Ah, it would have been good to explain that in the commit description :).

Stefan

Patch

diff --git a/scripts/texi2pod.pl b/scripts/texi2pod.pl
index 9ed056a..94097fb 100755
--- a/scripts/texi2pod.pl
+++ b/scripts/texi2pod.pl
@@ -36,6 +36,7 @@  $fnno = 1;
 $inf = "";
 $ibase = "";
 @ipath = ();
+$encoding = undef;
 
 while ($_ = shift) {
     if (/^-D(.*)$/) {
@@ -97,6 +98,12 @@  while(<$inf>) {
     /^\@setfilename\s+([^.]+)/ and $fn = $1, next;
     /^\@settitle\s+([^.]+)/ and $tl = postprocess($1), next;
 
+    # Look for document encoding
+    /^\@documentencoding\s+([^.]+)/ and do {
+        $encoding = $1 unless defined $encoding;
+        next;
+    };
+
     # Identify a man title but keep only the one we are interested in.
     /^\@c\s+man\s+title\s+([A-Za-z0-9-]+)\s+(.+)/ and do {
 	if (exists $defs{$1}) {
@@ -336,6 +343,8 @@  $inf = pop @instack;
 
 die "No filename or title\n" unless defined $fn && defined $tl;
 
+print "=encoding $encoding\n\n" if defined $encoding;
+
 $sects{NAME} = "$fn \- $tl\n";
 $sects{FOOTNOTES} .= "=back\n" if exists $sects{FOOTNOTES};