parse
Description:
Parses the command line arguments, recognizing options which have been added to this.
A side-effect of calling this function is that set_prgname will be called.
If the parsing is successful, any parsed arguments are removed from the array and argv.length and argv are updated 
      accordingly. A '--' option is stripped from argv unless there are unparsed options before and after it, or some of the options 
      after it start with '-'. In case of an error, argv.length and argv are left unmodified.
If automatic `--help` support is enabled (see set_help_enabled)
      , and the argv array contains one of the recognized help options, this function will produce help output to stdout and call `exit (
      0)`.
Note that function depends on the current locale for automatic character set conversion of string and filename arguments.
Parameters:
| this | |
| argv | 
           a pointer to the array of command line arguments  | 
      
| argc | 
           a pointer to the number of command line arguments  | 
      
Returns:
| 
           true if the parsing was successful, false if an error occurred  |