chiark / gitweb /
remove debugging and cruft; size window more sensibly
[chiark-utils.git] / cprogs / myopt.h
1 /*
2  * myopt.h - declarations for my very own option parsing
3  *
4  * Copyright (C) 1994,1995 Ian Jackson <iwj10@cus.cam.ac.uk>
5  *
6  * This is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as
8  * published by the Free Software Foundation; either version 2,
9  * or (at your option) any later version.
10  *
11  * This is distributed in the hope that it will be useful, but
12  * WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public
17  * License along with this file; if not, write to the Free Software
18  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
19  */
20
21 #ifndef MYOPT_H
22 #define MYOPT_H
23
24 extern void usagemessage(void); /* supply this */
25
26 typedef void (*voidfnp)(void);
27
28 struct cmdinfo {
29   const char *olong;
30   char oshort;
31   int takesvalue; /* 0 = normal   1 = standard value   2 = option string cont */
32   int *iassignto;
33   const char **sassignto;
34   void (*call)(const struct cmdinfo*, const char *value);
35   int arg;
36   void *parg;
37   voidfnp farg;
38 };
39
40 void myopt(const char *const **argvp, const struct cmdinfo *cmdinfos);
41 void badusage(const char *fmt, ...);
42
43 #endif /* MYOPT_H */