1
0
Fork 0
flightgear/Main/fg_getopt.h
1998-02-13 00:23:39 +00:00

132 lines
3.2 KiB
C

/****************************************************************************
*
* Copyright (C) 1991-1997 SciTech Software, Inc.
* All rights reserved.
*
* ======================================================================
* This library is free software; you can use it and/or
* modify it under the terms of the SciTech MGL Software License.
*
* This library 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
* SciTech MGL Software License for more details.
* ======================================================================
*
* Filename: $Workfile: getopt.h $
* Version: $Revision$
*
* Language: ANSI C
* Environment: any
*
* Description: Header file for command line parsing module. This module
* contains code to parse the command line, extracting options
* and parameters in standard System V style.
*
* $Date$ $Author$
*
* $Id$
* (Log is kept at end of this file)
*
****************************************************************************/
#ifndef __GETOPT_H
#define __GETOPT_H
//#ifndef __DEBUG_H
//#include "debug.h"
//#endif
/*---------------------------- Typedef's etc -----------------------------*/
#define ALLDONE -1
#define PARAMETER -2
#define INVALID -3
#define HELP -4
#define MAXARG 80
/* Option type sepecifiers */
#define OPT_INTEGER 'd'
#define OPT_HEX 'h'
#define OPT_OCTAL 'o'
#define OPT_UNSIGNED 'u'
#define OPT_LINTEGER 'D'
#define OPT_LHEX 'H'
#define OPT_LOCTAL 'O'
#define OPT_LUNSIGNED 'U'
#define OPT_FLOAT 'f'
#define OPT_DOUBLE 'F'
#define OPT_LDOUBLE 'L'
#define OPT_STRING 's'
#define OPT_SWITCH '!'
// I need to generate a typedefs file for this.
//
#ifndef uchar
typedef unsigned char uchar;
#endif
#ifndef uint
typedef unsigned int uint;
#endif
#ifndef ulong
typedef unsigned long ulong;
#endif
#ifndef bool
#ifndef BOOL
typedef int BOOL;
#endif
typedef BOOL bool;
#endif
#ifndef true
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
#define true TRUE
#define false FALSE
#endif
typedef struct {
uchar opt; /* The letter to describe the option */
uchar type; /* Type descriptor for the option */
void *arg; /* Place to store the argument */
char *desc; /* Description for this option */
} Option;
#define NUM_OPT(a) sizeof(a) / sizeof(Option)
#ifdef __cplusplus
extern "C" {
#endif
/*--------------------------- Global variables ---------------------------*/
extern int nextargv;
extern char *nextchar;
/*------------------------- Function Prototypes --------------------------*/
// extern int getopt(int argc,char **argv,char *format,char **argument);
extern int getargs(int argc, char *argv[],int num_opt, Option ** optarr,
int (*do_param)(char *param,int num));
extern void print_desc(int num_opt, Option **optarr); // Not original code
#ifdef __cplusplus
}
#endif
#endif
/* $Log$
/* Revision 1.1 1998/02/13 00:23:39 curt
/* Initial revision.
/*
*/