~ubuntu-branches/ubuntu/oneiric/irssi/oneiric

« back to all changes in this revision

Viewing changes to src/lib-popt/popt.h

  • Committer: Bazaar Package Importer
  • Author(s): Andres Rodriguez
  • Date: 2009-05-05 15:50:50 UTC
  • mfrom: (1.1.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20090505155050-aoqlnpes7che9rtd
Tags: 0.8.13-1ubuntu1
* Merge from debian unstable (LP: #372411), remaining changes:
  - debian/patches: 03firsttimer_text
    + Adapt it so it tells you about connecting to irc.ubuntu.com and
      joining #ubuntu instead of irc.debian.org and #debian.
  - debian/patches: 90irc-ubuntu-com
* Fixed debian/patches/90irc-ubuntu-com for new irssi.conf.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* (C) 1998 Red Hat Software, Inc. -- Licensing details are in the COPYING
2
 
   file accompanying popt source distributions, available from 
3
 
   ftp://ftp.redhat.com/pub/code/popt */
4
 
 
5
 
#ifndef H_POPT
6
 
#define H_POPT
7
 
 
8
 
#ifdef __cplusplus
9
 
extern "C" {
10
 
#endif
11
 
 
12
 
#include <stdio.h>                      /* for FILE * */
13
 
 
14
 
#define POPT_OPTION_DEPTH       10
15
 
 
16
 
#define POPT_ARG_NONE           0
17
 
#define POPT_ARG_STRING         1
18
 
#define POPT_ARG_INT            2
19
 
#define POPT_ARG_LONG           3
20
 
#define POPT_ARG_INCLUDE_TABLE  4       /* arg points to table */
21
 
#define POPT_ARG_CALLBACK       5       /* table-wide callback... must be
22
 
                                           set first in table; arg points 
23
 
                                           to callback, descrip points to 
24
 
                                           callback data to pass */
25
 
#define POPT_ARG_INTL_DOMAIN    6       /* set the translation domain
26
 
                                           for this table and any
27
 
                                           included tables; arg points
28
 
                                           to the domain string */
29
 
#define POPT_ARG_VAL            7       /* arg should take value val */
30
 
#define POPT_ARG_MASK           0x0000FFFF
31
 
#define POPT_ARGFLAG_ONEDASH    0x80000000  /* allow -longoption */
32
 
#define POPT_ARGFLAG_DOC_HIDDEN 0x40000000  /* don't show in help/usage */
33
 
#define POPT_CBFLAG_PRE         0x80000000  /* call the callback before parse */
34
 
#define POPT_CBFLAG_POST        0x40000000  /* call the callback after parse */
35
 
#define POPT_CBFLAG_INC_DATA    0x20000000  /* use data from the include line,
36
 
                                               not the subtable */
37
 
 
38
 
#define POPT_ERROR_NOARG        -10
39
 
#define POPT_ERROR_BADOPT       -11
40
 
#define POPT_ERROR_OPTSTOODEEP  -13
41
 
#define POPT_ERROR_BADQUOTE     -15     /* only from poptParseArgString() */
42
 
#define POPT_ERROR_ERRNO        -16     /* only from poptParseArgString() */
43
 
#define POPT_ERROR_BADNUMBER    -17
44
 
#define POPT_ERROR_OVERFLOW     -18
45
 
 
46
 
/* poptBadOption() flags */
47
 
#define POPT_BADOPTION_NOALIAS  (1 << 0)  /* don't go into an alias */
48
 
 
49
 
/* poptGetContext() flags */
50
 
#define POPT_CONTEXT_NO_EXEC    (1 << 0)  /* ignore exec expansions */
51
 
#define POPT_CONTEXT_KEEP_FIRST (1 << 1)  /* pay attention to argv[0] */
52
 
#define POPT_CONTEXT_POSIXMEHARDER (1 << 2) /* options can't follow args */
53
 
 
54
 
struct poptOption {
55
 
    const char * longName;      /* may be NULL */
56
 
    char shortName;             /* may be '\0' */
57
 
    int argInfo;
58
 
    void * arg;                 /* depends on argInfo */
59
 
    int val;                    /* 0 means don't return, just update flag */
60
 
    char * descrip;             /* description for autohelp -- may be NULL */
61
 
    char * argDescrip;          /* argument description for autohelp */
62
 
};
63
 
 
64
 
struct poptAlias {
65
 
    char * longName;            /* may be NULL */
66
 
    char shortName;             /* may be '\0' */
67
 
    int argc;
68
 
    char ** argv;               /* must be free()able */
69
 
};
70
 
 
71
 
extern struct poptOption poptHelpOptions[];
72
 
#define POPT_AUTOHELP { NULL, '\0', POPT_ARG_INCLUDE_TABLE, poptHelpOptions, \
73
 
                        0, "Help options", NULL },
74
 
 
75
 
typedef struct poptContext_s * poptContext;
76
 
#ifndef __cplusplus
77
 
typedef struct poptOption * poptOption;
78
 
#endif
79
 
 
80
 
enum poptCallbackReason { POPT_CALLBACK_REASON_PRE, 
81
 
                          POPT_CALLBACK_REASON_POST,
82
 
                          POPT_CALLBACK_REASON_OPTION };
83
 
typedef void (*poptCallbackType)(poptContext con, 
84
 
                                 enum poptCallbackReason reason,
85
 
                                 const struct poptOption * opt,
86
 
                                 const char * arg, void * data);
87
 
 
88
 
poptContext poptGetContext(char * name, int argc, char ** argv, 
89
 
                           const struct poptOption * options, int flags);
90
 
void poptResetContext(poptContext con);
91
 
 
92
 
/* returns 'val' element, -1 on last item, POPT_ERROR_* on error */
93
 
int poptGetNextOpt(poptContext con);
94
 
/* returns NULL if no argument is available */
95
 
char * poptGetOptArg(poptContext con);
96
 
/* returns NULL if no more options are available */
97
 
char * poptGetArg(poptContext con);
98
 
char * poptPeekArg(poptContext con);
99
 
char ** poptGetArgs(poptContext con);
100
 
/* returns the option which caused the most recent error */
101
 
char * poptBadOption(poptContext con, int flags);
102
 
void poptFreeContext(poptContext con);
103
 
int poptStuffArgs(poptContext con, char ** argv);
104
 
int poptAddAlias(poptContext con, struct poptAlias alias, int flags);
105
 
int poptReadConfigFile(poptContext con, char * fn);
106
 
/* like above, but reads /etc/popt and $HOME/.popt along with environment 
107
 
   vars */
108
 
int poptReadDefaultConfig(poptContext con, int useEnv);
109
 
/* argv should be freed -- this allows ', ", and \ quoting, but ' is treated
110
 
   the same as " and both may include \ quotes */
111
 
int poptParseArgvString(const char * s, int * argcPtr, char *** argvPtr);
112
 
const char * poptStrerror(const int error);
113
 
void poptSetExecPath(poptContext con, const char * path, int allowAbsolute);
114
 
void poptPrintHelp(poptContext con, FILE * f, int flags);
115
 
void poptPrintUsage(poptContext con, FILE * f, int flags);
116
 
void poptSetOtherOptionHelp(poptContext con, const char * text);
117
 
const char * poptGetInvocationName(poptContext con);
118
 
 
119
 
#ifdef  __cplusplus
120
 
}
121
 
#endif
122
 
 
123
 
#endif