diff options
| author | Jim Blandy | 1993-03-11 03:49:34 +0000 |
|---|---|---|
| committer | Jim Blandy | 1993-03-11 03:49:34 +0000 |
| commit | 0f7a8fee2ba75b86e0cb9d3fb1dce402f232cca7 (patch) | |
| tree | 830e19bf24239613075ff711209120e407f83966 /src | |
| parent | 3fd5d5626eaf5b8d05ecb01c9ba3cf1785a1b670 (diff) | |
| download | emacs-0f7a8fee2ba75b86e0cb9d3fb1dce402f232cca7.tar.gz emacs-0f7a8fee2ba75b86e0cb9d3fb1dce402f232cca7.zip | |
* keyboard.c (command_loop_1): Adjust to the fact that display
tables are now vectors of vectors, not vectors of strings.
Diffstat (limited to 'src')
| -rw-r--r-- | src/keyboard.c | 39 |
1 files changed, 25 insertions, 14 deletions
diff --git a/src/keyboard.c b/src/keyboard.c index a222a026723..46ad5226922 100644 --- a/src/keyboard.c +++ b/src/keyboard.c | |||
| @@ -972,10 +972,10 @@ command_loop_1 () | |||
| 972 | = window_display_table (XWINDOW (selected_window)); | 972 | = window_display_table (XWINDOW (selected_window)); |
| 973 | lose = FETCH_CHAR (point); | 973 | lose = FETCH_CHAR (point); |
| 974 | SET_PT (point + 1); | 974 | SET_PT (point + 1); |
| 975 | if (((dp == 0 && lose >= 040 && lose < 0177) | 975 | if ((dp |
| 976 | || | 976 | ? (XTYPE (DISP_CHAR_VECTOR (dp, lose)) != Lisp_Vector |
| 977 | (dp && (XTYPE (dp->contents[lose]) != Lisp_String | 977 | XVECTOR (DISP_CHAR_VECTOR (dp, lose))->size == 1) |
| 978 | || XSTRING (dp->contents[lose])->size == sizeof (GLYPH)))) | 978 | : (lose >= 0x20 && lose < 0x7f)) |
| 979 | && (XFASTINT (XWINDOW (selected_window)->last_modified) | 979 | && (XFASTINT (XWINDOW (selected_window)->last_modified) |
| 980 | >= MODIFF) | 980 | >= MODIFF) |
| 981 | && (XFASTINT (XWINDOW (selected_window)->last_point) | 981 | && (XFASTINT (XWINDOW (selected_window)->last_point) |
| @@ -993,10 +993,10 @@ command_loop_1 () | |||
| 993 | = window_display_table (XWINDOW (selected_window)); | 993 | = window_display_table (XWINDOW (selected_window)); |
| 994 | SET_PT (point - 1); | 994 | SET_PT (point - 1); |
| 995 | lose = FETCH_CHAR (point); | 995 | lose = FETCH_CHAR (point); |
| 996 | if (((dp == 0 && lose >= 040 && lose < 0177) | 996 | if ((dp |
| 997 | || | 997 | ? (XTYPE (DISP_CHAR_VECTOR (dp, lose)) != Lisp_Vector |
| 998 | (dp && (XTYPE (dp->contents[lose]) != Lisp_String | 998 | XVECTOR (DISP_CHAR_VECTOR (dp, lose))->size == 1) |
| 999 | || XSTRING (dp->contents[lose])->size == sizeof (GLYPH)))) | 999 | : (lose >= 0x20 && lose < 0x7f)) |
| 1000 | && (XFASTINT (XWINDOW (selected_window)->last_modified) | 1000 | && (XFASTINT (XWINDOW (selected_window)->last_modified) |
| 1001 | >= MODIFF) | 1001 | >= MODIFF) |
| 1002 | && (XFASTINT (XWINDOW (selected_window)->last_point) | 1002 | && (XFASTINT (XWINDOW (selected_window)->last_point) |
| @@ -1043,13 +1043,24 @@ command_loop_1 () | |||
| 1043 | { | 1043 | { |
| 1044 | struct Lisp_Vector *dp | 1044 | struct Lisp_Vector *dp |
| 1045 | = window_display_table (XWINDOW (selected_window)); | 1045 | = window_display_table (XWINDOW (selected_window)); |
| 1046 | int lose = XINT (c); | ||
| 1046 | 1047 | ||
| 1047 | if (dp == 0 || XTYPE (dp->contents[c]) != Lisp_String) | 1048 | if (dp) |
| 1048 | no_redisplay = direct_output_for_insert (XINT (c)); | 1049 | { |
| 1049 | else if (XSTRING (dp->contents[c])->size | 1050 | Lisp_Object obj = DISP_CHAR_VECTOR (dp, lose); |
| 1050 | == sizeof (GLYPH)) | 1051 | |
| 1051 | no_redisplay = | 1052 | if (XTYPE (obj) == Lisp_Vector |
| 1052 | direct_output_for_insert (*(GLYPH *)XSTRING (dp->contents[c])->data); | 1053 | && XVECTOR (obj)->size == 1 |
| 1054 | && (XTYPE (obj = XVECTOR (obj)->contents[0]) | ||
| 1055 | == Lisp_Int)) | ||
| 1056 | no_redisplay = | ||
| 1057 | direct_output_for_insert (XINT (obj)); | ||
| 1058 | } | ||
| 1059 | else | ||
| 1060 | { | ||
| 1061 | if (lose >= 0x20 && lose <= 0x7e) | ||
| 1062 | no_redisplay = direct_output_for_insert (lose); | ||
| 1063 | } | ||
| 1053 | } | 1064 | } |
| 1054 | goto directly_done; | 1065 | goto directly_done; |
| 1055 | } | 1066 | } |