From 46214fcd6db55b2c71836d2d3054fabe2860c9a1 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Sat, 19 Sep 2020 14:13:52 +0200 Subject: [PATCH] Make initial frame match frame-title-format * src/xterm.c (x_term_init): * src/w32term.c (w32_initialize_display_info): Sync initial frame title with new value of Vframe_title_format. Problem reported by Angelo Graziosi . --- src/w32term.c | 14 +++++++++----- src/xterm.c | 25 +++++++++++++++---------- 2 files changed, 24 insertions(+), 15 deletions(-) diff --git a/src/w32term.c b/src/w32term.c index 2669f29b56..206b5ecb82 100644 --- a/src/w32term.c +++ b/src/w32term.c @@ -7165,15 +7165,19 @@ w32_initialize_display_info (Lisp_Object display_name) memset (dpyinfo, 0, sizeof (*dpyinfo)); dpyinfo->name_list_element = Fcons (display_name, Qnil); + const char *title; if (STRINGP (Vsystem_name)) { - dpyinfo->w32_id_name = xmalloc (SCHARS (Vinvocation_name) - + SCHARS (Vsystem_name) + 2); - sprintf (dpyinfo->w32_id_name, "%s@%s", - SDATA (Vinvocation_name), SDATA (Vsystem_name)); + title = "GNU Emacs at "; + dpyinfo->w32_id_name = xmalloc (sizeof (title) + SCHARS (Vsystem_name)); + sprintf (dpyinfo->w32_id_name, "%s%s", title, SDATA (Vsystem_name)); } else - dpyinfo->w32_id_name = xlispstrdup (Vinvocation_name); + { + title = "GNU Emacs"; + dpyinfo->w32_id_name = xmalloc (sizeof (title)); + sprintf (dpyinfo->w32_id_name, "%s", title); + } /* Default Console mode values - overridden when running in GUI mode with values obtained from system metrics. */ diff --git a/src/xterm.c b/src/xterm.c index 2e0407aff4..626f066bca 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -12927,19 +12927,24 @@ #define NUM_ARGV 10 #endif Lisp_Object system_name = Fsystem_name (); - - ptrdiff_t nbytes = SBYTES (Vinvocation_name) + 1; - if (STRINGP (system_name) - && INT_ADD_WRAPV (nbytes, SBYTES (system_name) + 1, &nbytes)) - memory_full (SIZE_MAX); - dpyinfo->x_id = ++x_display_id; - dpyinfo->x_id_name = xmalloc (nbytes); - char *nametail = lispstpcpy (dpyinfo->x_id_name, Vinvocation_name); + const char *title; if (STRINGP (system_name)) { - *nametail++ = '@'; - lispstpcpy (nametail, system_name); + title = "GNU Emacs at "; + ptrdiff_t nbytes = sizeof (title); + if (INT_ADD_WRAPV (nbytes, SBYTES (system_name), &nbytes)) + memory_full (SIZE_MAX); + dpyinfo->x_id_name = xmalloc (nbytes); + sprintf(dpyinfo->x_id_name, "%s%s", title, SDATA (system_name)); } + else + { + title = "GNU Emacs"; + dpyinfo->x_id_name = xmalloc (sizeof (title)); + sprintf (dpyinfo->x_id_name, "%s", title); + } + + dpyinfo->x_id = ++x_display_id; /* Figure out which modifier bits mean what. */ x_find_modifier_meanings (dpyinfo); -- 2.28.0