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
{
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? */
/* #### 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
{
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)
(p)->toolbar_changed || \
(p)->gutter_changed || \
(p)->glyphs_changed || \
+ (p)->size_changed || \
(p)->subwindows_changed || \
(p)->subwindows_state_changed || \
(p)->windows_changed || \
toolbar_changed || \
gutter_changed || \
glyphs_changed || \
+ size_changed || \
subwindows_changed || \
subwindows_state_changed || \
windows_changed || \