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-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.
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)))));
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;
+ }
}
}
}
/* 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. */
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)))
{
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))
#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
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 */
}
}
-#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)));
(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 \