diff options
Diffstat (limited to 'libcpp/internal.h')
-rw-r--r-- | libcpp/internal.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/libcpp/internal.h b/libcpp/internal.h index 6de44ed3556..532145824c8 100644 --- a/libcpp/internal.h +++ b/libcpp/internal.h @@ -713,9 +713,10 @@ extern size_t _cpp_replacement_text_len (const cpp_macro *); struct normalize_state { - /* The previous character. */ + /* The previous starter character. */ cppchar_t previous; - /* The combining class of the previous character. */ + /* The combining class of the previous character (whether or not a + starter). */ unsigned char prev_class; /* The lowest normalization level so far. */ enum cpp_normalize_level level; @@ -723,10 +724,10 @@ struct normalize_state #define INITIAL_NORMALIZE_STATE { 0, 0, normalized_KC } #define NORMALIZE_STATE_RESULT(st) ((st)->level) -/* We saw a character that matches ISIDNUM(), update a +/* We saw a character C that matches ISIDNUM(), update a normalize_state appropriately. */ -#define NORMALIZE_STATE_UPDATE_IDNUM(st) \ - ((st)->previous = 0, (st)->prev_class = 0) +#define NORMALIZE_STATE_UPDATE_IDNUM(st, c) \ + ((st)->previous = (c), (st)->prev_class = 0) extern cppchar_t _cpp_valid_ucn (cpp_reader *, const unsigned char **, const unsigned char *, int, |