133 lines
3.2 KiB
C
133 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.
|
||
|
/*
|
||
|
*/
|