summaryrefslogtreecommitdiff
path: root/matchurl.c
diff options
context:
space:
mode:
authorepochqwert <epoch@hacking.allowed.org>2015-12-30 04:37:22 -0600
committerepochqwert <epoch@hacking.allowed.org>2015-12-30 04:37:22 -0600
commit1db8f7d916874f22c15df3121e3ec5ba5f7e7310 (patch)
tree128be6565fb3b598cc6828e85876f19fe7196234 /matchurl.c
parent4f05827c8b10d07cd9bc04424922a4dba4f728ab (diff)
downloaduritools-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
Diffstat (limited to 'matchurl.c')
-rw-r--r--matchurl.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/matchurl.c b/matchurl.c
index 1b9b88b..9029616 100644
--- a/matchurl.c
+++ b/matchurl.c
@@ -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]);