char *ptr;
Atom *atom;
+ /* Special atoms that depend on the screen number. */
+ char xsettings_atom_name[sizeof "_XSETTINGS_S%d" - 2
+ + INT_STRLEN_BOUND (int)];
+ char cm_atom_name[sizeof "_NET_WM_CM_S%d" - 2
+ + INT_STRLEN_BOUND (int)];
+
+ sprintf (xsettings_atom_name, "_XSETTINGS_S%d",
+ XScreenNumberOfScreen (dpyinfo->screen));
+ sprintf (cm_atom_name, "_NET_WM_CM_S%d",
+ XScreenNumberOfScreen (dpyinfo->screen));
+
+ if (!strcmp (name, xsettings_atom_name))
+ return dpyinfo->Xatom_xsettings_sel;
+
+ if (!strcmp (name, cm_atom_name))
+ return dpyinfo->Xatom_NET_WM_CM_Sn;
+
+ /* Now do some common predefined atoms. */
+ if (!strcmp (name, "PRIMARY"))
+ return XA_PRIMARY;
+ if (!strcmp (name, "SECONDARY"))
+ return XA_SECONDARY;
+ if (!strcmp (name, "STRING"))
+ return XA_STRING;
+ if (!strcmp (name, "INTEGER"))
+ return XA_INTEGER;
+ if (!strcmp (name, "ATOM"))
+ return XA_ATOM;
+
for (i = 0; i < ARRAYELTS (x_atom_refs); ++i)
{
ptr = (char *) dpyinfo;