void config_parse_xresource_options ( xcb_stuff *xcb ) { xcb_xrm_database_t *xDB = xcb_xrm_database_from_default ( xcb->connection ); if ( xDB ) { __config_parse_xresource_options ( xDB, CONFIG_XRESOURCES ); __config_parse_xresource_options_dynamic ( xDB, CONFIG_XRESOURCES ); xcb_xrm_database_free ( xDB ); } }
static int test_from_file(void) { bool err = false; xcb_xrm_database_t *database; char *path; const char *srcdir; /* Set by automake, needed for out-of-tree builds */ srcdir = getenv("srcdir"); if (srcdir == NULL) srcdir = "."; /* Test xcb_xrm_database_from_file with relative #include directives */ asprintf(&path, "%s/tests/resources/1/xresources1", srcdir); database = xcb_xrm_database_from_file(path); free(path); err |= check_database(database, "First: 1\n" "Third: 3\n" "Second: 2\n"); xcb_xrm_database_free(database); /* Test that the inclusion depth is limited */ asprintf(&path, "%s/tests/resources/3/loop.xresources", srcdir); database = xcb_xrm_database_from_file(path); free(path); err |= check_database(database, "First: 1\n" "Second: 2\n"); xcb_xrm_database_free(database); /* Test xcb_xrm_database_from_default for resolution of $HOME. */ set_env_var_to_path("HOME", srcdir, "tests/resources/2"); set_env_var_to_path("XENVIRONMENT", srcdir, "tests/resources/2/xenvironment"); database = xcb_xrm_database_from_default(conn); err |= check_database(database, "First: 1\n" "Second: 2\n"); xcb_xrm_database_free(database); /* Test xcb_xrm_database_from_resource_manager. */ xcb_change_property_checked(conn, XCB_PROP_MODE_REPLACE, screen->root, XCB_ATOM_RESOURCE_MANAGER, XCB_ATOM_STRING, 8, strlen("First: 1\n*Second: 2") + 1, "First: 1\n*Second: 2\0"); xcb_flush(conn); database = xcb_xrm_database_from_resource_manager(conn, screen); err |= check_database(database, "First: 1\n" "*Second: 2\n"); xcb_xrm_database_free(database); return err; }