home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / misc / src / popt / popt.h < prev   
C/C++ Source or Header  |  1997-09-17  |  2KB  |  63 lines

  1. #ifndef H_POPT
  2. #define H_POPT
  3.  
  4. #define POPT_OPTION_DEPTH    10
  5.  
  6. #define POPT_ARG_NONE        0
  7. #define POPT_ARG_STRING        1
  8. #define POPT_ARG_INT        2
  9. #define POPT_ARG_LONG        3
  10.  
  11. #define POPT_ERROR_NOARG    -10
  12. #define POPT_ERROR_BADOPT    -11
  13. #define POPT_ERROR_OPTSTOODEEP    -13
  14. #define POPT_ERROR_BADQUOTE    -15    /* only from poptParseArgString() */
  15. #define POPT_ERROR_ERRNO    -16    /* only from poptParseArgString() */
  16.  
  17. #define POPT_BADOPTION_NOALIAS  (1 << 0)  /* don't go into an alias */
  18.  
  19. struct poptOption {
  20.     const char * longName;    /* may be NULL */
  21.     char shortName;        /* may be '\0' */
  22.     int argInfo;
  23.     void * arg;            /* depends on argInfo */
  24.     int val;            /* 0 means don't return, just update flag */
  25. };
  26.  
  27. struct poptAlias {
  28.     char * longName;        /* may be NULL */
  29.     char shortName;        /* may be '\0' */
  30.     int argc;
  31.     char ** argv;        /* must be free()able */
  32. };
  33.  
  34. typedef struct poptContext_s * poptContext;
  35.  
  36. poptContext poptGetContext(char * name, int argc, char ** argv, 
  37.                struct poptOption * options, int flags);
  38. void poptResetContext(poptContext con);
  39.  
  40. /* returns 'val' element, -1 on last item, POPT_ERROR_* on error */
  41. int poptGetNextOpt(poptContext con);
  42. /* returns NULL if no argument is available */
  43. char * poptGetOptArg(poptContext con);
  44. /* returns NULL if no more options are available */
  45. char * poptGetArg(poptContext con);
  46. char * poptPeekArg(poptContext con);
  47. char ** poptGetArgs(poptContext con);
  48. /* returns the option which caused the most recent error */
  49. char * poptBadOption(poptContext con, int flags);
  50. void poptFreeContext(poptContext con);
  51. int poptStuffArgs(poptContext con, char ** argv);
  52. int poptAddAlias(poptContext con, struct poptAlias alias, int flags);
  53. int poptReadConfigFile(poptContext con, char * fn);
  54. /* like above, but reads /etc/popt and $HOME/.popt along with environment 
  55.    vars */
  56. int poptReadDefaultConfig(poptContext con, int useEnv);
  57. /* argv should be freed -- this allows ', ", and \ quoting, but ' is treated
  58.    the same as " and both may include \ quotes */
  59. int poptParseArgvString(char * s, int * argcPtr, char *** argvPtr);
  60. const char * poptStrerror(const int error);
  61.  
  62. #endif
  63.