diff options
| -rw-r--r-- | cuturl.c | 12 | 
1 files changed, 9 insertions, 3 deletions
| @@ -32,14 +32,16 @@  #define F_PATH 1<<5  #define F_QUERY_STRING 1<<6  #define F_FRAGMENT_ID 1<<7 +#define F_WHOLE_URL 1<<8 -char *long_opts[]={"scheme","username","password","domain","port","path","query_string","fragment_id",0}; -char *short_opts[]={"s","u","k","d","P","p","q","f"}; +char *long_opts[]={"scheme","username","password","domain","port","path","query_string","fragment_id","URL",0}; +char *short_opts[]={"s","u","k","d","P","p","q","f","U"};  int main(int argc,char *argv[]) { + char *url;   char *name[2];   char *line=0; - char args[256]; + short args[256];//this needs to be a short to make room for the F_WHOLE_URL   int i,j,c=0;   int size=1024;   int status; @@ -118,6 +120,7 @@ int main(int argc,char *argv[]) {    for(i=0;line[i] && line[i] != '\n' && line[i] != '\r';i++);    line[i]=0; +  url=strdup(line);    urlfromline(&u,line);    // printf("scheme://username:password@domain:port/path?query_string#fragment_id\n\n"); @@ -172,6 +175,7 @@ int main(int argc,char *argv[]) {       if(args[i]&F_PATH) printf("%s\n",AorB(u.path,""));       if(args[i]&F_QUERY_STRING) printf("%s\n",AorB(u.query_string,""));       if(args[i]&F_FRAGMENT_ID) printf("%s\n",AorB(u.fragment_id,"")); +     if(args[i]&F_WHOLE_URL) printf("%s\n",url);      }     } else {      printf("scheme: %s\n",u.scheme); @@ -182,8 +186,10 @@ int main(int argc,char *argv[]) {      printf("path: %s\n",u.path);      printf("query_string: %s\n",u.query_string);      printf("fragment_id: %s\n",u.fragment_id); +    printf("whole_url: %s\n",url);     }    } +  free(url);//this is definitely malloc()d    if(malloced) {     free(line);     malloced=0; | 
