#include "system.h"#include <math.h>#include "findme.h"#include "poptint.h"
Go to the source code of this file.
Defines | |
| #define | _ABS(a) ((((a) - 0.0) < DBL_EPSILON) ? -(a) : (a)) |
Functions | |
| static char * | strerror (int errno) |
| void | poptSetExecPath (poptContext con, const char *path, int allowAbsolute) |
| Limit search for executables. | |
| static void | invokeCallbacksPRE (poptContext con, const struct poptOption *opt) |
| static void | invokeCallbacksPOST (poptContext con, const struct poptOption *opt) |
| static void | invokeCallbacksOPTION (poptContext con, const struct poptOption *opt, const struct poptOption *myOpt, const void *myData, int shorty) |
| poptContext | poptGetContext (const char *name, int argc, const char **argv, const struct poptOption *options, unsigned int flags) |
| Initialize popt context. | |
| static void | cleanOSE (struct optionStackEntry *os) |
| void | poptResetContext (poptContext con) |
| Reinitialize popt context. | |
| static int | handleExec (poptContext con, const char *longName, char shortName) |
| static int | handleAlias (poptContext con, const char *longName, char shortName, const char *nextCharArg) |
| static int | execCommand (poptContext con) |
| static struct poptOption * | findOption (const struct poptOption *opt, const char *longName, int longNameLen, char shortName, poptCallbackType *callback, const void **callbackData, int singleDash) |
| static const char * | findNextArg (poptContext con, unsigned argx, int delete_arg) |
| static const char * | expandNextArg (poptContext con, const char *s) |
| static void | poptStripArg (poptContext con, int which) |
| int | poptSaveLong (long *arg, unsigned int argInfo, long aLong) |
| Save a long, performing logical operation with value. | |
| int | poptSaveInt (int *arg, unsigned int argInfo, long aLong) |
| Save an integer, performing logical operation with value. | |
| int | poptGetNextOpt (poptContext con) |
| Return value of next option found. | |
| char * | poptGetOptArg (poptContext con) |
| Return next option argument (if any). | |
| const char * | poptGetArg (poptContext con) |
| Return next argument. | |
| const char * | poptPeekArg (poptContext con) |
| Peek at current argument. | |
| const char ** | poptGetArgs (poptContext con) |
| Return remaining arguments. | |
| poptContext | poptFreeContext (poptContext con) |
| Destroy context. | |
| int | poptAddAlias (poptContext con, struct poptAlias alias, int flags) |
| Add alias to context. | |
| int | poptAddItem (poptContext con, poptItem newItem, int flags) |
| Add alias/exec item to context. | |
| const char * | poptBadOption (poptContext con, unsigned int flags) |
| Return the option which caused the most recent error. | |
| const char * | poptStrerror (const int error) |
| Return formatted error string for popt failure. | |
| int | poptStuffArgs (poptContext con, const char **argv) |
| Add arguments to context. | |
| const char * | poptGetInvocationName (poptContext con) |
| Return argv[0] from context. | |
| int | poptStrippedArgv (poptContext con, int argc, char **argv) |
| Shuffle argv pointers to remove stripped args, returns new argc. | |
Variables | |
| static unsigned int | seed = 0 |
| #define _ABS | ( | a | ) | ((((a) - 0.0) < DBL_EPSILON) ? -(a) : (a)) |
Referenced by poptGetNextOpt().
| static void cleanOSE | ( | struct optionStackEntry * | os | ) | [static] |
Definition at line 209 of file popt.c.
References _free(), optionStackEntry::argb, optionStackEntry::argv, optionStackEntry::nextArg, and PBM_FREE.
Referenced by poptGetNextOpt(), and poptResetContext().
| static int execCommand | ( | poptContext | con | ) | [static] |
< errno set, use strerror(errno)
< missing argument
< missing argument
< memory allocation failed
< missing argument
Definition at line 362 of file popt.c.
References poptItem_s::argc, poptItem_s::argv, poptContext_s::doExec, poptContext_s::execAbsolute, poptContext_s::execPath, poptContext_s::finalArgv, poptContext_s::finalArgvCount, poptContext_s::leftovers, malloc(), poptContext_s::numLeftovers, POPT_ERROR_ERRNO, POPT_ERROR_MALLOC, POPT_ERROR_NOARG, and POPT_findProgramPath().
Referenced by poptGetNextOpt().
| static const char* expandNextArg | ( | poptContext | con, | |
| const char * | s | |||
| ) | [static] |
Definition at line 569 of file popt.c.
References findNextArg(), malloc(), and realloc().
Referenced by poptGetNextOpt().
| static const char* findNextArg | ( | poptContext | con, | |
| unsigned | argx, | |||
| int | delete_arg | |||
| ) | [static] |
Definition at line 531 of file popt.c.
References optionStackEntry::argb, optionStackEntry::argc, optionStackEntry::argv, optionStackEntry::next, poptContext_s::optionStack, poptContext_s::os, PBM_ALLOC, PBM_ISSET, and PBM_SET.
Referenced by expandNextArg().
| static struct poptOption* findOption | ( | const struct poptOption * | opt, | |
| const char * | longName, | |||
| int | longNameLen, | |||
| char | shortName, | |||
| poptCallbackType * | callback, | |||
| const void ** | callbackData, | |||
| int | singleDash | |||
| ) | [static, read] |
< arg points to table
< table-wide callback... must be set first in table; arg points to callback, descrip points to callback data to pass
< allow -longoption
< use data from the include line, not the subtable
Definition at line 463 of file popt.c.
References poptOption::arg, poptOption::argInfo, poptOption::descrip, poptOption::longName, POPT_ARG_CALLBACK, POPT_ARG_INCLUDE_TABLE, POPT_ARG_MASK, POPT_ARGFLAG_ONEDASH, POPT_CBFLAG_INC_DATA, poptHelpOptions, poptHelpOptionsI18N, and poptOption::shortName.
Referenced by poptGetNextOpt().
| static int handleAlias | ( | poptContext | con, | |
| const char * | longName, | |||
| char | shortName, | |||
| const char * | nextCharArg | |||
| ) | [static] |
< aliases nested too deeply
Definition at line 310 of file popt.c.
References poptContext_s::aliases, optionStackEntry::argb, optionStackEntry::argc, poptItem_s::argc, optionStackEntry::argv, poptItem_s::argv, optionStackEntry::currAlias, poptOption::longName, optionStackEntry::next, optionStackEntry::nextArg, optionStackEntry::nextCharArg, poptContext_s::numAliases, poptItem_s::option, poptContext_s::optionStack, poptContext_s::os, POPT_ERROR_OPTSTOODEEP, POPT_OPTION_DEPTH, poptDupArgv(), poptOption::shortName, and optionStackEntry::stuffed.
Referenced by poptGetNextOpt().
| static int handleExec | ( | poptContext | con, | |
| const char * | longName, | |||
| char | shortName | |||
| ) | [static] |
< ignore exec expansions
Definition at line 253 of file popt.c.
References poptContext_s::doExec, poptContext_s::execs, poptContext_s::finalArgv, poptContext_s::finalArgvAlloced, poptContext_s::finalArgvCount, poptContext_s::flags, poptOption::longName, malloc(), poptContext_s::numExecs, poptItem_s::option, POPT_CONTEXT_NO_EXEC, realloc(), and poptOption::shortName.
Referenced by poptGetNextOpt().
| static void invokeCallbacksOPTION | ( | poptContext | con, | |
| const struct poptOption * | opt, | |||
| const struct poptOption * | myOpt, | |||
| const void * | myData, | |||
| int | shorty | |||
| ) | [static] |
< arg points to table
< table-wide callback... must be set first in table; arg points to callback, descrip points to callback data to pass
< don't callback with option
< continue callbacks with option
Definition at line 116 of file popt.c.
References poptOption::arg, poptOption::argInfo, poptOption::descrip, poptOption::longName, optionStackEntry::nextArg, poptContext_s::os, POPT_ARG_CALLBACK, POPT_ARG_INCLUDE_TABLE, POPT_ARG_MASK, POPT_CALLBACK_REASON_OPTION, POPT_CBFLAG_CONTINUE, POPT_CBFLAG_SKIPOPTION, poptHelpOptions, poptHelpOptionsI18N, and poptOption::shortName.
Referenced by poptGetNextOpt().
| static void invokeCallbacksPOST | ( | poptContext | con, | |
| const struct poptOption * | opt | |||
| ) | [static] |
< arg points to table
< table-wide callback... must be set first in table; arg points to callback, descrip points to callback data to pass
< call the callback after parse
Definition at line 90 of file popt.c.
References poptOption::arg, poptOption::argInfo, poptOption::descrip, poptOption::longName, POPT_ARG_CALLBACK, POPT_ARG_INCLUDE_TABLE, POPT_ARG_MASK, POPT_CALLBACK_REASON_POST, POPT_CBFLAG_POST, poptHelpOptions, poptHelpOptionsI18N, and poptOption::shortName.
Referenced by poptGetNextOpt().
| static void invokeCallbacksPRE | ( | poptContext | con, | |
| const struct poptOption * | opt | |||
| ) | [static] |
< arg points to table
< table-wide callback... must be set first in table; arg points to callback, descrip points to callback data to pass
< call the callback before parse
Definition at line 64 of file popt.c.
References poptOption::arg, poptOption::argInfo, poptOption::descrip, poptOption::longName, POPT_ARG_CALLBACK, POPT_ARG_INCLUDE_TABLE, POPT_ARG_MASK, POPT_CALLBACK_REASON_PRE, POPT_CBFLAG_PRE, poptHelpOptions, poptHelpOptionsI18N, and poptOption::shortName.
Referenced by poptGetContext().
| int poptAddAlias | ( | poptContext | con, | |
| struct poptAlias | alias, | |||
| int | flags | |||
| ) |
Add alias to context.
| con | context | |
| alias | alias to add | |
| flags | (unused) |
< don't show in help/usage
Definition at line 1112 of file popt.c.
References poptAlias::argc, poptAlias::argv, poptAlias::longName, POPT_ARGFLAG_DOC_HIDDEN, poptAddItem(), and poptAlias::shortName.
| int poptAddItem | ( | poptContext | con, | |
| poptItem | newItem, | |||
| int | flags | |||
| ) |
Add alias/exec item to context.
| con | context | |
| newItem | alias/exec item to add | |
| flags | 0 for alias, 1 for exec |
Definition at line 1130 of file popt.c.
References poptContext_s::aliases, poptOption::arg, poptItem_s::argc, poptOption::argDescrip, poptOption::argInfo, poptItem_s::argv, poptOption::descrip, poptContext_s::execs, poptOption::longName, poptContext_s::numAliases, poptContext_s::numExecs, poptItem_s::option, realloc(), poptOption::shortName, poptOption::val, and xstrdup.
Referenced by configLine(), and poptAddAlias().
| const char* poptBadOption | ( | poptContext | con, | |
| unsigned int | flags | |||
| ) |
Return the option which caused the most recent error.
| con | context | |
| flags |
< don't go into an alias
Definition at line 1173 of file popt.c.
References optionStackEntry::argv, optionStackEntry::next, poptContext_s::optionStack, poptContext_s::os, and POPT_BADOPTION_NOALIAS.
| poptContext poptFreeContext | ( | poptContext | con | ) |
Destroy context.
| con | context |
Definition at line 1068 of file popt.c.
References _free(), poptContext_s::aliases, poptContext_s::appName, poptContext_s::arg_strip, optionStackEntry::argb, poptOption::argDescrip, poptItem_s::argv, poptOption::descrip, poptContext_s::execPath, poptContext_s::execs, poptContext_s::finalArgv, poptContext_s::leftovers, poptOption::longName, poptContext_s::numAliases, poptContext_s::numExecs, poptItem_s::option, poptContext_s::os, poptContext_s::otherHelp, PBM_FREE, and poptResetContext().
Referenced by displayArgs().
| const char* poptGetArg | ( | poptContext | con | ) |
Return next argument.
| con | context |
Definition at line 1038 of file popt.c.
References poptContext_s::leftovers, poptContext_s::nextLeftover, and poptContext_s::numLeftovers.
| const char** poptGetArgs | ( | poptContext | con | ) |
Return remaining arguments.
| con | context |
Definition at line 1054 of file popt.c.
References poptContext_s::leftovers, poptContext_s::nextLeftover, and poptContext_s::numLeftovers.
| poptContext poptGetContext | ( | const char * | name, | |
| int | argc, | |||
| const char ** | argv, | |||
| const struct poptOption * | options, | |||
| unsigned int | flags | |||
| ) |
Initialize popt context.
| name | context name (usually argv[0] program name) | |
| argc | no. of arguments | |
| argv | argument array | |
| options | address of popt option table | |
| flags | or'd POPT_CONTEXT_* bits |
< pay attention to argv[0]
< options can't follow args
Definition at line 162 of file popt.c.
References poptContext_s::aliases, poptContext_s::appName, poptContext_s::arg_strip, optionStackEntry::argb, optionStackEntry::argc, optionStackEntry::argv, calloc(), poptContext_s::execAbsolute, poptContext_s::execs, poptContext_s::finalArgv, poptContext_s::finalArgvAlloced, poptContext_s::flags, invokeCallbacksPRE(), poptContext_s::leftovers, malloc(), optionStackEntry::next, poptContext_s::numAliases, poptContext_s::numExecs, poptContext_s::options, poptContext_s::optionStack, poptContext_s::os, POPT_CONTEXT_KEEP_FIRST, and POPT_CONTEXT_POSIXMEHARDER.
| const char* poptGetInvocationName | ( | poptContext | con | ) |
Return argv[0] from context.
| con | context |
Definition at line 1234 of file popt.c.
References optionStackEntry::argv, and poptContext_s::os.
| int poptGetNextOpt | ( | poptContext | con | ) |
Return value of next option found.
| con | context |
< unknown option
< options can't follow args
< return args as options with value 0
< unknown option
< unknown option
< strip this arg from argv(only applies to long args)
< unknown option
< unknown option
< no arg
< mutually exclusive logical operations requested
< arg should take value val
< mutually exclusive logical operations requested
< no arg
< arg may be missing
< missing argument
< strip this arg from argv(only applies to long args)
< arg may be missing
< arg will be saved as string
< arg will be converted to int
< arg will be converted to long
< invalid numeric value
< arg will be converted to long
< number too large or too small
< mutually exclusive logical operations requested
< number too large or too small
< mutually exclusive logical operations requested
< arg will be converted to float
< arg will be converted to double
< number too large or too small
< invalid numeric value
< arg will be converted to double
< number too large or too small
< number too large or too small
< return (*arg) (argc, argv)
< arg should take value val
< allow -longoption
< no arg
< arg should take value val
< no arg
Definition at line 713 of file popt.c.
References _ABS, _free(), poptOption::arg, optionStackEntry::argb, optionStackEntry::argc, poptOption::argInfo, optionStackEntry::argv, cleanOSE(), poptContext_s::doExec, execCommand(), expandNextArg(), poptContext_s::finalArgv, poptContext_s::finalArgvAlloced, poptContext_s::finalArgvCount, findOption(), poptContext_s::flags, handleAlias(), handleExec(), invokeCallbacksOPTION(), invokeCallbacksPOST(), poptContext_s::leftovers, poptOption::longName, poptContext_s::maincall, malloc(), optionStackEntry::next, optionStackEntry::nextArg, optionStackEntry::nextCharArg, poptContext_s::numLeftovers, poptContext_s::options, poptContext_s::optionStack, poptContext_s::os, PBM_ISSET, POPT_, POPT_ARG_DOUBLE, POPT_ARG_FLOAT, POPT_ARG_INT, POPT_ARG_LONG, POPT_ARG_MAINCALL, POPT_ARG_MASK, POPT_ARG_NONE, POPT_ARG_STRING, POPT_ARG_VAL, POPT_ARGFLAG_ONEDASH, POPT_ARGFLAG_OPTIONAL, POPT_ARGFLAG_STRIP, POPT_CONTEXT_ARG_OPTS, POPT_CONTEXT_POSIXMEHARDER, POPT_ERROR_BADNUMBER, POPT_ERROR_BADOPERATION, POPT_ERROR_BADOPT, POPT_ERROR_NOARG, POPT_ERROR_OVERFLOW, poptSaveInt(), poptSaveLong(), poptStripArg(), realloc(), poptContext_s::restLeftover, poptOption::shortName, poptOption::val, and xstrdup.
| char* poptGetOptArg | ( | poptContext | con | ) |
Return next option argument (if any).
| con | context |
Definition at line 1028 of file popt.c.
References optionStackEntry::nextArg, and poptContext_s::os.
| const char* poptPeekArg | ( | poptContext | con | ) |
Peek at current argument.
| con | context |
Definition at line 1046 of file popt.c.
References poptContext_s::leftovers, poptContext_s::nextLeftover, and poptContext_s::numLeftovers.
| void poptResetContext | ( | poptContext | con | ) |
Reinitialize popt context.
| con | context |
Definition at line 219 of file popt.c.
References _free(), poptContext_s::arg_strip, optionStackEntry::argb, cleanOSE(), optionStackEntry::currAlias, poptContext_s::doExec, poptContext_s::finalArgv, poptContext_s::finalArgvCount, optionStackEntry::next, optionStackEntry::nextArg, optionStackEntry::nextCharArg, poptContext_s::nextLeftover, poptContext_s::numLeftovers, poptContext_s::optionStack, poptContext_s::os, PBM_FREE, and poptContext_s::restLeftover.
Referenced by poptFreeContext().
| int poptSaveInt | ( | int * | arg, | |
| unsigned int | argInfo, | |||
| long | aLong | |||
| ) |
Save an integer, performing logical operation with value.
| arg | integer pointer, aligned on int boundary. | |
| argInfo | logical operation (see POPT_ARGFLAG_*) | |
| aLong | value to use |
< opt->arg should not be NULL
< arg will be negated
< arg will be or'ed
< arg will be and'ed
< arg will be xor'ed
< arg will be or'ed
< arg will be and'ed
< arg will be xor'ed
< mutually exclusive logical operations requested
Definition at line 675 of file popt.c.
References POPT_ARGFLAG_AND, POPT_ARGFLAG_LOGICALOPS, POPT_ARGFLAG_NOT, POPT_ARGFLAG_OR, POPT_ARGFLAG_RANDOM, POPT_ARGFLAG_XOR, POPT_ERROR_BADOPERATION, and POPT_ERROR_NULLARG.
Referenced by poptGetNextOpt().
| int poptSaveLong | ( | long * | arg, | |
| unsigned int | argInfo, | |||
| long | aLong | |||
| ) |
Save a long, performing logical operation with value.
| arg | integer pointer, aligned on int boundary. | |
| argInfo | logical operation (see POPT_ARGFLAG_*) | |
| aLong | value to use |
< opt->arg should not be NULL
< arg will be negated
< arg will be or'ed
< arg will be and'ed
< arg will be xor'ed
< arg will be or'ed
< arg will be and'ed
< arg will be xor'ed
< mutually exclusive logical operations requested
Definition at line 637 of file popt.c.
References POPT_ARGFLAG_AND, POPT_ARGFLAG_LOGICALOPS, POPT_ARGFLAG_NOT, POPT_ARGFLAG_OR, POPT_ARGFLAG_RANDOM, POPT_ARGFLAG_XOR, POPT_ERROR_BADOPERATION, and POPT_ERROR_NULLARG.
Referenced by poptGetNextOpt().
| void poptSetExecPath | ( | poptContext | con, | |
| const char * | path, | |||
| int | allowAbsolute | |||
| ) |
Limit search for executables.
| con | context | |
| path | single path to search for executables | |
| allowAbsolute | absolute paths only? |
Definition at line 54 of file popt.c.
References _free(), poptContext_s::execAbsolute, poptContext_s::execPath, and xstrdup.
| const char* poptStrerror | ( | const int | error | ) |
Return formatted error string for popt failure.
| error | popt error |
< missing argument
< unknown option
< mutually exclusive logical operations requested
< opt->arg should not be NULL
< aliases nested too deeply
< error in paramter quoting
< invalid numeric value
< number too large or too small
< memory allocation failed
< errno set, use strerror(errno)
Definition at line 1183 of file popt.c.
References POPT_, POPT_ERROR_BADNUMBER, POPT_ERROR_BADOPERATION, POPT_ERROR_BADOPT, POPT_ERROR_BADQUOTE, POPT_ERROR_ERRNO, POPT_ERROR_MALLOC, POPT_ERROR_NOARG, POPT_ERROR_NULLARG, POPT_ERROR_OPTSTOODEEP, POPT_ERROR_OVERFLOW, and strerror().
| static void poptStripArg | ( | poptContext | con, | |
| int | which | |||
| ) | [static] |
Definition at line 617 of file popt.c.
References poptContext_s::arg_strip, optionStackEntry::argc, poptContext_s::optionStack, PBM_ALLOC, and PBM_SET.
Referenced by poptGetNextOpt().
| int poptStrippedArgv | ( | poptContext | con, | |
| int | argc, | |||
| char ** | argv | |||
| ) |
Shuffle argv pointers to remove stripped args, returns new argc.
| con | context | |
| argc | no. of args | |
| argv | arg vector |
Definition at line 1239 of file popt.c.
References poptContext_s::arg_strip, and PBM_ISSET.
| int poptStuffArgs | ( | poptContext | con, | |
| const char ** | argv | |||
| ) |
Add arguments to context.
| con | context | |
| argv | argument array, NULL terminated |
< aliases nested too deeply
Definition at line 1211 of file popt.c.
References optionStackEntry::argb, optionStackEntry::argc, optionStackEntry::argv, optionStackEntry::currAlias, optionStackEntry::next, optionStackEntry::nextArg, optionStackEntry::nextCharArg, poptContext_s::optionStack, poptContext_s::os, POPT_ERROR_OPTSTOODEEP, POPT_OPTION_DEPTH, poptDupArgv(), and optionStackEntry::stuffed.
| static char* strerror | ( | int | errno | ) | [static] |
1.6.2-20100208