diff options
author | Miles Bader <miles@gnu.org> | 2002-05-26 07:23:47 +0000 |
---|---|---|
committer | Miles Bader <miles@gnu.org> | 2002-05-26 07:23:47 +0000 |
commit | b63a55ac9707f09d90e4f2f4cd3a0acc5ef5cc56 (patch) | |
tree | 44728bdc964c7ceb5727182987e8ca7a9b923b93 /src/term.c | |
parent | a08166614a8cdd21b14f42c3b2f797d746b9462f (diff) | |
download | emacs-b63a55ac9707f09d90e4f2f4cd3a0acc5ef5cc56.tar.gz |
(tty_capable_p): New function.
Diffstat (limited to 'src/term.c')
-rw-r--r-- | src/term.c | 25 |
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, |