diff --git a/d01/ex04/Sed.cpp b/d01/ex04/Sed.cpp index b4acbed..b65a350 100644 --- a/d01/ex04/Sed.cpp +++ b/d01/ex04/Sed.cpp @@ -22,12 +22,17 @@ void Sed::replace() { { if (str[0] == this->_find[0]) { - tmp = str[0]; - file.get(str, len, EOF); - if (this->_find.compare(1, len - 1, str) == 0) + if (len == 1) new_file << this->_replacement; else - new_file << tmp << str; + { + tmp = str[0]; + file.get(str, len, EOF); + if (this->_find.compare(1, len - 1, str) == 0) + new_file << this->_replacement; + else + new_file << tmp << str; + } } else new_file << str; diff --git a/d01/ex04/ldksliejf.replace b/d01/ex04/ldksliejf.replace new file mode 100644 index 0000000..e69de29 diff --git a/d01/ex04/sed b/d01/ex04/sed index 6ef7124..fabdcbb 100755 Binary files a/d01/ex04/sed and b/d01/ex04/sed differ diff --git a/d01/ex04/test_log/test1 b/d01/ex04/test_log/test1 new file mode 100644 index 0000000..8d1c8b6 --- /dev/null +++ b/d01/ex04/test_log/test1 @@ -0,0 +1 @@ + diff --git a/d01/ex04/test_log/test2 b/d01/ex04/test_log/test2 new file mode 100644 index 0000000..23b0c96 --- /dev/null +++ b/d01/ex04/test_log/test2 @@ -0,0 +1,5 @@ +ce fichier +contient +plusieurs lignes +les unes au dessus des autres +youhouuu ioieux diff --git a/d01/ex04/test_log/test3 b/d01/ex04/test_log/test3 new file mode 100644 index 0000000..922f88c --- /dev/null +++ b/d01/ex04/test_log/test3 @@ -0,0 +1 @@ +....................................................; diff --git a/d01/ex04/test_log/test4 b/d01/ex04/test_log/test4 new file mode 100644 index 0000000..0880dee --- /dev/null +++ b/d01/ex04/test_log/test4 @@ -0,0 +1,2 @@ +...................................................; +. . . . . . . . . . . . . . . . . . . . . . . . . .; diff --git a/d01/ex04/unitests/test.sh b/d01/ex04/unitests/test.sh index 05c1a55..1fb520a 100644 --- a/d01/ex04/unitests/test.sh +++ b/d01/ex04/unitests/test.sh @@ -1,4 +1,5 @@ #!/bin/bash +cd $(dirname $0) source ./colors.sh mkdir -p test_log @@ -13,9 +14,9 @@ mkdir -p test_log OUTPUT=$( cat $TESTNAME.replace ) if [ "$OUTPUT" == "$RESULT" ] then - echo -e $B_GREEN"test1 success"$ENDCO + echo -e $B_GREEN"$TESTNAME success"$ENDCO else - echo -e $B_RED"test1 faillure"$ENDCO + echo -e $B_RED"$TESTNAME faillure"$ENDCO fi mv $TESTNAME $TESTNAME.replace ./test_log @@ -65,7 +66,7 @@ EOF ) run_tests -# TEST 3 ######################################## +# TEST 4 ######################################## TESTNAME="test4" FIND=".." REPLACEMENT="++" @@ -81,3 +82,17 @@ EOF ) run_tests +# TEST 5 ######################################## +TESTNAME="test5" +FIND="mdr" +REPLACEMENT="|||" +CONTENT=$(cat << EOF +test de mmdr foubar +EOF +) +RESULT=$(cat << EOF +test de m||| foubar +EOF +) +run_tests + diff --git a/d01/ex04/unitests/test_log/test1.replace b/d01/ex04/unitests/test_log/test1.replace index b6fc4c6..ce01362 100644 --- a/d01/ex04/unitests/test_log/test1.replace +++ b/d01/ex04/unitests/test_log/test1.replace @@ -1 +1 @@ -hello \ No newline at end of file +hello diff --git a/d01/ex04/unitests/test_log/test3.replace b/d01/ex04/unitests/test_log/test3.replace index 9b26e9b..d3b95af 100644 --- a/d01/ex04/unitests/test_log/test3.replace +++ b/d01/ex04/unitests/test_log/test3.replace @@ -1 +1 @@ -+ \ No newline at end of file +++++++++++++++++++++++++++++++++++++++++++++++++++++; diff --git a/d01/ex04/unitests/test_log/test5 b/d01/ex04/unitests/test_log/test5 new file mode 100644 index 0000000..671f5ed --- /dev/null +++ b/d01/ex04/unitests/test_log/test5 @@ -0,0 +1 @@ +test de mmdr foubar diff --git a/d01/ex04/unitests/test_log/test5.replace b/d01/ex04/unitests/test_log/test5.replace new file mode 100644 index 0000000..671f5ed --- /dev/null +++ b/d01/ex04/unitests/test_log/test5.replace @@ -0,0 +1 @@ +test de mmdr foubar