/* Fringe handling (split from xdisp.c).
- Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1997,
- 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
- 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1985-1988, 1993-1995, 1997-2011 Free Software Foundation, Inc.
This file is part of GNU Emacs.
#ifdef HAVE_WINDOW_SYSTEM
-/* Non-nil means that newline may flow into the right fringe. */
-
-Lisp_Object Voverflow_newline_into_fringe;
-
-/* List of known fringe bitmap symbols.
-
- The fringe bitmap number is stored in the `fringe' property on
- those symbols. Names for the built-in bitmaps are installed by
- loading fringe.el.
- */
-
-Lisp_Object Vfringe_bitmaps;
-
/* Fringe bitmaps are represented in three different ways:
Logical bitmaps are used internally to denote things like
must specify physical bitmap symbols.
*/
-Lisp_Object Qtruncation, Qcontinuation, Qoverlay_arrow;
-Lisp_Object Qempty_line, Qtop_bottom;
-Lisp_Object Qhollow_small;
+static Lisp_Object Qtruncation, Qcontinuation, Qoverlay_arrow;
+static Lisp_Object Qempty_line, Qtop_bottom;
+static Lisp_Object Qhollow_small;
enum fringe_bitmap_align
{
/* NOTE: The order of these bitmaps must match the sequence
used in fringe.el to define the corresponding symbols. */
-struct fringe_bitmap standard_bitmaps[] =
+static struct fringe_bitmap standard_bitmaps[] =
{
{ NULL, 0, 0, 0, 0, 0 }, /* NO_FRINGE_BITMAP */
{ FRBITS (question_mark_bits), 8, 0, ALIGN_BITMAP_CENTER, 0 },
static Lisp_Object *fringe_faces;
static int max_fringe_bitmaps;
+#ifndef HAVE_NS
+static
+#endif
int max_used_fringe_bitmap = MAX_STANDARD_FRINGE_BITMAPS;
{
Lisp_Object cmap, bm = Qnil;
- if ((cmap = XBUFFER (w->buffer)->fringe_cursor_alist), !NILP (cmap))
+ if ((cmap = BVAR (XBUFFER (w->buffer), fringe_cursor_alist)), !NILP (cmap))
{
bm = Fassq (cursor, cmap);
if (CONSP (bm))
return lookup_fringe_bitmap (bm);
}
}
- if (EQ (cmap, buffer_defaults.fringe_cursor_alist))
+ if (EQ (cmap, BVAR (&buffer_defaults, fringe_cursor_alist)))
return NO_FRINGE_BITMAP;
- bm = Fassq (cursor, buffer_defaults.fringe_cursor_alist);
+ bm = Fassq (cursor, BVAR (&buffer_defaults, fringe_cursor_alist));
if (!CONSP (bm) || ((bm = XCDR (bm)), NILP (bm)))
return NO_FRINGE_BITMAP;
return lookup_fringe_bitmap (bm);
If partial, lookup partial bitmap in default value if not found here.
If not partial, or no partial spec is present, use non-partial bitmap. */
- if ((cmap = XBUFFER (w->buffer)->fringe_indicator_alist), !NILP (cmap))
+ if ((cmap = BVAR (XBUFFER (w->buffer), fringe_indicator_alist)), !NILP (cmap))
{
bm1 = Fassq (bitmap, cmap);
if (CONSP (bm1))
}
}
- if (!EQ (cmap, buffer_defaults.fringe_indicator_alist)
- && !NILP (buffer_defaults.fringe_indicator_alist))
+ if (!EQ (cmap, BVAR (&buffer_defaults, fringe_indicator_alist))
+ && !NILP (BVAR (&buffer_defaults, fringe_indicator_alist)))
{
- bm2 = Fassq (bitmap, buffer_defaults.fringe_indicator_alist);
+ bm2 = Fassq (bitmap, BVAR (&buffer_defaults, fringe_indicator_alist));
if (CONSP (bm2))
{
if ((bm2 = XCDR (bm2)), !NILP (bm2))
int bitmap_cache[MAX_BITMAP_CACHE];
int top_ind_rn, bot_ind_rn;
int top_ind_min_y, bot_ind_max_y;
- int top_row_ends_at_zv_p, bot_row_ends_at_zv_p;
+
+ /* top_ind_rn is set to a nonnegative value whenver
+ row->indicate_bob_p is set, so it's OK that top_row_ends_at_zv_p
+ is not initialized here. Similarly for bot_ind_rn,
+ row->indicate_eob_p and bot_row_ends_at_zv_p. */
+ int top_row_ends_at_zv_p IF_LINT (= 0), bot_row_ends_at_zv_p IF_LINT (= 0);
if (w->pseudo_window_p)
return 0;
if (!MINI_WINDOW_P (w)
- && (ind = XBUFFER (w->buffer)->indicate_buffer_boundaries, !NILP (ind)))
+ && (ind = BVAR (XBUFFER (w->buffer), indicate_buffer_boundaries), !NILP (ind)))
{
if (EQ (ind, Qleft) || EQ (ind, Qright))
boundary_top = boundary_bot = arrow_top = arrow_bot = ind;
y < yb && rn < nrows;
y += row->height, ++rn)
{
- unsigned indicate_bob_p, indicate_top_line_p;
- unsigned indicate_eob_p, indicate_bottom_line_p;
-
row = w->desired_matrix->rows + rn;
if (!row->enabled_p)
row = w->current_matrix->rows + rn;
- indicate_bob_p = row->indicate_bob_p;
- indicate_top_line_p = row->indicate_top_line_p;
- indicate_eob_p = row->indicate_eob_p;
- indicate_bottom_line_p = row->indicate_bottom_line_p;
-
row->indicate_bob_p = row->indicate_top_line_p = 0;
row->indicate_eob_p = row->indicate_bottom_line_p = 0;
}
}
- empty_pos = XBUFFER (w->buffer)->indicate_empty_lines;
+ empty_pos = BVAR (XBUFFER (w->buffer), indicate_empty_lines);
if (!NILP (empty_pos) && !EQ (empty_pos, Qright))
empty_pos = WINDOW_LEFT_FRINGE_WIDTH (w) == 0 ? Qright : Qleft;
/* Free resources used by a user-defined bitmap. */
-void
+static void
destroy_fringe_bitmap (int n)
{
struct fringe_bitmap **fbp;
0x3, 0xb, 0x7, 0xf}; /* 0011 1011 0111 1111 */
#endif /* HAVE_X_WINDOWS */
-void
+static void
init_fringe_bitmap (int which, struct fringe_bitmap *fb, int once_p)
{
if (once_p || fb->dynamic)
if (STRINGP (bits))
h = SCHARS (bits);
else if (VECTORP (bits))
- h = XVECTOR (bits)->size;
+ h = ASIZE (bits);
else
wrong_type_argument (Qsequencep, bits);
defsubr (&Sfringe_bitmaps_at_pos);
defsubr (&Sset_fringe_bitmap_face);
- DEFVAR_LISP ("overflow-newline-into-fringe", &Voverflow_newline_into_fringe,
+ DEFVAR_LISP ("overflow-newline-into-fringe", Voverflow_newline_into_fringe,
doc: /* *Non-nil means that newline may flow into the right fringe.
This means that display lines which are exactly as wide as the window
(not counting the final newline) will only occupy one screen line, by
If nil, also continue lines which are exactly as wide as the window. */);
Voverflow_newline_into_fringe = Qt;
- DEFVAR_LISP ("fringe-bitmaps", &Vfringe_bitmaps,
+ DEFVAR_LISP ("fringe-bitmaps", Vfringe_bitmaps,
doc: /* List of fringe bitmap symbols. */);
Vfringe_bitmaps = Qnil;
}
#endif /* HAVE_NTGUI */
#endif /* HAVE_WINDOW_SYSTEM */
-
-/* arch-tag: 04596920-43eb-473d-b319-82712338162d
- (do not change this comment) */