The problem was that SETLABELFONT extracted fields from the input list as individual
arguments, which sets the new value back into the list. The fix is to extract
all fields from the list and, if any of them are wrong, throw a "doesn't like" error
for the *entire list*, not individual fields.
The parsing/validation of each argument is handled by a new helper class CListArgumentParser.
This separates the logic for validating each field from the declaration of how each
input should be validated.
This change was made on GNU/Linux, where neither LABELFONT or SETLABELFONT is implemented.
It might need further adjustment.