Commit 257b3b03 authored by Dmitry Antipov's avatar Dmitry Antipov

Make --without-x compatible with --enable-gcc-warnings.

* configure.ac: If both --without-x and --enable-gcc-warnings are
specified, use -Wno-unused-variable, -Wno-unused-but-set-variable
and -Wno-unused-but-set-parameter.
* src/font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
* src/font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
members under HAVE_WINDOW_SYSTEM.
* src/keyboard.c (make_lispy_focus_out): Likewise.
(record_menu_key): Move under HAVE_MENUS.
* src/xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
(syms_of_xdisp): Adjust user.
(window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
(start_hourglass, cancel_hourglass):
* src/xfaces.c (toplevel): Likewise with PT_PER_INCH,
clear_font_table_count, CLEAR_FONT_TABLE_COUNT
and CLEAR_FONT_TABLE_NFONTS.
(set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
Declare only if HAVE_WINDOW_SYSTEM.
(lface_same_font_attributes_p, clear_face_gcs): Define only
if HAVE_WINDOW_SYSTEM.
parent 98b7f4bd
2013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
Make --without-x compatible with --enable-gcc-warnings.
* configure.ac: If both --without-x and --enable-gcc-warnings are
specified, use -Wno-unused-variable, -Wno-unused-but-set-variable
and -Wno-unused-but-set-parameter.
2013-09-04 Paul Eggert <eggert@cs.ucla.edu>
Makefile improvements.
......
......@@ -1775,6 +1775,13 @@ fi
## $window_system is now set to the window system we will
## ultimately use.
if test "$window_system" = none && test "$gl_gcc_warnings" = yes; then
# Too many warnings for now.
gl_WARN_ADD([-Wno-unused-variable])
gl_WARN_ADD([-Wno-unused-but-set-variable])
gl_WARN_ADD([-Wno-unused-but-set-parameter])
fi
term_header=
HAVE_X_WINDOWS=no
HAVE_X11=no
......
2013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
Make --without-x compatible with --enable-gcc-warnings.
* font.c (register_font_driver): Move check under HAVE_WINDOW_SYSTEM.
* font.h (struct font_driver): Move draw, get_bitmap and free_bitmap
members under HAVE_WINDOW_SYSTEM.
* keyboard.c (make_lispy_focus_out): Likewise.
(record_menu_key): Move under HAVE_MENUS.
* xdisp.c (toplevel): Move hourglass_shown_p, hourglass_atimer and
THIN_SPACE_WIDTH under HAVE_WINDOW_SYSTEM.
(syms_of_xdisp): Adjust user.
(window_box_edges): Define only if HAVE_WINDOW_SYSTEM.
(start_hourglass, cancel_hourglass):
* xfaces.c (toplevel): Likewise with PT_PER_INCH,
clear_font_table_count, CLEAR_FONT_TABLE_COUNT
and CLEAR_FONT_TABLE_NFONTS.
(set_font_frame_param, clear_face_gcs, realize_non_ascii_face):
Declare only if HAVE_WINDOW_SYSTEM.
(lface_same_font_attributes_p, clear_face_gcs): Define only
if HAVE_WINDOW_SYSTEM.
2013-09-05 Dmitry Antipov <dmantipov@yandex.ru>
* frame.c (check_minibuf_window): Update 'frame' with frame pointer.
......
......@@ -3379,9 +3379,11 @@ register_font_driver (struct font_driver *driver, struct frame *f)
struct font_driver_list *root = f ? f->font_driver_list : font_driver_list;
struct font_driver_list *prev, *list;
#ifdef HAVE_WINDOW_SYSTEM
if (f && ! driver->draw)
error ("Unusable font driver for a frame: %s",
SDATA (SYMBOL_NAME (driver->type)));
#endif /* HAVE_WINDOW_SYSTEM */
for (prev = NULL, list = root; list; prev = list, list = list->next)
if (EQ (list->driver->type, driver->type))
......
......@@ -575,6 +575,8 @@ struct font_driver
unsigned *code, int nglyphs,
struct font_metrics *metrics);
#ifdef HAVE_WINDOW_SYSTEM
/* Optional.
Draw glyphs between FROM and TO of S->char2b at (X Y) pixel
position of frame F with S->FACE and S->GC. If WITH_BACKGROUND,
......@@ -595,6 +597,8 @@ struct font_driver
Free bitmap data in BITMAP. */
void (*free_bitmap) (struct font *font, struct font_bitmap *bitmap);
#endif /* HAVE_WINDOW_SYSTEM */
/* Optional.
Return an outline data for glyph-code CODE of FONT. The format
of the outline data depends on the font-driver. */
......
......@@ -422,7 +422,9 @@ static Lisp_Object modify_event_symbol (ptrdiff_t, int, Lisp_Object,
Lisp_Object *, ptrdiff_t);
static Lisp_Object make_lispy_switch_frame (Lisp_Object);
static Lisp_Object make_lispy_focus_in (Lisp_Object);
#ifdef HAVE_WINDOW_SYSTEM
static Lisp_Object make_lispy_focus_out (Lisp_Object);
#endif /* HAVE_WINDOW_SYSTEM */
static bool help_char_p (Lisp_Object);
static void save_getcjmp (sys_jmp_buf);
static void restore_getcjmp (sys_jmp_buf);
......@@ -3210,6 +3212,8 @@ read_char (int commandflag, Lisp_Object map,
RETURN_UNGCPRO (c);
}
#ifdef HAVE_MENUS
/* Record a key that came from a mouse menu.
Record it for echoing, for this-command-keys, and so on. */
......@@ -3245,6 +3249,8 @@ record_menu_key (Lisp_Object c)
num_input_events++;
}
#endif /* HAVE_MENUS */
/* Return true if should recognize C as "the help character". */
static bool
......@@ -6069,12 +6075,17 @@ make_lispy_focus_in (Lisp_Object frame)
{
return list2 (Qfocus_in, frame);
}
#ifdef HAVE_WINDOW_SYSTEM
static Lisp_Object
make_lispy_focus_out (Lisp_Object frame)
{
return list2 (Qfocus_out, frame);
}
#endif /* HAVE_WINDOW_SYSTEM */
/* Manipulating modifiers. */
/* Parse the name of SYMBOL, and return the set of modifiers it contains.
......
......@@ -760,6 +760,8 @@ Lisp_Object previous_help_echo_string;
/* Platform-independent portion of hourglass implementation. */
#ifdef HAVE_WINDOW_SYSTEM
/* Non-zero means an hourglass cursor is currently shown. */
int hourglass_shown_p;
......@@ -767,6 +769,8 @@ int hourglass_shown_p;
an hourglass cursor on all frames. */
struct atimer *hourglass_atimer;
#endif /* HAVE_WINDOW_SYSTEM */
/* Name of the face used to display glyphless characters. */
Lisp_Object Qglyphless_char;
......@@ -776,14 +780,17 @@ static Lisp_Object Qglyphless_char_display;
/* Method symbols for Vglyphless_char_display. */
static Lisp_Object Qhex_code, Qempty_box, Qthin_space, Qzero_width;
/* Default pixel width of `thin-space' display method. */
#define THIN_SPACE_WIDTH 1
/* Default number of seconds to wait before displaying an hourglass
cursor. */
#define DEFAULT_HOURGLASS_DELAY 1
#ifdef HAVE_WINDOW_SYSTEM
/* Default pixel width of `thin-space' display method. */
#define THIN_SPACE_WIDTH 1
#endif /* HAVE_WINDOW_SYSTEM */
/* Function prototypes. */
static void setup_for_ellipsis (struct it *, int);
......@@ -1145,6 +1152,7 @@ window_box (struct window *w, enum glyph_row_area area, int *box_x,
}
}
#ifdef HAVE_WINDOW_SYSTEM
/* Get the bounding box of the display area AREA of window W, without
mode lines and both fringes of the window. Return in *TOP_LEFT_X
......@@ -1163,8 +1171,8 @@ window_box_edges (struct window *w, int *top_left_x, int *top_left_y,
*bottom_right_y += *top_left_y;
}
#endif /* HAVE_WINDOW_SYSTEM */
/***********************************************************************
Utilities
***********************************************************************/
......@@ -29643,8 +29651,10 @@ cursor shapes. */);
doc: /* Seconds to wait before displaying an hourglass pointer when Emacs is busy. */);
Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY);
#ifdef HAVE_WINDOW_SYSTEM
hourglass_atimer = NULL;
hourglass_shown_p = 0;
#endif /* HAVE_WINDOW_SYSTEM */
DEFSYM (Qglyphless_char, "glyphless-char");
DEFSYM (Qhex_code, "hex-code");
......@@ -29731,13 +29741,14 @@ init_xdisp (void)
help_echo_showing_p = 0;
}
#ifdef HAVE_WINDOW_SYSTEM
/* Platform-independent portion of hourglass implementation. */
/* Cancel a currently active hourglass timer, and start a new one. */
void
start_hourglass (void)
{
#if defined (HAVE_WINDOW_SYSTEM)
struct timespec delay;
cancel_hourglass ();
......@@ -29762,7 +29773,6 @@ start_hourglass (void)
hourglass_atimer = start_atimer (ATIMER_RELATIVE, delay,
show_hourglass, NULL);
#endif
}
......@@ -29771,7 +29781,6 @@ start_hourglass (void)
void
cancel_hourglass (void)
{
#if defined (HAVE_WINDOW_SYSTEM)
if (hourglass_atimer)
{
cancel_atimer (hourglass_atimer);
......@@ -29780,5 +29789,6 @@ cancel_hourglass (void)
if (hourglass_shown_p)
hide_hourglass ();
#endif
}
#endif /* HAVE_WINDOW_SYSTEM */
......@@ -238,6 +238,11 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define FRAME_X_DISPLAY_INFO FRAME_NS_DISPLAY_INFO
#define GCGraphicsExposures 0
#endif /* HAVE_NS */
/* Number of pt per inch (from the TeXbook). */
#define PT_PER_INCH 72.27
#endif /* HAVE_WINDOW_SYSTEM */
#include "buffer.h"
......@@ -272,10 +277,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <c-ctype.h>
/* Number of pt per inch (from the TeXbook). */
#define PT_PER_INCH 72.27
/* Non-zero if face attribute ATTR is unspecified. */
#define UNSPECIFIEDP(ATTR) EQ ((ATTR), Qunspecified)
......@@ -396,6 +397,8 @@ static Lisp_Object Qtty_color_desc, Qtty_color_by_index, Qtty_color_standard_val
static Lisp_Object Qtty_color_alist;
#ifdef HAVE_WINDOW_SYSTEM
/* Counter for calls to clear_face_cache. If this counter reaches
CLEAR_FONT_TABLE_COUNT, and a frame has more than
CLEAR_FONT_TABLE_NFONTS load, unused fonts are freed. */
......@@ -404,6 +407,8 @@ static int clear_font_table_count;
#define CLEAR_FONT_TABLE_COUNT 100
#define CLEAR_FONT_TABLE_NFONTS 10
#endif /* HAVE_WINDOW_SYSTEM */
/* Non-zero means face attributes have been changed since the last
redisplay. Used in redisplay_internal. */
......@@ -434,29 +439,27 @@ static int ngcs;
static int menu_face_changed_default;
/* Function prototypes. */
struct table_entry;
struct named_merge_point;
static void set_font_frame_param (Lisp_Object, Lisp_Object);
static struct face *realize_face (struct face_cache *, Lisp_Object *,
int);
static struct face *realize_non_ascii_face (struct frame *, Lisp_Object,
struct face *);
static struct face *realize_x_face (struct face_cache *, Lisp_Object *);
static struct face *realize_tty_face (struct face_cache *, Lisp_Object *);
static bool realize_basic_faces (struct frame *);
static bool realize_default_face (struct frame *);
static void realize_named_face (struct frame *, Lisp_Object, int);
static struct face_cache *make_face_cache (struct frame *);
static void clear_face_gcs (struct face_cache *);
static void free_face_cache (struct face_cache *);
static int merge_face_ref (struct frame *, Lisp_Object, Lisp_Object *,
int, struct named_merge_point *);
#ifdef HAVE_WINDOW_SYSTEM
static void set_font_frame_param (Lisp_Object, Lisp_Object);
static void clear_face_gcs (struct face_cache *);
static struct face *realize_non_ascii_face (struct frame *, Lisp_Object,
struct face *);
#endif /* HAVE_WINDOW_SYSTEM */
/***********************************************************************
Utilities
***********************************************************************/
......@@ -3983,6 +3986,7 @@ lface_hash (Lisp_Object *v)
^ XHASH (v[LFACE_HEIGHT_INDEX]));
}
#ifdef HAVE_WINDOW_SYSTEM
/* Return non-zero if LFACE1 and LFACE2 specify the same font (without
considering charsets/registries). They do if they specify the same
......@@ -4011,8 +4015,8 @@ lface_same_font_attributes_p (Lisp_Object *lface1, Lisp_Object *lface2)
);
}
#endif /* HAVE_WINDOW_SYSTEM */
/***********************************************************************
Realized Faces
***********************************************************************/
......@@ -4171,6 +4175,7 @@ make_face_cache (struct frame *f)
return c;
}
#ifdef HAVE_WINDOW_SYSTEM
/* Clear out all graphics contexts for all realized faces, except for
the basic faces. This should be done from time to time just to avoid
......@@ -4181,7 +4186,6 @@ clear_face_gcs (struct face_cache *c)
{
if (c && FRAME_WINDOW_P (c->f))
{
#ifdef HAVE_WINDOW_SYSTEM
int i;
for (i = BASIC_FACE_ID_SENTINEL; i < c->used; ++i)
{
......@@ -4196,10 +4200,10 @@ clear_face_gcs (struct face_cache *c)
unblock_input ();
}
}
#endif /* HAVE_WINDOW_SYSTEM */
}
}
#endif /* HAVE_WINDOW_SYSTEM */
/* Free all realized faces in face cache C, including basic faces.
C may be null. If faces are freed, make sure the frame's current
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment