URI:
       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 }