/* Interface definitions for display code.
Copyright (C) 1985, 1993, 1994, 1997, 1998, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2006, 2007, 2008, 2009
+ 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
Free Software Foundation, Inc.
This file is part of GNU Emacs.
/* Number of bits allocated to store fringe bitmap numbers. */
#define FRINGE_ID_BITS 16
+/* Number of bits allocated to store fringe bitmap height. */
+#define FRINGE_HEIGHT_BITS 8
\f
/***********************************************************************
struct text_pos
{
/* Character position. */
- int charpos;
+ EMACS_INT charpos;
/* Corresponding byte position. */
- int bytepos;
+ EMACS_INT bytepos;
};
/* Access character and byte position of POS in a functional form. */
buffer, this is a position in that buffer. A value of -1
together with a null object means glyph is a truncation glyph at
the start of a row. */
- int charpos;
+ EMACS_INT charpos;
/* Lisp object source of this glyph. Currently either a buffer or
a string, if the glyph was produced from characters which came from
/* Face of the right fringe glyph. */
unsigned right_fringe_face_id : FACE_ID_BITS;
+ /* Vertical offset of the left fringe bitmap. */
+ signed left_fringe_offset : FRINGE_HEIGHT_BITS;
+
+ /* Vertical offset of the right fringe bitmap. */
+ signed right_fringe_offset : FRINGE_HEIGHT_BITS;
+
/* 1 means that we must draw the bitmaps of this row. */
unsigned redraw_fringe_bitmaps_p : 1;
/* The next position at which to check for face changes, invisible
text, overlay strings, end of text etc., which see. */
- int stop_charpos;
+ EMACS_INT stop_charpos;
/* Maximum string or buffer position + 1. ZV when iterating over
current_buffer. */
- int end_charpos;
+ EMACS_INT end_charpos;
/* C string to iterate over. Non-null means get characters from
this string, otherwise characters are read from current_buffer
/* Start and end of a visible region; -1 if the region is not
visible in the window. */
- int region_beg_charpos, region_end_charpos;
+ EMACS_INT region_beg_charpos, region_end_charpos;
/* Position at which redisplay end trigger functions should be run. */
- int redisplay_end_trigger_charpos;
+ EMACS_INT redisplay_end_trigger_charpos;
/* 1 means multibyte characters are enabled. */
unsigned multibyte_p : 1;
{
Lisp_Object string;
int string_nchars;
- int end_charpos;
- int stop_charpos;
+ EMACS_INT end_charpos;
+ EMACS_INT stop_charpos;
struct composition_it cmp_it;
int face_id;
&& ((IT)->c == '\n' \
|| ((IT)->c == '\r' && (IT)->selective)))
-/* Call produce_glyphs or produce_glyphs_hook, if set. Shortcut to
- avoid the function call overhead. */
+/* Call produce_glyphs or FRAME_RIF->produce_glyphs, if set. Shortcut
+ to avoid the function call overhead. */
#define PRODUCE_GLYPHS(IT) \
do { \
RES_TYPE_FLOAT,
RES_TYPE_BOOLEAN,
RES_TYPE_STRING,
- RES_TYPE_SYMBOL
+ RES_TYPE_SYMBOL,
+ RES_TYPE_BOOLEAN_NUMBER
};
extern Lisp_Object x_get_arg P_ ((Display_Info *, Lisp_Object,