gen_wc8bit was previously patched to support UTF8 locales other than the
default en_US.UTF-8 by patch id
0e14b8f425c562749d3821a42414b1ce6b3b0923.
This was incomplete in its implementation and still failed where item(s)
in the list returned by 'locale -a' already had 'UTF8' appended to the
name. This patch rectifies this situation, plus adds an extra fix to
avoid trimming '\n' from an empty line which could cause a segfault.
Signed-off-by: Andy Gibbs <andyg1001@hotmail.co.uk>
Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
goto locale_failure;
len = strlen(buf);
- if (buf[len - 1] == '\n')
+ if (len > 0 && buf[len - 1] == '\n')
buf[--len] = '\0';
- strcat(buf, ".UTF8");
+ if (len < 5 || strcasecmp(&buf[len-5], ".UTF8") != 0)
+ strcat(buf, ".UTF8");
if (setlocale(LC_CTYPE, buf))
goto locale_success;
}