IntlData *LoadInternationalData( const char *file_prefix ) { IntlData *data; int fh; res_language_enumeration language; unsigned len; char *drive; char *dir; char cmd_name[_MAX_PATH]; char split_buff[_MAX_PATH2]; char base[16]; language = _WResLanguage(); if( language == RLE_ENGLISH ) { return( NULL ); } if( imageName( cmd_name ) == NULL ) { return( NULL ); } _splitpath2( cmd_name, split_buff, &drive, &dir, NULL, NULL ); len = strlen( file_prefix ); if( len > 6 ) { len = 6; } memcpy( base, file_prefix, len ); base[len++] = '0'; base[len++] = '0' + language; base[len] = '\0'; _makepath( cmd_name, drive, dir, base, "." LOCALE_DATA_EXT ); fh = sopen3( cmd_name, O_RDONLY | O_BINARY, SH_DENYWR ); if( fh == -1 ) { return( NULL ); } data = getData( fh ); if( data != NULL ) { if( data->usage_text == NULL || data->errors_text == NULL ) { FreeInternationalData( data ); data = NULL; } } close( fh ); return( data ); }
void FiniMsg( void ) { if( internationalData != NULL ){ FreeInternationalData( internationalData ); } }