Skip to content

Commit 15789fe

Browse files
committed
txt2c.pl: replace language list with glob
1 parent a6d3d13 commit 15789fe

File tree

1 file changed

+17
-11
lines changed

1 file changed

+17
-11
lines changed

ldmicro/txt2c.pl

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,29 @@
11
#!/usr/bin/perl
22

3+
use strict;
4+
35
print <<EOT;
46
// generated by txt2c.pl from $ARGV[0]
57
#include <stdlib.h>
68
EOT
79

8-
for $manual (<manual*txt>) {
10+
my %manuals = map { /manual-?([^.]*)/ or die; (lc($1) || 'en') => $_ } glob('manual*txt');
11+
my @languages_without_manual = grep { !exists $manuals{$_} } map { /-([^.]*)/ or die; lc $1 } glob('lang-*.txt');
912

10-
if($manual eq 'manual.txt') {
11-
$name = "HelpText";
13+
for my $lang (sort keys %manuals) {
14+
my ($name, $ifdef);
15+
my $manual = $manuals{$lang};
16+
17+
if ($lang eq 'en') {
1218
# Some languages don't have translated manuals yet, so use English
13-
$ifdef = "#if defined(LDLANG_EN) || defined(LDLANG_ES) || defined(LDLANG_IT) || " .
14-
"defined(LDLANG_PT)";
15-
} elsif($manual =~ /manual-(.)(.)\.txt/) {
16-
$p = uc($1) . lc($2);
17-
$ifdef = "#ifdef LDLANG_" . uc($1 . $2);
18-
$name = "HelpText$p";
19+
my @langs = sort('en', @languages_without_manual);
20+
my $cond = join ' || ', map { "defined(LDLANG_$_)" } map { uc } @langs;
21+
22+
$name = "HelpText";
23+
$ifdef = "#if $cond";
1924
} else {
20-
die;
25+
$name = "HelpText" . ucfirst $lang;
26+
$ifdef = "#ifdef LDLANG_" . uc $lang;
2127
}
2228

2329
print <<EOT;
@@ -29,7 +35,7 @@
2935
while(<IN>) {
3036
chomp;
3137
# avoid problem with Japanese encoding (cp932) which has 0x5c in a multibyte character
32-
s/\\/\\\\/g if $p ne 'Ja';
38+
s/\\/\\\\/g if $lang ne 'ja';
3339
s/"/\\"/g;
3440

3541
print qq{ "$_",\n};

0 commit comments

Comments
 (0)