summaryrefslogtreecommitdiff
path: root/src/term.c
diff options
context:
space:
mode:
authorMiles Bader <miles@gnu.org>2002-05-26 07:23:47 +0000
committerMiles Bader <miles@gnu.org>2002-05-26 07:23:47 +0000
commitb63a55ac9707f09d90e4f2f4cd3a0acc5ef5cc56 (patch)
tree44728bdc964c7ceb5727182987e8ca7a9b923b93 /src/term.c
parenta08166614a8cdd21b14f42c3b2f797d746b9462f (diff)
downloademacs-b63a55ac9707f09d90e4f2f4cd3a0acc5ef5cc56.tar.gz
(tty_capable_p): New function.
Diffstat (limited to 'src/term.c')
-rw-r--r--src/term.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/term.c b/src/term.c
index c2bac22d60c..ef5c41564c7 100644
--- a/src/term.c
+++ b/src/term.c
@@ -1987,6 +1987,31 @@ turn_off_face (f, face_id)
}
+/* Return non-zero if the terminal on frame F supports all of the
+ capabilities in CAPS simultaneously, with foreground and background
+ colors FG and BG. */
+
+int tty_capable_p (f, caps, fg, bg)
+ struct frame *f;
+ unsigned caps;
+ unsigned long fg, bg;
+{
+#define TTY_CAPABLE_P_TRY(cap, TS, NC_bit) \
+ if ((caps & (cap)) && (!(TS) || !MAY_USE_WITH_COLORS_P(NC_bit))) \
+ return 0;
+
+ TTY_CAPABLE_P_TRY (TTY_CAP_INVERSE, TS_standout_mode, NC_REVERSE);
+ TTY_CAPABLE_P_TRY (TTY_CAP_UNDERLINE, TS_enter_underline_mode, NC_UNDERLINE);
+ TTY_CAPABLE_P_TRY (TTY_CAP_BOLD, TS_enter_bold_mode, NC_BOLD);
+ TTY_CAPABLE_P_TRY (TTY_CAP_DIM, TS_enter_dim_mode, NC_DIM);
+ TTY_CAPABLE_P_TRY (TTY_CAP_BLINK, TS_enter_blink_mode, NC_BLINK);
+ TTY_CAPABLE_P_TRY (TTY_CAP_ALT_CHARSET, TS_enter_alt_charset_mode, NC_ALT_CHARSET);
+
+ /* We can do it! */
+ return 1;
+}
+
+
/* Return non-zero if the terminal is capable to display colors. */
DEFUN ("tty-display-color-p", Ftty_display_color_p, Stty_display_color_p,