/* PSPP - a program for statistical analysis.
- Copyright (C) 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 2010, 2011, 2012 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "libpspp/cast.h"
#include "libpspp/compiler.h"
#include "libpspp/encoding-guesser.h"
+#include "libpspp/i18n.h"
#include "gl/c-strcase.h"
#include "gl/localcharset.h"
goto error;
encoding = encoding_guess_head_encoding (fromcode, is->buffer, is->length);
- if (!strcmp (encoding, "UTF-8"))
+ if (is_encoding_utf8 (encoding))
is->state = S_UTF8;
else
{
is->head = is->buffer;
/* Read more input. */
- n = read (is->fd, is->buffer + is->length,
- U8_ISTREAM_BUFFER_SIZE - is->length);
+ do
+ {
+ n = read (is->fd, is->buffer + is->length,
+ U8_ISTREAM_BUFFER_SIZE - is->length);
+ }
+ while (n < 0 && errno == EINTR);
if (n > 0)
is->length += n;
return n;
char **inbufp, size_t *inbytesleft,
char **outbufp, size_t *outbytesleft)
{
- size_t n = iconv (converter, inbufp, inbytesleft, outbufp, outbytesleft);
+ size_t n = iconv (converter, (ICONV_CONST char **) inbufp, inbytesleft,
+ outbufp, outbytesleft);
return n == SIZE_MAX ? errno : 0;
}