diff options
Diffstat (limited to 'src/nvim/mbyte.c')
-rw-r--r-- | src/nvim/mbyte.c | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/src/nvim/mbyte.c b/src/nvim/mbyte.c index 018febb995..7975f351ee 100644 --- a/src/nvim/mbyte.c +++ b/src/nvim/mbyte.c @@ -371,9 +371,9 @@ int enc_canon_props(const char *name) int i = enc_canon_search(name); if (i >= 0) { return enc_canon_table[i].prop; - } else if (strncmp(name, S_LEN("2byte-")) == 0) { + } else if (strncmp(name, "2byte-", 6) == 0) { return ENC_DBCS; - } else if (strncmp(name, S_LEN("8bit-")) == 0 || strncmp(name, S_LEN("iso-8859-")) == 0) { + } else if (strncmp(name, "8bit-", 5) == 0 || strncmp(name, "iso-8859-", 9) == 0) { return ENC_8BIT; } return 0; @@ -393,10 +393,10 @@ int bomb_size(void) if (*curbuf->b_p_fenc == NUL || strcmp(curbuf->b_p_fenc, "utf-8") == 0) { n = 3; - } else if (strncmp(curbuf->b_p_fenc, S_LEN("ucs-2")) == 0 - || strncmp(curbuf->b_p_fenc, S_LEN("utf-16")) == 0) { + } else if (strncmp(curbuf->b_p_fenc, "ucs-2", 5) == 0 + || strncmp(curbuf->b_p_fenc, "utf-16", 6) == 0) { n = 2; - } else if (strncmp(curbuf->b_p_fenc, S_LEN("ucs-4")) == 0) { + } else if (strncmp(curbuf->b_p_fenc, "ucs-4", 5) == 0) { n = 4; } } @@ -2188,10 +2188,10 @@ const char *mb_unescape(const char **const pp) /// Skip the Vim specific head of a 'encoding' name. char *enc_skip(char *p) { - if (strncmp(p, S_LEN("2byte-")) == 0) { + if (strncmp(p, "2byte-", 6) == 0) { return p + 6; } - if (strncmp(p, S_LEN("8bit-")) == 0) { + if (strncmp(p, "8bit-", 5) == 0) { return p + 5; } return p; @@ -2222,42 +2222,37 @@ char *enc_canonize(char *enc) } } *p = NUL; - char *p_e = p; // Skip "2byte-" and "8bit-". p = enc_skip(r); // Change "microsoft-cp" to "cp". Used in some spell files. - if (strncmp(p, S_LEN("microsoft-cp")) == 0) { - memmove(p, p + STRLEN_LITERAL("microsoft-"), - (size_t)(p_e - (p + STRLEN_LITERAL("microsoft-"))) + 1); + if (strncmp(p, "microsoft-cp", 12) == 0) { + STRMOVE(p, p + 10); } // "iso8859" -> "iso-8859" - if (strncmp(p, S_LEN("iso8859")) == 0) { - memmove(p + STRLEN_LITERAL("iso-"), p + STRLEN_LITERAL("iso"), - (size_t)(p_e - (p + STRLEN_LITERAL("iso"))) + 1); - p[STRLEN_LITERAL("iso")] = '-'; + if (strncmp(p, "iso8859", 7) == 0) { + STRMOVE(p + 4, p + 3); + p[3] = '-'; } // "iso-8859n" -> "iso-8859-n" - if (strncmp(p, S_LEN("iso-8859")) == 0 && p[8] != '-') { - memmove(p + STRLEN_LITERAL("iso-8859-"), p + STRLEN_LITERAL("iso-8859"), - (size_t)(p_e - (p + STRLEN_LITERAL("iso-8859"))) + 1); - p[STRLEN_LITERAL("iso-8859")] = '-'; + if (strncmp(p, "iso-8859", 8) == 0 && p[8] != '-') { + STRMOVE(p + 9, p + 8); + p[8] = '-'; } // "latin-N" -> "latinN" - if (strncmp(p, S_LEN("latin-")) == 0) { - memmove(p + STRLEN_LITERAL("latin"), p + STRLEN_LITERAL("latin-"), - (size_t)(p_e - (p + STRLEN_LITERAL("latin-"))) + 1); + if (strncmp(p, "latin-", 6) == 0) { + STRMOVE(p + 5, p + 6); } int i; if (enc_canon_search(p) >= 0) { // canonical name can be used unmodified if (p != r) { - memmove(r, p, (size_t)(p_e - p) + 1); + STRMOVE(r, p); } } else if ((i = enc_alias_search(p)) >= 0) { // alias recognized, get canonical name @@ -2320,7 +2315,7 @@ char *enc_locale(void) if (p > s + 2 && !STRNICMP(p + 1, "EUC", 3) && !isalnum((uint8_t)p[4]) && p[4] != '-' && p[-3] == '_') { // Copy "XY.EUC" to "euc-XY" to buf[10]. - memmove(buf, S_LEN("euc-")); + memmove(buf, "euc-", 4); buf[4] = (char)(ASCII_ISALNUM(p[-2]) ? TOLOWER_ASC(p[-2]) : 0); buf[5] = (char)(ASCII_ISALNUM(p[-1]) ? TOLOWER_ASC(p[-1]) : 0); buf[6] = NUL; |