summaryrefslogtreecommitdiff
path: root/libcpp/internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'libcpp/internal.h')
-rw-r--r--libcpp/internal.h11
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,