diff options
Diffstat (limited to 'libmailutils/tests/url-parse.c')
-rw-r--r-- | libmailutils/tests/url-parse.c | 49 |
1 files changed, 45 insertions, 4 deletions
diff --git a/libmailutils/tests/url-parse.c b/libmailutils/tests/url-parse.c index 86c917315..48dd40f84 100644 --- a/libmailutils/tests/url-parse.c +++ b/libmailutils/tests/url-parse.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include <mailutils/errno.h> | 25 | #include <mailutils/errno.h> |
26 | #include <mailutils/url.h> | 26 | #include <mailutils/url.h> |
27 | #include <mailutils/secret.h> | 27 | #include <mailutils/secret.h> |
28 | #include <mailutils/kwd.h> | ||
28 | 29 | ||
29 | #define CAT2(a,b) a ## b | 30 | #define CAT2(a,b) a ## b |
30 | 31 | ||
@@ -73,12 +74,52 @@ print_query (mu_url_t url) | |||
73 | printf ("query[%lu] <%s>\n", (unsigned long) i, qargv[i]); | 74 | printf ("query[%lu] <%s>\n", (unsigned long) i, qargv[i]); |
74 | } | 75 | } |
75 | 76 | ||
77 | struct mu_kwd parse_kwtab[] = { | ||
78 | { "hexcode", MU_URL_PARSE_HEXCODE }, | ||
79 | { "hidepass", MU_URL_PARSE_HIDEPASS }, | ||
80 | { "portsrv", MU_URL_PARSE_PORTSRV }, | ||
81 | { "portwc", MU_URL_PARSE_PORTWC }, | ||
82 | { "pipe", MU_URL_PARSE_PIPE }, | ||
83 | { "slash", MU_URL_PARSE_SLASH }, | ||
84 | { "dslash_optional", MU_URL_PARSE_DSLASH_OPTIONAL }, | ||
85 | { "default", MU_URL_PARSE_DEFAULT }, | ||
86 | { "all", MU_URL_PARSE_ALL }, | ||
87 | { NULL } | ||
88 | }; | ||
89 | |||
90 | |||
76 | int | 91 | int |
77 | main () | 92 | main (int argc, char **argv) |
78 | { | 93 | { |
79 | char str[1024]; | 94 | char str[1024]; |
80 | unsigned port = 0; | 95 | unsigned port = 0; |
81 | mu_url_t u = NULL; | 96 | mu_url_t u = NULL, uhint = NULL; |
97 | int i; | ||
98 | int parse_flags = 0; | ||
99 | int rc; | ||
100 | |||
101 | mu_set_program_name (argv[0]); | ||
102 | for (i = 1; i < argc; i++) | ||
103 | { | ||
104 | int flag; | ||
105 | |||
106 | if (strncmp (argv[i], "hint=", 5) == 0) | ||
107 | { | ||
108 | rc = mu_url_create (&uhint, argv[i] + 5); | ||
109 | if (rc) | ||
110 | { | ||
111 | mu_error ("cannot create hints: %s", mu_strerror (rc)); | ||
112 | exit (1); | ||
113 | } | ||
114 | } | ||
115 | else if (mu_kwd_xlat_name_ci (parse_kwtab, argv[i], &flag) == 0) | ||
116 | parse_flags |= flag; | ||
117 | else | ||
118 | { | ||
119 | mu_error ("%s: unknown flag %s", argv[0], argv[i]); | ||
120 | exit (1); | ||
121 | } | ||
122 | } | ||
82 | 123 | ||
83 | while (fgets (str, sizeof (str), stdin) != NULL) | 124 | while (fgets (str, sizeof (str), stdin) != NULL) |
84 | { | 125 | { |
@@ -89,9 +130,9 @@ main () | |||
89 | str[strlen (str) - 1] = '\0'; /* chop newline */ | 130 | str[strlen (str) - 1] = '\0'; /* chop newline */ |
90 | if (strspn (str, " \t") == strlen (str)) | 131 | if (strspn (str, " \t") == strlen (str)) |
91 | continue; /* skip empty lines */ | 132 | continue; /* skip empty lines */ |
92 | if ((rc = mu_url_create (&u, str)) != 0) | 133 | if ((rc = mu_url_create_hint (&u, str, parse_flags, uhint)) != 0) |
93 | { | 134 | { |
94 | fprintf (stderr, "mu_url_create %s ERROR: [%d] %s", | 135 | fprintf (stderr, "mu_url_create %s ERROR: [%d] %s\n", |
95 | str, rc, mu_strerror (rc)); | 136 | str, rc, mu_strerror (rc)); |
96 | exit (1); | 137 | exit (1); |
97 | } | 138 | } |