From 5a66aa1bbace4775025cd99a8ab0a8a18487dfe9 Mon Sep 17 00:00:00 2001 From: Ali Fardan Date: Sun, 22 Nov 2020 17:02:51 +0300 Subject: - implement percent encoding in encode.c - move syntax macros from decode.c to separate types.h header - fix normalizer (sorta, needs testing) - TODO: more testing... --- types.h | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 types.h (limited to 'types.h') diff --git a/types.h b/types.h new file mode 100644 index 0000000..03208d4 --- /dev/null +++ b/types.h @@ -0,0 +1,113 @@ +#define _is_alpha(c)\ + ((c == 'A') ||\ + (c == 'B') ||\ + (c == 'C') ||\ + (c == 'D') ||\ + (c == 'E') ||\ + (c == 'F') ||\ + (c == 'G') ||\ + (c == 'H') ||\ + (c == 'I') ||\ + (c == 'J') ||\ + (c == 'K') ||\ + (c == 'L') ||\ + (c == 'M') ||\ + (c == 'N') ||\ + (c == 'O') ||\ + (c == 'P') ||\ + (c == 'Q') ||\ + (c == 'R') ||\ + (c == 'S') ||\ + (c == 'T') ||\ + (c == 'U') ||\ + (c == 'V') ||\ + (c == 'W') ||\ + (c == 'X') ||\ + (c == 'Y') ||\ + (c == 'Z') ||\ + (c == 'a') ||\ + (c == 'b') ||\ + (c == 'c') ||\ + (c == 'd') ||\ + (c == 'e') ||\ + (c == 'f') ||\ + (c == 'g') ||\ + (c == 'h') ||\ + (c == 'i') ||\ + (c == 'j') ||\ + (c == 'k') ||\ + (c == 'l') ||\ + (c == 'm') ||\ + (c == 'n') ||\ + (c == 'o') ||\ + (c == 'p') ||\ + (c == 'q') ||\ + (c == 'r') ||\ + (c == 's') ||\ + (c == 't') ||\ + (c == 'u') ||\ + (c == 'v') ||\ + (c == 'w') ||\ + (c == 'x') ||\ + (c == 'y') ||\ + (c == 'z')) + +#define _is_digit(c)\ + ((c == '0') ||\ + (c == '1') ||\ + (c == '2') ||\ + (c == '3') ||\ + (c == '4') ||\ + (c == '5') ||\ + (c == '6') ||\ + (c == '7') ||\ + (c == '8') ||\ + (c == '9')) + +#define _is_gen_delim(c)\ + ((c == ':') ||\ + (c == '/') ||\ + (c == '?') ||\ + (c == '#') ||\ + (c == '[') ||\ + (c == ']') ||\ + (c == '@')) + +#define _is_sub_delim(c)\ + ((c == '!') ||\ + (c == '$') ||\ + (c == '&') ||\ + (c == '\'') ||\ + (c == '(') ||\ + (c == ')') ||\ + (c == '*') ||\ + (c == '+') ||\ + (c == ',') ||\ + (c == ';') ||\ + (c == '=')) + +#define _is_unreserved(c)\ + (_is_alpha(c) ||\ + _is_digit(c) ||\ + (c == '-') ||\ + (c == '.') ||\ + (c == '_') ||\ + (c == '~')) + +#define _is_reserved(c)\ + (_is_gen_delim(c) ||\ + _is_sub_delim(c)) + +#define _is_pchar(c)\ + (_is_unreserved(c) ||\ + _is_sub_delim(c) ||\ + (c == ':') ||\ + (c == '@')) + +#define _is_segment(c)\ + _is_pchar(c) + +#define _is_segment_nc(c)\ + (_is_unreserved(c) ||\ + _is_sub_delim(c) ||\ + (c == '@')) -- cgit 1.4.1-2-gfad0