memset(key, 0, sizeof(val));
memset(val, 0, sizeof(val));
- while( (NULL != fgets(line, sizeof(line), in)) || (state >= 2 && feof(in)) )
+ while( (NULL != fgets(line, sizeof(line), in)) || (state >= 3 && feof(in)) )
{
if( state == 0 && strstr(line, "msgid \"") == line )
{
case -1:
die("Syntax error in msgid");
case 0:
- continue;
- default:
state = 1;
+ break;
+ default:
+ state = 2;
}
}
- else if( state == 1 && strstr(line, "msgstr \"") == line )
+ else if( state == 1 || state == 2 )
{
- switch(extract_string(line, val, sizeof(val)))
+ if( strstr(line, "msgstr \"") == line || state == 2 )
{
- case -1:
- die("Syntax error in msgstr");
- case 0:
- state = 2;
- break;
- default:
- state = 3;
+ switch(extract_string(line, val, sizeof(val)))
+ {
+ case -1:
+ state = 4;
+ break;
+ case 0:
+ state = 2;
+ break;
+ default:
+ state = 3;
+ }
+ }
+ else
+ {
+ switch(extract_string(line, tmp, sizeof(tmp)))
+ {
+ case -1:
+ state = 4;
+ break;
+ default:
+ strcat(key, tmp);
+ }
}
}
- else if( state == 2 )
+ else if( state == 3 )
{
switch(extract_string(line, tmp, sizeof(tmp)))
{
case -1:
- state = 3;
+ state = 4;
break;
default:
strcat(val, tmp);
}
}
- else if( state == 3 )
+ else if( state == 4 )
{
if( strlen(key) > 0 && strlen(val) > 0 )
{