along with this program. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
-#include <xalloc.h>
+
+#include "libpspp/i18n.h"
+
#include <assert.h>
+#include <errno.h>
+#include <iconv.h>
+#include <langinfo.h>
+#include <libintl.h>
#include <locale.h>
-#include <stdlib.h>
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
-#include <libintl.h>
-#include <iconv.h>
-#include <errno.h>
-#include <relocatable.h>
-#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 <localcharset.h>
-#include "xstrndup.h"
-
-#if HAVE_NL_LANGINFO
-#include <langinfo.h>
-#endif
+#include "gl/localcharset.h"
+#include "gl/xalloc.h"
+#include "gl/relocatable.h"
+#include "gl/xstrndup.h"
struct converter
{
&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++;
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;