aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1993-03-11 03:49:34 +0000
committerJim Blandy1993-03-11 03:49:34 +0000
commit0f7a8fee2ba75b86e0cb9d3fb1dce402f232cca7 (patch)
tree830e19bf24239613075ff711209120e407f83966 /src
parent3fd5d5626eaf5b8d05ecb01c9ba3cf1785a1b670 (diff)
downloademacs-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.c39
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 }