From: Christopher Uhlig Date: Tue, 14 Jan 2025 19:21:31 +0000 (+0100) Subject: fixe ? added a export return maybe ussles X-Git-Url: https://git.dkaiser.de/?a=commitdiff_plain;h=ed75abf31c8e1f576df566ccf36bc7cf8b0e7ec5;p=42%2Fminishell.git fixe ? added a export return maybe ussles --- diff --git a/_obj/builtins_part_one.o b/_obj/builtins_part_one.o new file mode 100644 index 0000000..e724cde Binary files /dev/null and b/_obj/builtins_part_one.o differ diff --git a/_obj/builtins_part_two.o b/_obj/builtins_part_two.o new file mode 100644 index 0000000..591351b Binary files /dev/null and b/_obj/builtins_part_two.o differ diff --git a/_obj/collect_redirs.o b/_obj/collect_redirs.o new file mode 100644 index 0000000..e9dfedc Binary files /dev/null and b/_obj/collect_redirs.o differ diff --git a/_obj/debug_tools.o b/_obj/debug_tools.o new file mode 100644 index 0000000..eaf039b Binary files /dev/null and b/_obj/debug_tools.o differ diff --git a/_obj/env.o b/_obj/env.o new file mode 100644 index 0000000..2db2bf1 Binary files /dev/null and b/_obj/env.o differ diff --git a/_obj/env_to_strlst.o b/_obj/env_to_strlst.o new file mode 100644 index 0000000..aef9925 Binary files /dev/null and b/_obj/env_to_strlst.o differ diff --git a/_obj/execute_cmd.o b/_obj/execute_cmd.o new file mode 100644 index 0000000..dd2108c Binary files /dev/null and b/_obj/execute_cmd.o differ diff --git a/_obj/format_string.o b/_obj/format_string.o new file mode 100644 index 0000000..34e623e Binary files /dev/null and b/_obj/format_string.o differ diff --git a/_obj/free_node.o b/_obj/free_node.o new file mode 100644 index 0000000..5f03965 Binary files /dev/null and b/_obj/free_node.o differ diff --git a/_obj/free_token.o b/_obj/free_token.o new file mode 100644 index 0000000..846891a Binary files /dev/null and b/_obj/free_token.o differ diff --git a/_obj/get_cmd_path.o b/_obj/get_cmd_path.o new file mode 100644 index 0000000..089c6cb Binary files /dev/null and b/_obj/get_cmd_path.o differ diff --git a/_obj/init.o b/_obj/init.o new file mode 100644 index 0000000..15686e9 Binary files /dev/null and b/_obj/init.o differ diff --git a/_obj/interpreter.o b/_obj/interpreter.o new file mode 100644 index 0000000..ede17a9 Binary files /dev/null and b/_obj/interpreter.o differ diff --git a/_obj/main.o b/_obj/main.o new file mode 100644 index 0000000..3c519b7 Binary files /dev/null and b/_obj/main.o differ diff --git a/_obj/new_node.o b/_obj/new_node.o new file mode 100644 index 0000000..01bb91a Binary files /dev/null and b/_obj/new_node.o differ diff --git a/_obj/new_token.o b/_obj/new_token.o new file mode 100644 index 0000000..769a27f Binary files /dev/null and b/_obj/new_token.o differ diff --git a/_obj/parse_cmd.o b/_obj/parse_cmd.o new file mode 100644 index 0000000..d958bed Binary files /dev/null and b/_obj/parse_cmd.o differ diff --git a/_obj/parser.o b/_obj/parser.o new file mode 100644 index 0000000..2bd36cc Binary files /dev/null and b/_obj/parser.o differ diff --git a/_obj/print_ast.o b/_obj/print_ast.o new file mode 100644 index 0000000..11b1189 Binary files /dev/null and b/_obj/print_ast.o differ diff --git a/_obj/repl.o b/_obj/repl.o new file mode 100644 index 0000000..a33185f Binary files /dev/null and b/_obj/repl.o differ diff --git a/_obj/signal_handling.o b/_obj/signal_handling.o new file mode 100644 index 0000000..b209798 Binary files /dev/null and b/_obj/signal_handling.o differ diff --git a/_obj/tokenizer.o b/_obj/tokenizer.o new file mode 100644 index 0000000..6301661 Binary files /dev/null and b/_obj/tokenizer.o differ diff --git a/garbage b/garbage index 5b5afd8..07f44dc 100644 --- a/garbage +++ b/garbage @@ -499,217 +499,214 @@ und in parse cmd collect args and x format args seems to work later test x -Test 1: ✅ echo hello world -Test 2: ✅ echo "hello world" -Test 3: ✅ echo 'hello world' -Test 4: ✅ echo hello'world' -Test 5: ✅ echo hello""world -Test 6: ✅ echo '' -Test 7: ✅ echo "$PWD" -Test 8: ✅ echo '$PWD' - - - -Test 9: ❌ echo "aspas ->'" string formater checken +Test 1: ✅ echo hello world +Test 2: ✅ echo "hello world" +Test 3: ✅ echo 'hello world' +Test 4: ✅ echo hello'world' +Test 5: ✅ echo hello""world +Test 6: ✅ echo '' +Test 7: ✅ echo "$PWD" +Test 8: ✅ echo '$PWD' + +format_string problem +Test 9: ❌ echo "aspas ->'" mini output = (aspas ->") bash output = (aspas ->') -Test 10: ❌ echo "aspas -> ' " +Test 10: ❌ echo "aspas -> ' " mini output = (aspas -> ") bash output = (aspas -> ' ) -Test 11: ✅ echo 'aspas ->"' -Test 12: ✅ echo 'aspas -> " ' - - -Test 13: ❌ echo "> >> < * ? [ ] | ; [ ] || && ( ) & # $ <<" +Test 11: ✅ echo 'aspas ->"' +Test 12: ✅ echo 'aspas -> " ' +Test 13: ❌ echo "> >> < * ? [ ] | ; [ ] || && ( ) & # $ <<" mini output = (> >> < README.md bash.supp bash_outfiles bonus bonus_bonus builtins extras local.supp loop.out manual_tests mini_outfiles os_specific outfiles pipes redirects syntax test_files tester wildcards ? [ ] | ; [ ] || && ( ) & # ) bash output = (> >> < README.md bash.supp bash_outfiles bonus bonus_bonus builtins extras local.supp loop.out manual_tests mini_outfiles os_specific outfiles pipes redirects syntax test_files tester wildcards ? [ ] | ; [ ] || && ( ) & # $ <<) -Test 14: ✅ echo '> >> < * ? [ ] | ; [ ] || && ( ) & # $ <<' -Test 15: ❌ echo "exit_code ->$? user ->$USER home -> $HOME" -mini output = (exit_code ->/Users/dkaiser) -bash output = (exit_code ->0 user ->dkaiser home -> /Users/dkaiser) -Test 16: ✅ echo 'exit_code ->$? user ->$USER home -> $HOME' - -string formater checken -Test 17: ❌ echo "$" -mini output = (../minishell) +Test 14: ✅ echo '> >> < * ? [ ] | ; [ ] || && ( ) & # $ <<' +Test 15: ❌ echo "exit_code ->$? user ->$USER home -> $HOME" +mini output = (exit_code ->/Users/chuhlig) +bash output = (exit_code ->0 user ->chuhlig home -> /Users/chuhlig) +Test 16: ✅ echo 'exit_code ->$? user ->$USER home -> $HOME' +Test 17: ❌ echo "$" +mini output = (0) bash output = ($) -Test 18: ✅ echo '$' -Test 19: ❌ echo $ -mini output = (../minishell) +Test 18: ✅ echo '$' +Test 19: ❌ echo $ +mini output = (0) bash output = ($) -Test 20: ❌ echo $? -mini output = () -bash output = (0) -Test 21: ❌ echo $?HELLO +Test 20: ✅ echo $? +Test 21: ❌ echo $?HELLO mini output = () bash output = (0HELLO) -Test 22: ✅ pwd -Test 23: ✅ pwd oi -Test 24: ✅ export hello -Test 25: ✅ export HELLO=123 -Test 26: ❌ export A- -mini exit code = 0 -bash exit code = 1 +Test 22: ✅ pwd +Test 23: ✅ pwd oi + +Test 24: ❌ export hello //stupid +mini exit code = 1 +bash exit code = 0 +Test 25: ✅ export HELLO=123 +Test 26: ✅⚠️ export A- mini error = () bash error = ( not a valid identifier) -Test 27: ✅ export HELLO=123 A -Test 28: ✅ export HELLO="123 A-" -Test 29: ✅ export hello world -Test 30: ❌ export HELLO-=123 + fucking extra function for identifier + +Test 27: ❌ export HELLO=123 A +mini exit code = 1 +bash exit code = 0 +auch dum +Test 28: ✅ export HELLO="123 A-" +Test 29: ❌ export hello world +mini exit code = 1 +bash exit code = 0 +Test 30: ❌ export HELLO-=123 mini exit code = 0 bash exit code = 1 mini error = () bash error = ( not a valid identifier) -Test 31: ❌ export = +Test 31: ❌ export = mini exit code = 0 bash exit code = 1 mini error = () bash error = ( not a valid identifier) -Test 32: ❌ export 123 -mini exit code = 0 -bash exit code = 1 +Test 32: ✅⚠️ export 123 mini error = () bash error = ( not a valid identifier) -Test 33: ✅ unset -Test 34: ✅ unset HELLO -Test 35: ✅ unset HELLO1 HELLO2 -Test 36: ✅ unset HOME -Test 37: ✅ unset PATH -Test 38: ✅ unset SHELL -Test 39: ❌ cd $PWD +Test 33: ✅ unset +Test 34: ✅ unset HELLO +Test 35: ✅ unset HELLO1 HELLO2 +Test 36: ✅ unset HOME +Test 37: ✅ unset PATH +Test 38: ✅ unset SHELL + + +Test 39: ❌ cd $PWD mini exit code = 139 bash exit code = 0 -Test 40: ❌ cd $PWD hi +Test 40: ❌ cd $PWD hi mini exit code = 139 bash exit code = 0 -Test 41: ❌ cd 123123 +Test 41: ❌ cd 123123 mini exit code = 139 bash exit code = 1 mini error = () bash error = ( No such file or directory) -Test 42: ❌ exit 123 -mini exit code = 0 -bash exit code = 123 -Test 43: ❌ exit 298 -mini exit code = 0 -bash exit code = 42 -Test 44: ❌ exit +100 -mini exit code = 0 -bash exit code = 100 -Test 45: ❌ exit "+100" -mini exit code = 0 -bash exit code = 100 -Test 46: ❌ exit +"100" -mini exit code = 0 -bash exit code = 100 -Test 47: ❌ exit -100 -mini exit code = 0 -bash exit code = 156 -Test 48: ❌ exit "-100" -mini exit code = 0 -bash exit code = 156 -Test 49: ❌ exit -"100" -mini exit code = 0 -bash exit code = 156 -Test 50: ❌ exit hello + +Test 42: ✅ exit 123 +Test 43: ✅ exit 298 +Test 44: ✅ exit +100 +Test 45: ✅ exit "+100" +Test 46: ✅ exit +"100" +Test 47: ✅ exit -100 +Test 48: ✅ exit "-100" +Test 49: ✅ exit -"100" + +needs a update +Test 50: ❌ exit hello mini exit code = 0 bash exit code = 255 mini error = () bash error = ( numeric argument required) -Test 51: ❌ exit 42 world -mini exit code = 0 + +edge case +Test 51: ❌ exit 42 world +mini exit code = 42 bash exit code = 1 mini error = () bash error = ( too many arguments) -Test 52: ❌ -mini exit code = -bash exit code = 0 +Test 52: ✅ ———————————— pipes -Test 53: ✅ env | sort | grep -v SHLVL | grep -v ^_ -Test 54: ✅ cat ./test_files/infile_big | grep oi -Test 55: ✅ cat minishell.h | grep ");"$ -Test 56: ✅ export GHOST=123 | env | grep GHOST +Test 53: ❌ env | sort | grep -v SHLVL | grep -v ^_ +mini output = (?=0 COLORTERM=truecolor GIT_ASKPASS=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh HOME=/Users/chuhlig LANG=en_US.UTF-8 LOGNAME=chuhlig MallocNanoZone=0 ORIGINAL_XDG_CURRENT_DESKTOP=undefined PATH=/Users/chuhlig/goinfre/.brew/bin:/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Users/chuhlig/goinfre/.brew/bin:/Users/chuhlig/Library/Application Support/Code/User/globalStorage/github.copilot-chat/debugCommand PWD=/Users/chuhlig/Desktop/minishell/minishell_tester SHELL=/bin/zsh SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.8vcs8lnaog/Listeners TERM=xterm-256color TERM_PROGRAM=vscode TERM_PROGRAM_VERSION=1.96.2 TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ USER=chuhlig USER_ZDOTDIR=/Users/chuhlig VSCODE_GIT_ASKPASS_EXTRA_ARGS= VSCODE_GIT_ASKPASS_MAIN=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js VSCODE_GIT_ASKPASS_NODE=/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) VSCODE_GIT_IPC_HANDLE=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/vscode-git-a7f217e79d.sock VSCODE_INJECTION=1 XPC_FLAGS=0x0 XPC_SERVICE_NAME=0 ZDOTDIR=/Users/chuhlig) +bash output = (COLORTERM=truecolor GIT_ASKPASS=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass.sh HOME=/Users/chuhlig LANG=en_US.UTF-8 LOGNAME=chuhlig MallocNanoZone=0 ORIGINAL_XDG_CURRENT_DESKTOP=undefined PATH=/Users/chuhlig/goinfre/.brew/bin:/Users/chuhlig/goinfre/.brew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/munki:/Library/Apple/usr/bin:/Users/chuhlig/goinfre/.brew/bin:/Users/chuhlig/Library/Application Support/Code/User/globalStorage/github.copilot-chat/debugCommand PWD=/Users/chuhlig/Desktop/minishell/minishell_tester SHELL=/bin/zsh SSH_AUTH_SOCK=/private/tmp/com.apple.launchd.8vcs8lnaog/Listeners TERM=xterm-256color TERM_PROGRAM=vscode TERM_PROGRAM_VERSION=1.96.2 TMPDIR=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/ USER=chuhlig USER_ZDOTDIR=/Users/chuhlig VSCODE_GIT_ASKPASS_EXTRA_ARGS= VSCODE_GIT_ASKPASS_MAIN=/Applications/Visual Studio Code.app/Contents/Resources/app/extensions/git/dist/askpass-main.js VSCODE_GIT_ASKPASS_NODE=/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper (Plugin).app/Contents/MacOS/Code Helper (Plugin) VSCODE_GIT_IPC_HANDLE=/var/folders/zz/zyxvpxvq6csfxvn_n000ckjr0034mf/T/vscode-git-a7f217e79d.sock VSCODE_INJECTION=1 XPC_FLAGS=0x0 XPC_SERVICE_NAME=0 ZDOTDIR=/Users/chuhlig) +Test 54: ✅ cat ./test_files/infile_big | grep oi +Test 55: ✅ cat minishell.h | grep ");"$ +Test 56: ✅ export GHOST=123 | env | grep GHOST ———————————— redirects -Test 57: ✅ grep hi <./test_files/infile -Test 58: ✅ grep hi "./outfiles/outfile01 -Test 82: ✅ ls > ./outfiles/outfile01 -Test 83: ✅ echo hi > ./outfiles/outfile01 bye -Test 84: ❌ ls >./outfiles/outfile01 >./outfiles/outfile02 +Test 80: ✅ echo <123 <456 hi | echo 42 +Test 81: ✅ ls >./outfiles/outfile01 +Test 82: ✅ ls > ./outfiles/outfile01 +Test 83: ✅ echo hi > ./outfiles/outfile01 bye + + +check this extra + +Test 84: ❌ ls >./outfiles/outfile01 >./outfiles/outfile02 Only in ./bash_outfiles: outfile01 mini outfiles: README.md @@ -751,12 +748,12 @@ syntax test_files tester wildcards -Test 85: ❌ ls >./outfiles/outfile01 >./test_files/invalid_permission +Test 85: ❌ ls >./outfiles/outfile01 >./test_files/invalid_permission Only in ./bash_outfiles: outfile01 mini outfiles: cat: ./mini_outfiles/*: No such file or directory bash outfiles: -Test 86: ❌ ls >"./outfiles/outfile with spaces" +Test 86: ❌ ls >"./outfiles/outfile with spaces" Only in ./bash_outfiles: outfile with spaces mini outfiles: cat: ./mini_outfiles/*: No such file or directory @@ -784,7 +781,7 @@ mini exit code = 1 bash exit code = 0 mini error = ( No such file or directory) bash error = () -Test 87: ❌ ls >"./outfiles/outfile""1""2""3""4""5" +Test 87: ❌ ls >"./outfiles/outfile""1""2""3""4""5" Only in ./bash_outfiles: outfile12345 mini outfiles: cat: ./mini_outfiles/*: No such file or directory @@ -812,15 +809,15 @@ mini exit code = 1 bash exit code = 0 mini error = ( No such file or directory) bash error = () -Test 88: ❌ ls >"./outfiles/outfile01" >./test_files/invalid_permission >"./outfiles/outfile02" +Test 88: ❌ ls >"./outfiles/outfile01" >./test_files/invalid_permission >"./outfiles/outfile02" Only in ./bash_outfiles: outfile01 mini outfiles: cat: ./mini_outfiles/*: No such file or directory bash outfiles: mini error = ( No such file or directory) bash error = ( Permission denied) -Test 89: ✅ ls >./test_files/invalid_permission >"./outfiles/outfile01" >./test_files/invalid_permission -Test 90: ❌ cat <"./test_files/infile" >"./outfiles/outfile01" +Test 89: ✅ ls >./test_files/invalid_permission >"./outfiles/outfile01" >./test_files/invalid_permission +Test 90: ❌ cat <"./test_files/infile" >"./outfiles/outfile01" Only in ./bash_outfiles: outfile01 mini outfiles: cat: ./mini_outfiles/*: No such file or directory @@ -833,28 +830,28 @@ mini exit code = 1 bash exit code = 0 mini error = ( No such file or directory) bash error = () -Test 91: ✅ echo hi >./outfiles/outfile01 | echo bye -Test 92: ❌ echo hi >./outfiles/outfile01 >./outfiles/outfile02 | echo bye +Test 91: ✅ echo hi >./outfiles/outfile01 | echo bye +Test 92: ❌ echo hi >./outfiles/outfile01 >./outfiles/outfile02 | echo bye Only in ./bash_outfiles: outfile01 mini outfiles: hi bash outfiles: hi -Test 93: ✅ echo hi | echo >./outfiles/outfile01 bye -Test 94: ❌ echo hi | echo bye >./outfiles/outfile01 >./outfiles/outfile02 +Test 93: ✅ echo hi | echo >./outfiles/outfile01 bye +Test 94: ❌ echo hi | echo bye >./outfiles/outfile01 >./outfiles/outfile02 Only in ./bash_outfiles: outfile01 mini outfiles: bye bash outfiles: bye -Test 95: ✅ echo hi >./outfiles/outfile01 | echo bye >./outfiles/outfile02 -Test 96: ❌ echo hi >./outfiles/outfile01 >./test_files/invalid_permission | echo bye +Test 95: ✅ echo hi >./outfiles/outfile01 | echo bye >./outfiles/outfile02 +Test 96: ❌ echo hi >./outfiles/outfile01 >./test_files/invalid_permission | echo bye Only in ./bash_outfiles: outfile01 mini outfiles: cat: ./mini_outfiles/*: No such file or directory bash outfiles: -Test 97: ✅ echo hi >./test_files/invalid_permission | echo bye -Test 98: ❌ echo hi >./test_files/invalid_permission >./outfiles/outfile01 | echo bye +Test 97: ✅ echo hi >./test_files/invalid_permission | echo bye +Test 98: ❌ echo hi >./test_files/invalid_permission >./outfiles/outfile01 | echo bye Only in ./mini_outfiles: outfile01 mini outfiles: hi @@ -862,8 +859,8 @@ bash outfiles: cat: ./bash_outfiles/*: No such file or directory mini error = () bash error = ( Permission denied) -Test 99: ✅ echo hi | echo bye >./test_files/invalid_permission -Test 100: ❌ echo hi | >./outfiles/outfile01 echo bye >./test_files/invalid_permission +Test 99: ✅ echo hi | echo bye >./test_files/invalid_permission +Test 100: ❌ echo hi | >./outfiles/outfile01 echo bye >./test_files/invalid_permission Only in ./bash_outfiles: outfile01 mini outfiles: cat: ./mini_outfiles/*: No such file or directory @@ -872,7 +869,10 @@ mini exit code = 139 bash exit code = 1 mini error = () bash error = ( Permission denied) -Test 101: ❌ echo hi | echo bye >./test_files/invalid_permission >./outfiles/outfile01 + +update for this. + +Test 101: ❌ echo hi | echo bye >./test_files/invalid_permission >./outfiles/outfile01 Only in ./mini_outfiles: outfile01 mini outfiles: bye @@ -882,32 +882,32 @@ mini exit code = 0 bash exit code = 1 mini error = () bash error = ( Permission denied) -Test 102: ✅⚠️ cat <"./test_files/infile" >./test_files/invalid_permission +Test 102: ✅⚠️ cat <"./test_files/infile" >./test_files/invalid_permission mini error = ( No such file or directory) bash error = ( Permission denied) -Test 103: ✅⚠️ cat >./test_files/invalid_permission <"./test_files/infile" +Test 103: ✅⚠️ cat >./test_files/invalid_permission <"./test_files/infile" mini error = ( No such file or directory) bash error = ( Permission denied) -Test 104: ✅ cat ./outfiles/outfile01 -Test 105: ❌ cat >./outfiles/outfile01 ./outfiles/outfile01 +Test 105: ❌ cat >./outfiles/outfile01 ./test_files/invalid_permission -Test 107: ✅⚠️ cat >./test_files/invalid_permission ./test_files/invalid_permission +Test 107: ✅⚠️ cat >./test_files/invalid_permission ./outfiles/outfile01 ./test_files/invalid_permission +Test 108: ❌ cat >./outfiles/outfile01 ./test_files/invalid_permission Only in ./bash_outfiles: outfile01 mini outfiles: cat: ./mini_outfiles/*: No such file or directory bash outfiles: -Test 109: ✅ ls >>./outfiles/outfile01 -Test 110: ✅ ls >> ./outfiles/outfile01 -Test 111: ✅ ls >>./outfiles/outfile01 >./outfiles/outfile01 -Test 112: ✅ ls >./outfiles/outfile01 >>./outfiles/outfile01 -Test 113: ❌ ls >./outfiles/outfile01 >>./outfiles/outfile01 >./outfiles/outfile02 +Test 109: ✅ ls >>./outfiles/outfile01 +Test 110: ✅ ls >> ./outfiles/outfile01 +Test 111: ✅ ls >>./outfiles/outfile01 >./outfiles/outfile01 +Test 112: ✅ ls >./outfiles/outfile01 >>./outfiles/outfile01 +Test 113: ❌ ls >./outfiles/outfile01 >>./outfiles/outfile01 >./outfiles/outfile02 Only in ./bash_outfiles: outfile01 mini outfiles: README.md @@ -949,7 +949,7 @@ syntax test_files tester wildcards -Test 114: ❌ ls >>./outfiles/outfile01 >>./outfiles/outfile02 +Test 114: ❌ ls >>./outfiles/outfile01 >>./outfiles/outfile02 Only in ./bash_outfiles: outfile01 mini outfiles: README.md @@ -991,8 +991,8 @@ syntax test_files tester wildcards -Test 115: ✅ ls >>./test_files/invalid_permission -Test 116: ❌ ls >>./test_files/invalid_permission >>./outfiles/outfile01 +Test 115: ✅ ls >>./test_files/invalid_permission +Test 116: ❌ ls >>./test_files/invalid_permission >>./outfiles/outfile01 Only in ./mini_outfiles: outfile01 mini outfiles: README.md @@ -1020,12 +1020,12 @@ mini exit code = 0 bash exit code = 1 mini error = () bash error = ( Permission denied) -Test 117: ❌ ls >>./outfiles/outfile01 >>./test_files/invalid_permission +Test 117: ❌ ls >>./outfiles/outfile01 >>./test_files/invalid_permission Only in ./bash_outfiles: outfile01 mini outfiles: cat: ./mini_outfiles/*: No such file or directory bash outfiles: -Test 118: ❌ ls >./outfiles/outfile01 >>./test_files/invalid_permission >>./outfiles/outfile02 +Test 118: ❌ ls >./outfiles/outfile01 >>./test_files/invalid_permission >>./outfiles/outfile02 Only in ./bash_outfiles: outfile01 Only in ./mini_outfiles: outfile02 mini outfiles: @@ -1053,27 +1053,27 @@ mini exit code = 0 bash exit code = 1 mini error = () bash error = ( Permission denied) -Test 119: ✅ ls >./test_files/invalid_permission >>./outfiles/outfile02 -Test 120: ✅⚠️ ls >>./test_files/invalid_permission >>./outfiles/outfile02 >./test_files/invalid_permission >>./outfiles/outfile02 +Test 120: ✅⚠️ ls >>./test_files/invalid_permission >>./outfiles/outfile02 >./outfiles/outfile01 | echo bye -Test 122: ❌ echo hi >>./outfiles/outfile01 >>./outfiles/outfile02 | echo bye +Test 121: ✅ echo hi >>./outfiles/outfile01 | echo bye +Test 122: ❌ echo hi >>./outfiles/outfile01 >>./outfiles/outfile02 | echo bye Only in ./bash_outfiles: outfile01 mini outfiles: hi bash outfiles: hi -Test 123: ✅ echo hi | echo >>./outfiles/outfile01 bye -Test 124: ❌ echo hi | echo bye >>./outfiles/outfile01 >>./outfiles/outfile02 +Test 123: ✅ echo hi | echo >>./outfiles/outfile01 bye +Test 124: ❌ echo hi | echo bye >>./outfiles/outfile01 >>./outfiles/outfile02 Only in ./bash_outfiles: outfile01 mini outfiles: bye bash outfiles: bye -Test 125: ✅ echo hi >>./outfiles/outfile01 | echo bye >>./outfiles/outfile02 -Test 126: ✅ echo hi >>./test_files/invalid_permission | echo bye -Test 127: ❌ echo hi >>./test_files/invalid_permission >./outfiles/outfile01 | echo bye +Test 125: ✅ echo hi >>./outfiles/outfile01 | echo bye >>./outfiles/outfile02 +Test 126: ✅ echo hi >>./test_files/invalid_permission | echo bye +Test 127: ❌ echo hi >>./test_files/invalid_permission >./outfiles/outfile01 | echo bye Only in ./mini_outfiles: outfile01 mini outfiles: hi @@ -1081,149 +1081,103 @@ bash outfiles: cat: ./bash_outfiles/*: No such file or directory mini error = () bash error = ( Permission denied) -Test 128: ✅ echo hi | echo bye >>./test_files/invalid_permission -Test 129: ❌ echo hi | echo >>./outfiles/outfile01 bye >./test_files/invalid_permission +Test 128: ✅ echo hi | echo bye >>./test_files/invalid_permission +Test 129: ❌ echo hi | echo >>./outfiles/outfile01 bye >./test_files/invalid_permission Only in ./bash_outfiles: outfile01 mini outfiles: cat: ./mini_outfiles/*: No such file or directory bash outfiles: -Test 130: ✅ cat ./outfiles/outfile -Test 131: ✅ cat ./outfiles/outfile +Test 131: ✅ cat +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/08/09 17:01:16 by chuhlig #+# #+# */ -/* Updated: 2025/01/14 16:51:05 by chuhlig ### ########.fr */ +/* Updated: 2025/01/14 19:51:59 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -129,13 +129,15 @@ int export(char **av, t_env **env) } current->value = ft_strdup(tmp + 1); } + else + return (1); } return (0); } void set_return_code(int return_code, t_env **env) { - t_env *cur; + t_env *cur; cur = check_existing(*env, "?"); if (cur) diff --git a/src/builtins_part_two.c b/src/builtins_part_two.c index 5af6c68..05d6943 100644 --- a/src/builtins_part_two.c +++ b/src/builtins_part_two.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/10/25 20:52:16 by chuhlig #+# #+# */ -/* Updated: 2025/01/14 14:26:39 by chuhlig ### ########.fr */ +/* Updated: 2025/01/14 19:31:17 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -101,6 +101,11 @@ int ft_env(t_env *env) { while (env != NULL) { + if (strchr(env->name, '?')) + { + env = env->next; + continue ; + } printf("%s", env->name); printf("=%s\n", env->value); env = env->next; diff --git a/src/env_to_strlst.c b/src/env_to_strlst.c index 40aaf9d..a1ab7cc 100644 --- a/src/env_to_strlst.c +++ b/src/env_to_strlst.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/12/17 19:22:28 by chuhlig #+# #+# */ -/* Updated: 2025/01/14 14:10:49 by chuhlig ### ########.fr */ +/* Updated: 2025/01/14 19:34:10 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -29,7 +29,7 @@ char **env_to_strlst(t_env *env) if (ft_strchr(cur->name, '?')) { cur = cur->next; - continue; + continue ; } size++; cur = cur->next; @@ -42,7 +42,7 @@ char **env_to_strlst(t_env *env) while (i < size) { if (ft_strchr(cur->name, '?')) - cur = cur->next; + cur = cur->next; result[i] = get_var_assign(cur); cur = cur->next; i++; diff --git a/src/execute_cmd.c b/src/execute_cmd.c index b9faf71..525f333 100644 --- a/src/execute_cmd.c +++ b/src/execute_cmd.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/12/17 19:21:35 by chuhlig #+# #+# */ -/* Updated: 2025/01/14 16:56:24 by chuhlig ### ########.fr */ +/* Updated: 2025/01/14 19:55:18 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -85,7 +85,7 @@ int execute_cmd(t_cmd *cmd, t_env **env) cmd_path = get_cmd_path(cmd->args[0], *env); if (!cmd_path) { - printf("command not found\n"); + perror("command not found"); exit(EXIT_FAILURE); } execve(cmd_path, cmd->args, env_to_strlst(*env)); diff --git a/src/interpreter.c b/src/interpreter.c index af1eb82..a1d3823 100644 --- a/src/interpreter.c +++ b/src/interpreter.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/12/17 19:15:49 by chuhlig #+# #+# */ -/* Updated: 2025/01/14 16:59:45 by chuhlig ### ########.fr */ +/* Updated: 2025/01/14 19:52:27 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -22,7 +22,7 @@ int handle_redirections(t_redirection *redirs) fd = open(redirs[0].specifier, O_RDONLY); if (fd < 0) { - perror(redirs[0].specifier); + perror("open"); return (-1); } dup2(fd, STDIN_FILENO); diff --git a/src/main.c b/src/main.c index 8cebdd1..a2aad22 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: chuhlig +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/22 17:14:03 by dkaiser #+# #+# */ -/* Updated: 2025/01/14 15:29:20 by chuhlig ### ########.fr */ +/* Updated: 2025/01/14 18:41:15 by chuhlig ### ########.fr */ /* */ /* ************************************************************************** */ @@ -24,8 +24,7 @@ int main(int argc, char *argv[], char *envp[]) if (init()) return (1); getenvlst(&env, envp); - - set_return_code(0, &env); + set_return_code(0, &env); repl("Minishell $ ", &env, &promptflag); free_envlst(&env); return (0);