X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Flibpspp%2Fi18n.c;h=c0deb119c0f3faa9c277ba0f3f931e856bd534e7;hb=7f7e4dc8457c408269e94307d9545fd504891afc;hp=d9b42cbcca844da31d46630c78295b8276591d99;hpb=4b7c82a2517519f9cc1a424f26262badae10d525;p=pspp diff --git a/src/libpspp/i18n.c b/src/libpspp/i18n.c index d9b42cbcca..c0deb119c0 100644 --- a/src/libpspp/i18n.c +++ b/src/libpspp/i18n.c @@ -15,31 +15,29 @@ along with this program. If not, see . */ #include -#include + +#include "libpspp/i18n.h" + #include +#include +#include +#include +#include #include -#include #include +#include #include -#include -#include -#include -#include -#include "assertion.h" -#include "hmapx.h" -#include "hash-functions.h" -#include "pool.h" -#include "i18n.h" +#include "libpspp/assertion.h" +#include "libpspp/hmapx.h" +#include "libpspp/hash-functions.h" +#include "libpspp/pool.h" +#include "libpspp/version.h" -#include "version.h" - -#include -#include "xstrndup.h" - -#if HAVE_NL_LANGINFO -#include -#endif +#include "gl/localcharset.h" +#include "gl/xalloc.h" +#include "gl/relocatable.h" +#include "gl/xstrndup.h" struct converter { @@ -118,11 +116,16 @@ try_recode (iconv_t conv, &op, &outbytes) == -1) switch (errno) { - case EILSEQ: case EINVAL: - if (outbytes == 0) + if (outbytes < 2) return false; + *op++ = fallbackchar; + *op++ = '\0'; + return true; + case EILSEQ: + if (outbytes == 0) + return false; *op++ = fallbackchar; outbytes--; ip++; @@ -297,7 +300,7 @@ i18n_done (void) bool valid_encoding (const char *enc) { - iconv_t conv = iconv_open ("UTF8", enc); + iconv_t conv = iconv_open (UTF8, enc); if ( conv == (iconv_t) -1) return false;