mirror of
				https://github.com/cookiengineer/audacity
				synced 2025-11-04 08:04:06 +01:00 
			
		
		
		
	... Leaving absolutely no doubt about the portability. New Perl script in locale emits the required C++ source when LanguageNames.txt is updated.
		
			
				
	
	
		
			24 lines
		
	
	
		
			632 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			632 B
		
	
	
	
		
			Perl
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/perl
 | 
						|
# Take LangugeNames.txt and write C++ string literals to standard out,
 | 
						|
# which describe the UTF-8 byte sequence using only the basic coding
 | 
						|
# character set.
 | 
						|
# Copy and paste that over the table of strings in src/Languages.cpp.
 | 
						|
 | 
						|
open LANGUAGES, "LanguageNames.txt" or die "Can't open LanguageNames.txt: $!\n";
 | 
						|
while( <LANGUAGES> ) {
 | 
						|
    chop;
 | 
						|
    print "\"";
 | 
						|
    @codes = unpack 'C*';
 | 
						|
    @newCodes = ();
 | 
						|
    for $code (@codes) {
 | 
						|
	if ($code <= ord 'z') {
 | 
						|
	    push @newCodes, $code;
 | 
						|
	}
 | 
						|
	else {
 | 
						|
	    push @newCodes, unpack('C*', sprintf("\\%03o", $code));
 | 
						|
	}
 | 
						|
    }
 | 
						|
    print pack 'C*', @newCodes;
 | 
						|
    print "\",\n";
 | 
						|
}
 |