From f485881d4abcafbf92472b8be1a4678e873804c6 Mon Sep 17 00:00:00 2001
From: Paul Smith <psmith@gnu.org>
Date: Wed, 19 Jan 2022 17:43:57 -0500
Subject: [PATCH] * src/implicit.c (pattern_search): Use const ptrs when
 possible.

Change suggested by Joe Filion <joefilion4@gmail.com>
---
 src/implicit.c | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/src/implicit.c b/src/implicit.c
index be457184..895dafd6 100644
--- a/src/implicit.c
+++ b/src/implicit.c
@@ -539,7 +539,6 @@ pattern_search (struct file *file, int archive,
           while (1)
             {
               struct dep *dl, *d;
-              char *p;
 
               /* If we're out of name to parse, start the next prereq.  */
               if (! nptr)
@@ -553,9 +552,10 @@ pattern_search (struct file *file, int archive,
               /* If we don't need a second expansion, just replace the %.  */
               if (! dep->need_2nd_expansion)
                 {
+                  char *p;
                   int is_explicit = 1;
-                  p = strchr (nptr, '%');
-                  if (p == 0)
+                  const char *cp = strchr (nptr, '%');
+                  if (cp == 0)
                     strcpy (depname, nptr);
                   else
                     {
@@ -565,11 +565,11 @@ pattern_search (struct file *file, int archive,
                           memcpy (o, filename, pathlen);
                           o += pathlen;
                         }
-                      memcpy (o, nptr, p - nptr);
-                      o += p - nptr;
+                      memcpy (o, nptr, cp - nptr);
+                      o += cp - nptr;
                       memcpy (o, stem, stemlen);
                       o += stemlen;
-                      strcpy (o, p + 1);
+                      strcpy (o, cp + 1);
                       is_explicit = 0;
                     }
 
@@ -603,6 +603,8 @@ pattern_search (struct file *file, int archive,
                   size_t len;
                   struct dep **dptr;
                   int is_explicit;
+                  const char *cp;
+                  char *p;
 
                   nptr = get_next_word (nptr, &len);
                   if (nptr == 0)
@@ -627,8 +629,8 @@ pattern_search (struct file *file, int archive,
                      (since $* and $(*F) are simple variables) there won't be
                      additional re-expansion of the stem.  */
 
-                  p = lindex (nptr, nptr + len, '%');
-                  if (p == 0)
+                  cp = lindex (nptr, nptr + len, '%');
+                  if (cp == 0)
                     {
                       memcpy (depname, nptr, len);
                       depname[len] = '\0';
@@ -636,7 +638,7 @@ pattern_search (struct file *file, int archive,
                     }
                   else
                     {
-                      size_t i = p - nptr;
+                      size_t i = cp - nptr;
                       char *o = depname;
                       memcpy (o, nptr, i);
                       o += i;
@@ -651,7 +653,7 @@ pattern_search (struct file *file, int archive,
                           memcpy (o, "$*", 2);
                           o += 2;
                         }
-                      memcpy (o, p + 1, len - i - 1);
+                      memcpy (o, cp + 1, len - i - 1);
                       o[len - i - 1] = '\0';
                       is_explicit = 0;
                     }