+ xrdb = x_load_resources (dpyinfo->display, xrm_option,
+ resource_name, EMACS_CLASS);
+#ifdef HAVE_XRMSETDATABASE
+ XrmSetDatabase (dpyinfo->display, xrdb);
+#else
+ dpyinfo->display->db = xrdb;
+#endif
+ /* Put thr rdb where we can find it in a way that works on
+ all versions. */
+ dpyinfo->xrdb = xrdb;
+
+ dpyinfo->screen = ScreenOfDisplay (dpyinfo->display,
+ DefaultScreen (dpyinfo->display));
+ dpyinfo->visual = select_visual (dpyinfo->display, dpyinfo->screen,
+ &dpyinfo->n_planes);
+ dpyinfo->height = HeightOfScreen (dpyinfo->screen);
+ dpyinfo->width = WidthOfScreen (dpyinfo->screen);
+ dpyinfo->root_window = RootWindowOfScreen (dpyinfo->screen);
+ dpyinfo->grabbed = 0;
+ dpyinfo->reference_count = 0;
+ dpyinfo->icon_bitmap_id = -1;
+ dpyinfo->n_fonts = 0;
+ dpyinfo->font_table_size = 0;
+ dpyinfo->bitmaps = 0;
+ dpyinfo->bitmaps_size = 0;
+ dpyinfo->bitmaps_last = 0;
+ dpyinfo->scratch_cursor_gc = 0;
+ dpyinfo->mouse_face_mouse_frame = 0;
+ dpyinfo->mouse_face_deferred_gc = 0;
+ dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1;
+ dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1;
+ dpyinfo->mouse_face_face_id = 0;
+ dpyinfo->mouse_face_window = Qnil;
+ dpyinfo->mouse_face_mouse_x = dpyinfo->mouse_face_mouse_y = 0;
+ dpyinfo->mouse_face_defer = 0;
+
+ dpyinfo->Xatom_wm_protocols
+ = XInternAtom (dpyinfo->display, "WM_PROTOCOLS", False);
+ dpyinfo->Xatom_wm_take_focus
+ = XInternAtom (dpyinfo->display, "WM_TAKE_FOCUS", False);
+ dpyinfo->Xatom_wm_save_yourself
+ = XInternAtom (dpyinfo->display, "WM_SAVE_YOURSELF", False);
+ dpyinfo->Xatom_wm_delete_window
+ = XInternAtom (dpyinfo->display, "WM_DELETE_WINDOW", False);
+ dpyinfo->Xatom_wm_change_state
+ = XInternAtom (dpyinfo->display, "WM_CHANGE_STATE", False);
+ dpyinfo->Xatom_wm_configure_denied
+ = XInternAtom (dpyinfo->display, "WM_CONFIGURE_DENIED", False);
+ dpyinfo->Xatom_wm_window_moved
+ = XInternAtom (dpyinfo->display, "WM_MOVED", False);
+ dpyinfo->Xatom_editres
+ = XInternAtom (dpyinfo->display, "Editres", False);
+ dpyinfo->Xatom_CLIPBOARD
+ = XInternAtom (dpyinfo->display, "CLIPBOARD", False);
+ dpyinfo->Xatom_TIMESTAMP
+ = XInternAtom (dpyinfo->display, "TIMESTAMP", False);
+ dpyinfo->Xatom_TEXT
+ = XInternAtom (dpyinfo->display, "TEXT", False);
+ dpyinfo->Xatom_DELETE
+ = XInternAtom (dpyinfo->display, "DELETE", False);
+ dpyinfo->Xatom_MULTIPLE
+ = XInternAtom (dpyinfo->display, "MULTIPLE", False);
+ dpyinfo->Xatom_INCR
+ = XInternAtom (dpyinfo->display, "INCR", False);
+ dpyinfo->Xatom_EMACS_TMP
+ = XInternAtom (dpyinfo->display, "_EMACS_TMP_", False);
+ dpyinfo->Xatom_TARGETS
+ = XInternAtom (dpyinfo->display, "TARGETS", False);
+ dpyinfo->Xatom_NULL
+ = XInternAtom (dpyinfo->display, "NULL", False);
+ dpyinfo->Xatom_ATOM_PAIR
+ = XInternAtom (dpyinfo->display, "ATOM_PAIR", False);
+
+ connection = ConnectionNumber (dpyinfo->display);
+ dpyinfo->connection = connection;
+
+#ifdef subprocesses
+ /* This is only needed for distinguishing keyboard and process input. */
+ if (connection != 0)
+ add_keyboard_wait_descriptor (connection);