diff --git a/src/ChangeLog b/src/ChangeLog index 66ca8a3940f159871a53cf5b67b5c68614c0c9e7..7878a4d6f681cbd7407bce2628a995bb9f2f25ae 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,8 @@ 2012-06-24 Paul Eggert + * xterm.c (x_term_init): Build proper-sized _XSETTINGS_Snnn string + instead of truncating it to 63 (admittedly a generous limit). + * process.c: Fix spelling and caps in comments. 2012-06-24 Dan Nicolaescu diff --git a/src/xterm.c b/src/xterm.c index 9587a47f9bb6cb65b72daf96b05b7d3c52912b30..f398e4dbb2056dcbf129651a64119d083767147d 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10375,14 +10375,16 @@ x_term_init (Lisp_Object display_name, char *xrm_option, char *resource_name) const int total_atom_count = 1 + atom_count; Atom *atoms_return = xmalloc (sizeof (Atom) * total_atom_count); char **atom_names = xmalloc (sizeof (char *) * total_atom_count); - char xsettings_atom_name[64]; + static char const xsettings_fmt[] = "_XSETTINGS_S%d"; + char xsettings_atom_name[sizeof xsettings_fmt - 2 + + INT_STRLEN_BOUND (int)]; for (i = 0; i < atom_count; i++) atom_names[i] = (char *) atom_refs[i].name; /* Build _XSETTINGS_SN atom name */ - snprintf (xsettings_atom_name, sizeof (xsettings_atom_name), - "_XSETTINGS_S%d", XScreenNumberOfScreen (dpyinfo->screen)); + sprintf (xsettings_atom_name, xsettings_fmt, + XScreenNumberOfScreen (dpyinfo->screen)); atom_names[i] = xsettings_atom_name; XInternAtoms (dpyinfo->display, atom_names, total_atom_count,