Strip "UTF" and an optional dash from the start of 'upper' without
passing a NULL pointer to skip_prefix() in the second call, as it cannot
handle that.

Signed-off-by: René Scharfe <l....@web.de>
---
 convert.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/convert.c b/convert.c
index deb6f71b2d..25ac525d5f 100644
--- a/convert.c
+++ b/convert.c
@@ -290,8 +290,8 @@ static int validate_encoding(const char *path, const char 
*enc,
                        const char *stripped = NULL;
                        char *upper = xstrdup_toupper(enc);
                        upper[strlen(upper)-2] = '\0';
-                       if (!skip_prefix(upper, "UTF-", &stripped))
-                               skip_prefix(stripped, "UTF", &stripped);
+                       if (skip_prefix(upper, "UTF", &stripped))
+                               skip_prefix(stripped, "-", &stripped);
                        advise(advise_msg, path, stripped);
                        free(upper);
                        if (die_on_error)
@@ -310,8 +310,8 @@ static int validate_encoding(const char *path, const char 
*enc,
                                "working-tree-encoding.");
                        const char *stripped = NULL;
                        char *upper = xstrdup_toupper(enc);
-                       if (!skip_prefix(upper, "UTF-", &stripped))
-                               skip_prefix(stripped, "UTF", &stripped);
+                       if (skip_prefix(upper, "UTF", &stripped))
+                               skip_prefix(stripped, "-", &stripped);
                        advise(advise_msg, path, stripped, stripped);
                        free(upper);
                        if (die_on_error)
--
2.23.0

Reply via email to