summaryrefslogtreecommitdiff
path: root/mh/mh_getopt.h
blob: 5100ff2b3e0fc56b40d8f583e532ede969ac2f6b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
/* GNU Mailutils -- a suite of utilities for electronic mail
   Copyright (C) 2002, 2005  Free Software Foundation, Inc.

   GNU Mailutils is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2, or (at your option)
   any later version.

   GNU Mailutils is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with GNU Mailutils; if not, write to the Free Software
   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
   MA 02110-1301 USA */

#include <mailutils/argp.h>
#include <mailutils/nls.h>

#define MH_OPT_BOOL 1
#define MH_OPT_ARG  2

struct mh_option
{
  char *opt;
  int match_len;
  int flags;
  char *arg;
};

struct mh_argp_data
{
  struct mh_option *mh_option;
  int (*handler)();
  int errind;
  void *closure;
  char *doc;
};

#define ARG_ADD		        257
#define ARG_AFTER		258
#define ARG_ALIAS		259
#define ARG_ALL		        260
#define ARG_AND		        261
#define ARG_ANNOTATE		262
#define ARG_AUDIT		263
#define ARG_AUTO		264
#define ARG_BEFORE		265
#define ARG_BELL		266
#define ARG_BUILD		267
#define ARG_CC		        268
#define ARG_CFLAGS		269
#define ARG_CHANGECUR		270
#define ARG_CHECK		271
#define ARG_CLEAR		272
#define ARG_COMPAT		273
#define ARG_COMPONENT		274
#define ARG_COMPOSE		275
#define ARG_CREATE		276
#define ARG_DATE		277
#define ARG_DATEFIELD		278
#define ARG_DEBUG		279
#define ARG_DELETE		280
#define ARG_DRAFT		281
#define ARG_DRAFTFOLDER		282
#define ARG_DRAFTMESSAGE	283
#define ARG_DRY_RUN		284
#define ARG_DUMP		285
#define ARG_EDITOR		286
#define ARG_FAST		287
#define ARG_FCC		        288
#define ARG_FILE		289
#define ARG_FILTER		290
#define ARG_FOLDER		291
#define ARG_FORM		292
#define ARG_FORMAT		293
#define ARG_FORWARD		294
#define ARG_FROM		295
#define ARG_GROUP               296 
#define ARG_HEADER		297
#define ARG_INPLACE		298
#define ARG_INTERACTIVE		299
#define ARG_LBRACE		300
#define ARG_LENGTH		301
#define ARG_LICENSE		302
#define ARG_LIMIT		303
#define ARG_LINK		304
#define ARG_LIST		305
#define ARG_MIME		306
#define ARG_MOREPROC		307
#define ARG_MSGID		308
#define ARG_NOALIAS             309
#define ARG_NOAUDIT		310
#define ARG_NOAUTO		311
#define ARG_NOBELL		312
#define ARG_NOCC		313
#define ARG_NOCHANGECUR		314
#define ARG_NOCHECK		315
#define ARG_NOCLEAR		316
#define ARG_NOCOMPOSE		317
#define ARG_NOCREATE		318
#define ARG_NODATE		319
#define ARG_NODATEFIELD		320
#define ARG_NODRAFTFOLDER	321
#define ARG_NOEDIT		322
#define ARG_NOFAST		323
#define ARG_NOFILTER		324
#define ARG_NOFORMAT		325
#define ARG_NOFORWARD		326
#define ARG_NOHEADER		327
#define ARG_NOHEADERS		328
#define ARG_NOINTERACTIVE       329 
#define ARG_NOINPLACE		330 
#define ARG_NOLIMIT		331 
#define ARG_NOLIST		332 
#define ARG_NOMIME		333 
#define ARG_NOMOREPROC		334 
#define ARG_NOMSGID		335 
#define ARG_NOPAUSE		336 
#define ARG_NOPUBLIC		337 
#define ARG_NOPUSH		338 
#define ARG_NOREALSIZE		339 
#define ARG_NORECURSIVE         340 
#define ARG_NOREVERSE		341
#define ARG_NORMALIZE           342
#define ARG_NOSERIALONLY	343 
#define ARG_NOSHOW		344 
#define ARG_NOSTORE		345 
#define ARG_NOT		        346 
#define ARG_NOTEXTFIELD		347 
#define ARG_NOTOTAL		348 
#define ARG_NOTRUNCATE		349 
#define ARG_NOUSE		350 
#define ARG_NOVERBOSE		351 
#define ARG_NOWATCH		352 
#define ARG_NOWHATNOWPROC	353 
#define ARG_NOZERO		354 
#define ARG_NUMFIELD		355 
#define ARG_OR		        356 
#define ARG_PART		357 
#define ARG_PATTERN		358 
#define ARG_PAUSE		359 
#define ARG_POP		        360 
#define ARG_PRESERVE		361 
#define ARG_PRINT		362 
#define ARG_PROMPT		363 
#define ARG_PUBLIC		364 
#define ARG_PUSH		365 
#define ARG_QUERY		366 
#define ARG_QUIET		367 
#define ARG_RBRACE		368 
#define ARG_REALSIZE		369 
#define ARG_RECURSIVE		370 
#define ARG_REORDER		371 
#define ARG_REVERSE		372 
#define ARG_SEQUENCE		373 
#define ARG_SERIALONLY		374 
#define ARG_SHOW		375 
#define ARG_SOURCE		376 
#define ARG_SPLIT		377 
#define ARG_STORE		378 
#define ARG_SUBJECT		379 
#define ARG_TEXT		380 
#define ARG_TEXTFIELD		381 
#define ARG_TO		        382 
#define ARG_TOTAL		383 
#define ARG_TRUNCATE		384 
#define ARG_TYPE		385 
#define ARG_USE		        386
#define ARG_USER                387
#define ARG_VERBOSE		388 
#define ARG_WATCH		389 
#define ARG_WHATNOWPROC		390 
#define ARG_WIDTH		391 
#define ARG_ZERO		392 

void mh_argv_preproc (int argc, char **argv, struct mh_argp_data *data);
int mh_getopt (int argc, char **argv, struct mh_option *mh_opt, const char *doc);
int mh_argp_parse (int *argc, char **argv[],
		   int flags,
		   struct argp_option *option,
		   struct mh_option *mh_option,
		   char *argp_doc, char *doc,
		   int (*handler)(), void *closure, int *index);
void mh_help (struct mh_option *mh_option, const char *doc);
void mh_license (const char *name);

Return to:

Send suggestions and report system problems to the System administrator.