diff options
author | Eli Zaretskii <eliz@gnu.org> | 2004-05-18 13:36:32 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2004-05-18 13:36:32 +0000 |
commit | 6be49c3aa80eab4eef09a719f3268220ef66c0ad (patch) | |
tree | eac0fff44337a99a48bbccc5fc78b4c53f31584e /src | |
parent | 3ae12c8dc696b23e0434a9495657bc6ec8225716 (diff) | |
download | emacs-6be49c3aa80eab4eef09a719f3268220ef66c0ad.tar.gz |
(syms_of_msdos): Initialize dos-unsupported-char-glyph with make_number.
(IT_write_glyphs): Extract glyph from dos-unsupported-char-glyph with XINT.
Diffstat (limited to 'src')
-rw-r--r-- | src/ChangeLog | 7 | ||||
-rw-r--r-- | src/msdos.c | 15 |
2 files changed, 18 insertions, 4 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 1844535b550..382f2e8c6a1 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,10 @@ +2004-05-18 Eli Zaretskii <eliz@gnu.org> + + * msdos.c (syms_of_msdos): Initialize dos-unsupported-char-glyph + with make_number. + (IT_write_glyphs): Extract glyph from dos-unsupported-char-glyph + with XINT. + 2004-05-18 Kim F. Storm <storm@cua.dk> * blockinput.h (INPUT_BLOCKED_P): New macros. diff --git a/src/msdos.c b/src/msdos.c index 46bf7f46c30..bce41f56c9c 100644 --- a/src/msdos.c +++ b/src/msdos.c @@ -951,8 +951,8 @@ static void IT_write_glyphs (struct glyph *str, int str_len) { unsigned char *screen_buf, *screen_bp, *screen_buf_end, *bp; - int unsupported_face = FAST_GLYPH_FACE (Vdos_unsupported_char_glyph); - unsigned unsupported_char= FAST_GLYPH_CHAR (Vdos_unsupported_char_glyph); + int unsupported_face = 0; + unsigned unsupported_char = '\177'; int offset = 2 * (new_pos_X + screen_size_X * new_pos_Y); register int sl = str_len; register int tlen = GLYPH_TABLE_LENGTH; @@ -978,6 +978,13 @@ IT_write_glyphs (struct glyph *str, int str_len) if (str_len <= 0) return; + /* Set up the unsupported character glyph */ + if (!NILP (Vdos_unsupported_char_glyph)) + { + unsupported_char = FAST_GLYPH_CHAR (XINT (Vdos_unsupported_char_glyph)); + unsupported_face = FAST_GLYPH_FACE (XINT (Vdos_unsupported_char_glyph)); + } + screen_buf = screen_bp = alloca (str_len * 2); screen_buf_end = screen_buf + str_len * 2; sf = SELECTED_FRAME(); @@ -1042,7 +1049,7 @@ IT_write_glyphs (struct glyph *str, int str_len) if (! CHAR_VALID_P (ch, 0)) { g = !NILP (Vdos_unsupported_char_glyph) - ? Vdos_unsupported_char_glyph + ? XINT (Vdos_unsupported_char_glyph) : MAKE_GLYPH (sf, '\177', GLYPH_FACE (sf, g)); ch = FAST_GLYPH_CHAR (g); } @@ -5280,7 +5287,7 @@ syms_of_msdos () DEFVAR_LISP ("dos-unsupported-char-glyph", &Vdos_unsupported_char_glyph, doc: /* *Glyph to display instead of chars not supported by current codepage. This variable is used only by MSDOS terminals. */); - Vdos_unsupported_char_glyph = '\177'; + Vdos_unsupported_char_glyph = make_number ('\177'); #endif #ifndef subprocesses |