# define _CC_XDIGIT 12
# define _CC_PSXSPC 13
# define _CC_BLANK 14
-# define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_BLANK
-
-# define _CC_IDFIRST 15
-# define _CC_CHARNAME_CONT 16
-# define _CC_NONLATIN1_FOLD 17
-# define _CC_QUOTEMETA 18
-# define _CC_NON_FINAL_FOLD 19
-# define _CC_IS_IN_SOME_FOLD 20
-/* Unused: 21-31
+# define _CC_VERTSPACE 15
+# define _HIGHEST_REGCOMP_DOT_H_SYNC _CC_VERTSPACE
+
+# define _CC_IDFIRST 16
+# define _CC_CHARNAME_CONT 17
+# define _CC_NONLATIN1_FOLD 18
+# define _CC_QUOTEMETA 19
+# define _CC_NON_FINAL_FOLD 20
+# define _CC_IS_IN_SOME_FOLD 21
+/* Unused: 22-31
* If more bits are needed, one could add a second word for non-64bit
* QUAD_IS_INT systems, using some #ifdefs to distinguish between having a 2nd
* word or not. The IS_IN_SOME_FOLD bit is the most easily expendable, as it
/* U+07 BEL */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+08 BS */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+09 HT */ (1U<<_CC_ASCII)|(1U<<_CC_BLANK)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
-/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* U+0A LF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0B VT */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0C FF */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
+/* U+0D CR */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
/* U+0E SO */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+0F SI */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+10 DLE */ (1U<<_CC_ASCII)|(1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+82 BPH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+83 NBH */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+84 IND */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
-/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE),
+/* U+85 NEL */ (1U<<_CC_CNTRL)|(1U<<_CC_PSXSPC)|(1U<<_CC_QUOTEMETA)|(1U<<_CC_SPACE)|(1U<<_CC_VERTSPACE),
/* U+86 SSA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+87 ESA */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
/* U+88 HTS */ (1U<<_CC_CNTRL)|(1U<<_CC_QUOTEMETA),
#define ANYOF_VERTWS ((ANYOF_MAX)+0)
#define ANYOF_NVERTWS ((ANYOF_MAX)+1)
+#if (ANYOF_VERTWS != (_CC_VERTSPACE) * 2) \
+ || (_CC_VERTSPACE != _HIGHEST_REGCOMP_DOT_H_SYNC)
+# error Problem with handy.h _CC_VERTSPACE #define
+#endif
+
#define ANYOF_HORIZWS ((ANYOF_MAX)+2)
#define ANYOF_NHORIZWS ((ANYOF_MAX)+3)
UPPER
WORDCHAR
XDIGIT
+ VERTSPACE
IS_IN_SOME_FOLD
);
if (! ($name =~ s/_L1$//)) {
# Here, isn't an _L1. If its _A, it's automatically false for
- # non-ascii. The only one current one (besides ASCII) without a
- # suffix is valid over the whole range.
+ # non-ascii. The only current ones (besides ASCII) without a
+ # suffix are valid over the whole range.
next if $name =~ s/_A$// && $ord >= 128;
}