int main (int argc, char *argv[]) { Widget toplevel; char *iname = NONAME, *cname = NONAME; XtAppContext xtcontext; XrmName names[101]; XrmClass classes[101]; int i; int mode = XrmEnumAllLevels; ProgramName = argv[0]; if (argc > 1 && argv[1][0] != '-') { cname = argv[1]; if (argc > 2 && argv[2][0] != '-') iname = argv[2]; } XrmStringToClassList(cname, classes); XrmStringToNameList(iname, names); for (i = 0; names[i]; i++) ; if (!i || classes[i] || !classes[i-1]) usage (); argv[0] = XrmNameToString(names[0]); toplevel = XtAppInitialize(&xtcontext, XrmClassToString(classes[0]), NULL, 0, &argc, argv, NULL, NULL, 0); iname = NULL; cname = NULL; for (i = 1; i < argc; i++) { if (!strcmp(argv[i], "-1")) mode = XrmEnumOneLevel; else if (!strcmp(argv[i], "-V")) { printf("%s\n", PACKAGE_STRING); exit(0); } else if (argv[i][0] == '-') usage(); else if (!cname) cname = argv[i]; else if (!iname) iname = argv[i]; else usage(); } if (!iname) { XtGetApplicationNameAndClass(XtDisplay(toplevel), &iname, &cname); names[0] = XrmStringToName(iname); } XrmQString = XrmPermStringToQuark("String"); XrmEnumerateDatabase(XtDatabase(XtDisplay(toplevel)), names, classes, mode, DumpEntry, (XPointer)stdout); return (0); }
Boolean XtIsObject( Widget object) { WidgetClass wc; String class_name; /* perform basic sanity checks */ if (object->core.self != object || object->core.xrm_name == NULLQUARK) return False; LOCK_PROCESS; wc = object->core.widget_class; if (wc->core_class.class_name == NULL || wc->core_class.xrm_class == NULLQUARK || (class_name = XrmClassToString(wc->core_class.xrm_class)) == NULL || strcmp(wc->core_class.class_name, class_name) != 0) { UNLOCK_PROCESS; return False; } UNLOCK_PROCESS; if (XtIsWidget(object)) { if (object->core.name == NULL || (class_name = XrmNameToString(object->core.xrm_name)) == NULL || strcmp(object->core.name, class_name) != 0) return False; } return True; }