Blame src/lib/libast/misc/optlib.h

Packit Service a8c26c
/***********************************************************************
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
*               This software is part of the ast package               *
Packit Service a8c26c
*          Copyright (c) 1985-2011 AT&T Intellectual Property          *
Packit Service a8c26c
*                      and is licensed under the                       *
Packit Service a8c26c
*                 Eclipse Public License, Version 1.0                  *
Packit Service a8c26c
*                    by AT&T Intellectual Property                     *
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
*                A copy of the License is available at                 *
Packit Service a8c26c
*          http://www.eclipse.org/org/documents/epl-v10.html           *
Packit Service a8c26c
*         (with md5 checksum b35adb5213ca9657e911e9befb180842)         *
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
*              Information and Software Systems Research               *
Packit Service a8c26c
*                            AT&T Research                             *
Packit Service a8c26c
*                           Florham Park NJ                            *
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
*                 Glenn Fowler <gsf@research.att.com>                  *
Packit Service a8c26c
*                  David Korn <dgk@research.att.com>                   *
Packit Service a8c26c
*                   Phong Vo <kpv@research.att.com>                    *
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
***********************************************************************/
Packit Service a8c26c
#pragma prototyped
Packit Service a8c26c
/*
Packit Service a8c26c
 * Glenn Fowler
Packit Service a8c26c
 * AT&T Research
Packit Service a8c26c
 *
Packit Service a8c26c
 * command line option parser and usage formatter private definitions
Packit Service a8c26c
 */
Packit Service a8c26c
Packit Service a8c26c
#ifndef _OPTLIB_H
Packit Service a8c26c
#define _OPTLIB_H
Packit Service a8c26c
Packit Service a8c26c
#include <ast.h>
Packit Service a8c26c
#include <cdt.h>
Packit Service a8c26c
Packit Service a8c26c
#define OPT_append		0x001
Packit Service a8c26c
#define OPT_cache		0x002
Packit Service a8c26c
#define OPT_functions		0x004
Packit Service a8c26c
#define OPT_ignore		0x008
Packit Service a8c26c
#define OPT_long		0x010
Packit Service a8c26c
#define OPT_minus		0x020
Packit Service a8c26c
#define OPT_module		0x040
Packit Service a8c26c
#define OPT_numeric		0x080
Packit Service a8c26c
#define OPT_old			0x100
Packit Service a8c26c
#define OPT_plus		0x200
Packit Service a8c26c
Packit Service a8c26c
#define OPT_cache_flag		0x001
Packit Service a8c26c
#define OPT_cache_invert	0x002
Packit Service a8c26c
#define OPT_cache_numeric	0x004
Packit Service a8c26c
#define OPT_cache_optional	0x008
Packit Service a8c26c
#define OPT_cache_string	0x010
Packit Service a8c26c
Packit Service a8c26c
#define OPT_CACHE		128
Packit Service a8c26c
#define OPT_FLAGS		"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
Packit Service a8c26c
Packit Service a8c26c
struct Optdisc_s;
Packit Service a8c26c
Packit Service a8c26c
typedef struct Optpass_s
Packit Service a8c26c
{
Packit Service a8c26c
	char*			opts;
Packit Service a8c26c
	char*			oopts;
Packit Service a8c26c
	char*			id;
Packit Service a8c26c
	char*			catalog;
Packit Service a8c26c
	char*			release;
Packit Service a8c26c
	char			section[4];
Packit Service a8c26c
	unsigned char		version;
Packit Service a8c26c
	unsigned char		prefix;
Packit Service a8c26c
	unsigned short		flags;
Packit Service a8c26c
} Optpass_t;
Packit Service a8c26c
Packit Service a8c26c
typedef struct Optcache_s
Packit Service a8c26c
{
Packit Service a8c26c
	struct Optcache_s*	next;
Packit Service a8c26c
	Optpass_t		pass;
Packit Service a8c26c
	int			caching;
Packit Service a8c26c
	unsigned char		flags[sizeof(OPT_FLAGS)];
Packit Service a8c26c
} Optcache_t;
Packit Service a8c26c
Packit Service a8c26c
typedef struct Optstate_s
Packit Service a8c26c
{
Packit Service a8c26c
	Sfio_t*		mp;		/* opt_info.msg string stream	*/
Packit Service a8c26c
	Sfio_t*		vp;		/* translation string stream	*/
Packit Service a8c26c
	Sfio_t*		xp;		/* translation string stream	*/
Packit Service a8c26c
	Sfio_t*		cp;		/* compatibility string stream	*/
Packit Service a8c26c
	Optpass_t	pass[8];	/* optjoin() list		*/
Packit Service a8c26c
	char*		argv[2];	/* initial argv copy		*/
Packit Service a8c26c
	char*		strv[3];	/* optstr() argv		*/
Packit Service a8c26c
	char*		str;		/* optstr() string		*/
Packit Service a8c26c
	Sfio_t*		strp;		/* optstr() stream		*/
Packit Service a8c26c
	int		force;		/* force this style		*/
Packit Service a8c26c
	int		pindex;		/* prev index for backup	*/
Packit Service a8c26c
	int		poffset;	/* prev offset for backup	*/
Packit Service a8c26c
	int		npass;		/* # optjoin() passes		*/
Packit Service a8c26c
	int		join;		/* optjoin() pass #		*/
Packit Service a8c26c
	int		plus;		/* + ok				*/
Packit Service a8c26c
	int		style;		/* default opthelp() style	*/
Packit Service a8c26c
	int		width;		/* format line width		*/
Packit Service a8c26c
	int		flags;		/* display flags		*/
Packit Service a8c26c
	int		emphasis;	/* ansi term emphasis ok	*/
Packit Service a8c26c
	int		localized;	/* locale initialized		*/
Packit Service a8c26c
	Dtdisc_t	msgdisc;	/* msgdict discipline		*/
Packit Service a8c26c
	Dt_t*		msgdict;	/* default ast.id catalog msgs	*/
Packit Service a8c26c
	Optcache_t*	cache;		/* OPT_cache cache		*/
Packit Service a8c26c
	char**		conformance;	/* conformance id vector	*/
Packit Service a8c26c
} Optstate_t;
Packit Service a8c26c
Packit Service a8c26c
#define _OPT_PRIVATE_ \
Packit Service a8c26c
	char            pad[2*sizeof(void*)]; \
Packit Service a8c26c
	Optstate_t*	state;
Packit Service a8c26c
Packit Service a8c26c
#include <error.h>
Packit Service a8c26c
Packit Service a8c26c
extern Optstate_t*	optstate(Opt_t*);
Packit Service a8c26c
Packit Service a8c26c
#endif