example.c - uriparser - URI parser
HTML git clone git://git.codemadness.org/uriparser
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
example.c (1507B)
---
1 #include <stdio.h>
2
3 #include "util.h"
4
5 void
6 printfields(struct uri *u)
7 {
8 printf("* proto: %s\n", u->proto);
9 printf("* userinfo: %s\n", u->userinfo);
10 printf("* host: %s\n", u->host);
11 printf("* port: %s\n", u->port);
12 printf("* path: %s\n", u->path);
13 printf("* query: %s\n", u->query);
14 printf("* fragment: %s\n", u->fragment);
15 }
16
17 int
18 main(int argc, char *argv[])
19 {
20 struct uri b, u, abs;
21 char buf[4096];
22 int r;
23
24 if (argc < 2 || argc > 3) {
25 fprintf(stderr, "usage: %s <url> [baseurl]\n", argv[0]);
26 return 1;
27 }
28
29 r = uri_parse(argv[1], &u);
30 printf("uri_parse() for %s returned: %d\n", argv[1], r);
31 if (r != -1) {
32 printf("success!\n\nfields for %s:\n", argv[1]);
33 printfields(&u);
34 printf("\n");
35
36 if (argc > 2) {
37 r = uri_parse(argv[2], &b);
38 printf("uri_parse() for %s returned: %d\n", argv[2], r);
39 if (r != -1) {
40 printf("success!\n\nfields for %s:\n", argv[2]);
41 printfields(&b);
42 printf("\n");
43
44 r = uri_makeabs(&abs, &u, &b);
45 printf("uri_makeabs() for %s and %s returned: %d\n", argv[1], argv[2], r);
46 if (r != -1) {
47 printf("success!\n\nfields for %s and %s:\n", argv[1], argv[2]);
48 printfields(&abs);
49 r = uri_format(buf, sizeof(buf), &abs);
50 printf("uri_format() for absolute URI returned: %d\n", r);
51 if (r > 0 && r < sizeof(buf))
52 printf("formatted URI: %s\n", buf);
53 } else {
54 printf("failure!\n");
55 }
56 } else {
57 printf("failure!\n");
58 }
59 }
60 } else {
61 printf("failure!\n");
62 }
63
64 return 0;
65 }