Lines Matching +full:8 +full:- +full:ch
37 ** utf-8-type-addr = "utf-8;" utf-8-enc-addr
38 ** utf-8-address = Mailbox ; Mailbox as defined in [RFC6531].
39 ** utf-8-enc-addr = utf-8-addr-xtext /
40 ** utf-8-addr-unitext /
41 ** utf-8-address
42 ** utf-8-addr-xtext = 1*(QCHAR / EmbeddedUnicodeChar)
43 ** ; 7bit form of utf-8-addr-unitext.
47 ** utf-8-addr-unitext = 1*(QUCHAR / EmbeddedUnicodeChar)
48 ** ; MUST follow utf-8-address ABNF when
53 ** QCHAR = %x21-2a / %x2c-3c / %x3e-5b / %x5d-7e
56 ** QUCHAR = QCHAR / UTF8-2 / UTF8-3 / UTF8-4
59 ** ; other Unicode characters encoded in UTF-8
62 ** HEXPOINT = ( ( "0"/"1" ) %x31-39 ) / "10" / "20" /
63 ** "2B" / "3D" / "7F" / ; all xtext-specials
64 ** "5C" / (HEXDIG8 HEXDIG) / ; 2-digit forms
65 ** ( NZHEXDIG 2(HEXDIG) ) / ; 3-digit forms
66 ** ( NZDHEXDIG 3(HEXDIG) ) / ; 4-digit forms excluding
67 ** ( "D" %x30-37 2(HEXDIG) ) / ; ... surrogate
68 ** ( NZHEXDIG 4(HEXDIG) ) / ; 5-digit forms
69 ** ( "10" 4*HEXDIG ) ; 6-digit forms
72 ** HEXDIG8 = %x38-39 / "A" / "B" / "C" / "D" / "E" / "F"
73 ** ; HEXDIG excluding 0-7
74 ** NZHEXDIG = %x31-39 / "A" / "B" / "C" / "D" / "E" / "F"
76 ** NZDHEXDIG = %x31-39 / "A" / "B" / "C" / "E" / "F"
82 ** UXTEXT_UNQUOTE -- "unquote" a utf-8-addr-unitext
85 ** quoted -- original string [x]
86 ** unquoted -- "decoded" string [x] (buffer provided by caller)
88 ** olen -- length of unquoted (must be > 0)
102 int ch, len; local
104 #define APPCH(ch) do \ argument
107 return 0 - olen; \
109 unquoted[len] = (char) (ch); \
116 for (cp = (const unsigned char *) quoted; (ch = *cp) != 0; cp++)
118 if (ch == '\\' && cp[1] == 'x' && cp[2] == '{')
123 while ((ch = *++cp) != '}')
125 if (SM_ISDIGIT(ch))
126 uc = (uc << 4) + (ch - '0');
127 else if (ch >= 'a' && ch <= 'f')
128 uc = (uc << 4) + (ch - 'a' + 10);
129 else if (ch >= 'A' && ch <= 'F')
130 uc = (uc << 4) + (ch - 'A' + 10);
132 return 0 - len;
134 return 0 - len;
176 APPCH(ch);
185 Copyright (c) 2003-2014, Archiveopteryx and its contributors.