If given caps == 0, report back all supported caps vs error.

Also remove random whitespace, add missing else block, remove extra assignment to fi->caps.
This could just be a function, rather than a macro, and let the compiler decide whether to inline it or not.  And the name could be a little better... fi_rm_end_comma?  fi_del_comma?