char * _XGetLCValues(XLCd lcd, ...) { va_list var; XlcArgList args; char *ret; int num_args; XLCdPublicMethodsPart *methods = XLC_PUBLIC_METHODS(lcd); va_start(var, lcd); _XlcCountVaList(var, &num_args); va_end(var); va_start(var, lcd); _XlcVaToArgList(var, num_args, &args); va_end(var); if (args == (XlcArgList) NULL) return (char *) NULL; ret = (*methods->get_values)(lcd, args, num_args); Xfree(args); return ret; }
char * XSetOCValues(XOC oc, ...) { va_list var; XlcArgList args; char *ret; int num_args; va_start(var, oc); _XlcCountVaList(var, &num_args); va_end(var); va_start(var, oc); _XlcVaToArgList(var, num_args, &args); va_end(var); if (args == (XlcArgList) NULL) return (char *) NULL; ret = (*oc->methods->set_values)(oc, args, num_args); Xfree(args); return ret; }
/* Retrieves a number of attributes of an XlcCharSet. Return NULL if successful, otherwise the name of the first argument specifiying a nonexistent attribute. */ char * _XlcGetCSValues(XlcCharSet charset, ...) { va_list var; XlcArgList args; char *ret; int num_args; va_start(var, charset); _XlcCountVaList(var, &num_args); va_end(var); va_start(var, charset); _XlcVaToArgList(var, num_args, &args); va_end(var); if (args == (XlcArgList) NULL) return (char *) NULL; ret = get_values(charset, args, num_args); Xfree(args); return ret; }
XOC XCreateOC(XOM om, ...) { va_list var; XlcArgList args; XOC oc; int num_args; va_start(var, om); _XlcCountVaList(var, &num_args); va_end(var); va_start(var, om); _XlcVaToArgList(var, num_args, &args); va_end(var); if (args == (XlcArgList) NULL) return (XOC) NULL; oc = (*om->methods->create_oc)(om, args, num_args); Xfree(args); if (oc) { oc->core.next = om->core.oc_list; om->core.oc_list = oc; } return oc; }