diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..2c45ecc --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,29 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Debug minishell", + "type": "cppdbg", + "request": "launch", + "program": "${workspaceFolder}/minishell", + "args": [], + "stopAtEntry": false, + "cwd": "${workspaceFolder}", + "environment": [], + "externalConsole": false, + "MIMode": "gdb", + "setupCommands": [ + { + "description": "Enable pretty-printing for gdb", + "text": "-enable-pretty-printing", + "ignoreFailures": true + } + ], + "preLaunchTask": "Build minishell", + "miDebuggerPath": "/usr/bin/gdb", + "logging": { + "engineLogging": true + } + } + ] +} diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..48db8a7 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,34 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "Build minishell", + "type": "shell", + "command": "make", + "args": [], + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": ["$gcc"], + "detail": "Generated task for building minishell" + }, + { + "label": "Run minishell", + "type": "shell", + "command": "./minishell", + "args": [], + "group": { + "kind": "test", + "isDefault": true + }, + "presentation": { + "echo": true, + "reveal": "always", + "focus": false, + "panel": "shared" + }, + "problemMatcher": [] + } + ] +} diff --git a/Makefile b/Makefile index 2060049..3e41510 100644 --- a/Makefile +++ b/Makefile @@ -6,7 +6,7 @@ # By: qmennen +#+ # # +#+ # # Created: 2024/10/15 11:48:46 by whaffman #+# #+# # -# Updated: 2025/02/19 12:18:18 by whaffman ######## odam.nl # +# Updated: 2025/02/19 17:43:13 by whaffman ######## odam.nl # # # # **************************************************************************** # @@ -32,7 +32,7 @@ CC = cc RM = rm -rf INCLUDES = -I./$(INC_PATH) -I./$(LIBFT_INC_PATH) -CFLAGS = -Wall -Wextra -Werror -fsanitize=address,undefined -MMD +CFLAGS = -Wall -Wextra -Werror -fsanitize=address,undefined -MMD -g3 UNAME_S := $(shell uname -s) ifeq ($(UNAME_S),Linux) diff --git a/inc/minishell.h b/inc/minishell.h index ce63aa9..4f9e7fe 100644 --- a/inc/minishell.h +++ b/inc/minishell.h @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/04 16:13:13 by whaffman #+# #+# */ -/* Updated: 2025/02/19 12:38:57 by whaffman ######## odam.nl */ +/* Updated: 2025/02/19 14:46:53 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -41,4 +41,6 @@ # define PROMPT RESET "🐚" GREEN "minishell" RESET ": " # define PROMPT_LEN 51 +void token_print(void *param); + #endif diff --git a/inc/signals.h b/inc/signals.h index 9d6d602..3d9ae46 100644 --- a/inc/signals.h +++ b/inc/signals.h @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/19 12:26:09 by whaffman #+# #+# */ -/* Updated: 2025/02/19 13:39:58 by whaffman ######## odam.nl */ +/* Updated: 2025/02/19 17:30:12 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -17,6 +17,7 @@ void sigint_heredoc_handler(int signum); void sigint_minishell_handler(int signum); +void sig_parent_handler(int signum); void signal_init_child(void); void signal_init_parent(void); void signal_init_minishell(void); diff --git a/src/lexer/lexer_parse_input.c b/src/lexer/lexer_parse_input.c index 861e4eb..5f1625d 100644 --- a/src/lexer/lexer_parse_input.c +++ b/src/lexer/lexer_parse_input.c @@ -1,12 +1,12 @@ /* ************************************************************************** */ /* */ -/* ::: :::::::: */ -/* lexer_parse_input.c :+: :+: :+: */ -/* +:+ +:+ +:+ */ -/* By: qmennen +#+ +:+ +#+ */ -/* +#+#+#+#+#+ +#+ */ -/* Created: 2025/02/05 19:09:20 by qmennen #+# #+# */ -/* Updated: 2025/02/05 19:09:26 by qmennen ### ########.fr */ +/* :::::::: */ +/* lexer_parse_input.c :+: :+: */ +/* +:+ */ +/* By: qmennen +#+ */ +/* +#+ */ +/* Created: 2025/02/05 19:09:20 by qmennen #+# #+# */ +/* Updated: 2025/02/19 17:53:12 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -32,7 +32,7 @@ t_list *ft_parse_input(t_lexer *lexer) while (TRUE) { token = ft_token_next(lexer); - if (token->type == T_EOF) + if (token->type == T_EOF || token->type == T_ERROR) //TODO T_ERROR removes the inf loop break ; ft_lstadd_back(&list, ft_lstnew(token)); } diff --git a/src/main.c b/src/main.c index 4b03161..eb766f3 100644 --- a/src/main.c +++ b/src/main.c @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/04 16:19:22 by whaffman #+# #+# */ -/* Updated: 2025/02/19 12:48:13 by whaffman ######## odam.nl */ +/* Updated: 2025/02/19 14:46:41 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -14,7 +14,7 @@ #include "minishell.h" #include "utils.h" -static void token_print(void *param) +void token_print(void *param) { t_token *token; diff --git a/src/signal/signal.c b/src/signal/signal.c index fa03468..0b81082 100644 --- a/src/signal/signal.c +++ b/src/signal/signal.c @@ -6,7 +6,7 @@ /* By: whaffman +#+ */ /* +#+ */ /* Created: 2025/02/19 12:18:47 by whaffman #+# #+# */ -/* Updated: 2025/02/19 13:42:55 by whaffman ######## odam.nl */ +/* Updated: 2025/02/19 17:30:12 by whaffman ######## odam.nl */ /* */ /* ************************************************************************** */ @@ -31,6 +31,13 @@ void sigint_heredoc_handler(int signum) exit(130); } +void sig_parent_handler(int signum) +{ + (void)signum; + ft_putstr_fd("\n", 1); +} + + void signal_init_minishell(void) { signal(SIGINT, sigint_minishell_handler); @@ -39,8 +46,8 @@ void signal_init_minishell(void) void signal_init_parent(void) { - signal(SIGINT, SIG_IGN); - signal(SIGQUIT, SIG_IGN); + signal(SIGINT, sig_parent_handler); + signal(SIGQUIT, sig_parent_handler); }