diff options
| author | epochqwert <epoch@hacking.allowed.org> | 2015-12-30 04:37:22 -0600 | 
|---|---|---|
| committer | epochqwert <epoch@hacking.allowed.org> | 2015-12-30 04:37:22 -0600 | 
| commit | 1db8f7d916874f22c15df3121e3ec5ba5f7e7310 (patch) | |
| tree | 128be6565fb3b598cc6828e85876f19fe7196234 | |
| parent | 4f05827c8b10d07cd9bc04424922a4dba4f728ab (diff) | |
| download | uritools-1db8f7d916874f22c15df3121e3ec5ba5f7e7310.tar.gz uritools-1db8f7d916874f22c15df3121e3ec5ba5f7e7310.zip | |
enabled magic by default in cuturl.
made cuturl print empty string instead of trying to print nulls.
matchurl was matching multiple times for things it shouldn't have and not cleaing out the url struct.
Makefile now uses -Wall
| -rw-r--r-- | Makefile | 4 | ||||
| -rw-r--r-- | cuturl.c | 18 | ||||
| -rw-r--r-- | matchurl.c | 19 | 
3 files changed, 22 insertions, 19 deletions
| @@ -3,8 +3,8 @@ PREFIX=/usr/local  CC=gcc  all: -	$(CC) -o matchurl matchurl.c url.c -	$(CC) -o cuturl cuturl.c url.c +	$(CC) -Wall -o matchurl matchurl.c url.c +	$(CC) -Wall -o cuturl cuturl.c url.c  clean:  	rm -f matchurl @@ -8,6 +8,8 @@  #include "url.h" +#define MAGIC +  /*   schemes are case sensitive but cononicals are lower case.   domain is case insensitive. return it lowercased? @@ -161,14 +163,14 @@ int main(int argc,char *argv[]) {    } else {     if(c) {      for(i=0;i<c;i++) { -     if(args[i]&F_SCHEME) printf("%s\n",u.scheme); -     if(args[i]&F_USERNAME) printf("%s\n",u.username); -     if(args[i]&F_PASSWORD) printf("%s\n",u.password); -     if(args[i]&F_DOMAIN) printf("%s\n",u.domain); -     if(args[i]&F_PORT) printf("%s\n",u.port); -     if(args[i]&F_PATH) printf("%s\n",u.path); -     if(args[i]&F_QUERY_STRING) printf("%s\n",u.query_string); -     if(args[i]&F_FRAGMENT_ID) printf("%s\n",u.fragment_id); +     if(args[i]&F_SCHEME) printf("%s\n",AorB(u.scheme,"")); +     if(args[i]&F_USERNAME) printf("%s\n",AorB(u.username,"")); +     if(args[i]&F_PASSWORD) printf("%s\n",AorB(u.password,"")); +     if(args[i]&F_DOMAIN) printf("%s\n",AorB(u.domain,"")); +     if(args[i]&F_PORT) printf("%s\n",AorB(u.port,"")); +     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,""));      }     } else {      printf("scheme: %s\n",u.scheme); @@ -22,22 +22,23 @@ int main(int argc,char *argv[]) {    if(strchr(line,'\r')) *strchr(line,'\r')=0;    if(strchr(line,'\n')) *strchr(line,'\n')=0;    strcpy(copy,line); +  memset(&u,0,sizeof(u));    urlfromline(&u,line);    //use the character in argv[1] to match stdin against argv[2]. if match print whole line.    for(i=1;i<argc;i+=2) {     if(argv[i][0] == '-') argv[i]++;     switch(argv[i][0]) { -    case 's': if(u.scheme       && !strcmp(u.scheme,argv[i+1]))       printf("%s\n",copy); -    case 'u': if(u.username     && !strcmp(u.username,argv[i+1]))     printf("%s\n",copy); -    case 'k': if(u.password     && !strcmp(u.password,argv[i+1]))     printf("%s\n",copy); -    case 'd': if(u.domain       && !strcmp(u.domain,argv[i+1]))       printf("%s\n",copy); +    case 's': if(u.scheme       && !strcmp(u.scheme,argv[i+1]))       printf("%s\n",copy); break; +    case 'u': if(u.username     && !strcmp(u.username,argv[i+1]))     printf("%s\n",copy); break; +    case 'k': if(u.password     && !strcmp(u.password,argv[i+1]))     printf("%s\n",copy); break; +    case 'd': if(u.domain       && !strcmp(u.domain,argv[i+1]))       printf("%s\n",copy); break; +    case 'P': if(u.port         && !strcmp(u.port,argv[i+1]))         printf("%s\n",copy); break; +    case 'p': if(u.path         && !strcmp(u.path,argv[i+1]))         printf("%s\n",copy); break; +    case 'q': if(u.query_string && !strcmp(u.query_string,argv[i+1])) printf("%s\n",copy); break; +    case 'f': if(u.fragment_id  && !strcmp(u.fragment_id,argv[i+1]))  printf("%s\n",copy); break;      case 'D':       if(u.domain && strlen(u.domain) >= strlen(argv[i+1]) && !strncmp(u.domain+strlen(u.domain)-strlen(argv[i+1]),argv[i+1],strlen(argv[i+1])))  -      printf("%s\n",copy); -    case 'P': if(u.port         && !strcmp(u.port,argv[i+1]))         printf("%s\n",copy); -    case 'p': if(u.path         && !strcmp(u.path,argv[i+1]))         printf("%s\n",copy); -    case 'q': if(u.query_string && !strcmp(u.query_string,argv[i+1])) printf("%s\n",copy); -    case 'f': if(u.fragment_id  && !strcmp(u.fragment_id,argv[i+1]))  printf("%s\n",copy); +      printf("D: %s\n",copy);       break;      default:       printf("unknown url part letter! '%c'\n",argv[i][0]); | 
