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;