popthelp.c File Reference

#include "system.h"
#include <sys/ioctl.h>
#include <wchar.h>
#include "poptint.h"

Include dependency graph for popthelp.c:

Go to the source code of this file.

Data Structures

struct  columns_s
struct  poptDone_s
 Keep track of option tables already processed. More...

Defines

#define POPT_USE_TIOCGWINSZ
#define POPT_WCHAR_HACK
#define _POPTHELP_MAXLINE   ((size_t)79)
#define prtlong   (opt->longName != NULL)
#define prtlong   (opt->longName != NULL)

Typedefs

typedef struct columns_scolumns_t
typedef struct poptDone_spoptDone
 Keep track of option tables already processed.

Functions

static void displayArgs (poptContext con, enum poptCallbackReason foo, struct poptOption *key, const char *arg, void *data)
 Display arguments.
static size_t maxColumnWidth (FILE *fp)
 Return no.
static size_t stringDisplayWidth (const char *s)
 Determine number of display characters in a string.
static const char * getTableTranslationDomain (const struct poptOption *opt)
static const char * getArgDescrip (const struct poptOption *opt, const char *translation_domain)
static char * singleOptionDefaultValue (size_t lineLength, const struct poptOption *opt, const char *translation_domain)
 Display default value for an option.
static void singleOptionHelp (FILE *fp, columns_t columns, const struct poptOption *opt, const char *translation_domain)
 Display help text for an option.
static size_t maxArgWidth (const struct poptOption *opt, const char *translation_domain)
 Find display width for longest argument string.
static void itemHelp (FILE *fp, poptItem items, int nitems, columns_t columns, const char *translation_domain)
 Display popt alias and exec help.
static void singleTableHelp (poptContext con, FILE *fp, const struct poptOption *table, columns_t columns, const char *translation_domain)
 Display help text for a table of options.
static size_t showHelpIntro (poptContext con, FILE *fp)
void poptPrintHelp (poptContext con, FILE *fp, int flags)
 Print detailed description of options.
static size_t singleOptionUsage (FILE *fp, columns_t columns, const struct poptOption *opt, const char *translation_domain)
 Display usage text for an option.
static size_t itemUsage (FILE *fp, columns_t columns, poptItem item, int nitems, const char *translation_domain)
 Display popt alias and exec usage.
static size_t singleTableUsage (poptContext con, FILE *fp, columns_t columns, const struct poptOption *opt, const char *translation_domain, poptDone done)
 Display usage text for a table of options.
static size_t showShortOptions (const struct poptOption *opt, FILE *fp, char *str)
 Return concatenated short options for display.
void poptPrintUsage (poptContext con, FILE *fp, int flags)
 Print terse description of options.
void poptSetOtherOptionHelp (poptContext con, const char *text)
 Provide text to replace default "[OPTION...]" in help/usage output.

Variables

struct poptOption poptAliasOptions []
 Empty table marker to enable displaying popt alias/exec options.
struct poptOption poptHelpOptions []
 Auto help table options.
static struct poptOption poptHelpOptions2 []
struct poptOptionpoptHelpOptionsI18N = poptHelpOptions2


Detailed Description

Definition in file popthelp.c.


Define Documentation

#define _POPTHELP_MAXLINE   ((size_t)79)

Definition at line 100 of file popthelp.c.

Referenced by maxColumnWidth().

#define POPT_USE_TIOCGWINSZ

Definition at line 13 of file popthelp.c.

#define POPT_WCHAR_HACK

Definition at line 18 of file popthelp.c.

#define prtlong   (opt->longName != NULL)

#define prtlong   (opt->longName != NULL)


Typedef Documentation

typedef struct columns_s * columns_t

typedef struct poptDone_s * poptDone

Keep track of option tables already processed.


Function Documentation

static void displayArgs ( poptContext  con,
enum poptCallbackReason  foo,
struct poptOption key,
const char *  arg,
void *  data 
) [static]

Display arguments.

Parameters:
con context
foo (unused)
key option(s)
arg (unused)
data (unused)

Definition at line 36 of file popthelp.c.

References poptFreeContext(), poptPrintHelp(), poptPrintUsage(), and poptOption::shortName.

static const char* getArgDescrip ( const struct poptOption opt,
const char *  translation_domain 
) [static]

Parameters:
opt option(s)
translation_domain translation domain

< EXPERIMENTAL: return (*arg) (argc, argv)

< dupe'd arg appended to realloc'd argv array.

< no arg

< arg should take value val

< arg ==> int

< arg ==> long

< arg ==> long long

< arg will be saved as string

< arg ==> float

< arg ==> double

< EXPERIMENTAL: return (*arg) (argc, argv)

< dupe'd arg appended to realloc'd argv array.

Definition at line 174 of file popthelp.c.

References poptOption::argDescrip, D_, N_, POPT_, POPT_ARG_ARGV, POPT_ARG_DOUBLE, POPT_ARG_FLOAT, POPT_ARG_INT, POPT_ARG_LONG, POPT_ARG_LONGLONG, POPT_ARG_MAINCALL, POPT_ARG_NONE, POPT_ARG_STRING, POPT_ARG_VAL, and poptArgType.

Referenced by maxArgWidth(), singleOptionHelp(), and singleOptionUsage().

static const char* getTableTranslationDomain ( const struct poptOption opt  )  [static]

Parameters:
opt option(s)

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

Definition at line 158 of file popthelp.c.

References poptOption::arg, poptOption::argInfo, poptOption::longName, POPT_ARG_INTL_DOMAIN, and poptOption::shortName.

Referenced by singleTableHelp().

static void itemHelp ( FILE *  fp,
poptItem  items,
int  nitems,
columns_t  columns,
const char *  translation_domain 
) [static]

Display popt alias and exec help.

Parameters:
fp output file handle
items alias/exec array
nitems no. of alias/exec entries
columns output display width control
translation_domain translation domain

< don't show in help/usage

Definition at line 553 of file popthelp.c.

References F_ISSET, poptOption::longName, poptItem_s::option, poptOption::shortName, and singleOptionHelp().

Referenced by singleTableHelp().

static size_t itemUsage ( FILE *  fp,
columns_t  columns,
poptItem  item,
int  nitems,
const char *  translation_domain 
) [static]

Display popt alias and exec usage.

Parameters:
fp output file handle
columns output display width control
item alias/exec array
nitems no. of ara/exec entries
translation_domain translation domain

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

< don't show in help/usage

Definition at line 744 of file popthelp.c.

References poptOption::arg, columns_s::cur, F_ISSET, poptOption::longName, poptItem_s::option, POPT_ARG_INTL_DOMAIN, poptArgType, poptOption::shortName, and singleOptionUsage().

Referenced by poptPrintUsage().

static size_t maxArgWidth ( const struct poptOption opt,
const char *  translation_domain 
) [static]

Find display width for longest argument string.

Parameters:
opt option(s)
translation_domain translation domain
Returns:
display width

< arg points to table

< don't show in help/usage

< allow -longoption

< arg may be missing

Definition at line 502 of file popthelp.c.

References poptOption::arg, F_ISSET, getArgDescrip(), poptOption::longName, POPT_ARG_INCLUDE_TABLE, poptArgType, poptOption::shortName, and stringDisplayWidth().

Referenced by poptPrintHelp().

static size_t maxColumnWidth ( FILE *  fp  )  [static]

Return no.

of columns in output window.

Parameters:
fp FILE
Returns:
no. of columns

Definition at line 112 of file popthelp.c.

References _POPTHELP_MAXLINE.

Referenced by poptPrintHelp(), and poptPrintUsage().

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 650 of file popthelp.c.

References columns_s::cur, columns_s::max, maxArgWidth(), maxColumnWidth(), poptContext_s::options, poptContext_s::otherHelp, POPT_, POPT_fprintf, 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 873 of file popthelp.c.

References poptContext_s::aliases, columns_s::cur, poptContext_s::execs, itemUsage(), columns_s::max, maxColumnWidth(), poptContext_s::numAliases, poptContext_s::numExecs, poptContext_s::options, poptContext_s::otherHelp, showHelpIntro(), showShortOptions(), and singleTableUsage().

Referenced by displayArgs().

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 912 of file popthelp.c.

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

static size_t showHelpIntro ( poptContext  con,
FILE *  fp 
) [static]

Parameters:
con context
fp output file handle

< pay attention to argv[0]

Definition at line 627 of file popthelp.c.

References optionStackEntry::argv, poptContext_s::flags, poptContext_s::optionStack, POPT_, POPT_CONTEXT_KEEP_FIRST, and POPT_fprintf.

Referenced by poptPrintHelp(), and poptPrintUsage().

static size_t showShortOptions ( const struct poptOption opt,
FILE *  fp,
char *  str 
) [static]

Return concatenated short options for display.

Todo:
Sub-tables should be recursed.
Parameters:
opt option(s)
fp output file handle
Return values:
str concatenation of short options
Returns:
length of display string

< don't show in help/usage

< arg points to table

Definition at line 834 of file popthelp.c.

References poptOption::arg, F_ISSET, poptOption::longName, POPT_ARG_INCLUDE_TABLE, poptArgType, and poptOption::shortName.

Referenced by poptPrintUsage().

static char* singleOptionDefaultValue ( size_t  lineLength,
const struct poptOption opt,
const char *  translation_domain 
) [static]

Display default value for an option.

Parameters:
lineLength display positions remaining
opt option(s)
translation_domain translation domain
Returns:

< arg should take value val

< arg ==> int

< arg ==> long

< arg ==> long long

< arg ==> float

< arg ==> double

< EXPERIMENTAL: return (*arg) (argc, argv)

< dupe'd arg appended to realloc'd argv array.

< arg will be saved as string

< no arg

Definition at line 226 of file popthelp.c.

References _free(), poptOption::arg, poptArg_u::argv, D_, poptArg_u::doublep, poptArg_u::floatp, poptArg_u::intp, poptArg_u::longlongp, poptArg_u::longp, POPT_ARG_ARGV, POPT_ARG_DOUBLE, POPT_ARG_FLOAT, POPT_ARG_INT, POPT_ARG_LONG, POPT_ARG_LONGLONG, POPT_ARG_MAINCALL, POPT_ARG_NONE, POPT_ARG_STRING, POPT_ARG_VAL, poptArgType, and stpcpy().

Referenced by singleOptionHelp().

static void singleOptionHelp ( FILE *  fp,
columns_t  columns,
const struct poptOption opt,
const char *  translation_domain 
) [static]

Display help text for an option.

Parameters:
fp output file handle
columns output display width control
opt option(s)
translation_domain translation domain

< allow -longoption

< EXPERIMENTAL: return (*arg) (argc, argv)

< allow -longoption

< arg may be missing

< show default value in --help

< no arg

< arg should take value val

< arg ==> int

< arg ==> long

< arg ==> long long

< arg ==> float

< arg ==> double

< arg will be saved as string

< EXPERIMENTAL: return (*arg) (argc, argv)

< dupe'd arg appended to realloc'd argv array.

< arg may be missing

Definition at line 303 of file popthelp.c.

References _free(), _isspaceptr, poptOption::argDescrip, columns_s::cur, D_, poptOption::descrip, F_ISSET, getArgDescrip(), poptOption::longName, columns_s::max, POPT_ARG_ARGV, POPT_ARG_DOUBLE, POPT_ARG_FLOAT, POPT_ARG_INT, POPT_ARG_LONG, POPT_ARG_LONGLONG, POPT_ARG_MAINCALL, POPT_ARG_NONE, POPT_ARG_STRING, POPT_ARG_VAL, POPT_ARGFLAG_AND, POPT_ARGFLAG_OR, POPT_ARGFLAG_XOR, POPT_fprintf, POPT_next_char(), POPT_prev_char(), poptArgType, prtlong, poptOption::shortName, singleOptionDefaultValue(), stpcpy(), stringDisplayWidth(), poptOption::val, and xstrdup.

Referenced by itemHelp(), and singleTableHelp().

static size_t singleOptionUsage ( FILE *  fp,
columns_t  columns,
const struct poptOption opt,
const char *  translation_domain 
) [static]

Display usage text for an option.

Parameters:
fp output file handle
columns output display width control
opt option(s)
translation_domain translation domain

< allow -longoption

< allow -longoption

Definition at line 678 of file popthelp.c.

References poptOption::argDescrip, columns_s::cur, F_ISSET, getArgDescrip(), poptOption::longName, columns_s::max, prtlong, poptOption::shortName, and stringDisplayWidth().

Referenced by itemUsage(), and singleTableUsage().

static void singleTableHelp ( poptContext  con,
FILE *  fp,
const struct poptOption table,
columns_t  columns,
const char *  translation_domain 
) [static]

Display help text for a table of options.

Parameters:
con context
fp output file handle
table option(s)
columns output display width control
translation_domain translation domain

< don't show in help/usage

< arg points to table

Definition at line 580 of file popthelp.c.

References poptContext_s::aliases, poptOption::arg, D_, poptOption::descrip, poptContext_s::execs, F_ISSET, getTableTranslationDomain(), itemHelp(), poptOption::longName, poptContext_s::numAliases, poptContext_s::numExecs, POPT_ARG_INCLUDE_TABLE, POPT_fprintf, poptArgType, poptOption::shortName, and singleOptionHelp().

Referenced by poptPrintHelp().

static size_t singleTableUsage ( poptContext  con,
FILE *  fp,
columns_t  columns,
const struct poptOption opt,
const char *  translation_domain,
poptDone  done 
) [static]

Display usage text for a table of options.

Parameters:
con context
fp output file handle
columns output display width control
opt option(s)
translation_domain translation domain
done tables already processed
Returns:

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

< arg points to table

< don't show in help/usage

Definition at line 787 of file popthelp.c.

References poptOption::arg, columns_s::cur, F_ISSET, poptOption::longName, poptDone_s::maxopts, poptDone_s::nopts, poptDone_s::opts, POPT_ARG_INCLUDE_TABLE, POPT_ARG_INTL_DOMAIN, poptArgType, poptOption::shortName, and singleOptionUsage().

Referenced by poptPrintUsage().

static size_t stringDisplayWidth ( const char *  s  )  [inline, static]

Determine number of display characters in a string.

Parameters:
s string
Returns:
no. of display characters.

Definition at line 135 of file popthelp.c.

References POPT_next_char().

Referenced by maxArgWidth(), singleOptionHelp(), and singleOptionUsage().


Variable Documentation

Initial value:

 {
     { NULL, '\0', 0, NULL, 0, NULL, NULL } 
}
Empty table marker to enable displaying popt alias/exec options.

Definition at line 64 of file popthelp.c.

Initial value:

 {
  { NULL, '\0',  5U  , (void *)displayArgs, 0, NULL, NULL },
  { "help", '?', 0, NULL, (int)'?',  "Show this help message" , NULL },
  { "usage", '\0', 0, NULL, (int)'u',  "Display brief usage message" , NULL },
     { NULL, '\0', 0, NULL, 0, NULL, NULL } 
}
Auto help table options.

Definition at line 73 of file popthelp.c.

struct poptOption poptHelpOptions2[] [static]

Initial value:

 {

  { NULL, '\0',  6U  , PACKAGE, 0, NULL, NULL},

  { NULL, '\0',  5U  , (void *)displayArgs, 0, NULL, NULL },
  { "help", '?', 0, NULL, (int)'?',  "Show this help message" , NULL },
  { "usage", '\0', 0, NULL, (int)'u',  "Display brief usage message" , NULL },




  { "", '\0',   0, NULL, 0,  "Terminate options" , NULL },
     { NULL, '\0', 0, NULL, 0, NULL, NULL } 
}

Definition at line 81 of file popthelp.c.

Definition at line 97 of file popthelp.c.


Generated for popt by  doxygen 1.5.9