home *** CD-ROM | disk | FTP | other *** search
/ World of Graphics / WOGRAPH.BIN / 459.GETOPT.H < prev    next >
C/C++ Source or Header  |  1993-02-11  |  3KB  |  101 lines

  1. /****************************************************************************
  2. *
  3. *                   Copyright (C) 1993 Kendall Bennett.
  4. *                            All rights reserved.
  5. *
  6. * Filename:        $RCSfile: getopt.h $
  7. * Version:        $Revision: 1.6 $
  8. *
  9. * Language:        ANSI C
  10. * Environment:    any
  11. *
  12. * Description:    Header file for command line parsing module. This module
  13. *                contains code to parse the command line, extracting options
  14. *                and parameters in standard System V style.
  15. *
  16. * $Id: getopt.h 1.6 1991/12/31 19:41:06 kjb Exp $
  17. *
  18. * Revision History:
  19. * -----------------
  20. *
  21. * $Log: getopt.h $
  22. * Revision 1.6  1991/12/31  19:41:06  kjb
  23. * Modified include files directories.
  24. *
  25. * Revision 1.4  91/09/27  03:10:56  kjb
  26. * Added compatibility with C++.
  27. * Revision 1.3  91/09/24  19:49:51  kjb
  28. * New version to work with getargs() and print_desc().
  29. * Revision 1.2  91/09/03  18:24:25  ROOT_DOS
  30. * Added the inclusion of the debugging header file.
  31. * Revision 1.1  91/08/16  10:45:11  ROOT_DOS
  32. * Initial revision
  33. ****************************************************************************/
  34.  
  35. #ifndef    __GETOPT_H
  36. #define    __GETOPT_H
  37.  
  38. #ifndef __DEBUG_H
  39. #include "debug.h"
  40. #endif
  41.  
  42. /*---------------------------- Typedef's etc -----------------------------*/
  43.  
  44. #define    ALLDONE        -1
  45. #define    PARAMETER    -2
  46. #define    INVALID        -3
  47. #define    HELP        -4
  48.  
  49. #define    MAXARG        80
  50.  
  51. /* Option type sepecifiers */
  52.  
  53. #define    OPT_INTEGER        'd'
  54. #define    OPT_HEX            'h'
  55. #define    OPT_OCTAL        'o'
  56. #define    OPT_UNSIGNED    'u'
  57. #define    OPT_LINTEGER    'D'
  58. #define    OPT_LHEX        'H'
  59. #define    OPT_LOCTAL        'O'
  60. #define    OPT_LUNSIGNED    'U'
  61. #define    OPT_FLOAT        'f'
  62. #define    OPT_DOUBLE        'F'
  63. #define    OPT_LDOUBLE        'L'
  64. #define    OPT_STRING        's'
  65. #define    OPT_SWITCH        '!'
  66.  
  67. typedef struct {
  68.     uchar    opt;                /* The letter to describe the option    */
  69.     uchar    type;                /* Type descriptor for the option        */
  70.     void    *arg;                /* Place to store the argument            */
  71.     char    *desc;                /* Description for this option            */
  72.     } Option;
  73.  
  74. #define    NUM_OPT(a)    sizeof(a) / sizeof(Option)
  75.  
  76. /*--------------------------- Global variables ---------------------------*/
  77.  
  78. extern    int        nextargv;
  79. extern    char    *nextchar;
  80.  
  81. /*------------------------- Function Prototypes --------------------------*/
  82.  
  83. #ifdef __cplusplus
  84. extern "C" {
  85. #endif
  86.  
  87. int getopt(int argc,char **argv,char *format,char **argument);
  88. int getargs(int argc,char *argv[],int num_opt,Option optarr[],
  89.             int (*do_param)(char *param,int num));
  90. void print_desc(int num_opt,Option optarr[]);
  91.  
  92. #ifdef __cplusplus
  93. }
  94. #endif
  95.  
  96. #endif
  97.