X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gdb%2Fcharset.c;h=1f44e8fc1c86108dd8080728bfae80d54f5f4301;hb=2dd4d4224afba558be14b39e2886ba47b2132678;hp=63722247fc6463386c07e8af9ae87bcb5eb64b56;hpb=28e7fd62340426746f9c896cbc40c5d374ec47aa;p=deliverable%2Fbinutils-gdb.git diff --git a/gdb/charset.c b/gdb/charset.c index 63722247fc..1f44e8fc1c 100644 --- a/gdb/charset.c +++ b/gdb/charset.c @@ -30,7 +30,7 @@ #include "gdb_vecs.h" #include -#include "gdb_string.h" +#include #include #ifdef USE_WIN32API @@ -474,7 +474,7 @@ convert_between_encodings (const char *from, const char *to, iconv_t desc; struct cleanup *cleanups; size_t inleft; - char *inp; + ICONV_CONST char *inp; unsigned int space_request; /* Often, the host and target charsets will be the same. */ @@ -490,7 +490,7 @@ convert_between_encodings (const char *from, const char *to, cleanups = make_cleanup (cleanup_iconv, &desc); inleft = num_bytes; - inp = (char *) bytes; + inp = (ICONV_CONST char *) bytes; space_request = num_bytes; @@ -506,7 +506,7 @@ convert_between_encodings (const char *from, const char *to, outp = obstack_base (output) + old_size; outleft = space_request; - r = iconv (desc, (ICONV_CONST char **) &inp, &inleft, &outp, &outleft); + r = iconv (desc, &inp, &inleft, &outp, &outleft); /* Now make sure that the object on the obstack only includes bytes we have converted. */ @@ -571,7 +571,7 @@ struct wchar_iterator iconv_t desc; /* The input string. This is updated as convert characters. */ - char *input; + const gdb_byte *input; /* The number of bytes remaining in the input. */ size_t bytes; @@ -597,7 +597,7 @@ make_wchar_iterator (const gdb_byte *input, size_t bytes, result = XNEW (struct wchar_iterator); result->desc = desc; - result->input = (char *) input; + result->input = input; result->bytes = bytes; result->width = width; @@ -640,14 +640,15 @@ wchar_iterate (struct wchar_iterator *iter, out_request = 1; while (iter->bytes > 0) { + ICONV_CONST char *inptr = (ICONV_CONST char *) iter->input; char *outptr = (char *) &iter->out[0]; - char *orig_inptr = iter->input; + const gdb_byte *orig_inptr = iter->input; size_t orig_in = iter->bytes; size_t out_avail = out_request * sizeof (gdb_wchar_t); size_t num; - size_t r = iconv (iter->desc, - (ICONV_CONST char **) &iter->input, - &iter->bytes, &outptr, &out_avail); + size_t r = iconv (iter->desc, &inptr, &iter->bytes, &outptr, &out_avail); + + iter->input = (gdb_byte *) inptr; if (r == (size_t) -1) { @@ -965,7 +966,6 @@ intermediate_encoding (void) iconv_t desc; static const char *stored_result = NULL; char *result; - int i; if (stored_result) return stored_result;