From 8d50503997ebc7e55d098e85ad1a77e4cce61f05 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Fri, 7 Apr 1995 18:46:21 +0000 Subject: [PATCH] (search_buffer): Avoid casting trt to int. Use EMACS_INT for comparing pointers. --- src/search.c | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/search.c b/src/search.c index 9703e320ab3..82d9d812bc9 100644 --- a/src/search.c +++ b/src/search.c @@ -1113,7 +1113,7 @@ search_buffer (string, pos, lim, n, RE, trt, inverse_trt, posix) { j = pat[i]; i += direction; if (i == dirlen) i = infinity; - if ((int) trt) + if (trt != 0) { k = (j = trt[j]); if (i == infinity) @@ -1175,20 +1175,20 @@ search_buffer (string, pos, lim, n, RE, trt, inverse_trt, posix) either kind of comparison will work as long as we don't step by infinity. So pick the kind that works when we do step by infinity. */ - if ((int) (p_limit + infinity) > (int) p_limit) - while ((int) cursor <= (int) p_limit) + if ((EMACS_INT) (p_limit + infinity) > (EMACS_INT) p_limit) + while ((EMACS_INT) cursor <= (int) p_limit) cursor += BM_tab[*cursor]; else - while ((unsigned int) cursor <= (unsigned int) p_limit) + while ((unsigned EMACS_INT) cursor <= (unsigned EMACS_INT) p_limit) cursor += BM_tab[*cursor]; } else { - if ((int) (p_limit + infinity) < (int) p_limit) - while ((int) cursor >= (int) p_limit) + if ((EMACS_INT) (p_limit + infinity) < (EMACS_INT) p_limit) + while ((EMACS_INT) cursor >= (EMACS_INT) p_limit) cursor += BM_tab[*cursor]; else - while ((unsigned int) cursor >= (unsigned int) p_limit) + while ((unsigned EMACS_INT) cursor >= (unsigned EMACS_INT) p_limit) cursor += BM_tab[*cursor]; } /* If you are here, cursor is beyond the end of the searched region. */ @@ -1201,7 +1201,7 @@ search_buffer (string, pos, lim, n, RE, trt, inverse_trt, posix) break; /* a small overrun is genuine */ cursor -= infinity; /* large overrun = hit */ i = dirlen - direction; - if ((int) trt) + if (trt != 0) { while ((i -= direction) + direction != 0) if (pat[i] != trt[*(cursor -= direction)]) @@ -1264,7 +1264,7 @@ search_buffer (string, pos, lim, n, RE, trt, inverse_trt, posix) while ((i -= direction) + direction != 0) { pos -= direction; - if (pat[i] != (((int) trt) + if (pat[i] != (trt != 0 ? trt[FETCH_CHAR(pos)] : FETCH_CHAR (pos))) break; -- 2.39.5