# POPT.

## Files

file | findme.c
file | findme.h
file | popt.c
file | popt.h
file | poptconfig.c
file | popthelp.c
file | poptint.h
file | poptparse.c

## Data Structures

struct | poptOption
struct | poptAlias
struct | poptItem_s

## Arg type identifiers

#define | POPT_ARG_NONE 0 /*!< no arg */
#define | POPT_ARG_STRING 1 /*!< arg will be saved as string */
#define | POPT_ARG_INT 2 /*!< arg will be converted to int */
#define | POPT_ARG_LONG 3 /*!< arg will be converted to long */
#define | POPT_ARG_INCLUDE_TABLE 4 /*!< arg points to table */
#define | POPT_ARG_CALLBACK
#define | POPT_ARG_INTL_DOMAIN
#define | POPT_ARG_VAL 7 /*!< arg should take value val */
#define | POPT_ARG_FLOAT 8 /*!< arg will be converted to float */
#define | POPT_ARG_DOUBLE 9 /*!< arg will be converted to double */
#define | POPT_ARG_MASK 0x0000FFFF

## Arg modifiers

#define | POPT_ARGFLAG_ONEDASH 0x80000000 /*!< allow -longoption */
#define | POPT_ARGFLAG_DOC_HIDDEN 0x40000000 /*!< don't show in help/usage */
#define | POPT_ARGFLAG_STRIP 0x20000000 /*!< strip this arg from argv(only applies to long args) */
#define | POPT_ARGFLAG_OPTIONAL 0x10000000 /*!< arg may be missing */
#define | POPT_ARGFLAG_OR 0x08000000 /*!< arg will be or'ed */
#define | POPT_ARGFLAG_NOR 0x09000000 /*!< arg will be nor'ed */
#define | POPT_ARGFLAG_AND 0x04000000 /*!< arg will be and'ed */
#define | POPT_ARGFLAG_NAND 0x05000000 /*!< arg will be nand'ed */
#define | POPT_ARGFLAG_XOR 0x02000000 /*!< arg will be xor'ed */
#define | POPT_ARGFLAG_NOT 0x01000000 /*!< arg will be negated */
#define | POPT_ARGFLAG_LOGICALOPS (POPT_ARGFLAG_OR|POPT_ARGFLAG_AND|POPT_ARGFLAG_XOR)
#define | POPT_BIT_SET (POPT_ARG_VAL|POPT_ARGFLAG_OR)
#define | POPT_BIT_CLR (POPT_ARG_VAL|POPT_ARGFLAG_NAND)
#define | POPT_ARGFLAG_SHOW_DEFAULT 0x00800000 /*!< show default value in --help */

## Callback modifiers

#define | POPT_CBFLAG_PRE 0x80000000 /*!< call the callback before parse */
#define | POPT_CBFLAG_POST 0x40000000 /*!< call the callback after parse */
#define | POPT_CBFLAG_INC_DATA
#define | POPT_CBFLAG_SKIPOPTION 0x10000000 /*!< don't callback with option */
#define | POPT_CBFLAG_CONTINUE 0x08000000 /*!< continue callbacks with option */

## Error return values

#define | POPT_ERROR_NOARG -10 /*!< missing argument */
#define | POPT_ERROR_BADOPT -11 /*!< unknown option */
#define | POPT_ERROR_OPTSTOODEEP -13 /*!< aliases nested too deeply */
#define | POPT_ERROR_BADQUOTE -15 /*!< error in paramter quoting */
#define | POPT_ERROR_ERRNO -16 /*!< errno set, use strerror(errno) */
#define | POPT_ERROR_BADNUMBER -17 /*!< invalid numeric value */
#define | POPT_ERROR_OVERFLOW -18 /*!< number too large or too small */
#define | POPT_ERROR_BADOPERATION -19 /*!< mutually exclusive logical operations requested */
#define | POPT_ERROR_NULLARG -20 /*!< opt->arg should not be NULL */
#define | POPT_ERROR_MALLOC -21 /*!< memory allocation failed */

## poptBadOption() flags

#define | POPT_BADOPTION_NOALIAS (1 << 0) /*!< don't go into an alias */

## poptGetContext() flags

#define | POPT_CONTEXT_NO_EXEC (1 << 0) /*!< ignore exec expansions */
#define | POPT_CONTEXT_KEEP_FIRST (1 << 1) /*!< pay attention to argv[0] */
#define | POPT_CONTEXT_POSIXMEHARDER (1 << 2) /*!< options can't follow args */
#define | POPT_CONTEXT_ARG_OPTS (1 << 4) /*!< return args as options with value 0 */

## Auto-generated help/usage

poptOption | poptAliasOptions []
| Empty table marker to enable displaying popt alias/exec options.

## Typedefs

typedef poptItem_s * | poptItem
typedef poptContext_s * | poptContext
typedef poptOption * | poptOption
typedef void(* | poptCallbackType )(poptContext con, enum poptCallbackReason reason, const struct poptOption *opt, const char *arg, const void *data)

## Functions

poptContext | poptGetContext (const char *name, int argc, const char **argv, const struct poptOption *options, int flags)
void | poptResetContext (poptContext con)
int | poptGetNextOpt (poptContext con)
const char * | poptGetOptArg (poptContext con)
const char * | poptGetArg (poptContext con)
const char * | poptPeekArg (poptContext con)
const char ** | poptGetArgs (poptContext con)
const char * | poptBadOption (poptContext con, int flags)
poptContext | poptFreeContext (poptContext con)
int | poptStuffArgs (poptContext con, const char **argv)
int | poptAddAlias (poptContext con, struct poptAlias alias, int flags)
int | poptAddItem (poptContext con, poptItem newItem, int flags)
int | poptReadConfigFile (poptContext con, const char *fn)
int | poptReadDefaultConfig (poptContext con, int useEnv)
int | poptDupArgv (int argc, const char **argv, int *argcPtr, const char ***argvPtr)
int | poptParseArgvString (const char *s, int *argcPtr, const char ***argvPtr)
const char *const | poptStrerror (const int error)
void | poptSetExecPath (poptContext con, const char *path, int allowAbsolute)
void | poptPrintHelp (poptContext con, FILE *fp, int flags)
void | poptPrintUsage (poptContext con, FILE *fp, int flags)
void | poptSetOtherOptionHelp (poptContext con, const char *text)
const char * | poptGetInvocationName (poptContext con)
int | poptStrippedArgv (poptContext con, int argc, char **argv)

## Define Documentation

#define POPT_ARG_CALLBACK

Value:

    5

table-wide callback... must be set first in table; arg points to callback, descrip points to callback data to pass

Definition at line 30 of file popt.h.

Referenced by findOption(), invokeCallbacksOPTION(), invokeCallbacksPOST(), and invokeCallbacksPRE().

#define POPT_ARG_DOUBLE 9 /*!< arg will be converted to double */

| arg will be converted to double Definition at line 44 of file popt.h. Referenced by getArgDescrip(), poptGetNextOpt(), singleOptionDefaultValue(), and singleOptionHelp().

#define POPT_ARG_FLOAT 8 /*!< arg will be converted to float */

| arg will be converted to float Definition at line 42 of file popt.h. Referenced by getArgDescrip(), poptGetNextOpt(), singleOptionDefaultValue(), and singleOptionHelp().

#define POPT_ARG_INCLUDE_TABLE 4 /*!< arg points to table */

| arg points to table Definition at line 28 of file popt.h. Referenced by findOption(), invokeCallbacksOPTION(), invokeCallbacksPOST(), invokeCallbacksPRE(), maxArgWidth(), showShortOptions(), singleTableHelp(), and singleTableUsage().

#define POPT_ARG_INT 2 /*!< arg will be converted to int */

| arg will be converted to int Definition at line 24 of file popt.h. Referenced by getArgDescrip(), poptGetNextOpt(), singleOptionDefaultValue(), and singleOptionHelp().

#define POPT_ARG_INTL_DOMAIN

Value:

    6

set the translation domain for this table and any included tables; arg points to the domain string

Definition at line 35 of file popt.h.

Referenced by getTableTranslationDomain(), itemUsage(), and singleTableUsage().

#define POPT_ARG_LONG 3 /*!< arg will be converted to long */

| arg will be converted to long Definition at line 26 of file popt.h. Referenced by getArgDescrip(), poptGetNextOpt(), singleOptionDefaultValue(), and singleOptionHelp().

#define POPT_ARG_MASK 0x0000FFFF

| Definition at line 47 of file popt.h. Referenced by findOption(), getArgDescrip(), invokeCallbacksOPTION(), invokeCallbacksPOST(), invokeCallbacksPRE(), itemUsage(), maxArgWidth(), poptGetNextOpt(), showShortOptions(), singleOptionDefaultValue(), singleOptionHelp(), singleOptionUsage(), singleTableHelp(), and singleTableUsage().

#define POPT_ARG_NONE 0 /*!< no arg */

| no arg Definition at line 20 of file popt.h. Referenced by getArgDescrip(), poptGetNextOpt(), singleOptionDefaultValue(), and singleOptionHelp().

#define POPT_ARG_STRING 1 /*!< arg will be saved as string */

| arg will be saved as string Definition at line 22 of file popt.h. Referenced by configLine(), getArgDescrip(), poptGetNextOpt(), singleOptionDefaultValue(), and singleOptionHelp().

#define POPT_ARG_VAL 7 /*!< arg should take value val */

| arg should take value val Definition at line 40 of file popt.h. Referenced by getArgDescrip(), poptGetNextOpt(), singleOptionDefaultValue(), and singleOptionHelp().

#define POPT_ARGFLAG_AND 0x04000000 /*!< arg will be and'ed */

| arg will be and'ed Definition at line 67 of file popt.h. Referenced by poptSaveInt(), poptSaveLong(), and singleOptionHelp().

#define POPT_ARGFLAG_DOC_HIDDEN 0x40000000 /*!< don't show in help/usage */

| don't show in help/usage Definition at line 56 of file popt.h. Referenced by configLine(), itemHelp(), itemUsage(), maxArgWidth(), poptAddAlias(), singleTableHelp(), and singleTableUsage().

#define POPT_ARGFLAG_LOGICALOPS (POPT_ARGFLAG_OR|POPT_ARGFLAG_AND|POPT_ARGFLAG_XOR)

| Definition at line 75 of file popt.h. Referenced by poptSaveInt(), poptSaveLong(), and singleOptionHelp().

#define POPT_ARGFLAG_NAND 0x05000000 /*!< arg will be nand'ed */

| arg will be nand'ed Definition at line 69 of file popt.h.

#define POPT_ARGFLAG_NOR 0x09000000 /*!< arg will be nor'ed */

| arg will be nor'ed Definition at line 65 of file popt.h.

#define POPT_ARGFLAG_NOT 0x01000000 /*!< arg will be negated */

| arg will be negated Definition at line 73 of file popt.h. Referenced by poptSaveInt(), poptSaveLong(), and singleOptionHelp().

#define POPT_ARGFLAG_ONEDASH 0x80000000 /*!< allow -longoption */

| allow -longoption Definition at line 54 of file popt.h. Referenced by findOption(), maxArgWidth(), poptGetNextOpt(), singleOptionHelp(), and singleOptionUsage().

#define POPT_ARGFLAG_OPTIONAL 0x10000000 /*!< arg may be missing */

| arg may be missing Definition at line 60 of file popt.h. Referenced by maxArgWidth(), poptGetNextOpt(), and singleOptionHelp().

#define POPT_ARGFLAG_OR 0x08000000 /*!< arg will be or'ed */

| arg will be or'ed Definition at line 63 of file popt.h. Referenced by poptSaveInt(), poptSaveLong(), and singleOptionHelp().

#define POPT_ARGFLAG_SHOW_DEFAULT 0x00800000 /*!< show default value in --help */

| show default value in --help Definition at line 83 of file popt.h. Referenced by singleOptionHelp().

#define POPT_ARGFLAG_STRIP 0x20000000 /*!< strip this arg from argv(only applies to long args) */

| strip this arg from argv(only applies to long args) Definition at line 58 of file popt.h. Referenced by poptGetNextOpt().

#define POPT_ARGFLAG_XOR 0x02000000 /*!< arg will be xor'ed */

| arg will be xor'ed Definition at line 71 of file popt.h. Referenced by poptSaveInt(), poptSaveLong(), and singleOptionHelp().

#define POPT_BADOPTION_NOALIAS (1 << 0) /*!< don't go into an alias */

| don't go into an alias Definition at line 135 of file popt.h. Referenced by doSetupMacro(), main(), parseDescription(), parseFiles(), parseScript(), and poptBadOption().

#define POPT_BIT_CLR (POPT_ARG_VAL|POPT_ARGFLAG_NAND)

| clear arg bit(s) Definition at line 80 of file popt.h.

#define POPT_BIT_SET (POPT_ARG_VAL|POPT_ARGFLAG_OR)

| set arg bit(s) Definition at line 78 of file popt.h.

#define POPT_CBFLAG_CONTINUE 0x08000000 /*!< continue callbacks with option */

| continue callbacks with option Definition at line 101 of file popt.h. Referenced by invokeCallbacksOPTION().

#define POPT_CBFLAG_INC_DATA

Value:

    0x20000000

use data from the include line, not the subtable

Definition at line 96 of file popt.h.

Referenced by findOption().

#define POPT_CBFLAG_POST 0x40000000 /*!< call the callback after parse */

| call the callback after parse Definition at line 94 of file popt.h. Referenced by invokeCallbacksPOST().

#define POPT_CBFLAG_PRE 0x80000000 /*!< call the callback before parse */

| call the callback before parse Definition at line 92 of file popt.h. Referenced by invokeCallbacksPRE().

#define POPT_CBFLAG_SKIPOPTION 0x10000000 /*!< don't callback with option */

| don't callback with option Definition at line 99 of file popt.h. Referenced by invokeCallbacksOPTION().

#define POPT_CONTEXT_ARG_OPTS (1 << 4) /*!< return args as options with value 0 */

| return args as options with value 0 Definition at line 149 of file popt.h. Referenced by poptGetNextOpt().

#define POPT_CONTEXT_KEEP_FIRST (1 << 1) /*!< pay attention to argv[0] */

| pay attention to argv[0] Definition at line 145 of file popt.h. Referenced by poptGetContext(), and showHelpIntro().

#define POPT_CONTEXT_NO_EXEC (1 << 0) /*!< ignore exec expansions */

| ignore exec expansions Definition at line 143 of file popt.h. Referenced by handleExec().

#define POPT_CONTEXT_POSIXMEHARDER (1 << 2) /*!< options can't follow args */

| options can't follow args Definition at line 147 of file popt.h. Referenced by poptGetContext(), and poptGetNextOpt().

#define POPT_ERROR_BADNUMBER -17 /*!< invalid numeric value */

| invalid numeric value Definition at line 119 of file popt.h. Referenced by poptGetNextOpt(), and poptStrerror().

#define POPT_ERROR_BADOPERATION -19 /*!< mutually exclusive logical operations requested */

| mutually exclusive logical operations requested Definition at line 123 of file popt.h. Referenced by poptGetNextOpt(), poptSaveInt(), poptSaveLong(), and poptStrerror().

#define POPT_ERROR_BADOPT -11 /*!< unknown option */

| unknown option Definition at line 111 of file popt.h. Referenced by poptGetNextOpt(), and poptStrerror().

#define POPT_ERROR_BADQUOTE -15 /*!< error in paramter quoting */

| error in paramter quoting Definition at line 115 of file popt.h. Referenced by poptParseArgvString(), and poptStrerror().

#define POPT_ERROR_ERRNO -16 /*!< errno set, use strerror(errno) */

| errno set, use strerror(errno) Definition at line 117 of file popt.h. Referenced by execCommand(), poptReadConfigFile(), and poptStrerror().

#define POPT_ERROR_MALLOC -21 /*!< memory allocation failed */

| memory allocation failed Definition at line 127 of file popt.h. Referenced by execCommand(), poptDupArgv(), poptParseArgvString(), and poptStrerror().

#define POPT_ERROR_NOARG -10 /*!< missing argument */

| missing argument Definition at line 109 of file popt.h. Referenced by execCommand(), poptDupArgv(), poptGetNextOpt(), and poptStrerror().

#define POPT_ERROR_NULLARG -20 /*!< opt->arg should not be NULL */

| opt->arg should not be NULL Definition at line 125 of file popt.h. Referenced by poptSaveInt(), poptSaveLong(), and poptStrerror().

#define POPT_ERROR_OPTSTOODEEP -13 /*!< aliases nested too deeply */

| aliases nested too deeply Definition at line 113 of file popt.h. Referenced by handleAlias(), poptStrerror(), and poptStuffArgs().

#define POPT_ERROR_OVERFLOW -18 /*!< number too large or too small */

| number too large or too small Definition at line 121 of file popt.h. Referenced by poptGetNextOpt(), and poptStrerror().

## Typedef Documentation

typedef void(* poptCallbackType)(poptContext con, enum poptCallbackReason reason, const struct poptOption * opt, const char * arg, const void * data)

Table callback prototype.

Parameters:

  con | context
  reason | reason for callback
  opt | option that triggered callback
  arg |

Todo:
  Document.

  Document.

Parameters:

  data |

Definition at line 237 of file popt.h.

Referenced by findOption(), invokeCallbacksOPTION(), invokeCallbacksPOST(), invokeCallbacksPRE(), and poptGetNextOpt().

typedef struct poptContext_s* poptContext

Definition at line 210 of file popt.h.

Referenced by buildArgCallback(), configLine(), displayArgs(), doSetupMacro(), execCommand(), expandNextArg(), findNextArg(), handleAlias(), handleExec(), installArgCallback(), invokeCallbacksOPTION(), invokeCallbacksPOST(), invokeCallbacksPRE(), main(), parseDescription(), parseFiles(), parseScript(), poptAddAlias(), poptAddItem(), poptBadOption(), poptFreeContext(), poptGetArg(), poptGetArgs(), poptGetContext(), poptGetInvocationName(), poptGetNextOpt(), poptGetOptArg(), poptPeekArg(), poptPrintHelp(), poptPrintUsage(), poptReadConfigFile(), poptReadDefaultConfig(), poptResetContext(), poptSetExecPath(), poptSetOtherOptionHelp(), poptStripArg(), poptStrippedArgv(), poptStuffArgs(), queryArgCallback(), rpmQVSourceArgCallback(), showHelpIntro(), signArgCallback(), singleTableHelp(), and singleTableUsage().

typedef struct poptItem_s * poptItem

| A popt alias or exec argument for poptAddItem(). Referenced by configLine(), execCommand(), handleAlias(), handleExec(), itemHelp(), itemUsage(), poptAddAlias(), poptAddItem(), and poptFreeContext().

typedef struct poptOption* poptOption

| Definition at line 216 of file popt.h.

## Function Documentation

int poptAddAlias | ( | poptContext | con,
|  | struct poptAlias | alias,
|  | int | flags
| ) |

Add alias to context.

Todo:
  Pass alias by reference, not value.

Deprecated:
  Use poptAddItem instead.

Parameters:

  con | context
  alias | alias to add
  flags | (unused)

Returns:
  0 on success

Definition at line 1054 of file popt.c.

References alloca(), poptAlias::argc, poptAlias::argv, poptAlias::longName, POPT_ARGFLAG_DOC_HIDDEN, poptAddItem(), poptContext, poptItem, and poptAlias::shortName.

int poptAddItem | ( | poptContext | con,
|  | poptItem | newItem,
|  | int | flags
| ) |

Add alias/exec item to context.

Parameters:

  con | context
  item | alias/exec item to add
  flags | 0 for alias, 1 for exec

Returns:
  0 on success

Definition at line 1072 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, poptContext, poptItem, poptOption::shortName, poptOption::val, and xstrdup().

Referenced by configLine(), and poptAddAlias().

const char* poptBadOption | ( | poptContext | con,
|  | int | flags
| ) |

Return the option which caused the most recent error.

Parameters:

  con | context

Returns:
  offending option

Definition at line 1116 of file popt.c.

References poptContext_s::optionStack, poptContext_s::os, POPT_BADOPTION_NOALIAS, and poptContext.

Referenced by doSetupMacro(), main(), parseDescription(), parseFiles(), and parseScript().

int poptDupArgv | ( | int | argc,
|  | const char ** | argv,
|  | int * | argcPtr,
|  | const char *** | argvPtr
| ) |

Duplicate an argument array.

Note:
  : The argument array is malloc'd as a single area, so only argv must be free'd.

Parameters:

  argc | no. of arguments
  argv | argument array

Return values:

  argcPtr | address of returned no. of arguments
  argvPtr | address of returned argument array

Returns:
  0 on success, POPT_ERROR_NOARG on failure

Definition at line 13 of file poptparse.c.

References POPT_ERROR_MALLOC, and POPT_ERROR_NOARG.

Referenced by handleAlias(), poptParseArgvString(), and poptStuffArgs().

poptContext poptFreeContext | ( | poptContext | con | ) |

Destroy context.

Parameters:

  con | context

Returns:
  NULL always

Definition at line 1010 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, poptContext, poptItem, and poptResetContext().

Referenced by doSetupMacro(), main(), parseDescription(), parseFiles(), and parseScript().

const char* poptGetArg | ( | poptContext | con | ) |

Return current option's argument.

Parameters:

  con | context

Returns:
  option argument, NULL if no more options are available

Definition at line 980 of file popt.c.

References poptContext_s::leftovers, poptContext_s::nextLeftover, poptContext_s::numLeftovers, and poptContext.

Referenced by main(), parseDescription(), parseFiles(), and parseScript().

const char** poptGetArgs | ( | poptContext | con | ) |

Return remaining arguments.

Parameters:

  con | context

Returns:
  argument array, terminated with NULL

Definition at line 996 of file popt.c.

References poptContext_s::leftovers, poptContext_s::nextLeftover, poptContext_s::numLeftovers, and poptContext.

Referenced by main().

poptContext poptGetContext | ( | const char * | name,
|  | int | argc,
|  | const char ** | argv,
|  | const struct poptOption * | options,
|  | int | flags
| ) |

Initialize popt context.

Parameters:

  name |
  argc | no. of arguments
  argv | argument array
  options | address of popt option table
  flags | or'd POPT_CONTEXT_* bits

Returns:
  initialized popt context

Definition at line 148 of file popt.c.

References getenv(), invokeCallbacksPRE(), POPT_CONTEXT_KEEP_FIRST, POPT_CONTEXT_POSIXMEHARDER, and poptContext.

Referenced by doSetupMacro(), main(), parseDescription(), parseFiles(), and parseScript().

const char* poptGetInvocationName | ( | poptContext | con | ) |

Return argv[0] from context.

Parameters:

  con | context

Returns:
  argv[0]

Definition at line 1179 of file popt.c.

References optionStackEntry::argv, poptContext_s::os, and poptContext.

int poptGetNextOpt | ( | poptContext | con | ) |

Return value of next option found.

Parameters:

  con | context

Returns:
  next option val, -1 on last item, POPT_ERROR_* on error

Definition at line 659 of file popt.c.

References _ABS, _free(), alloca(), optionStackEntry::argb, optionStackEntry::argc, optionStackEntry::argv, cleanOSE(), poptContext_s::doExec, errno, execCommand(), EXIT_FAILURE, expandNextArg(), poptContext_s::finalArgv, poptContext_s::finalArgvAlloced, poptContext_s::finalArgvCount, findOption(), poptContext_s::flags, handleAlias(), handleExec(), invokeCallbacksOPTION(), invokeCallbacksPOST(), poptContext_s::leftovers, 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_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, poptCallbackType, poptContext, poptSaveInt(), poptSaveLong(), poptStripArg(), poptContext_s::restLeftover, and xstrdup().

Referenced by doSetupMacro(), main(), parseDescription(), parseFiles(), and parseScript().

const char* poptGetOptArg | ( | poptContext | con | ) |

Return next option argument (if any).

Parameters:

  con | context

Returns:
  option argument, NULL if no more options are available

Definition at line 968 of file popt.c.

References optionStackEntry::nextArg, poptContext_s::os, and poptContext.

Referenced by doSetupMacro(), and main().

int poptParseArgvString | ( | const char * | s,
|  | int * | argcPtr,
|  | const char *** | argvPtr
| ) |

Parse a string into an argument array. The parse allows ', ", and \ quoting, but ' is treated the same as " and both may include \ quotes.

Note:
  : The argument array is malloc'd as a single area, so only argv must be free'd.

Parameters:

  s | string to parse

Return values:

  argcPtr | address of returned no. of arguments
  argvPtr | address of returned argument array

Definition at line 54 of file poptparse.c.

References alloca(), POPT_ARGV_ARRAY_GROW_DELTA, POPT_ERROR_BADQUOTE, POPT_ERROR_MALLOC, and poptDupArgv().

Referenced by addOrAppendListEntry(), checkPassPhrase(), configLine(), doScript(), doSetupMacro(), ftpGlob(), generateDepends(), handlePreambleTag(), ignoreDep(), makeGPGSignature(), makePGPSignature(), parseDescription(), parseFiles(), parseScript(), rpmGlob(), verifyGPGSignature(), and verifyPGPSignature().

const char* poptPeekArg | ( | poptContext | con | ) |

Peek at current option's argument.

Parameters:

  con | context

Returns:
  option argument

Definition at line 988 of file popt.c.

References poptContext_s::leftovers, poptContext_s::nextLeftover, poptContext_s::numLeftovers, and poptContext.

Referenced by main(), parseDescription(), parseFiles(), and parseScript().

void poptPrintHelp | ( | poptContext | con,
|  | FILE * | fp,
|  | int | flags
| ) |

Print detailed description of options.

Parameters:

  con | context
  fp | ouput file handle
  flags | (unused)

Definition at line 473 of file popthelp.c.

References maxArgWidth(), poptContext_s::options, poptContext_s::otherHelp, POPT_, poptContext, showHelpIntro(), and singleTableHelp().

Referenced by displayArgs().

void poptPrintUsage | ( | poptContext | con,
|  | FILE * | fp,
|  | int | flags
| ) |

Print terse description of options.

Parameters:

  con | context
  fp | ouput file handle
  flags | (unused)

Definition at line 632 of file popthelp.c.

References poptContext_s::aliases, poptContext_s::execs, itemUsage(), poptContext_s::numAliases, poptContext_s::numExecs, poptContext_s::options, poptContext_s::otherHelp, poptContext, showHelpIntro(), showShortOptions(), and singleTableUsage().

Referenced by displayArgs().

int poptReadConfigFile | ( | poptContext | con,
|  | const char * | fn
| ) |

Read configuration file.

Parameters:

  con | context
  fn | file name to read

Returns:
  0 on success, POPT_ERROR_ERRNO on failure

Definition at line 93 of file poptconfig.c.

References alloca(), configLine(), errno, POPT_ERROR_ERRNO, poptContext, and SEEK_END.

Referenced by main(), and poptReadDefaultConfig().

int poptReadDefaultConfig | ( | poptContext | con,
|  | int | useEnv
| ) |

Read default configuration from /etc/popt and $HOME/.popt.

Parameters:

  con | context
  useEnv | (unused)

Returns:
  0 on success, POPT_ERROR_ERRNO on failure

Definition at line 162 of file poptconfig.c.

References alloca(), poptContext_s::appName, getenv(), poptContext, and poptReadConfigFile().

Referenced by main().

void poptResetContext | ( | poptContext | con | ) |

Reinitialize popt context.

Parameters:

  con | context

Definition at line 205 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, poptContext, and poptContext_s::restLeftover.

Referenced by main(), and poptFreeContext().

void poptSetExecPath | ( | poptContext | con,
|  | const char * | path,
|  | int | allowAbsolute
| ) |

Limit search for executables.

Parameters:

  con | context
  path | single path to search for executables
  allowAbsolute | absolute paths only?

Definition at line 47 of file popt.c.

References _free(), poptContext_s::execAbsolute, poptContext_s::execPath, poptContext, and xstrdup().

Referenced by main().

void poptSetOtherOptionHelp | ( | poptContext | con,
|  | const char * | text
| ) |

Provide text to replace default "[OPTION...]" in help/usage output.

Parameters:

  con | context
  text | replacement text

Definition at line 651 of file popthelp.c.

References _free(), poptContext_s::otherHelp, poptContext, and xstrdup().

const char* const poptStrerror | ( | const int | error | ) |

Return formatted error string for popt failure.

Parameters:

  error | popt error

Returns:
  error string

Definition at line 1128 of file popt.c.

References errno, 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().

Referenced by doSetupMacro(), main(), parseDescription(), parseFiles(), and parseScript().

int poptStrippedArgv | ( | poptContext | con,
|  | int | argc,
|  | char ** | argv
| ) |

Shuffle argv pointers to remove stripped args, returns new argc.

Parameters:

  con | context
  argc | no. of args
  argv | arg vector

Returns:
  new argc

Definition at line 1184 of file popt.c.

References poptContext_s::arg_strip, PBM_ISSET, and poptContext.

int poptStuffArgs | ( | poptContext | con,
|  | const char ** | argv
| ) |

Add arguments to context.

Parameters:

  con | context
  argv | argument array, NULL terminated

Returns:
  0 on success, POPT_ERROR_OPTSTOODEEP on failure

Definition at line 1156 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, poptContext, poptDupArgv(), and optionStackEntry::stuffed.

Referenced by main().

## Variable Documentation

struct poptOption poptAliasOptions[]

| Empty table marker to enable displaying popt alias/exec options. Definition at line 193 of file popt.h. Referenced by singleTableHelp().