diff options
author | Tom Tromey <tromey@adacore.com> | 2025-08-04 09:58:43 -0600 |
---|---|---|
committer | Tom Tromey <tromey@adacore.com> | 2025-09-09 11:58:27 -0600 |
commit | 15e11aac9cccfe38e0afaa07af55bb835e39789c (patch) | |
tree | 10fe8d59fca36ef68a7100c82f2894e7e37161fb /gdb | |
parent | 50673a462973a975fc9001fe3d8d4c5d5472436d (diff) | |
download | binutils-15e11aac9cccfe38e0afaa07af55bb835e39789c.zip binutils-15e11aac9cccfe38e0afaa07af55bb835e39789c.tar.gz binutils-15e11aac9cccfe38e0afaa07af55bb835e39789c.tar.bz2 |
Use c-ctype.h (not safe-ctype.h) in gdb
This changes gdb and related programs to use the gnulib c-ctype code
rather than safe-ctype.h. The gdb-safe-ctype.h header is removed.
This changes common-defs.h to include the c-ctype header, making it
available everywhere in gdb.
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=33217
Approved-By: Simon Marchi <simon.marchi@efficios.com>
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/c-exp.y | 18 | ||||
-rw-r--r-- | gdb/c-lang.c | 10 | ||||
-rw-r--r-- | gdb/c-support.h | 10 | ||||
-rw-r--r-- | gdb/completer.c | 2 | ||||
-rw-r--r-- | gdb/cp-name-parser.y | 11 | ||||
-rw-r--r-- | gdb/cp-support.c | 9 | ||||
-rw-r--r-- | gdb/dictionary.c | 3 | ||||
-rw-r--r-- | gdb/disasm.c | 1 | ||||
-rw-r--r-- | gdb/dwarf2/cooked-index-entry.c | 3 | ||||
-rw-r--r-- | gdb/mi/mi-cmd-stack.c | 1 | ||||
-rw-r--r-- | gdb/minsyms.c | 1 | ||||
-rw-r--r-- | gdb/minsyms.h | 2 | ||||
-rw-r--r-- | gdb/or1k-tdep.c | 1 | ||||
-rw-r--r-- | gdb/printcmd.c | 1 | ||||
-rw-r--r-- | gdb/riscv-tdep.c | 5 | ||||
-rw-r--r-- | gdb/tui/tui-layout.c | 7 | ||||
-rw-r--r-- | gdb/tui/tui-winsource.c | 3 | ||||
-rw-r--r-- | gdb/utils.c | 46 | ||||
-rw-r--r-- | gdb/xml-support.c | 5 |
19 files changed, 61 insertions, 78 deletions
diff --git a/gdb/c-exp.y b/gdb/c-exp.y index 334d58a..cd5dc26 100644 --- a/gdb/c-exp.y +++ b/gdb/c-exp.y @@ -2029,13 +2029,13 @@ parse_number (struct parser_state *par_state, len -= 2; } /* Handle suffixes: 'f' for float, 'l' for long double. */ - else if (len >= 1 && TOLOWER (buf[len - 1]) == 'f') + else if (len >= 1 && c_tolower (buf[len - 1]) == 'f') { putithere->typed_val_float.type = parse_type (par_state)->builtin_float; len -= 1; } - else if (len >= 1 && TOLOWER (buf[len - 1]) == 'l') + else if (len >= 1 && c_tolower (buf[len - 1]) == 'l') { putithere->typed_val_float.type = parse_type (par_state)->builtin_long_double; @@ -2241,9 +2241,9 @@ c_parse_escape (const char **ptr, struct obstack *output) if (output) obstack_grow_str (output, "\\x"); ++tokptr; - if (!ISXDIGIT (*tokptr)) + if (!c_isxdigit (*tokptr)) error (_("\\x escape without a following hex digit")); - while (ISXDIGIT (*tokptr)) + while (c_isxdigit (*tokptr)) { if (output) obstack_1grow (output, *tokptr); @@ -2266,7 +2266,7 @@ c_parse_escape (const char **ptr, struct obstack *output) if (output) obstack_grow_str (output, "\\"); for (i = 0; - i < 3 && ISDIGIT (*tokptr) && *tokptr != '8' && *tokptr != '9'; + i < 3 && c_isdigit (*tokptr) && *tokptr != '8' && *tokptr != '9'; ++i) { if (output) @@ -2291,9 +2291,9 @@ c_parse_escape (const char **ptr, struct obstack *output) obstack_1grow (output, *tokptr); } ++tokptr; - if (!ISXDIGIT (*tokptr)) + if (!c_isxdigit (*tokptr)) error (_("\\%c escape without a following hex digit"), c); - for (i = 0; i < len && ISXDIGIT (*tokptr); ++i) + for (i = 0; i < len && c_isxdigit (*tokptr); ++i) { if (output) obstack_1grow (output, *tokptr); @@ -2878,7 +2878,7 @@ lex_one_token (struct parser_state *par_state, bool *is_quoted_name) size_t len = strlen ("selector"); if (strncmp (p, "selector", len) == 0 - && (p[len] == '\0' || ISSPACE (p[len]))) + && (p[len] == '\0' || c_isspace (p[len]))) { pstate->lexptr = p + len; return SELECTOR; @@ -2887,7 +2887,7 @@ lex_one_token (struct parser_state *par_state, bool *is_quoted_name) goto parse_string; } - while (ISSPACE (*p)) + while (c_isspace (*p)) p++; size_t len = strlen ("entry"); if (strncmp (p, "entry", len) == 0 && !c_ident_is_alnum (p[len]) diff --git a/gdb/c-lang.c b/gdb/c-lang.c index 9fccc1f..7fff11a 100644 --- a/gdb/c-lang.c +++ b/gdb/c-lang.c @@ -408,7 +408,7 @@ convert_ucn (const char *p, const char *limit, const char *dest_charset, gdb_byte data[4]; int i; - for (i = 0; i < length && p < limit && ISXDIGIT (*p); ++i, ++p) + for (i = 0; i < length && p < limit && c_isxdigit (*p); ++i, ++p) result = (result << 4) + fromhex (*p); for (i = 3; i >= 0; --i) @@ -450,7 +450,7 @@ convert_octal (struct type *type, const char *p, unsigned long value = 0; for (i = 0; - i < 3 && p < limit && ISDIGIT (*p) && *p != '8' && *p != '9'; + i < 3 && p < limit && c_isdigit (*p) && *p != '8' && *p != '9'; ++i) { value = 8 * value + fromhex (*p); @@ -473,7 +473,7 @@ convert_hex (struct type *type, const char *p, { unsigned long value = 0; - while (p < limit && ISXDIGIT (*p)) + while (p < limit && c_isxdigit (*p)) { value = 16 * value + fromhex (*p); ++p; @@ -518,7 +518,7 @@ convert_escape (struct type *type, const char *dest_charset, case 'x': advance (); - if (!ISXDIGIT (*p)) + if (!c_isxdigit (*p)) error (_("\\x used with no following hex digits.")); p = convert_hex (type, p, limit, output); break; @@ -540,7 +540,7 @@ convert_escape (struct type *type, const char *dest_charset, int length = *p == 'u' ? 4 : 8; advance (); - if (!ISXDIGIT (*p)) + if (!c_isxdigit (*p)) error (_("\\u used with no following hex digits")); p = convert_ucn (p, limit, dest_charset, output, length); } diff --git a/gdb/c-support.h b/gdb/c-support.h index 47f4066..5fd1118 100644 --- a/gdb/c-support.h +++ b/gdb/c-support.h @@ -19,9 +19,7 @@ #ifndef GDB_C_SUPPORT_H #define GDB_C_SUPPORT_H -#include "safe-ctype.h" - -/* Like ISALPHA, but also returns true for the union of all UTF-8 +/* Like isalpha, but also returns true for the union of all UTF-8 multi-byte sequence bytes and non-ASCII characters in extended-ASCII charsets (e.g., Latin1). I.e., returns true if the high bit is set. Note that not all UTF-8 ranges are allowed in C++ @@ -32,15 +30,15 @@ static inline bool c_ident_is_alpha (unsigned char ch) { - return ISALPHA (ch) || ch >= 0x80; + return c_isalpha (ch) || ch >= 0x80; } -/* Similarly, but Like ISALNUM. */ +/* Similarly, but Like isalnum. */ static inline bool c_ident_is_alnum (unsigned char ch) { - return ISALNUM (ch) || ch >= 0x80; + return c_isalnum (ch) || ch >= 0x80; } #endif /* GDB_C_SUPPORT_H */ diff --git a/gdb/completer.c b/gdb/completer.c index deecbc2..b919b4c 100644 --- a/gdb/completer.c +++ b/gdb/completer.c @@ -3006,7 +3006,7 @@ gdb_printable_part (char *pathname) temp = strrchr (pathname, '/'); #if defined (__MSDOS__) - if (temp == 0 && ISALPHA ((unsigned char)pathname[0]) && pathname[1] == ':') + if (temp == 0 && c_isalpha (pathname[0]) && pathname[1] == ':') temp = pathname + 1; #endif diff --git a/gdb/cp-name-parser.y b/gdb/cp-name-parser.y index cafd6b2..7221b78 100644 --- a/gdb/cp-name-parser.y +++ b/gdb/cp-name-parser.y @@ -39,7 +39,6 @@ #include <unistd.h> -#include "gdbsupport/gdb-safe-ctype.h" #include "demangle.h" #include "cp-support.h" #include "c-support.h" @@ -1362,7 +1361,7 @@ cpname_state::parse_number (const char *p, int len, int parsed_float, /* See if it has `f' or `l' suffix (float or long double). */ - c = TOLOWER (p[len - 1]); + c = c_tolower (p[len - 1]); if (c == 'f') { @@ -1374,7 +1373,7 @@ cpname_state::parse_number (const char *p, int len, int parsed_float, len--; type = make_builtin_type ("long double"); } - else if (ISDIGIT (c) || c == '.') + else if (c_isdigit (c) || c == '.') type = make_builtin_type ("double"); else return ERROR; @@ -1439,10 +1438,10 @@ cpname_state::parse_number (const char *p, int len, int parsed_float, for (int off = 0; off < len; ++off) { int dig; - if (ISDIGIT (p[off])) + if (c_isdigit (p[off])) dig = p[off] - '0'; else - dig = TOLOWER (p[off]) - 'a' + 10; + dig = c_tolower (p[off]) - 'a' + 10; if (dig >= base) return ERROR; value *= base; @@ -1769,7 +1768,7 @@ yylex (YYSTYPE *lvalp, cpname_state *state) } /* We will take any letters or digits. parse_number will complain if past the radix, or if L or U are not final. */ - else if (! ISALNUM (*p)) + else if (! c_isalnum (*p)) break; if (no_tick.has_value ()) no_tick->push_back (*p); diff --git a/gdb/cp-support.c b/gdb/cp-support.c index 7ed15ee..415217f 100644 --- a/gdb/cp-support.c +++ b/gdb/cp-support.c @@ -35,7 +35,6 @@ #include "namespace.h" #include <signal.h> #include "gdbsupport/gdb_setjmp.h" -#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/selftest.h" #include "gdbsupport/gdb-sigmask.h" #include <atomic> @@ -105,7 +104,7 @@ static int cp_already_canonical (const char *string) { /* Identifier start character [a-zA-Z_]. */ - if (!ISIDST (string[0])) + if (!c_isalpha (string[0]) || string[0] == '_') return 0; /* These are the only two identifiers which canonicalize to other @@ -117,7 +116,7 @@ cp_already_canonical (const char *string) return 0; /* Identifier character [a-zA-Z0-9_]. */ - while (ISIDNUM (string[1])) + while (c_isalpha (string[1]) || c_isdigit (string[1]) || string[1] == '_') string++; if (string[1] == '\0') @@ -1137,7 +1136,7 @@ cp_find_first_component_aux (const char *name, int permissive) && startswith (name + index, CP_OPERATOR_STR)) { index += CP_OPERATOR_LEN; - while (ISSPACE(name[index])) + while (c_isspace(name[index])) ++index; switch (name[index]) { @@ -2350,7 +2349,7 @@ find_toplevel_char (const char *s, char c) scan += CP_OPERATOR_LEN; if (*scan == c) return scan; - while (ISSPACE (*scan)) + while (c_isspace (*scan)) { ++scan; if (*scan == c) diff --git a/gdb/dictionary.c b/gdb/dictionary.c index 28e900d..17c9b44 100644 --- a/gdb/dictionary.c +++ b/gdb/dictionary.c @@ -25,7 +25,6 @@ #include "symtab.h" #include "buildsym.h" #include "dictionary.h" -#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/unordered_map.h" #include "language.h" @@ -772,7 +771,7 @@ language_defn::search_name_hash (const char *string0) const if (c == 'B' && string[3] == '_') { - for (string += 4; ISDIGIT (*string); ++string) + for (string += 4; c_isdigit (*string); ++string) ; continue; } diff --git a/gdb/disasm.c b/gdb/disasm.c index b731192..c8e830e 100644 --- a/gdb/disasm.c +++ b/gdb/disasm.c @@ -28,7 +28,6 @@ #include "cli/cli-cmds.h" #include "dis-asm.h" #include "source.h" -#include "gdbsupport/gdb-safe-ctype.h" #include <algorithm> #include <optional> #include "valprint.h" diff --git a/gdb/dwarf2/cooked-index-entry.c b/gdb/dwarf2/cooked-index-entry.c index 863ddd6..a5e3fcb 100644 --- a/gdb/dwarf2/cooked-index-entry.c +++ b/gdb/dwarf2/cooked-index-entry.c @@ -19,7 +19,6 @@ #include "dwarf2/cooked-index-entry.h" #include "dwarf2/tag.h" -#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/selftest.h" /* See cooked-index-entry.h. */ @@ -57,7 +56,7 @@ cooked_index_entry::compare (const char *stra, const char *strb, template functions" section in the manual. */ if (c == '<') return '\0'; - return TOLOWER ((unsigned char) c); + return c_tolower (c); }; unsigned char a = munge (*stra); diff --git a/gdb/mi/mi-cmd-stack.c b/gdb/mi/mi-cmd-stack.c index d4a2499..fad058e 100644 --- a/gdb/mi/mi-cmd-stack.c +++ b/gdb/mi/mi-cmd-stack.c @@ -32,7 +32,6 @@ #include <ctype.h> #include "mi-parse.h" #include <optional> -#include "gdbsupport/gdb-safe-ctype.h" #include "inferior.h" enum what_to_list { locals, arguments, all }; diff --git a/gdb/minsyms.c b/gdb/minsyms.c index 16befa7..765535c 100644 --- a/gdb/minsyms.c +++ b/gdb/minsyms.c @@ -52,7 +52,6 @@ #include "cli/cli-utils.h" #include "gdbsupport/symbol.h" #include <algorithm> -#include "gdbsupport/gdb-safe-ctype.h" #include "gdbsupport/parallel-for.h" #include "inferior.h" diff --git a/gdb/minsyms.h b/gdb/minsyms.h index 709faa5..dcab475 100644 --- a/gdb/minsyms.h +++ b/gdb/minsyms.h @@ -195,7 +195,7 @@ unsigned int msymbol_hash_iw (const char *); requirements. */ #define SYMBOL_HASH_NEXT(hash, c) \ - ((hash) * 67 + TOLOWER ((unsigned char) (c)) - 113) + ((hash) * 67 + c_tolower (c) - 113) diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c index 2774840..2db207d 100644 --- a/gdb/or1k-tdep.c +++ b/gdb/or1k-tdep.c @@ -29,7 +29,6 @@ #include "gdbtypes.h" #include "target.h" #include "regcache.h" -#include "gdbsupport/gdb-safe-ctype.h" #include "reggroups.h" #include "arch-utils.h" #include "frame-unwind.h" diff --git a/gdb/printcmd.c b/gdb/printcmd.c index 210cf79..53827ef 100644 --- a/gdb/printcmd.c +++ b/gdb/printcmd.c @@ -54,7 +54,6 @@ #include "source.h" #include "gdbsupport/byte-vector.h" #include <optional> -#include "gdbsupport/gdb-safe-ctype.h" #include "inferior.h" /* Chain containing all defined memory-tag subcommands. */ diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c index 680176b..6fd7c61 100644 --- a/gdb/riscv-tdep.c +++ b/gdb/riscv-tdep.c @@ -56,7 +56,6 @@ #include "arch/riscv.h" #include "record-full.h" #include "riscv-ravenscar-thread.h" -#include "gdbsupport/gdb-safe-ctype.h" #include <vector> @@ -4183,9 +4182,9 @@ riscv_print_insn (bfd_vma addr, struct disassemble_info *info) static int riscv_stap_is_single_operand (struct gdbarch *gdbarch, const char *s) { - return (ISDIGIT (*s) /* Literal number. */ + return (c_isdigit (*s) /* Literal number. */ || *s == '(' /* Register indirection. */ - || ISALPHA (*s)); /* Register value. */ + || c_isalpha (*s)); /* Register value. */ } /* String that appears before a register name in a SystemTap register diff --git a/gdb/tui/tui-layout.c b/gdb/tui/tui-layout.c index 558055d..95d20fb 100644 --- a/gdb/tui/tui-layout.c +++ b/gdb/tui/tui-layout.c @@ -37,7 +37,6 @@ #include "tui/tui-layout.h" #include "tui/tui-source.h" #include "gdb_curses.h" -#include "gdbsupport/gdb-safe-ctype.h" /* The layouts. */ static std::vector<std::unique_ptr<tui_layout_split>> layouts; @@ -381,14 +380,14 @@ tui_register_window (const char *name, window_factory &&factory) for (const char &c : name_copy) { - if (ISSPACE (c)) + if (c_isspace (c)) error (_("invalid whitespace character in window name")); - if (!ISALNUM (c) && strchr ("-_.", c) == nullptr) + if (!c_isalnum (c) && strchr ("-_.", c) == nullptr) error (_("invalid character '%c' in window name"), c); } - if (!ISALPHA (name_copy[0])) + if (!c_isalpha (name_copy[0])) error (_("window name must start with a letter, not '%c'"), name_copy[0]); /* We already check above for all the builtin window names. If we get diff --git a/gdb/tui/tui-winsource.c b/gdb/tui/tui-winsource.c index 618d72b..2fe4914 100644 --- a/gdb/tui/tui-winsource.c +++ b/gdb/tui/tui-winsource.c @@ -26,7 +26,6 @@ #include "value.h" #include "source.h" #include "objfiles.h" -#include "gdbsupport/gdb-safe-ctype.h" #include "tui/tui.h" #include "tui/tui-data.h" @@ -109,7 +108,7 @@ tui_copy_source_line (const char **ptr, int *length) } else if (c == '\t') process_tab (); - else if (ISCNTRL (c)) + else if (c_iscntrl (c)) { result.push_back ('^'); result.push_back (c + 0100); diff --git a/gdb/utils.c b/gdb/utils.c index 92e626a..5994ef9 100644 --- a/gdb/utils.c +++ b/gdb/utils.c @@ -75,7 +75,6 @@ #include "gdbsupport/scope-exit.h" #include "gdbarch.h" #include "cli-out.h" -#include "gdbsupport/gdb-safe-ctype.h" #include "bt-utils.h" #include "gdbsupport/buildargv.h" #include "pager.h" @@ -1008,7 +1007,7 @@ parse_escape (struct gdbarch *gdbarch, const char **string_ptr) while (++count < 3) { c = (**string_ptr); - if (ISDIGIT (c) && c != '8' && c != '9') + if (c_isdigit (c) && c != '8' && c != '9') { (*string_ptr)++; i *= 8; @@ -2068,7 +2067,7 @@ fprintf_symbol (struct ui_file *stream, const char *name, static bool valid_identifier_name_char (int ch) { - return (ISALNUM (ch) || ch == '_'); + return (c_isalnum (ch) || ch == '_'); } /* Skip to end of token, or to END, whatever comes first. Input is @@ -2078,7 +2077,7 @@ static const char * cp_skip_operator_token (const char *token, const char *end) { const char *p = token; - while (p != end && !ISSPACE (*p) && *p != '(') + while (p != end && !c_isspace (*p) && *p != '(') { if (valid_identifier_name_char (*p)) { @@ -2132,9 +2131,9 @@ cp_skip_operator_token (const char *token, const char *end) static void skip_ws (const char *&string1, const char *&string2, const char *end_str2) { - while (ISSPACE (*string1)) + while (c_isspace (*string1)) string1++; - while (string2 < end_str2 && ISSPACE (*string2)) + while (string2 < end_str2 && c_isspace (*string2)) string2++; } @@ -2198,7 +2197,7 @@ skip_template_parameter_list (const char **name) /* Skip any whitespace that might occur after the closing of the parameter list, but only if it is the end of parameter list. */ const char *q = p; - while (ISSPACE (*q)) + while (c_isspace (*q)) ++q; if (*q == '>') p = q; @@ -2230,8 +2229,8 @@ strncmp_iw_with_mode (const char *string1, const char *string2, while (1) { if (skip_spaces - || ((ISSPACE (*string1) && !valid_identifier_name_char (*string2)) - || (ISSPACE (*string2) && !valid_identifier_name_char (*string1)))) + || ((c_isspace (*string1) && !valid_identifier_name_char (*string2)) + || (c_isspace (*string2) && !valid_identifier_name_char (*string1)))) { skip_ws (string1, string2, end_str2); skip_spaces = false; @@ -2264,7 +2263,7 @@ strncmp_iw_with_mode (const char *string1, const char *string2, if (match_for_lcd != NULL && abi_start != string1) match_for_lcd->mark_ignored_range (abi_start, string1); - while (ISSPACE (*string1)) + while (c_isspace (*string1)) string1++; } @@ -2331,9 +2330,9 @@ strncmp_iw_with_mode (const char *string1, const char *string2, string1++; string2++; - while (ISSPACE (*string1)) + while (c_isspace (*string1)) string1++; - while (string2 < end_str2 && ISSPACE (*string2)) + while (string2 < end_str2 && c_isspace (*string2)) string2++; continue; } @@ -2433,14 +2432,13 @@ strncmp_iw_with_mode (const char *string1, const char *string2, if (case_sensitivity == case_sensitive_on && *string1 != *string2) break; if (case_sensitivity == case_sensitive_off - && (TOLOWER ((unsigned char) *string1) - != TOLOWER ((unsigned char) *string2))) + && c_tolower (*string1) != c_tolower (*string2)) break; /* If we see any non-whitespace, non-identifier-name character (any of "()<>*&" etc.), then skip spaces the next time around. */ - if (!ISSPACE (*string1) && !valid_identifier_name_char (*string1)) + if (!c_isspace (*string1) && !valid_identifier_name_char (*string1)) skip_spaces = true; string1++; @@ -3153,16 +3151,16 @@ strcmp_iw_ordered (const char *string1, const char *string2) while (*string1 != '\0' && *string2 != '\0') { - while (ISSPACE (*string1)) + while (c_isspace (*string1)) string1++; - while (ISSPACE (*string2)) + while (c_isspace (*string2)) string2++; switch (case_pass) { case case_sensitive_off: - c1 = TOLOWER ((unsigned char) *string1); - c2 = TOLOWER ((unsigned char) *string2); + c1 = c_tolower (*string1); + c2 = c_tolower (*string2); break; case case_sensitive_on: c1 = *string1; @@ -3271,17 +3269,17 @@ string_to_core_addr (const char *my_string) { CORE_ADDR addr = 0; - if (my_string[0] == '0' && TOLOWER (my_string[1]) == 'x') + if (my_string[0] == '0' && c_tolower (my_string[1]) == 'x') { /* Assume that it is in hex. */ int i; for (i = 2; my_string[i] != '\0'; i++) { - if (ISDIGIT (my_string[i])) + if (c_isdigit (my_string[i])) addr = (my_string[i] - '0') + (addr * 16); - else if (ISXDIGIT (my_string[i])) - addr = (TOLOWER (my_string[i]) - 'a' + 0xa) + (addr * 16); + else if (c_isxdigit (my_string[i])) + addr = (c_tolower (my_string[i]) - 'a' + 0xa) + (addr * 16); else error (_("invalid hex \"%s\""), my_string); } @@ -3293,7 +3291,7 @@ string_to_core_addr (const char *my_string) for (i = 0; my_string[i] != '\0'; i++) { - if (ISDIGIT (my_string[i])) + if (c_isdigit (my_string[i])) addr = (my_string[i] - '0') + (addr * 10); else error (_("invalid decimal \"%s\""), my_string); diff --git a/gdb/xml-support.c b/gdb/xml-support.c index 08524f8..ebf6ea6 100644 --- a/gdb/xml-support.c +++ b/gdb/xml-support.c @@ -21,7 +21,6 @@ #include "xml-builtin.h" #include "xml-support.h" #include "gdbsupport/filestuff.h" -#include "gdbsupport/gdb-safe-ctype.h" #include <vector> #include <string> @@ -430,10 +429,10 @@ gdb_xml_parser::end_element (const XML_Char *name) body = scope->body.c_str (); /* Strip leading and trailing whitespace. */ - while (length > 0 && ISSPACE (body[length - 1])) + while (length > 0 && c_isspace (body[length - 1])) length--; scope->body.erase (length); - while (*body && ISSPACE (*body)) + while (*body && c_isspace (*body)) body++; } |