--- a/src/tools/actparse.c Wed Feb 04 00:58:54 2009 +0000 +++ b/src/tools/actparse.c Wed Dec 08 18:33:23 2010 +1000 @@ -67,7 +67,8 @@ for( i=0; irule_count; i++ ) { if( strcasecmp(rules->rules[i]->format, operation) == 0 ) { if( actions[i].text != NULL ) { - fprintf( stderr, "Duplicate actions for operation '%s'\n", operation ); + fprintf( stderr, "gendec:%d: Duplicate actions for operation '%s' (previous action on line %d)\n", line, operation, + actions[i].lineno ); return -1; } actions[i].filename = file; @@ -76,7 +77,7 @@ return 0; } } - fprintf(stderr, "No operation found matching '%s'\n", operation ); + fprintf(stderr, "gendec:%d: No operation found matching '%s'\n", line, operation ); return -1; } @@ -118,10 +119,6 @@ actiontoken_t action_file_next( actionfile_t af ) { - if( af->token.symbol == ACTIONS ) { - /* Destroy previous actions */ - memset( af->token.actions, 0, sizeof(af->token.actions) ); - } af->token.lineno = af->yyline; if( af->yyposn == af->length ) { af->token.symbol = END; @@ -129,6 +126,7 @@ (af->token.symbol == NONE && af->text[af->yyposn] == '%' && af->text[af->yyposn+1] == '%') ) { /* Begin action block */ af->token.symbol = ACTIONS; + memset( af->token.actions, 0, sizeof(af->token.actions) ); char *operation = &af->text[af->yyposn]; while( af->yyposn < af->length ) {