#/usr/bin/perl
use File::Find;

## syntax and arguments
die "run this in the rockbox root dir\n" unless -e "./apps/lang/english.lang";

## read english.lang
open ENGL, "./apps/lang/english.lang" or die "Error: can not open english.lang\n$!";
my %strings = map { $_ => 0 } grep { /^id:\s+(LANG_\w+)\s*$/; $_ = $1} <ENGL>;
close ENGL;

## find strings in code
find(\&wanted, ".");

## output all strings
#print "$_ => $strings{$_}\n" foreach (sort keys %strings);
## output only string with zero occurance
$strings{$_} == 0 && print "$_\n" foreach (sort keys %strings);

## sub land
sub wanted
  {
    /\.c$/ or return;
    open SOURCE, $_ or die "Error: can not open $_ for reading\n$!";
    while (<SOURCE>)
      {
	$strings{$_}++ foreach /(LANG_\w+)\W/g;
      }
    close SOURCE;
  }

