To get a value from .Xdefaults use
char* XGetDefault(display,program_name, option) char *program_name; char *option;To parse a geometry string, use
int XGetGeometry(geometry,x,y,width,height); int *x,*y; /*RETURN */ unsigned int *width, *height; /*RETURN*/The bits in the returned integer show how many values have been returned. The bits are
XValue,YValue, WidthValue, HeightValue, XNegative
and YNegative.
If you are likely to have many possible command line arguments,
use XrmInitialise() to initialise a resource manager, then
XrmDatabase XrmGetFileDatabase(resource_file) char *resource_file;This will create a database from a file than has a format like
.Xdefaults. To merge in any arguments on the command line, use
void XrmParseCommand(db,table, table_length, prog_name, argc, argv); XrmDatabase db; XrmOptionDescList table; /* a table of possible options */ int table_length; char *prog_name; int *argc /* supplies the number of arguments, returns number unprocessed*/ char **argv; /* supplies arguments, returns those unprocessed */
table is a pointer to an array of structures of the following type
typedef struct {
char *option; /* the command line flag */
char *resouce; /* the .X11defaults style string */
XrmOptionKind argkind; /* XrmoptionSepArg, XrmoptionStickyArg,etc
(see /usr/include/X11/Xresource.h */
caddr_t value; /* what to use if argkind is XrmoptionNoArg
(use NULL otherwise) */
} XrmOptionDescRec