X-Git-Url: http://git.chise.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fredisplay.h;h=04f2538c3f7aab62340ba9b0e73c8da61d2004a9;hb=ea21eb75bbf90355514d65686bd53bea579f8e23;hp=96e2e921b576e5164b59c230db27b3e07c685b82;hpb=ea1ea793fe6e244ef5555ed983423a204101af13;p=chise%2Fxemacs-chise.git diff --git a/src/redisplay.h b/src/redisplay.h index 96e2e92..04f2538 100644 --- a/src/redisplay.h +++ b/src/redisplay.h @@ -91,6 +91,13 @@ typedef struct but control characters have two -- a ^ and a letter -- and other non-printing characters (those displayed in octal) have four. */ +/* WARNING! In compare_runes (one of the most heavily used functions) + two runes are compared. So please be careful with changes to this + structure. See comments in compare_runes. + + #### This should really be made smaller. +*/ + typedef struct rune rune; struct rune { @@ -105,10 +112,6 @@ struct rune each of the face properties in this particular window. */ - short xpos; /* horizontal starting position in pixels */ - short width; /* pixel width of rune */ - - Bufpos bufpos; /* buffer position this rune is displaying; for the modeline, the value here is a Charcount, but who's looking? */ @@ -116,11 +119,26 @@ struct rune /* #### Chuck, what does it mean for a rune to cover a range of pos? I don't get this. */ - unsigned int cursor_type :3; /* is this rune covered by the cursor? */ - unsigned int type :3; /* type of rune object */ + /* #### This isn't used as an rvalue anywhere! + remove! */ + + + short xpos; /* horizontal starting position in pixels */ + short width; /* pixel width of rune */ + + + unsigned char cursor_type; /* is this rune covered by the cursor? */ + unsigned char type; /* type of rune object */ + /* We used to do bitfields here, but if I + (JV) count correctly that doesn't matter + for the size of the structure. All the bit + fiddling _does_ slow down redisplay by + about 10%. So don't do that */ union /* Information specific to the type of rune */ { + /* #### GLyps are are. Is it really necessary to waste 8 bytes on every + rune for that?! */ /* DGLYPH */ struct { @@ -542,7 +560,7 @@ extern int windows_structure_changed; gutter_changed = 0; \ glyphs_changed = 0; \ subwindows_changed = 0; \ - subwindows_state_changed = 0; \ + subwindows_state_changed = 0; \ windows_changed = 0; \ windows_structure_changed = 0; \ } while (0) @@ -560,6 +578,7 @@ extern int windows_structure_changed; (p)->toolbar_changed || \ (p)->gutter_changed || \ (p)->glyphs_changed || \ + (p)->size_changed || \ (p)->subwindows_changed || \ (p)->subwindows_state_changed || \ (p)->windows_changed || \ @@ -578,6 +597,7 @@ extern int windows_structure_changed; toolbar_changed || \ gutter_changed || \ glyphs_changed || \ + size_changed || \ subwindows_changed || \ subwindows_state_changed || \ windows_changed || \