The main error/warning you need to consider here is the parse error on line
35. The first error (if it is a parse error) is usually the source of the
majority of the following errors, so lets fix this first. When defining
things, you MUST keep it all on one line. Now obviously it would be very
tedious to make all of that on one line, and make it even harder to fix any
errors associated with it, so the programmers made a way for you to insert
an \ at the end of each line, and the compiler would think that the next
line is a continuation of the current. Try setting it out like this:
char * mprog_type_to_name ( int type );
#define ALT_FLAGVALUE_SET ( _blargh, _table, _arg ) \
{ \
int blah = flag_value( _table, _arg ); \
_blargh = (blah == NO_FLAG) ? 0 : blah; \
}
#define ALT_FLAGVALUE_TOGGLE( _blargh, _table, _arg ) \
{ \
int blah = flag_value( _table, _arg ); \
_blargh ^= (blah == NO_FLAG) ? 0 : blah; \
}