+/** \brief parser command-line options
+ \arg desc command argument description (allowed options)
+ \arg argv main argv
+ \arg argc main argc
+ \arg arg returned argument (for options that take an argument).
+ \retval 0 non-option arg (e.g. filename).
+ \retval -1 unknown option (error). arg is name of unknown option
+ \retval -2 no more options (end of options)
+ \retval c option char
+
+ This function is called repeatedly for each option. Both single
+ char options (-x) as well as GNU long options are supported (--long).
+ The description is a sequence specs where each spec is if the form:
+ [a-zA-Z0-9]({[a-zA-Z0-9]*})+:? . For example: h{help}f{filename}{fname}:
+
+ The first char is what is returned when met (single char option char).
+ The second is zero ore more long option values (synonum for single char)
+ If colon is appended, it means the option takes an argument.
+*/