summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2002-10-29 08:23:33 +0000
committerDaniel Stenberg <daniel@haxx.se>2002-10-29 08:23:33 +0000
commit53e8d526530de3e386a1168b3b8b4e72ebe5da53 (patch)
treebfe845653a2c12e298b2761fbf93abd7ff4398a3 /tools
parentbe8ae1c0e2bfb50fce5211b55cd0f13661002a5d (diff)
downloadrockbox-53e8d526530de3e386a1168b3b8b4e72ebe5da53.tar.gz
rockbox-53e8d526530de3e386a1168b3b8b4e72ebe5da53.tar.bz2
rockbox-53e8d526530de3e386a1168b3b8b4e72ebe5da53.zip
1. If the translated file used ID strings not present in the english one,
the first string was ruined (it was stored as a blank on number 0!) 2. This script now accepts -v to display verbose debug-friendly output. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@2769 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'tools')
-rwxr-xr-xtools/binlang23
1 files changed, 19 insertions, 4 deletions
diff --git a/tools/binlang b/tools/binlang
index 3d7fdff1db..158c755459 100755
--- a/tools/binlang
+++ b/tools/binlang
@@ -28,6 +28,11 @@ MOO
exit;
}
+if($ARGV[0] eq "-v") {
+ shift @ARGV;
+ $debug=1;
+}
+
my $english = $ARGV[0];
my $input = $ARGV[1];
my $output = $ARGV[2];
@@ -47,6 +52,7 @@ printf OFILE ("\x1a%c", $langversion); # magic lang file header
#
# We scan the english file to get the correct order of the id numbers
#
+my $idnum=0; # start with a true number
while(<ENG>) {
if($_ =~ / *\#/) {
# comment
@@ -92,11 +98,20 @@ while(<LANG>) {
if($value =~ s/^\"(.*)\" *$/$1/g) {
$idnum = $idnum{$set{'id'}};
- $idnum{$set{'id'}} = '_done_';
- printf OFILE ("%c%c%s\x00",
- ($idnum>>8), ($idnum&0xff),
- $value);
+ if($idnum eq "") {
+ warn "Found no ".$set{'id'}." in english file!\n";
+ }
+ else {
+ $idnum{$set{'id'}} = '_done_';
+
+ printf OFILE ("%c%c%s\x00",
+ ($idnum>>8), ($idnum&0xff),
+ $value);
+ if($debug) {
+ printf("%02x => %s\n", $idnum, $value);
+ }
+ }
}
else {
warn "String for ".$set{'id'}." misses quotes\n";