From 5f65b39d991b3aa8f3075640e28bf97ec5cf592f Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Sat, 7 Oct 2000 18:57:36 +0000 Subject: [PATCH] (Fframe_parameter): For non-windowed frames, if f->param_alist says foreground or background color is unspecified, call tty_color_name to return the color name computed from the frame's current colors. --- src/frame.c | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/src/frame.c b/src/frame.c index 6c737eeaefb..fee69fd5a21 100644 --- a/src/frame.c +++ b/src/frame.c @@ -2133,7 +2133,29 @@ If FRAME is nil, describe the currently selected frame.") { value = Fassq (parameter, f->param_alist); if (CONSP (value)) - value = XCDR (value); + { + extern char unspecified_fg[], unspecified_bg[]; + extern Lisp_Object Qbackground_color, Qforeground_color; + + value = XCDR (value); + /* Fframe_parameters puts the actual fg/bg color names, + even if f->param_alist says otherwise. This is + important when param_alist's notion of colors is + "unspecified". We need to do the same here. */ + if (STRINGP (value) && !FRAME_WINDOW_P (f)) + { + if (EQ (parameter, Qbackground_color) + && strncmp (XSTRING (value)->data, + unspecified_bg, + XSTRING (value)->size) == 0) + value = tty_color_name (f, FRAME_BACKGROUND_PIXEL (f)); + else if (EQ (parameter, Qforeground_color) + && strncmp (XSTRING (value)->data, + unspecified_fg, + XSTRING (value)->size) == 0) + value = tty_color_name (f, FRAME_FOREGROUND_PIXEL (f)); + } + } else if (EQ (parameter, Qdisplay_type) || EQ (parameter, Qbackground_mode)) /* Avoid consing in frequent cases. */ -- 2.39.2