Otherwise store 0 in *STRINGP, which means that the `encoding' of
the result should be `COMPOUND_TEXT'. */
-unsigned char *
-x_encode_text (string, coding_system, selectionp, text_bytes, stringp)
+static unsigned char *
+x_encode_text (string, coding_system, selectionp, text_bytes, stringp, freep)
Lisp_Object string, coding_system;
int *text_bytes, *stringp;
int selectionp;
+ int *freep;
{
unsigned char *str = SDATA (string);
int chars = SCHARS (string);
/* No multibyte character in OBJ. We need not encode it. */
*text_bytes = bytes;
*stringp = 1;
+ *freep = 0;
return str;
}
*stringp = (charset_info == 1
|| (!EQ (coding_system, Qcompound_text)
&& !EQ (coding_system, Qcompound_text_with_extensions)));
+ *freep = 1;
return buf;
}
in the future which can encode all Unicode characters.
But, for the moment, there's no way to know that the
current window manager supports it or not. */
- text.value = x_encode_text (name, coding_system, 0, &bytes, &stringp);
+ text.value = x_encode_text (name, coding_system, 0, &bytes, &stringp,
+ &do_free_text_value);
text.encoding = (stringp ? XA_STRING
: FRAME_X_DISPLAY_INFO (f)->Xatom_COMPOUND_TEXT);
text.format = 8;
text.nitems = bytes;
- /* Check early, because ENCODE_UTF_8 below may GC and name may be
- relocated. */
- do_free_text_value = text.value != SDATA (name);
-
if (NILP (f->icon_name))
{
icon = text;
{
/* See the above comment "Note: Encoding strategy". */
icon.value = x_encode_text (f->icon_name, coding_system, 0,
- &bytes, &stringp);
+ &bytes, &stringp, &do_free_icon_value);
icon.encoding = (stringp ? XA_STRING
: FRAME_X_DISPLAY_INFO (f)->Xatom_COMPOUND_TEXT);
icon.format = 8;
icon.nitems = bytes;
- do_free_icon_value = icon.value != SDATA (f->icon_name);
}
#ifdef USE_GTK
- the same but with the family also replaced with -*-*-. */
char *p = base_fontname;
int i;
-
+
for (i = 0; *p; p++)
if (*p == '-') i++;
if (i != 14)
char *allcs = "*-*-*-*-*-*-*";
char *allfamilies = "-*-*-";
char *all = "*-*-*-*-";
-
+
for (i = 0, p = base_fontname; i < 8; p++)
{
if (*p == '-')