2000-11-24 Not Zed <NotZed@HelixCode.com> * Makefile.am (SUBDIRS): Add tests. * camel-mime-filter-basic.c (filter): Well, I'll add the extra bytes here too, lathough not strictly needed, might save a re-malloc when we get to complete(). * camel-mime-filter-charset.c (filter): Make sure we have room if we only convert very short data. (complete): and here too. * tests/Makefile.am: Initial test harness & tests. Requires gcc for this. * camel-internet-address.c (d): Turn off debug. * camel-charset-map.c (camel_charset_step): Oops, & masks for set intersection, not | them. Dunno how this got even close to working. 2000-11-23 Not Zed <NotZed@HelixCode.com> * camel-mime-filter-basic.c (filter): For base64 encoding, the output size for 0, 1, or 2 bytes of input can exceed input*2, so make sure we account for that as well. (complete): And here. (complete): Similarly for qp encoding, if we have a trailing space, we need some extra bytes (not needed for 'filter()', as any such bytes are stored in state/save). * camel-mime-utils.c (quoted_decode_step): Removed fixme not required. (quoted_encode_close): Dont append a trailing afterall. Otherwise a pass through the encode/decode will grow the message each time. svn path=/trunk/; revision=6656
66 lines
1.1 KiB
Perl
Executable File
66 lines
1.1 KiB
Perl
Executable File
#!/usr/bin/perl
|
|
|
|
# Generate 'documents' in different encodings, from po files
|
|
|
|
if ($#ARGV < 0) {
|
|
print "Usage: gendoc.pl pofile pofile ...\n";
|
|
exit 1;
|
|
}
|
|
|
|
$fmt = "| fmt -u ";
|
|
|
|
sub read_msgstr()
|
|
{
|
|
my $str = "";
|
|
while (<IN>) {
|
|
if (m/^msgstr \"(.*)\"/) {
|
|
$str = $1;
|
|
if ($str eq "") {
|
|
while (<IN>) {
|
|
if (m/\"(.*)\"/) {
|
|
$str .= $1;
|
|
} else {
|
|
last;
|
|
}
|
|
}
|
|
}
|
|
return $str;
|
|
}
|
|
}
|
|
return "";
|
|
}
|
|
|
|
$unknown = "x-unknown-1";
|
|
|
|
foreach $name (@ARGV) {
|
|
if ($name =~ m@([^/]*).po$@) {
|
|
$poname = $1;
|
|
|
|
open IN,"<$name";
|
|
|
|
$header = read_msgstr;
|
|
if ($header =~ /Content-Type:.*charset=([-a-zA-Z0-9]*)/i) {
|
|
$charset = $1;
|
|
} else {
|
|
$charset = $unknown++;
|
|
}
|
|
|
|
print "Building $poname.$charset.txt from $name\n";
|
|
|
|
open OUT,"$fmt > $poname.$charset.txt";
|
|
while (!eof(IN)) {
|
|
$msg = read_msgstr;
|
|
# de-escape
|
|
$msg =~ s/\\n/\n/gso;
|
|
$msg =~ s/\\t/\t/gso;
|
|
$msg =~ s/\\(.)/$1/gso;
|
|
print OUT $msg." ";
|
|
}
|
|
close OUT;
|
|
close IN;
|
|
} else {
|
|
printf("ignoring $name, probably not intended\n");
|
|
}
|
|
}
|
|
|