From b2c71fb43cce2e41e6942e9489eab007cf32f5f5 Mon Sep 17 00:00:00 2001 From: Karl Heuer Date: Mon, 14 Mar 1994 21:44:12 +0000 Subject: [PATCH] (search_buffer): Avoid boolean/integer mixing that confuses some compilers. --- src/search.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/search.c b/src/search.c index e24a2019086..45d3f52fe90 100644 --- a/src/search.c +++ b/src/search.c @@ -822,7 +822,10 @@ search_buffer (string, pos, lim, n, RE, trt, inverse_trt) of pattern would align in a possible match. */ while (n != 0) { - if ((lim - pos - (direction > 0)) * direction < 0) + /* It's been reported that some (broken) compiler thinks that + Boolean expressions in an arithmetic context are unsigned. + Using an explicit ?1:0 prevents this. */ + if ((lim - pos - ((direction > 0) ? 1 : 0)) * direction < 0) return (n * (0 - direction)); /* First we do the part we can by pointers (maybe nothing) */ QUIT; -- 2.39.5