From: Bruno Haible Date: Thu, 7 May 2026 18:38:34 +0000 (+0200) Subject: Use memeq. X-Git-Url: http://git.ipfire.org/gitweb/index.cgi?a=commitdiff_plain;h=a0a222cebeb65252293faf9afe3183ab7ac243b0;p=thirdparty%2Fgettext.git Use memeq. * autogen.sh (GNULIB_MODULES_TOOLS_FOR_SRC, GNULIB_MODULES_LIBGETTEXTPO): Add memeq. * gettext-tools/src/locating-rules.c: Include . (locating_rule_match, locating_rule_list_add_from_directory): Use memeq instead of memcmp. * gettext-tools/src/msgfmt.c (add_mo_suffix): Likewise. * gettext-tools/src/msggrep.c (is_message_selected_no_invert): Likewise. * gettext-tools/src/msginit.c (find_pot): Likewise. * gettext-tools/src/msgl-cat.c (catenate_msgdomain_list): Likewise. * gettext-tools/src/msgl-equal.c (msgstr_equal, msgstr_equal_ignoring_potcdate): Likewise. * gettext-tools/src/msgl-iconv.c (iconv_message_list_internal): Likewise. * gettext-tools/src/msgl-merge.c (message_merge): Likewise. * gettext-tools/src/read-catalog.c (default_add_message): Likewise. * gettext-tools/src/read-catalog-special.c (parse_comment_special): Likewise. * gettext-tools/src/read-po-lex.c (po_lex_charset_set, mb_equal): Likewise. * gettext-tools/src/read-stringtable.c (comment_line_end): Likewise. * gettext-tools/src/spit.c (my_header_callback): Likewise. * gettext-tools/src/str-list.c (string_list_append_unique_desc, string_list_member_desc): Likewise. * gettext-tools/src/write-mo.c (write_table): Likewise. * gettext-tools/src/write-po.c (wrap): Likewise. * gettext-tools/src/x-go.c (x_go_keyword): Likewise. * gettext-tools/src/x-sh.c (read_command): Likewise. * gettext-tools/src/xg-check.c (string_has_ascii_ellipsis): Likewise. * gettext-tools/src/xg-mixed-string.c (mixed_string_buffer_equals, mixed_string_buffer_startswith): Likewise. * gettext-tools/src/xgettext.c (main, xgettext_record_flag): Likewise. --- diff --git a/autogen.sh b/autogen.sh index ce3b220b1..0199f7f0c 100755 --- a/autogen.sh +++ b/autogen.sh @@ -236,6 +236,7 @@ if ! $skip_gnulib; then lock mem-hash-map memchr + memeq memmove memset minmax @@ -514,6 +515,7 @@ if ! $skip_gnulib; then libunistring-optional markup mem-hash-map + memeq minmax once open diff --git a/gettext-tools/src/locating-rules.c b/gettext-tools/src/locating-rules.c index e5291f4b6..730fadd15 100644 --- a/gettext-tools/src/locating-rules.c +++ b/gettext-tools/src/locating-rules.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -154,7 +155,7 @@ locating_rule_match (struct locating_rule_ty *rule, char *reduced = xstrdup (base); /* Remove a trailing ".in" - it's a generic suffix. */ while (strlen (reduced) >= 3 - && memcmp (reduced + strlen (reduced) - 3, ".in", 3) == 0) + && memeq (reduced + strlen (reduced) - 3, ".in", 3)) reduced[strlen (reduced) - 3] = '\0'; int err = fnmatch (rule->pattern, last_component (reduced), FNM_PATHNAME); @@ -386,7 +387,7 @@ locating_rule_list_add_from_directory (struct locating_rule_list_ty *rules, const char *name = dp->d_name; size_t namlen = strlen (name); - if (namlen > 4 && memcmp (name + namlen - 4, ".loc", 4) == 0) + if (namlen > 4 && memeq (name + namlen - 4, ".loc", 4)) { char *locator_file_name = xconcatenated_filename (directory, name, NULL); diff --git a/gettext-tools/src/msgfmt.c b/gettext-tools/src/msgfmt.c index fe6b3f31d..6ddd1c923 100644 --- a/gettext-tools/src/msgfmt.c +++ b/gettext-tools/src/msgfmt.c @@ -1136,9 +1136,9 @@ static const char * add_mo_suffix (const char *fname) { size_t len = strlen (fname); - if (len > 3 && memcmp (fname + len - 3, ".mo", 3) == 0) + if (len > 3 && memeq (fname + len - 3, ".mo", 3)) return fname; - if (len > 4 && memcmp (fname + len - 4, ".gmo", 4) == 0) + if (len > 4 && memeq (fname + len - 4, ".gmo", 4)) return fname; char *result = XNMALLOC (len + 4, char); stpcpy (stpcpy (result, fname), ".mo"); diff --git a/gettext-tools/src/msggrep.c b/gettext-tools/src/msggrep.c index 88848968f..5dc79f99c 100644 --- a/gettext-tools/src/msggrep.c +++ b/gettext-tools/src/msggrep.c @@ -721,10 +721,10 @@ is_message_selected_no_invert (const message_ty *mp) { const char *flag = sticky_flags->item[i]; size_t flag_len = strlen (flag); - if (flag_len >= 7 && memcmp (flag + flag_len - 7, "-format", 7) == 0) + if (flag_len >= 7 && memeq (flag + flag_len - 7, "-format", 7)) { flag_len -= 7; - bool has_no_prefix = (flag_len >= 3 && memcmp (flag, "no-", 3) == 0); + bool has_no_prefix = (flag_len >= 3 && memeq (flag, "no-", 3)); if (has_no_prefix) { flag += 3; @@ -732,7 +732,7 @@ is_message_selected_no_invert (const message_ty *mp) } for (size_t j = 0; j < NFORMATS; j++) if (strlen (format_language[j]) == flag_len - && memcmp (format_language[j], flag, flag_len) == 0) + && memeq (format_language[j], flag, flag_len)) { /* The value of the flag is stored in mp->is_format[j]. */ if (mp->is_format[j] == (has_no_prefix ? no : yes)) diff --git a/gettext-tools/src/msginit.c b/gettext-tools/src/msginit.c index 228d1d024..f2ff85c37 100644 --- a/gettext-tools/src/msginit.c +++ b/gettext-tools/src/msginit.c @@ -487,7 +487,7 @@ find_pot () const char *name = dp->d_name; size_t namlen = strlen (name); - if (namlen > 4 && memcmp (name + namlen - 4, ".pot", 4) == 0) + if (namlen > 4 && memeq (name + namlen - 4, ".pot", 4)) { if (found == NULL) found = xstrdup (name); diff --git a/gettext-tools/src/msgl-cat.c b/gettext-tools/src/msgl-cat.c index 2b446361c..afd76b75d 100644 --- a/gettext-tools/src/msgl-cat.c +++ b/gettext-tools/src/msgl-cat.c @@ -162,8 +162,8 @@ catenate_msgdomain_list (string_list_ty *file_list, if (strcmp (charset, "CHARSET") == 0 && ((filenamelen >= 4 - && memcmp (filename + filenamelen - 4, - ".pot", 4) == 0) + && memeq (filename + filenamelen - 4, + ".pot", 4)) || is_ascii_message_list (mlp))) canon_charset = po_charset_ascii; else @@ -681,8 +681,8 @@ UTF-8 encoded from the beginning, i.e. already in your source code files.\n"), bool all_equal = true; for (size_t i = 0; i < tmp->alternative_count; i++) if (!(tmp->alternative[i].msgstr_len == first->msgstr_len - && memcmp (tmp->alternative[i].msgstr, first->msgstr, - first->msgstr_len) == 0)) + && memeq (tmp->alternative[i].msgstr, first->msgstr, + first->msgstr_len))) { all_equal = false; break; diff --git a/gettext-tools/src/msgl-equal.c b/gettext-tools/src/msgl-equal.c index 480b8a52c..b729b707a 100644 --- a/gettext-tools/src/msgl-equal.c +++ b/gettext-tools/src/msgl-equal.c @@ -31,7 +31,7 @@ msgstr_equal (const char *msgstr1, size_t msgstr1_len, const char *msgstr2, size_t msgstr2_len) { return (msgstr1_len == msgstr2_len - && memcmp (msgstr1, msgstr2, msgstr1_len) == 0); + && memeq (msgstr1, msgstr2, msgstr1_len)); } static bool @@ -52,7 +52,7 @@ msgstr_equal_ignoring_potcdate (const char *msgstr1, size_t msgstr1_len, ptr1 = NULL; break; } - if (memcmp (ptr1, field, fieldlen) == 0) + if (memeq (ptr1, field, fieldlen)) break; ptr1 = (const char *) memchr (ptr1, '\n', msgstr1_end - ptr1); if (ptr1 == NULL) @@ -69,7 +69,7 @@ msgstr_equal_ignoring_potcdate (const char *msgstr1, size_t msgstr1_len, ptr2 = NULL; break; } - if (memcmp (ptr2, field, fieldlen) == 0) + if (memeq (ptr2, field, fieldlen)) break; ptr2 = (const char *) memchr (ptr2, '\n', msgstr2_end - ptr2); if (ptr2 == NULL) diff --git a/gettext-tools/src/msgl-iconv.c b/gettext-tools/src/msgl-iconv.c index 603316e40..5e583f1eb 100644 --- a/gettext-tools/src/msgl-iconv.c +++ b/gettext-tools/src/msgl-iconv.c @@ -271,8 +271,7 @@ iconv_message_list_internal (message_list_ty *mlp, if (strcmp (charset, "CHARSET") == 0 && ((filename != NULL && (filenamelen = strlen (filename)) >= 4 - && memcmp (filename + filenamelen - 4, ".pot", 4) - == 0) + && memeq (filename + filenamelen - 4, ".pot", 4)) || is_ascii_message_list (mlp))) canon_charset = po_charset_ascii; else diff --git a/gettext-tools/src/msgl-merge.c b/gettext-tools/src/msgl-merge.c index 16dc57852..d2261775d 100644 --- a/gettext-tools/src/msgl-merge.c +++ b/gettext-tools/src/msgl-merge.c @@ -498,8 +498,8 @@ message_merge (message_ty *def, message_ty *ref, bool force_fuzzy, for (size_t i = 0; i < language_variant_table_size; i++) if (strlen (language_variant_table[i].english) == language_team_len - && memcmp (language_variant_table[i].english, - language_team_ptr, language_team_len) == 0) + && memeq (language_variant_table[i].english, + language_team_ptr, language_team_len)) { header_fields[LANGUAGE].string = language_variant_table[i].code; @@ -508,8 +508,8 @@ message_merge (message_ty *def, message_ty *ref, bool force_fuzzy, if (header_fields[LANGUAGE].string == NULL) for (size_t i = 0; i < language_table_size; i++) if (strlen (language_table[i].english) == language_team_len - && memcmp (language_table[i].english, - language_team_ptr, language_team_len) == 0) + && memeq (language_table[i].english, + language_team_ptr, language_team_len)) { header_fields[LANGUAGE].string = language_table[i].code; break; diff --git a/gettext-tools/src/read-catalog-special.c b/gettext-tools/src/read-catalog-special.c index 57c45d28c..d3a39e787 100644 --- a/gettext-tools/src/read-catalog-special.c +++ b/gettext-tools/src/read-catalog-special.c @@ -61,32 +61,32 @@ parse_comment_special (const char *s, size_t len = s - t; /* Accept fuzzy flag. */ - if (len == 5 && memcmp (t, "fuzzy", 5) == 0) + if (len == 5 && memeq (t, "fuzzy", 5)) { *fuzzyp = true; continue; } /* Accept format description. */ - if (len >= 7 && memcmp (t + len - 7, "-format", 7) == 0) + if (len >= 7 && memeq (t + len - 7, "-format", 7)) { const char *p = t; size_t n = len - 7; enum is_format value; - if (n >= 3 && memcmp (p, "no-", 3) == 0) + if (n >= 3 && memeq (p, "no-", 3)) { p += 3; n -= 3; value = no; } - else if (n >= 9 && memcmp (p, "possible-", 9) == 0) + else if (n >= 9 && memeq (p, "possible-", 9)) { p += 9; n -= 9; value = possible; } - else if (n >= 11 && memcmp (p, "impossible-", 11) == 0) + else if (n >= 11 && memeq (p, "impossible-", 11)) { p += 11; n -= 11; @@ -98,7 +98,7 @@ parse_comment_special (const char *s, size_t i; for (i = 0; i < NFORMATS; i++) if (strlen (format_language[i]) == n - && memcmp (format_language[i], p, n) == 0) + && memeq (format_language[i], p, n)) { formatp[i] = value; break; @@ -108,7 +108,7 @@ parse_comment_special (const char *s, } /* Accept range description "range: ..". */ - if (len == 6 && memcmp (t, "range:", 6) == 0) + if (len == 6 && memeq (t, "range:", 6)) { /* Skip whitespace. */ while (*s != '\0' && strchr ("\n \t\r\f\v,", *s) != NULL) @@ -163,25 +163,25 @@ parse_comment_special (const char *s, } /* Accept wrap description. */ - if (len == 4 && memcmp (t, "wrap", 4) == 0) + if (len == 4 && memeq (t, "wrap", 4)) { *wrapp = yes; continue; } - if (len == 7 && memcmp (t, "no-wrap", 7) == 0) + if (len == 7 && memeq (t, "no-wrap", 7)) { *wrapp = no; continue; } /* Accept syntax check description. */ - if (scp != NULL && len >= 6 && memcmp (t + len - 6, "-check", 6) == 0) + if (scp != NULL && len >= 6 && memeq (t + len - 6, "-check", 6)) { const char *p = t; size_t n = len - 6; enum is_syntax_check value; - if (n >= 3 && memcmp (p, "no-", 3) == 0) + if (n >= 3 && memeq (p, "no-", 3)) { p += 3; n -= 3; @@ -193,7 +193,7 @@ parse_comment_special (const char *s, size_t i; for (i = 0; i < NSYNTAXCHECKS; i++) if (strlen (syntax_check_name[i]) == n - && memcmp (syntax_check_name[i], p, n) == 0) + && memeq (syntax_check_name[i], p, n)) { scp[i] = value; break; diff --git a/gettext-tools/src/read-catalog.c b/gettext-tools/src/read-catalog.c index 277fa56bc..3df4bf21f 100644 --- a/gettext-tools/src/read-catalog.c +++ b/gettext-tools/src/read-catalog.c @@ -372,7 +372,7 @@ default_add_message (default_catalog_reader_ty *dcatr, { if (!(dcatr->allow_duplicates_if_same_msgstr && msgstr_len == mp->msgstr_len - && memcmp (msgstr, mp->msgstr, msgstr_len) == 0)) + && memeq (msgstr, mp->msgstr, msgstr_len))) { /* We give a fatal error about this, regardless whether the translations are equal or different. This is for consistency diff --git a/gettext-tools/src/read-po-lex.c b/gettext-tools/src/read-po-lex.c index 5bad38555..326f5e653 100644 --- a/gettext-tools/src/read-po-lex.c +++ b/gettext-tools/src/read-po-lex.c @@ -157,7 +157,7 @@ po_lex_charset_set (struct po_parser_state *ps, if (!(strcmp (charset, "CHARSET") == 0 && ((filenamelen >= 4 - && memcmp (filename + filenamelen - 4, ".pot", 4) == 0) + && memeq (filename + filenamelen - 4, ".pot", 4)) || is_pot_role))) { char *warning_message = @@ -315,7 +315,7 @@ would fix this problem.\n"); size_t filenamelen = strlen (filename); if (!(filenamelen >= 4 - && memcmp (filename + filenamelen - 4, ".pot", 4) == 0)) + && memeq (filename + filenamelen - 4, ".pot", 4))) ps->catr->xeh->xerror (CAT_SEVERITY_WARNING, NULL, filename, (size_t)(-1), (size_t)(-1), true, _("\ @@ -440,7 +440,7 @@ mb_equal (const mbchar_t mbc1, const mbchar_t mbc2) else #endif return (mbc1->bytes == mbc2->bytes - && memcmp (mbc1->buf, mbc2->buf, mbc1->bytes) == 0); + && memeq (mbc1->buf, mbc2->buf, mbc1->bytes)); } /* , classification. */ diff --git a/gettext-tools/src/read-stringtable.c b/gettext-tools/src/read-stringtable.c index e679c3546..b2a9ff149 100644 --- a/gettext-tools/src/read-stringtable.c +++ b/gettext-tools/src/read-stringtable.c @@ -530,9 +530,9 @@ comment_line_end (abstract_catalog_reader_ty *catr, } else if (strcmp (line, "Flag: unmatched") == 0) next_is_obsolete = true; - else if (strlen (line) >= 6 && memcmp (line, "Flag: ", 6) == 0) + else if (strlen (line) >= 6 && memeq (line, "Flag: ", 6)) special_comment_add (line + 6); - else if (strlen (line) >= 9 && memcmp (line, "Comment: ", 9) == 0) + else if (strlen (line) >= 9 && memeq (line, "Comment: ", 9)) /* A comment extracted from the source. */ catalog_reader_seen_comment_dot (catr, line + 9); else @@ -541,7 +541,7 @@ comment_line_end (abstract_catalog_reader_ty *catr, unsigned long number; char *endp; - if (strlen (line) >= 6 && memcmp (line, "File: ", 6) == 0 + if (strlen (line) >= 6 && memeq (line, "File: ", 6) && (last_colon = strrchr (line + 6, ':')) != NULL && c_isdigit (*(last_colon + 1)) && (number = strtoul (last_colon + 1, &endp, 10), *endp == '\0')) diff --git a/gettext-tools/src/spit.c b/gettext-tools/src/spit.c index fa6aef815..c6ff95bdc 100644 --- a/gettext-tools/src/spit.c +++ b/gettext-tools/src/spit.c @@ -180,7 +180,7 @@ my_header_callback (char *buffer, size_t one, size_t n, void *userdata) #if DEBUG fprintf (stderr, "in my_header_callback: buffer = %.*s\n", (int) n, buffer); #endif - if (n >= 5 && memcmp (buffer, "HTTP/", 5) == 0) + if (n >= 5 && memeq (buffer, "HTTP/", 5)) { /* buffer contains a line of the form "HTTP/1.1 code description". Extract the code. */ diff --git a/gettext-tools/src/str-list.c b/gettext-tools/src/str-list.c index 88fce0c66..278c56120 100644 --- a/gettext-tools/src/str-list.c +++ b/gettext-tools/src/str-list.c @@ -119,7 +119,7 @@ string_list_append_unique_desc (string_list_ty *slp, { /* Do nothing if the string is already in the list. */ for (size_t j = 0; j < slp->nitems; ++j) - if (strlen (slp->item[j]) == s_len && memcmp (slp->item[j], s, s_len) == 0) + if (strlen (slp->item[j]) == s_len && memeq (slp->item[j], s, s_len)) return; /* Grow the list. */ @@ -281,7 +281,7 @@ bool string_list_member_desc (const string_list_ty *slp, const char *s, size_t s_len) { for (size_t j = 0; j < slp->nitems; ++j) - if (strlen (slp->item[j]) == s_len && memcmp (slp->item[j], s, s_len) == 0) + if (strlen (slp->item[j]) == s_len && memeq (slp->item[j], s, s_len)) return true; return false; } diff --git a/gettext-tools/src/write-mo.c b/gettext-tools/src/write-mo.c index f4ac836ba..93811e702 100644 --- a/gettext-tools/src/write-mo.c +++ b/gettext-tools/src/write-mo.c @@ -505,8 +505,7 @@ write_table (FILE *output_file, message_list_ty *mlp) size_t r; for (r = 0; r < n_sysdep_segments; r++) if (sysdep_segments[r].length == length - && memcmp (sysdep_segments[r].pointer, pointer, length) - == 0) + && memeq (sysdep_segments[r].pointer, pointer, length)) break; if (r == n_sysdep_segments) { diff --git a/gettext-tools/src/write-po.c b/gettext-tools/src/write-po.c index 0a5096d53..cc5180483 100644 --- a/gettext-tools/src/write-po.c +++ b/gettext-tools/src/write-po.c @@ -680,7 +680,7 @@ wrap (const message_ty *mp, ostream_t stream, if (value[0] != '\0') { bool is_msgstr = - (strlen (name) >= 6 && memcmp (name, "msgstr", 6) == 0); + (strlen (name) >= 6 && memeq (name, "msgstr", 6)); /* or equivalent: = (css_class == class_msgstr) */ for (size_t i = 0; i < NFORMATS; i++) diff --git a/gettext-tools/src/x-go.c b/gettext-tools/src/x-go.c index b016927cd..582276c0a 100644 --- a/gettext-tools/src/x-go.c +++ b/gettext-tools/src/x-go.c @@ -704,7 +704,7 @@ x_go_keyword (const char *name) /* Looks like NAME is PACKAGE . TYPENAME . METHODNAME. */ /* We are only interested in the gotext and snapcore packages. */ if (first_dot - name == strlen (GOTEXT_PACKAGE_FULLNAME) - && memcmp (name, GOTEXT_PACKAGE_FULLNAME, strlen (GOTEXT_PACKAGE_FULLNAME)) == 0) + && memeq (name, GOTEXT_PACKAGE_FULLNAME, strlen (GOTEXT_PACKAGE_FULLNAME))) { void *found_type; if (hash_find_entry (&gotext_package.defined_types, @@ -726,7 +726,7 @@ x_go_keyword (const char *name) } } else if (first_dot - name == strlen (SNAPCORE_PACKAGE_FULLNAME) - && memcmp (name, SNAPCORE_PACKAGE_FULLNAME, strlen (SNAPCORE_PACKAGE_FULLNAME)) == 0) + && memeq (name, SNAPCORE_PACKAGE_FULLNAME, strlen (SNAPCORE_PACKAGE_FULLNAME))) { void *found_type; if (hash_find_entry (&snapcore_package.defined_types, @@ -753,12 +753,12 @@ x_go_keyword (const char *name) /* Looks like NAME is PACKAGE . FUNCNAME. */ /* We are only interested in the gotext and snapcore packages. */ if (first_dot - name == strlen (GOTEXT_PACKAGE_FULLNAME) - && memcmp (name, GOTEXT_PACKAGE_FULLNAME, strlen (GOTEXT_PACKAGE_FULLNAME)) == 0) + && memeq (name, GOTEXT_PACKAGE_FULLNAME, strlen (GOTEXT_PACKAGE_FULLNAME))) insert_keyword_callshape (&gotext_keywords, first_dot + 1, end - (first_dot + 1), &shape); else if (first_dot - name == strlen (SNAPCORE_PACKAGE_FULLNAME) - && memcmp (name, SNAPCORE_PACKAGE_FULLNAME, strlen (SNAPCORE_PACKAGE_FULLNAME)) == 0) + && memeq (name, SNAPCORE_PACKAGE_FULLNAME, strlen (SNAPCORE_PACKAGE_FULLNAME))) insert_keyword_callshape (&snapcore_keywords, first_dot + 1, end - (first_dot + 1), &shape); diff --git a/gettext-tools/src/x-sh.c b/gettext-tools/src/x-sh.c index 56f2f5f63..fc8e3052f 100644 --- a/gettext-tools/src/x-sh.c +++ b/gettext-tools/src/x-sh.c @@ -1387,18 +1387,18 @@ read_command (int looking_for, flag_region_ty *outer_region) { bool accepts_context = ((argparser->keyword_len == 7 - && memcmp (argparser->keyword, "gettext", 7) == 0) + && memeq (argparser->keyword, "gettext", 7)) || (argparser->keyword_len == 8 - && memcmp (argparser->keyword, "ngettext", 8) == 0) + && memeq (argparser->keyword, "ngettext", 8)) || (argparser->keyword_len == 14 - && memcmp (argparser->keyword, "printf_gettext", 14) == 0) + && memeq (argparser->keyword, "printf_gettext", 14)) || (argparser->keyword_len == 15 - && memcmp (argparser->keyword, "printf_ngettext", 15) == 0)); + && memeq (argparser->keyword, "printf_ngettext", 15))); bool accepts_expand = ((argparser->keyword_len == 7 - && memcmp (argparser->keyword, "gettext", 7) == 0) + && memeq (argparser->keyword, "gettext", 7)) || (argparser->keyword_len == 8 - && memcmp (argparser->keyword, "ngettext", 8) == 0)); + && memeq (argparser->keyword, "ngettext", 8))); if (accepts_context && argparser->next_is_msgctxt) { mixed_string_ty *ms = mixed_string_buffer_cloned_result (inner.token); @@ -1444,7 +1444,7 @@ read_command (int looking_for, flag_region_ty *outer_region) char *s = mixed_string_contents (ms); bool expands_backslash_c = (argparser->keyword_len == 7 - && memcmp (argparser->keyword, "gettext", 7) == 0); + && memeq (argparser->keyword, "gettext", 7)); bool backslash_c = false; char *expanded = (char *) diff --git a/gettext-tools/src/xg-check.c b/gettext-tools/src/xg-check.c index 384e05369..0da4203f2 100644 --- a/gettext-tools/src/xg-check.c +++ b/gettext-tools/src/xg-check.c @@ -66,7 +66,7 @@ string_has_ascii_ellipsis (const char *string) /* sentence_end doesn't treat '...' specially. */ const char *cp = end - (ending_char == '.' ? 2 : 3); - if (cp >= str && memcmp (cp, "...", 3) == 0) + if (cp >= str && memeq (cp, "...", 3)) return true; str = end + 1; @@ -118,14 +118,14 @@ string_has_space_ellipsis (const char *string) { /* sentence_end doesn't treat '...' specially. */ const char *cp = end - 2; - if (cp >= str && memcmp (cp, "...", 3) == 0) + if (cp >= str && memeq (cp, "...", 3)) ellipsis = cp; } else { /* Look for a '...'. */ const char *cp = end - 3; - if (cp >= str && memcmp (cp, "...", 3) == 0) + if (cp >= str && memeq (cp, "...", 3)) ellipsis = cp; else { diff --git a/gettext-tools/src/xg-mixed-string.c b/gettext-tools/src/xg-mixed-string.c index 1add93449..db3171a5f 100644 --- a/gettext-tools/src/xg-mixed-string.c +++ b/gettext-tools/src/xg-mixed-string.c @@ -424,7 +424,7 @@ mixed_string_buffer_equals (const struct mixed_string_buffer *bp, size_t other_len = strlen (other); return (bp->nsegments == 0 && bp->curr_buflen == other_len - && (other_len == 0 || memcmp (bp->curr_buffer, other, other_len) == 0) + && (other_len == 0 || memeq (bp->curr_buffer, other, other_len)) && bp->utf16_surr == 0); } @@ -436,9 +436,9 @@ mixed_string_buffer_startswith (const struct mixed_string_buffer *bp, return prefix_len == 0 || (bp->nsegments == 0 ? bp->curr_buflen >= prefix_len - && memcmp (bp->curr_buffer, prefix, prefix_len) == 0 + && memeq (bp->curr_buffer, prefix, prefix_len) : bp->segments[0]->length >= prefix_len - && memcmp (bp->segments[0]->contents, prefix, prefix_len) == 0); + && memeq (bp->segments[0]->contents, prefix, prefix_len)); } /* Auxiliary function: Ensure count more bytes are available in diff --git a/gettext-tools/src/xgettext.c b/gettext-tools/src/xgettext.c index beac556d3..d8acd2869 100644 --- a/gettext-tools/src/xgettext.c +++ b/gettext-tools/src/xgettext.c @@ -990,7 +990,7 @@ xgettext cannot work without keywords to look for")); char *reduced = xstrdup (base); /* Remove a trailing ".in" - it's a generic suffix. */ while (strlen (reduced) >= 3 - && memcmp (reduced + strlen (reduced) - 3, ".in", 3) == 0) + && memeq (reduced + strlen (reduced) - 3, ".in", 3)) reduced[strlen (reduced) - 3] = '\0'; /* If no language is specified with -L, deduce it the extension. */ @@ -1577,7 +1577,7 @@ xgettext_record_flag (const char *optionstring) /* Analyze the flag part. */ { bool pass = false; - if (flag_end - flag_start >= 5 && memcmp (flag_start, "pass-", 5) == 0) + if (flag_end - flag_start >= 5 && memeq (flag_start, "pass-", 5)) { pass = true; flag_start += 5; @@ -1586,31 +1586,31 @@ xgettext_record_flag (const char *optionstring) /* Unlike parse_comment_special(), we don't accept "fuzzy", "wrap", or "check" here - it has no sense. */ if (flag_end - flag_start >= 7 - && memcmp (flag_end - 7, "-format", 7) == 0) + && memeq (flag_end - 7, "-format", 7)) { const char *p = flag_start; size_t n = flag_end - flag_start - 7; enum is_format value; - if (n >= 3 && memcmp (p, "no-", 3) == 0) + if (n >= 3 && memeq (p, "no-", 3)) { p += 3; n -= 3; value = no; } - else if (n >= 9 && memcmp (p, "possible-", 9) == 0) + else if (n >= 9 && memeq (p, "possible-", 9)) { p += 9; n -= 9; value = possible; } - else if (n >= 11 && memcmp (p, "impossible-", 11) == 0) + else if (n >= 11 && memeq (p, "impossible-", 11)) { p += 11; n -= 11; value = impossible; } - else if (n >= 10 && memcmp (p, "undecided-", 10) == 0) + else if (n >= 10 && memeq (p, "undecided-", 10)) { p += 10; n -= 10; @@ -1621,7 +1621,7 @@ xgettext_record_flag (const char *optionstring) for (size_t type = 0; type < NFORMATS; type++) if (strlen (format_language[type]) == n - && memcmp (format_language[type], p, n) == 0) + && memeq (format_language[type], p, n)) { /* This dispatch does the reverse mapping of all the SCANNERS_* macros defined in the x-*.h files. For example,