From 7d2c33acefb413237c7bb528bb4cfbeb845a9c0b Mon Sep 17 00:00:00 2001 From: Aethor Date: Mon, 15 May 2017 16:34:40 +0200 Subject: [PATCH] regex motor is rouling comme une pierre --- fish_shell/fish_globbing.c | 49 +++++++++++++++++++++++++++++--------- fish_shell/fish_globbing.h | 2 +- 2 files changed, 39 insertions(+), 12 deletions(-) diff --git a/fish_shell/fish_globbing.c b/fish_shell/fish_globbing.c index 489b841..96fd193 100644 --- a/fish_shell/fish_globbing.c +++ b/fish_shell/fish_globbing.c @@ -8,10 +8,17 @@ WordArray* fishExpand(WordArray *wordArray) { int i; - WordArray* expandedParameters = (WordArray*) malloc(sizeof(WordArray)); + //int j; + WordArray* splitParameter; - for(i=0; isize; i++){ + for(i=1; isize; i++){ + splitParameter = split(wordArray->words[i], "/"); + printf("%s", splitParameter->words[0]); + + /*for(j=0; isize; j++){ + printf("%s", splitParameter->words[j]); + }*/ } @@ -57,32 +64,52 @@ WordArray * getFiles(char* path){ } -bool comparator(char* string1, char* string2){//TODO +int comparator(char* string1, char* string2){//TODO int i = 0; + char tempIChar; + int j = 0; if(string1 != NULL && string2 != NULL){ - while(string1[i] != '\0' && string2[i] != '\0'){ - - if(string1[i] != string2[i] && string1[i] != '?'){ + while(string1[i] != '\0' && string2[j] != '\0'){ - return false; + if(string1[i] == '*'){ + + tempIChar = string1[i+1]; + + while(string2[j] != tempIChar){ + + j++; + + if(string2[j] == '\0' && tempIChar == '\0'){ + return 1; + } + + } + i++; + + } + + if(string1[i] != string2[j] && string1[i] != '?'){ + + return 0; } i++; + j++; } - if(string1[i] == '\0' && string2[i] == '\0'){ + if(string1[i] == '\0' && string2[j] == '\0'){ - return true; + return 1; } else{ - return false; + return 0; } @@ -93,7 +120,7 @@ bool comparator(char* string1, char* string2){//TODO printf("warning : fuck you, strings are considered null"); crash(); - return false; + return 0; } diff --git a/fish_shell/fish_globbing.h b/fish_shell/fish_globbing.h index 690ce08..0e70a26 100644 --- a/fish_shell/fish_globbing.h +++ b/fish_shell/fish_globbing.h @@ -9,6 +9,6 @@ WordArray * fishExpand(WordArray* wordArray); WordArray* getFiles(char* path); /*char1 is a string with characters such as '*', '.' or '?' having special meanings*/ -bool comparator(char* string1, char* string2); +int comparator(char* string1, char* string2); #endif //FISH_FISH_GLOBBING_H