[Libguestfs] [PATCH] Use Unicode single quotes ‘’ in place of short single quoted strings throughout.

Pino Toscano ptoscano at redhat.com
Thu Apr 6 09:37:08 UTC 2017


On Tuesday, 4 April 2017 19:49:30 CEST Richard W.M. Jones wrote:
> Only in end-user messages and documentation.  This change was done
> mostly mechanically using the Perl script attached below.
> 
> I also changed don't -> don’t etc and made some other simple fixes.
> 
> See also: https://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
> 
> ----------
>  #!/usr/bin/perl -w
> 
> use strict;
> use Locale::PO;
> 
> my $re = qr{'([-\w%.,=?*/]+)'};
> 
> my %files = ();
> 
> foreach my $filename ("po/libguestfs.pot", "po-docs/libguestfs-docs.pot") {
>     my $poref = Locale::PO->load_file_asarray($filename);
> 
>     foreach my $po (@$poref) {
>         if ($po->msgid =~ $re) {
>             my @refs = split /\s+/, $po->reference;
>             foreach my $ref (@refs) {
>                 my ($file, $lineno) = split /:/, $ref, 2;
>                 $file =~ s{^\.\./}{};
>                 if (exists $files{$file}) {
>                     push @{$files{$file}}, $lineno;
>                 } else {
>                     $files{$file} = [$lineno];
>                 }
>             }
>         }
>     }
> }
> 
> foreach my $file (sort keys %files) {
>     unless (-w $file) {
>         warn "warning: $file is probably generated\n"; # have to edit generator
>         next;
>     }
>     my @lines = sort { $a <=> $b } @{$files{$file}};
> 
>     #print "editing $file at lines ", join (", ", @lines), " ...\n";
>     open FILE, "<$file" or die "$file: $!";
>     my @all = ();
>     push @all, $_ while <FILE>;
>     close FILE;
> 
>     my $ext = $file;
>     $ext =~ s/^.*\.//;
> 
>     foreach (@lines) {
>         # Don't mess with verbatim sections in POD files.
>         next if $ext eq "pod" && $all[$_-1] =~ m/^ /;
> 
>         unless ($all[$_-1] =~ $re) {
>             # this can happen for multi-line strings, have to edit it
>             # by hand
>             warn "warning: $file:$_ does not contain expected content\n";
>             next;
>         }
>         $all[$_-1] =~ s/$re/‘$1’/g;
>     }
> 
>     rename "$file", "$file.bak";
>     open FILE, ">$file" or die "$file: $!";
>     print FILE $_ for @all;
>     close FILE;
>     my $mode = (stat ("$file.bak"))[2];
>     chmod ($mode & 0777, "$file");
> }
> ---

It'd look ok at a quick glance.

What about putting the script above somewhere in the sources, so it can
be run again easily in the future?

Thanks,
-- 
Pino Toscano
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: This is a digitally signed message part.
URL: <http://listman.redhat.com/archives/libguestfs/attachments/20170406/1c2a4715/attachment.sig>


More information about the Libguestfs mailing list