diff options
-rw-r--r-- | src/ChangeLog | 15 | ||||
-rw-r--r-- | src/composite.c | 25 | ||||
-rw-r--r-- | src/frame.c | 10 | ||||
-rw-r--r-- | src/frame.h | 11 | ||||
-rw-r--r-- | src/window.c | 4 | ||||
-rw-r--r-- | src/window.h | 10 |
6 files changed, 45 insertions, 30 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index f6cf9938573..8433127b7c2 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,18 @@ +2014-09-11 Paul Eggert <eggert@cs.ucla.edu> + + Pacify --enable-gcc-warnings when no window system is used. + These warnings found that subscript error, so they seem worthwhile. + * composite.c (char_composable_p): Simplify a bit. + * frame.c (x_set_frame_parameters): Add an IF_LINT. + * frame.c (x_set_horizontal_scroll_bars, x_set_scroll_bar_height): + * frame.h (FRAME_HAS_HORIZONTAL_SCROLL_BARS): + * window.c (set_window_scroll_bars): + Use USE_HORIZONTAL_SCROLL_BARS for simplicity. + * frame.h [! USE_HORIZONTAL_SCROLL_BARS]: + Ignore -Wsuggest-attribute=const. + * window.h (USE_HORIZONTAL_SCROLL_BARS): New macro. + (WINDOW_HAS_HORIZONTAL_SCROLL_BAR): Use it. + 2014-09-10 Paul Eggert <eggert@penguin.cs.ucla.edu> * charset.c (Fget_unused_iso_final_char): Fix subscript error. diff --git a/src/composite.c b/src/composite.c index 66a20759ec6..1b1960d1c4d 100644 --- a/src/composite.c +++ b/src/composite.c @@ -928,7 +928,7 @@ static bool char_composable_p (int c) { Lisp_Object val; - return (c > ' ' + return (c > ' ' && (c == 0x200C || c == 0x200D || (val = CHAR_TABLE_REF (Vunicode_category_table, c), (INTEGERP (val) && (XINT (val) <= UNICODE_CATEGORY_So))))); @@ -1016,24 +1016,19 @@ composition_compute_stop_pos (struct composition_it *cmp_it, ptrdiff_t charpos, val = CHAR_TABLE_REF (Vcomposition_function_table, c); if (! NILP (val)) { - Lisp_Object elt; - int ridx; - - for (ridx = 0; CONSP (val); val = XCDR (val), ridx++) + for (int ridx = 0; CONSP (val); val = XCDR (val), ridx++) { - elt = XCAR (val); + Lisp_Object elt = XCAR (val); if (VECTORP (elt) && ASIZE (elt) == 3 && NATNUMP (AREF (elt, 1)) && charpos - 1 - XFASTINT (AREF (elt, 1)) >= start) - break; - } - if (CONSP (val)) - { - cmp_it->rule_idx = ridx; - cmp_it->lookback = XFASTINT (AREF (elt, 1)); - cmp_it->stop_pos = charpos - 1 - cmp_it->lookback; - cmp_it->ch = c; - return; + { + cmp_it->rule_idx = ridx; + cmp_it->lookback = XFASTINT (AREF (elt, 1)); + cmp_it->stop_pos = charpos - 1 - cmp_it->lookback; + cmp_it->ch = c; + return; + } } } } diff --git a/src/frame.c b/src/frame.c index 7077d42dd1b..d0e585622e2 100644 --- a/src/frame.c +++ b/src/frame.c @@ -3002,7 +3002,7 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist) /* If both of these parameters are present, it's more efficient to set them both at once. So we wait until we've looked at the entire list before we set them. */ - int width, height; + int width, height IF_LINT (= 0); bool width_change = 0, height_change = 0; /* Same here. */ @@ -3771,9 +3771,7 @@ x_set_vertical_scroll_bars (struct frame *f, Lisp_Object arg, Lisp_Object oldval void x_set_horizontal_scroll_bars (struct frame *f, Lisp_Object arg, Lisp_Object oldval) { -#if (defined (HAVE_WINDOW_SYSTEM) \ - && ((defined (USE_TOOLKIT_SCROLL_BARS) && !defined (HAVE_NS)) \ - || defined (HAVE_NTGUI))) +#if USE_HORIZONTAL_SCROLL_BARS if ((NILP (arg) && FRAME_HAS_HORIZONTAL_SCROLL_BARS (f)) || (!NILP (arg) && !FRAME_HAS_HORIZONTAL_SCROLL_BARS (f))) { @@ -3823,9 +3821,7 @@ x_set_scroll_bar_width (struct frame *f, Lisp_Object arg, Lisp_Object oldval) void x_set_scroll_bar_height (struct frame *f, Lisp_Object arg, Lisp_Object oldval) { -#if (defined (HAVE_WINDOW_SYSTEM) \ - && ((defined (USE_TOOLKIT_SCROLL_BARS) && !defined (HAVE_NS)) \ - || defined (HAVE_NTGUI))) +#if USE_HORIZONTAL_SCROLL_BARS int unit = FRAME_LINE_HEIGHT (f); if (NILP (arg)) diff --git a/src/frame.h b/src/frame.h index 0f34770d9b4..c942a9008fa 100644 --- a/src/frame.h +++ b/src/frame.h @@ -868,9 +868,7 @@ default_pixels_per_inch_y (void) #endif /* HAVE_WINDOW_SYSTEM */ /* Whether horizontal scroll bars are currently enabled for frame F. */ -#if (defined (HAVE_WINDOW_SYSTEM) \ - && ((defined (USE_TOOLKIT_SCROLL_BARS) && !defined (HAVE_NS)) \ - || defined (HAVE_NTGUI))) +#if USE_HORIZONTAL_SCROLL_BARS #define FRAME_HAS_HORIZONTAL_SCROLL_BARS(f) \ ((f)->horizontal_scroll_bars) #else @@ -1501,4 +1499,11 @@ extern Lisp_Object make_monitor_attribute_list (struct MonitorInfo *monitors, INLINE_HEADER_END +/* Suppress -Wsuggest-attribute=const if there are no scroll bars. + This is for functions like x_set_horizontal_scroll_bars that have + no effect in this case. */ +#if ! USE_HORIZONTAL_SCROLL_BARS && 4 < __GNUC__ + (6 <= __GNUC_MINOR__) +# pragma GCC diagnostic ignored "-Wsuggest-attribute=const" +#endif + #endif /* not EMACS_FRAME_H */ diff --git a/src/window.c b/src/window.c index 341e3e3dcd2..8736fe13c3b 100644 --- a/src/window.c +++ b/src/window.c @@ -7376,9 +7376,7 @@ set_window_scroll_bars (struct window *w, Lisp_Object width, } } -#if (defined (HAVE_WINDOW_SYSTEM) \ - && ((defined (USE_TOOLKIT_SCROLL_BARS) && !defined (HAVE_NS)) \ - || defined (HAVE_NTGUI))) +#if USE_HORIZONTAL_SCROLL_BARS { int iheight = (NILP (height) ? -1 : (CHECK_NATNUM (height), XINT (height))); diff --git a/src/window.h b/src/window.h index 7e1c7d619b9..ea5dddc9fc8 100644 --- a/src/window.h +++ b/src/window.h @@ -785,11 +785,17 @@ wset_next_buffers (struct window *w, Lisp_Object val) (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT (W) \ || WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (W)) -/* Say whether horizontal scroll bars are currently enabled for window - W. Horizontal scrollbars exist for toolkit versions only. */ #if (defined (HAVE_WINDOW_SYSTEM) \ && ((defined (USE_TOOLKIT_SCROLL_BARS) && !defined (HAVE_NS)) \ || defined (HAVE_NTGUI))) +# define USE_HORIZONTAL_SCROLL_BARS true +#else +# define USE_HORIZONTAL_SCROLL_BARS false +#endif + +/* Say whether horizontal scroll bars are currently enabled for window + W. Horizontal scrollbars exist for toolkit versions only. */ +#if USE_HORIZONTAL_SCROLL_BARS #define WINDOW_HAS_HORIZONTAL_SCROLL_BAR(W) \ ((WINDOW_PSEUDO_P (W) || MINI_NON_ONLY_WINDOW_P (W)) \ ? false \ |