diff options
| author | Karoly Lorentey | 2004-05-18 19:12:15 +0000 |
|---|---|---|
| committer | Karoly Lorentey | 2004-05-18 19:12:15 +0000 |
| commit | c23670f81e059ebe645c88575f4ddfa67f26bf6b (patch) | |
| tree | 71667a6ceaa877ccf3953abedfa7b0fd5f0f5369 /src/msdos.c | |
| parent | d9858e4f1889a61b216ae1f99053846362067ccc (diff) | |
| parent | a7f7f2540f02834ad128d0c9357a4dbd8222dff4 (diff) | |
| download | emacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.tar.gz emacs-c23670f81e059ebe645c88575f4ddfa67f26bf6b.zip | |
Merged in changes from CVS trunk.
Patches applied:
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-299
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-300
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-301
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-302
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-303
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-304
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-305
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-306
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-307
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-308
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-309
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-310
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-311
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-312
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-313
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-314
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-315
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-316
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-317
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-318
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-319
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-320
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-321
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-322
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-323
Update from CVS
* miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-324
Update from CVS
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-163
Diffstat (limited to 'src/msdos.c')
| -rw-r--r-- | src/msdos.c | 33 |
1 files changed, 14 insertions, 19 deletions
diff --git a/src/msdos.c b/src/msdos.c index 6c534d6d2d9..da7fab89c7e 100644 --- a/src/msdos.c +++ b/src/msdos.c | |||
| @@ -951,8 +951,8 @@ static void | |||
| 951 | IT_write_glyphs (struct glyph *str, int str_len) | 951 | IT_write_glyphs (struct glyph *str, int str_len) |
| 952 | { | 952 | { |
| 953 | unsigned char *screen_buf, *screen_bp, *screen_buf_end, *bp; | 953 | unsigned char *screen_buf, *screen_bp, *screen_buf_end, *bp; |
| 954 | int unsupported_face = FAST_GLYPH_FACE (Vdos_unsupported_char_glyph); | 954 | int unsupported_face = 0; |
| 955 | unsigned unsupported_char= FAST_GLYPH_CHAR (Vdos_unsupported_char_glyph); | 955 | unsigned unsupported_char = '\177'; |
| 956 | int offset = 2 * (new_pos_X + screen_size_X * new_pos_Y); | 956 | int offset = 2 * (new_pos_X + screen_size_X * new_pos_Y); |
| 957 | register int sl = str_len; | 957 | register int sl = str_len; |
| 958 | register int tlen = GLYPH_TABLE_LENGTH; | 958 | register int tlen = GLYPH_TABLE_LENGTH; |
| @@ -978,6 +978,13 @@ IT_write_glyphs (struct glyph *str, int str_len) | |||
| 978 | 978 | ||
| 979 | if (str_len <= 0) return; | 979 | if (str_len <= 0) return; |
| 980 | 980 | ||
| 981 | /* Set up the unsupported character glyph */ | ||
| 982 | if (!NILP (Vdos_unsupported_char_glyph)) | ||
| 983 | { | ||
| 984 | unsupported_char = FAST_GLYPH_CHAR (XINT (Vdos_unsupported_char_glyph)); | ||
| 985 | unsupported_face = FAST_GLYPH_FACE (XINT (Vdos_unsupported_char_glyph)); | ||
| 986 | } | ||
| 987 | |||
| 981 | screen_buf = screen_bp = alloca (str_len * 2); | 988 | screen_buf = screen_bp = alloca (str_len * 2); |
| 982 | screen_buf_end = screen_buf + str_len * 2; | 989 | screen_buf_end = screen_buf + str_len * 2; |
| 983 | sf = SELECTED_FRAME(); | 990 | sf = SELECTED_FRAME(); |
| @@ -1042,7 +1049,7 @@ IT_write_glyphs (struct glyph *str, int str_len) | |||
| 1042 | if (! CHAR_VALID_P (ch, 0)) | 1049 | if (! CHAR_VALID_P (ch, 0)) |
| 1043 | { | 1050 | { |
| 1044 | g = !NILP (Vdos_unsupported_char_glyph) | 1051 | g = !NILP (Vdos_unsupported_char_glyph) |
| 1045 | ? Vdos_unsupported_char_glyph | 1052 | ? XINT (Vdos_unsupported_char_glyph) |
| 1046 | : MAKE_GLYPH (sf, '\177', GLYPH_FACE (sf, g)); | 1053 | : MAKE_GLYPH (sf, '\177', GLYPH_FACE (sf, g)); |
| 1047 | ch = FAST_GLYPH_CHAR (g); | 1054 | ch = FAST_GLYPH_CHAR (g); |
| 1048 | } | 1055 | } |
| @@ -1572,7 +1579,7 @@ IT_note_mouse_highlight (struct frame *f, int x, int y) | |||
| 1572 | { | 1579 | { |
| 1573 | extern Lisp_Object Qmouse_face; | 1580 | extern Lisp_Object Qmouse_face; |
| 1574 | Lisp_Object mouse_face, overlay, position, *overlay_vec; | 1581 | Lisp_Object mouse_face, overlay, position, *overlay_vec; |
| 1575 | int len, noverlays, obegv, ozv;; | 1582 | int noverlays, obegv, ozv;; |
| 1576 | struct buffer *obuf; | 1583 | struct buffer *obuf; |
| 1577 | 1584 | ||
| 1578 | /* If we get an out-of-range value, return now; avoid an error. */ | 1585 | /* If we get an out-of-range value, return now; avoid an error. */ |
| @@ -1591,20 +1598,8 @@ IT_note_mouse_highlight (struct frame *f, int x, int y) | |||
| 1591 | /* Is this char mouse-active or does it have help-echo? */ | 1598 | /* Is this char mouse-active or does it have help-echo? */ |
| 1592 | XSETINT (position, pos); | 1599 | XSETINT (position, pos); |
| 1593 | 1600 | ||
| 1594 | /* Put all the overlays we want in a vector in overlay_vec. | 1601 | /* Put all the overlays we want in a vector in overlay_vec. */ |
| 1595 | Store the length in len. If there are more than 10, make | 1602 | GET_OVERLAYS_AT (pos, overlay_vec, noverlays, NULL, 0); |
| 1596 | enough space for all, and try again. */ | ||
| 1597 | len = 10; | ||
| 1598 | overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object)); | ||
| 1599 | noverlays = overlays_at (pos, 0, &overlay_vec, &len, NULL, NULL, 0); | ||
| 1600 | if (noverlays > len) | ||
| 1601 | { | ||
| 1602 | len = noverlays; | ||
| 1603 | overlay_vec = (Lisp_Object *) alloca (len * sizeof (Lisp_Object)); | ||
| 1604 | noverlays = overlays_at (pos, | ||
| 1605 | 0, &overlay_vec, &len, NULL, NULL, 0); | ||
| 1606 | } | ||
| 1607 | |||
| 1608 | /* Sort overlays into increasing priority order. */ | 1603 | /* Sort overlays into increasing priority order. */ |
| 1609 | noverlays = sort_overlays (overlay_vec, noverlays, w); | 1604 | noverlays = sort_overlays (overlay_vec, noverlays, w); |
| 1610 | 1605 | ||
| @@ -5292,7 +5287,7 @@ syms_of_msdos () | |||
| 5292 | DEFVAR_LISP ("dos-unsupported-char-glyph", &Vdos_unsupported_char_glyph, | 5287 | DEFVAR_LISP ("dos-unsupported-char-glyph", &Vdos_unsupported_char_glyph, |
| 5293 | doc: /* *Glyph to display instead of chars not supported by current codepage. | 5288 | doc: /* *Glyph to display instead of chars not supported by current codepage. |
| 5294 | This variable is used only by MSDOS terminals. */); | 5289 | This variable is used only by MSDOS terminals. */); |
| 5295 | Vdos_unsupported_char_glyph = '\177'; | 5290 | Vdos_unsupported_char_glyph = make_number ('\177'); |
| 5296 | 5291 | ||
| 5297 | #endif | 5292 | #endif |
| 5298 | #ifndef subprocesses | 5293 | #ifndef subprocesses |