home *** CD-ROM | disk | FTP | other *** search
/ Amiga Elysian Archive / AmigaElysianArchive.iso / prog / c / parse.lha / parse.autodoc < prev    next >
Text File  |  1992-08-11  |  3KB  |  119 lines

  1.  
  2.  
  3. TABLE OF CONTENTS
  4.  
  5. parse/parse
  6. parse/parse_cleanup
  7.  
  8.  
  9.  
  10.  
  11. parse/parse                                            parse/parse
  12.  
  13.     NAME
  14.         parse - parse command line to fetch options
  15.  
  16.     SYNOPSYS
  17.         number = parse( descrip, argc, argv, rapport )
  18.          char           char *   int  char**  struct rapport *
  19.  
  20.     FUNCTION
  21.         This function take the common C descriptors of the command line
  22.         and parse it until it runs out of options or find a syntax error
  23.         (according to OSF conventions relatives to options parsing).
  24.         Its results are stored in a convenient structure.
  25.         Does performs memory allocation, so parse_cleanup() may have to
  26.         be called after (see further on).
  27.  
  28.     INPUTS
  29.         descrip : characters stringsdescribing the options. It is a sequence
  30.                   of letter followed by either a space (0x20) if the option
  31.                   has no argument or by a semicolon if the option has an
  32.                   argument.
  33.         argc    : the argc directly got from main()
  34.         argv    : the argv directly got from main()
  35.         report  : pointer to an existent struct rapport (not initialized)
  36.  
  37.     RESULTS
  38.         -1 : there was either a lack of memory or a syntax error. In any
  39.              case, parse_cleanup() has not to be called.
  40.              The error code and the eventual guilty letter are indicated
  41.              in the struct rapport transmitted to.
  42.         any other : everything is OK and the number is that of options
  43.              presently recognized by the program. parse_cleanup() *must*
  44.              be called later.
  45.              The option and theirs contents are indicated in the structure
  46.              rapport. The number of remaining arguments and a vector of
  47.              them (pointing on the first one) are also in that structure.
  48.  
  49.     EXCEPTIONS
  50.  
  51.     EXAMPLE
  52.         void main (int argc, char *argv[])
  53.         {
  54.             struct rapport report;
  55.             char nopt;
  56.  
  57.             nopt = parse("h o;v r ", argc, argv, &report);
  58.             if (nopt < 0) {
  59.                 fprintf(stderr, ParseErrMess, report.lettre);
  60.                 fputc('\n', stderr);
  61.                 exit(10);
  62.             }
  63.             if (report.options[0] && report.narg == 0) {
  64.                 puts("fubar version 0.01a");
  65.                 exit(0);
  66.             }
  67.             /.../
  68.             parse_cleanup();
  69.             exit(0);
  70.         }
  71.  
  72.     SEE ALSO
  73.         parse_cleanup
  74.  
  75.     BUGS
  76.  
  77.     AUTHOR
  78.         Jean-Pierre Rivière
  79.         Last modified on 01 Aug 92
  80.  
  81.  
  82.  
  83. parse/parse_cleanup                                    parse/parse_cleanup
  84.  
  85.     NAME
  86.         parse_cleanup - release memory after a successfull call to parse
  87.  
  88.     SYNOPSYS
  89.         result = parse( void )
  90.          char
  91.  
  92.     FUNCTION
  93.         This function frees the resources allocated by parse.
  94.         Call it only if a previous call to parse was successful.
  95.  
  96.     INPUTS
  97.  
  98.     RESULTS
  99.         1 : the resources have been freed.
  100.         0 : error - you were not right to call the function (no harm was
  101.             done yet)
  102.  
  103.     EXCEPTIONS
  104.  
  105.     EXAMPLE
  106.  
  107.     SEE ALSO
  108.         parse_cleanup
  109.  
  110.     BUGS
  111.  
  112.     AUTHOR
  113.         Jean-Pierre Rivière
  114.         Last modified on 01 Aug 92
  115.  
  116.  
  117.  
  118.  
  119.