Commit 73b829fb authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Add vct_tchar() (ref: rfc7230#section-3.2.6)

parent 3fd16639
......@@ -40,6 +40,7 @@
#define VCT_HEX (1<<6)
#define VCT_XMLNAMESTART (1<<7)
#define VCT_XMLNAME (1<<8)
#define VCT_TCHAR (1<<9)
extern const uint16_t vct_typtab[256];
......@@ -61,6 +62,7 @@ vct_is(int x, uint16_t y)
#define vct_issepctl(x) vct_is(x, VCT_SEPARATOR | VCT_CTL)
#define vct_isxmlnamestart(x) vct_is(x, VCT_XMLNAMESTART)
#define vct_isxmlname(x) vct_is(x, VCT_XMLNAMESTART | VCT_XMLNAME)
#define vct_istchar(x) vct_is(x, VCT_ALPHA | VCT_DIGIT | VCT_TCHAR)
#define vct_iscrlf(p) (((p)[0] == '\r' && (p)[1] == '\n') || (p)[0] == '\n')
......
......@@ -73,12 +73,20 @@ const uint16_t vct_typtab[256] = {
[0x1e] = VCT_CTL,
[0x1f] = VCT_CTL,
[0x20] = VCT_SP | VCT_SEPARATOR,
[0x21] = VCT_TCHAR,
[0x22] = VCT_SEPARATOR,
[0x23] = VCT_TCHAR,
[0x24] = VCT_TCHAR,
[0x25] = VCT_TCHAR,
[0x26] = VCT_TCHAR,
[0x27] = VCT_TCHAR,
[0x28] = VCT_SEPARATOR,
[0x29] = VCT_SEPARATOR,
[0x2a] = VCT_TCHAR,
[0x2b] = VCT_TCHAR,
[0x2c] = VCT_SEPARATOR,
[0x2d] = VCT_XMLNAME,
[0x2e] = VCT_XMLNAME,
[0x2d] = VCT_XMLNAME | VCT_TCHAR,
[0x2e] = VCT_XMLNAME | VCT_TCHAR,
[0x2f] = VCT_SEPARATOR,
[0x30] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
[0x31] = VCT_DIGIT | VCT_HEX | VCT_XMLNAME,
......@@ -126,7 +134,9 @@ const uint16_t vct_typtab[256] = {
[0x5b] = VCT_SEPARATOR,
[0x5c] = VCT_SEPARATOR,
[0x5d] = VCT_SEPARATOR,
[0x5f] = VCT_XMLNAMESTART,
[0x5e] = VCT_TCHAR,
[0x5f] = VCT_XMLNAMESTART | VCT_TCHAR,
[0x60] = VCT_TCHAR,
[0x61] = VCT_LOALPHA | VCT_HEX | VCT_XMLNAMESTART,
[0x62] = VCT_LOALPHA | VCT_HEX | VCT_XMLNAMESTART,
[0x63] = VCT_LOALPHA | VCT_HEX | VCT_XMLNAMESTART,
......@@ -154,7 +164,9 @@ const uint16_t vct_typtab[256] = {
[0x79] = VCT_LOALPHA | VCT_XMLNAMESTART,
[0x7a] = VCT_LOALPHA | VCT_XMLNAMESTART,
[0x7b] = VCT_SEPARATOR,
[0x7c] = VCT_TCHAR,
[0x7d] = VCT_SEPARATOR,
[0x7e] = VCT_TCHAR,
[0x7f] = VCT_CTL,
[0xb7] = VCT_XMLNAME,
[0xc0] = VCT_XMLNAMESTART,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment