8cb2cf0997
git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@4 ea778897-0a13-0410-b9d1-a72fbfd435f5
59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
/*
|
|
*
|
|
* Copyright (c) 1999-2001, Darren Hiebert
|
|
*
|
|
* This source code is released for free distribution under the terms of the
|
|
* GNU General Public License.
|
|
*
|
|
* Defines external interface to command line argument reading.
|
|
*/
|
|
#ifndef _ARGS_H
|
|
#define _ARGS_H
|
|
|
|
/*
|
|
* INCLUDE FILES
|
|
*/
|
|
#include "general.h" /* must always come first */
|
|
|
|
/*
|
|
* DATA DECLARATIONS
|
|
*/
|
|
|
|
typedef struct sArgs {
|
|
enum { ARG_NONE, ARG_STRING, ARG_ARGV, ARG_FILE } type;
|
|
union {
|
|
struct sStringArgs {
|
|
const char* string;
|
|
const char* next;
|
|
const char* item;
|
|
} stringArgs;
|
|
struct sArgvArgs {
|
|
char* const* argv;
|
|
char* const* item;
|
|
} argvArgs;
|
|
struct sFileArgs {
|
|
FILE* fp;
|
|
} fileArgs;
|
|
} u;
|
|
char* item;
|
|
boolean lineMode;
|
|
} Arguments;
|
|
|
|
/*
|
|
* FUNCTION PROTOTYPES
|
|
*/
|
|
extern Arguments* argNewFromString (const char* const string);
|
|
extern Arguments* argNewFromArgv (char* const* const argv);
|
|
extern Arguments* argNewFromFile (FILE* const fp);
|
|
extern Arguments* argNewFromLineFile (FILE* const fp);
|
|
extern char *argItem (const Arguments* const current);
|
|
extern boolean argOff (const Arguments* const current);
|
|
extern void argSetWordMode (Arguments* const current);
|
|
extern void argSetLineMode (Arguments* const current);
|
|
extern void argForth (Arguments* const current);
|
|
extern void argDelete (Arguments* const current);
|
|
|
|
#endif /* _ARGS_H */
|
|
|
|
/* vi:set tabstop=8 shiftwidth=4: */
|