Query: xrmparsecommand
OS: hpux
Section: 3
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
XrmParseCommand() XrmParseCommand()
Name
XrmParseCommand - load a resource database from command-line arguments.
Synopsis
void XrmParseCommand(database, table, table_count, name, argc_in_out, argv_in_out)
XrmDatabase *database;
XrmOptionDescList table;
int table_count;
char *name;
int *argc_in_out;
char **argv_in_out;
Arguments
database Specifies a pointer to the resource database. If database contains NULL, a new resource database is created and a pointer to it
is returned in database. If a database is created, it is created in the current locale.
table Specifies table of command-line arguments to be parsed.
table_count
Specifies the number of entries in the table.
name Specifies the application name.
argc_in_out
Before the call, specifies the number of arguments. After the call, returns the number of arguments not parsed.
argv_in_out
Before the call, specifies a pointer to the command-line arguments. After the call, returns a pointer to a string containing the
command-line arguments that could not be parsed.
Description
XrmParseCommand() parses an (argc_in_out, argv_in_out) pair according to the specified option table, loads recognized options into the
specified database with the type "String" and modifies the (argc_in_out, argv_in_out) pair to remove all recognized options.
The specified table is used to parse the command line. Recognized entries in the table are removed from argv_in_out, and entries are made
in the specified resource database. The table entries contain information on the option string, the option name, which style of option and
a value to provide if the option kind is XrmoptionNoArg. See the example table below. The option names are compared byte-for-byte to
arguments in argv, independent of any locale. The resource values given in the table are stored in the resource database without modifica-
tion. All resource database entries are created using a "String" representation type.
argc_in_out specifies the number of arguments in argv_in_out and is set to the remaining number of arguments that were not parsed. name
should be the name of your application for use in building the database entry. name is prepended to the specifier in the option table
before storing the specification. No separating (binding) character is inserted. The table must contain either a dot (.) or an asterisk
(*) as the first character in each specifier entry. The specifier entry can contain multiple components. If the name arguments and the
specifiers are not in the Host Portable Character Encoding, the result is implementation-dependent.
The following is a typical options table:
static XrmOptionDescRec opTable[ ] = {
{"-background", "*background", XrmoptionSepArg, (XPointer) NULL},
{"-bd", "*borderColor", XrmoptionSepArg, (XPointer) NULL},
{"-bg", "*background", XrmoptionSepArg, (XPointer) NULL},
{"-borderwidth", "*TopLevelShell.borderWidth", XrmoptionSepArg, (XPointer) NULL},
{"-bordercolor", "*borderColor", XrmoptionSepArg, (XPointer) NULL},
{"-bw", "*TopLevelShell.borderWidth", XrmoptionSepArg, (XPointer) NULL},
{"-display", ".display", XrmoptionSepArg, (XPointer) NULL},
{"-fg", "*foreground", XrmoptionSepArg, (XPointer) NULL},
{"-fn", "*font", XrmoptionSepArg, (XPointer) NULL},
{"-font", "*font", XrmoptionSepArg, (XPointer) NULL},
{"-foreground", "*foreground", XrmoptionSepArg, (XPointer) NULL},
{"-geometry", ".TopLevelShell.geometry", XrmoptionSepArg, (XPointer) NULL},
{"-iconic", ".TopLevelShell.iconic", XrmoptionNoArg, (XPointer) "on"},
{"-name", ".name", XrmoptionSepArg, (XPointer) NULL},
{"-reverse", "*reverseVideo", XrmoptionNoArg, (XPointer) "on"},
{"-rv", "*reverseVideo", XrmoptionNoArg, (XPointer) "on"},
{"-synchronous", ".synchronous", XrmoptionNoArg, (XPointer) "on"},
{"-title", ".TopLevelShell.title", XrmoptionSepArg, (XPointer) NULL},
{"-xrm", NULL, XrmoptionResArg, (XPointer) NULL},
};
In this table, if the -background (or -bg) option is used to set background colors, the stored resource specifier will match all resources
of attribute background. If the -borderwidth option is used, the stored resource specifier applies only to border width attributes of
class TopLevelShell (that is, outermost windows, including pop-up windows). If the -title option is used to set a window name, only the
topmost application windows receive the resource.
When parsing the command line, any unique unambiguous abbreviation for an option name in the table is considered a match for the option.
Note that uppercase and lowercase matter.
For more information, see Volume One, Chapter 13, Managing User Preferences.
Structures
XrmDatabase is a pointer to an opaque data type.
typedef enum {
XrmoptionNoArg, /* value is specified in OptionDescRec.value */
XrmoptionIsArg, /* value is the option string itself */
XrmoptionStickyArg, /* value is chars immediately following option */
XrmoptionSepArg, /* value is next argument in argv */
XrmoptionResArg, /* resource and value in next argument in argv */
XrmoptionSkipArg, /* ignore this option and next argument in argv */
XrmoptionSkipLine, /* ignore this option and the rest of argv */
XrmoptionSkipNArgs /* new in R4: ignore this option, skip */
/* number specified in next argument */
} XrmOptionKind;
typedef struct {
char *option; /* option specification string in argv */
char *resourceName; /* binding & resource name (w/out application name) */
XrmOptionKind argKind; /* which style of option it is */
XPointer value; /* value to provide if XrmoptionNoArg */
} XrmOptionDescRec, *XrmOptionDescList;
See Also
XrmDestroyDatabase(), XrmGetFileDatabase(), XrmGetResource(), XrmGetStringDatabase(), XrmInitialize(), XrmMergeDatabases(), XrmPutFile-
Database(), XrmPutLineResource(), XrmPutResource(), XrmPutStringResource(), XrmQGetResource(), XrmQGetSearchList(), XrmQGetSearchRe-
source(), XrmQPutResource(), XrmQPutStringResource(), XrmQuarkToString(), XrmStringToBindingQuarkList(), XrmStringToQuarkList(), XrmString-
ToQuark(), XrmUniqueQuark().
Xlib - Resource Manager XrmParseCommand()