]> git.ipfire.org Git - thirdparty/coreutils.git/commitdiff
maint: prefer memeq to memcmp
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 17 Sep 2025 19:12:53 +0000 (12:12 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 17 Sep 2025 19:20:24 +0000 (12:20 -0700)
* gl/modules/randread-tests (Depends-on): Add stringeq.
* gl/tests/test-rand-isaac.c (main):
* src/copy.c (source_is_dst_backup):
* src/digest.c (b64_equal):
* src/install.c (have_same_content):
* src/ls.c (main, parse_ls_color):
* src/nl.c (check_section):
* src/od.c (write_block):
* src/seq.c (seq_fast):
* src/stty.c (eq_mode):
* src/system.h (is_nul):
Prefer memeq to memcmp when either will do.

gl/modules/randread-tests
gl/tests/test-rand-isaac.c
src/copy.c
src/digest.c
src/install.c
src/ls.c
src/nl.c
src/od.c
src/seq.c
src/stty.c
src/system.h

index af24c9041422655f42132d663b1034d1eefe707f..35da6cdec0af5380dbd8b6d59672ddf44b2008a2 100644 (file)
@@ -3,6 +3,7 @@ tests/test-rand-isaac.c
 tests/macros.h
 
 Depends-on:
+stringeq
 
 configure.ac:
 
index 334a7601e6010ddaf55d65ee64724a6df42a728e..5457d0f3c2989d9e893f9a612cf2d030feab8642 100644 (file)
@@ -576,7 +576,7 @@ main (int argc, char **argv)
   for (i = 0; i < sizeof expected / sizeof expected[0]; i++)
     {
       isaac_refill (&s, r);
-      ASSERT (memcmp (r, expected[i], sizeof r) == 0);
+      ASSERT (memeq (r, expected[i], sizeof r));
     }
 
   /* If invoked with a positive argument, run a benchmark;
index 11c82e1a81b88b97cefdba7c1dcd6d179239ec1a..4af66c882189a5271c618deb62edee87398d4661 100644 (file)
@@ -1597,7 +1597,7 @@ source_is_dst_backup (char const *srcbase, struct stat const *src_st,
   size_t dstbaselen = strlen (dstbase);
   size_t suffixlen = strlen (simple_backup_suffix);
   if (! (srcbaselen == dstbaselen + suffixlen
-         && memcmp (srcbase, dstbase, dstbaselen) == 0
+         && memeq (srcbase, dstbase, dstbaselen)
          && streq (srcbase + dstbaselen, simple_backup_suffix)))
     return false;
   char *dst_back = subst_suffix (dst_relname,
index 03b3190d6bcf46a7a620b1e52c74d12b35dd670d..64c2c49b1da7d772c32b739c805148053a7c0901 100644 (file)
@@ -1191,7 +1191,7 @@ b64_equal (unsigned char const *b64_digest, unsigned char const *bin_buffer)
   size_t b64_n_bytes = BASE64_LENGTH (digest_length / 8);
   char b64[BASE64_LENGTH (DIGEST_BIN_BYTES) + 1];
   base64_encode ((char const *) bin_buffer, digest_length / 8, b64, sizeof b64);
-  return memcmp (b64_digest, b64, b64_n_bytes + 1) == 0;
+  return memeq (b64_digest, b64, b64_n_bytes + 1);
 }
 #endif
 
index 53f6a2ff57499778d7f4cf3079f0bfb1bf9aa2b4..f8a8140254a4c56e8c34d7b593e83d188713c469 100644 (file)
@@ -147,7 +147,7 @@ have_same_content (int a_fd, int b_fd)
     if (size != full_read (b_fd, b_buff, sizeof b_buff))
       return false;
 
-    if (memcmp (a_buff, b_buff, size) != 0)
+    if (!memeq (a_buff, b_buff, size))
       return false;
   }
 
index 323b1db10e2b271e3cbea7f46a25984cfa870d87..d999d5bdf1f829fa15cfb3ceb75f9770503fdaf5 100644 (file)
--- a/src/ls.c
+++ b/src/ls.c
@@ -1870,7 +1870,7 @@ main (int argc, char **argv)
       /* Skip the restore when it would be a no-op, i.e.,
          when left is "\033[" and right is "m".  */
       if (!(color_indicator[C_LEFT].len == 2
-            && memcmp (color_indicator[C_LEFT].string, "\033[", 2) == 0
+            && memeq (color_indicator[C_LEFT].string, "\033[", 2)
             && color_indicator[C_RIGHT].len == 1
             && color_indicator[C_RIGHT].string[0] == 'm'))
         restore_default_color ();
@@ -2894,7 +2894,7 @@ parse_ls_color (void)
             {
               if (e2->ext.len < SIZE_MAX && e1->ext.len == e2->ext.len)
                 {
-                  if (memcmp (e1->ext.string, e2->ext.string, e1->ext.len) == 0)
+                  if (memeq (e1->ext.string, e2->ext.string, e1->ext.len))
                     e2->ext.len = SIZE_MAX; /* Ignore */
                   else if (c_strncasecmp (e1->ext.string, e2->ext.string,
                                           e1->ext.len) == 0)
@@ -2904,8 +2904,8 @@ parse_ls_color (void)
                           e2->ext.len = SIZE_MAX; /* Ignore */
                         }
                       else if (e1->seq.len == e2->seq.len
-                               && memcmp (e1->seq.string, e2->seq.string,
-                                          e1->seq.len) == 0)
+                               && memeq (e1->seq.string, e2->seq.string,
+                                         e1->seq.len))
                         {
                           e2->ext.len = SIZE_MAX; /* Ignore */
                           case_ignored = true;    /* Ignore all subsequent */
index 2812b383b7882ebf190379a1f8fdd7ca079b1680..f243a295360f2b8ddfbffff93ca6c253f5242953 100644 (file)
--- a/src/nl.c
+++ b/src/nl.c
@@ -389,16 +389,16 @@ check_section (void)
   size_t len = line_buf.length - 1;
 
   if (len < 2 || footer_del_len < 2
-      || memcmp (line_buf.buffer, section_del, 2))
+      || !memeq (line_buf.buffer, section_del, 2))
     return Text;
   if (len == header_del_len
-      && !memcmp (line_buf.buffer, header_del, header_del_len))
+      && memeq (line_buf.buffer, header_del, header_del_len))
     return Header;
   if (len == body_del_len
-      && !memcmp (line_buf.buffer, body_del, body_del_len))
+      && memeq (line_buf.buffer, body_del, body_del_len))
     return Body;
   if (len == footer_del_len
-      && !memcmp (line_buf.buffer, footer_del, footer_del_len))
+      && memeq (line_buf.buffer, footer_del, footer_del_len))
     return Footer;
   return Text;
 }
index 45d9f32e6ff13790af22c025f5caea3d9ab0fe4e..f8937298fb523cae911c484305f50843daa51f9e 100644 (file)
--- a/src/od.c
+++ b/src/od.c
@@ -1273,11 +1273,9 @@ write_block (intmax_t current_offset, idx_t n_bytes,
   static bool first = true;
   static bool prev_pair_equal = false;
 
-#define EQUAL_BLOCKS(b1, b2) (memcmp (b1, b2, bytes_per_block) == 0)
-
   if (abbreviate_duplicate_blocks
       && !first && n_bytes == bytes_per_block
-      && EQUAL_BLOCKS (prev_block, curr_block))
+      && memeq (prev_block, curr_block, bytes_per_block))
     {
       if (prev_pair_equal)
         {
index 2bff0d40cc6b2eacbb16c8098a758eb2fdd5c0e1..c3b9a4830e3a488a62d6a6c901745edf04e12066 100644 (file)
--- a/src/seq.c
+++ b/src/seq.c
@@ -465,7 +465,7 @@ seq_fast (char const *a, char const *b, uintmax_t step)
 
   idx_t p_len = strlen (a);
   idx_t b_len = strlen (b);
-  bool inf = b_len == 3 && memcmp (b, "inf", 4) == 0;
+  bool inf = b_len == 3 && memeq (b, "inf", 4);
 
   /* Allow for at least 31 digits without realloc.
      1 more than p_len is needed for the inf case.  */
index 8032304bb42e3b117fa0980c91f256e3e5d28482..c9523efdcd32f9f8668aa72d6ecb82248521a1e3 100644 (file)
@@ -1286,7 +1286,7 @@ apply_settings (bool checking, char const *device_name,
 int
 main (int argc, char **argv)
 {
-  /* Initialize to all zeroes so there is no risk memcmp will report a
+  /* Initialize to all zeroes so there is no risk memeq will report a
      spurious difference in an uninitialized portion of the structure.  */
   static struct termios mode;
 
@@ -1424,7 +1424,7 @@ main (int argc, char **argv)
 
   if (require_set_attr)
     {
-      /* Initialize to all zeroes so there is no risk memcmp will report a
+      /* Initialize to all zeroes so there is no risk memeq will report a
          spurious difference in an uninitialized portion of the structure.  */
       static struct termios new_mode;
 
@@ -1476,7 +1476,7 @@ eq_mode (struct termios *mode1, struct termios *mode2)
 #ifdef HAVE_C_LINE
       && mode1->c_line == mode2->c_line
 #endif
-      && memcmp (mode1->c_cc, mode2->c_cc, sizeof (mode1->c_cc)) == 0
+      && memeq (mode1->c_cc, mode2->c_cc, sizeof (mode1->c_cc))
       && cfgetispeed (mode1) == cfgetispeed (mode2)
       && cfgetospeed (mode1) == cfgetospeed (mode2);
 }
index f37d4b811a23a260afd4916a2f617c4aa355635a..a7ae5a5f3b2b674d305f14fa3ecc77c44a0472c8 100644 (file)
@@ -496,7 +496,7 @@ is_nul (void const *buf, size_t length)
 #endif
 
   if (! length)
-      return true;
+    return true;
 
   /* Check len bytes not aligned on a word.  */
   while (UNLIKELY (length & (sizeof word - 1)))
@@ -523,8 +523,8 @@ is_nul (void const *buf, size_t length)
         break;
    }
 
-   /* Now we know first 16 bytes are NUL, memcmp with self.  */
-   return memcmp (buf, p, length) == 0;
+  /* Now we know first 16 bytes are NUL, memeq with self.  */
+  return memeq (buf, p, length);
 }
 
 /* Set Accum = 10*Accum + Digit_val and return true, where Accum is an