projects
/
platform
/
upstream
/
binutils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Enable Gold linker for cross-*-binutils build
[platform/upstream/binutils.git]
/
gdb
/
charset.c
diff --git
a/gdb/charset.c
b/gdb/charset.c
index
165f90f
..
bc7bd65
100644
(file)
--- a/
gdb/charset.c
+++ b/
gdb/charset.c
@@
-1,6
+1,6
@@
/* Character set conversion support for GDB.
/* Character set conversion support for GDB.
- Copyright (C) 2001-201
3
Free Software Foundation, Inc.
+ Copyright (C) 2001-201
4
Free Software Foundation, Inc.
This file is part of GDB.
This file is part of GDB.
@@
-20,7
+20,6
@@
#include "defs.h"
#include "charset.h"
#include "gdbcmd.h"
#include "defs.h"
#include "charset.h"
#include "gdbcmd.h"
-#include "gdb_assert.h"
#include "gdb_obstack.h"
#include "gdb_wait.h"
#include "charset-list.h"
#include "gdb_obstack.h"
#include "gdb_wait.h"
#include "charset-list.h"
@@
-28,9
+27,6
@@
#include "environ.h"
#include "arch-utils.h"
#include "gdb_vecs.h"
#include "environ.h"
#include "arch-utils.h"
#include "gdb_vecs.h"
-
-#include <stddef.h>
-#include "gdb_string.h"
#include <ctype.h>
#ifdef USE_WIN32API
#include <ctype.h>
#ifdef USE_WIN32API
@@
-474,7
+470,7
@@
convert_between_encodings (const char *from, const char *to,
iconv_t desc;
struct cleanup *cleanups;
size_t inleft;
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. */
unsigned int space_request;
/* Often, the host and target charsets will be the same. */
@@
-490,7
+486,7
@@
convert_between_encodings (const char *from, const char *to,
cleanups = make_cleanup (cleanup_iconv, &desc);
inleft = num_bytes;
cleanups = make_cleanup (cleanup_iconv, &desc);
inleft = num_bytes;
- inp = (char *) bytes;
+ inp = (
ICONV_CONST
char *) bytes;
space_request = num_bytes;
space_request = num_bytes;
@@
-503,10
+499,10
@@
convert_between_encodings (const char *from, const char *to,
old_size = obstack_object_size (output);
obstack_blank (output, space_request);
old_size = obstack_object_size (output);
obstack_blank (output, space_request);
- outp = obstack_base (output) + old_size;
+ outp =
(char *)
obstack_base (output) + old_size;
outleft = space_request;
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. */
/* Now make sure that the object on the obstack only includes
bytes we have converted. */
@@
-571,7
+567,7
@@
struct wchar_iterator
iconv_t desc;
/* The input string. This is updated as convert characters. */
iconv_t desc;
/* The input string. This is updated as convert characters. */
- c
har
*input;
+ c
onst gdb_byte
*input;
/* The number of bytes remaining in the input. */
size_t bytes;
/* The number of bytes remaining in the input. */
size_t bytes;
@@
-597,7
+593,7
@@
make_wchar_iterator (const gdb_byte *input, size_t bytes,
result = XNEW (struct wchar_iterator);
result->desc = desc;
result = XNEW (struct wchar_iterator);
result->desc = desc;
- result->input =
(char *)
input;
+ result->input = input;
result->bytes = bytes;
result->width = width;
result->bytes = bytes;
result->width = width;
@@
-640,14
+636,15
@@
wchar_iterate (struct wchar_iterator *iter,
out_request = 1;
while (iter->bytes > 0)
{
out_request = 1;
while (iter->bytes > 0)
{
+ ICONV_CONST char *inptr = (ICONV_CONST char *) iter->input;
char *outptr = (char *) &iter->out[0];
char *outptr = (char *) &iter->out[0];
- c
har
*orig_inptr = iter->input;
+ c
onst 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 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)
{
if (r == (size_t) -1)
{
@@
-953,7
+950,7
@@
extern char your_gdb_wchar_t_is_bogus[(sizeof (gdb_wchar_t) == 2
|| sizeof (gdb_wchar_t) == 4)
? 1 : -1];
|| sizeof (gdb_wchar_t) == 4)
? 1 : -1];
-/* intermediate_encoding returns the charset u
n
sed internally by
+/* intermediate_encoding returns the charset used internally by
GDB to convert between target and host encodings. As the test above
compiled, sizeof (gdb_wchar_t) is either 2 or 4 bytes.
UTF-16/32 is tested first, UCS-2/4 is tested as a second option,
GDB to convert between target and host encodings. As the test above
compiled, sizeof (gdb_wchar_t) is either 2 or 4 bytes.
UTF-16/32 is tested first, UCS-2/4 is tested as a second option,