/* Character set conversion support for GDB.
- Copyright (C) 2001, 2003, 2007, 2008, 2009, 2010, 2011
- Free Software Foundation, Inc.
+ Copyright (C) 2001, 2003, 2007-2012 Free Software Foundation, Inc.
This file is part of GDB.
#include "vec.h"
#include "environ.h"
#include "arch-utils.h"
+#include "gdb_vecs.h"
#include <stddef.h>
#include "gdb_string.h"
#define EILSEQ ENOENT
#endif
-iconv_t
+static iconv_t
phony_iconv_open (const char *to, const char *from)
{
/* We allow conversions from UTF-32BE, wchar_t, and the host charset.
return !strcmp (from, "UTF-32BE");
}
-int
+static int
phony_iconv_close (iconv_t arg)
{
return 0;
}
-size_t
+static size_t
phony_iconv (iconv_t utf_flag, const char **inbuf, size_t *inbytesleft,
char **outbuf, size_t *outbytesleft)
{
extern initialize_file_ftype _initialize_charset; /* -Wmissing-prototype */
-DEF_VEC_P (char_ptr);
-
static VEC (char_ptr) *charsets;
#ifdef PHONY_ICONV
parse the glibc and libiconv formats; feel free to add others
as needed. */
- while (!feof (in))
+ while (in != NULL && !feof (in))
{
/* The size of buf is chosen arbitrarily. */
char buf[1024];
if (fail)
{
/* Some error occurred, so drop the vector. */
- int ix;
- char *elt;
- for (ix = 0; VEC_iterate (char_ptr, charsets, ix, elt); ++ix)
- xfree (elt);
- VEC_truncate (char_ptr, charsets, 0);
+ free_char_ptr_vec (charsets);
+ charsets = NULL;
}
else
VEC_safe_push (char_ptr, charsets, NULL);