35#include <gwenhywfar/misc.h>
36#include <gwenhywfar/debug.h>
37#include <gwenhywfar/text.h>
40#define DISABLE_DEBUGLOG
64 while (i<argc && !stop) {
65 GWEN_ARGS_ELEMENT_TYPE t;
82 t=GWEN_ArgsElementTypeLong;
85 t=GWEN_ArgsElementTypeShort;
88 t=GWEN_ArgsElementTypeFreeParam;
91 case GWEN_ArgsElementTypeFreeParam:
99 DBG_ERROR(
GWEN_LOGDOMAIN,
"Only options are allowed, but argument \"%s\" was not recognized as a known option.", p);
110 case GWEN_ArgsElementTypeShort:
111 for (tmpArgs=args;; tmpArgs++) {
118 tmpArgs->
name, 0, 0)+1);
148 switch (tmpArgs->
type) {
156 if (sscanf(p,
"%i", &value)!=1) {
165 tmpArgs->
name, value);
190 case GWEN_ArgsElementTypeLong:
194 while (*v && *v!=
'=')
196 tmpBuf=(
char *)malloc(v-p+1);
198 memmove(tmpBuf, p, v-p);
201 for (tmpArgs=args;; tmpArgs++) {
208 tmpArgs->
name, 0, 0)+1);
244 switch (tmpArgs->
type) {
252 if (sscanf(v,
"%i", &value)!=1) {
262 tmpArgs->
name, value);
301 for (tmpArgs=args;; tmpArgs++) {
313 if (tmpArgs->
minNum && ((
unsigned int)c<tmpArgs->minNum)) {
327 if (tmpArgs->
maxNum && ((
unsigned int)c>tmpArgs->
maxNum)) {
329 "Option \"%s\" needed at most %d times (have %d)",
351 for (i=0; i<ins; i++)
373 for (tmpArgs=args;; tmpArgs++) {
419 "Option \"%s\" has neither a long nor a short name",
GWEN_BUFFER * GWEN_Buffer_new(char *buffer, uint32_t size, uint32_t used, int take)
void GWEN_Buffer_Reset(GWEN_BUFFER *bf)
void GWEN_Buffer_free(GWEN_BUFFER *bf)
int GWEN_Buffer_AppendString(GWEN_BUFFER *bf, const char *buffer)
char * GWEN_Buffer_GetStart(const GWEN_BUFFER *bf)
int GWEN_Buffer_AppendByte(GWEN_BUFFER *bf, char c)
GWEN_DB_NODE * GWEN_DB_Group_new(const char *name)
int GWEN_DB_SetIntValue(GWEN_DB_NODE *n, uint32_t flags, const char *path, int val)
int GWEN_DB_SetCharValue(GWEN_DB_NODE *n, uint32_t flags, const char *path, const char *val)
int GWEN_DB_GetIntValue(GWEN_DB_NODE *n, const char *path, int idx, int defVal)
void GWEN_DB_Group_free(GWEN_DB_NODE *n)
#define GWEN_DB_FLAGS_DEFAULT
#define GWEN_DB_FLAGS_OVERWRITE_VARS
struct GWEN_DB_NODE GWEN_DB_NODE
#define DBG_INFO(dbg_logger, format,...)
#define DBG_ERROR(dbg_logger, format,...)
#define DBG_DEBUG(dbg_logger, format,...)
struct GWEN_BUFFER GWEN_BUFFER
A dynamically resizeable text buffer.
int GWEN_Gui_ReadString(const char *text, GWEN_BUFFER *tbuf)
int GWEN_Args__AppendTXT(GWEN_BUFFER *ubuf, const char *s, unsigned int ins)
int GWEN_Args_Check(int argc, char **argv, int startAt, uint32_t mode, const GWEN_ARGS *args, GWEN_DB_NODE *db)
int GWEN_Args_Usage(const GWEN_ARGS *args, GWEN_BUFFER *ubuf, GWEN_ARGS_OUTTYPE ot)
int GWEN_Args_UsageHTML(GWEN_UNUSED const GWEN_ARGS *args, GWEN_UNUSED GWEN_BUFFER *ubuf)
int GWEN_Args_ShortUsage(GWEN_UNUSED const GWEN_ARGS *args, GWEN_UNUSED GWEN_BUFFER *ubuf, GWEN_UNUSED GWEN_ARGS_OUTTYPE ot)
int GWEN_Args_UsageTXT(const GWEN_ARGS *args, GWEN_BUFFER *ubuf)
#define GWEN_ARGS_FLAGS_HAS_ARGUMENT
#define GWEN_ARGS_RESULT_ERROR
#define GWEN_ARGS_MODE_STOP_AT_FREEPARAM
#define GWEN_ARGS_MODE_ALLOW_FREEPARAM
#define GWEN_ARGS_FLAGS_HELP
#define GWEN_ARGS_FLAGS_LAST
#define GWEN_ARGS_RESULT_HELP
const char * longDescription
const char * shortDescription