better expension but cat doesnt work
This commit is contained in:
parent
6d308b4a67
commit
4793ab36b4
4
Makefile
4
Makefile
@ -6,7 +6,7 @@
|
|||||||
# By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ #
|
# By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2024/10/15 11:48:46 by whaffman #+# #+# #
|
# Created: 2024/10/15 11:48:46 by whaffman #+# #+# #
|
||||||
# Updated: 2025/02/11 15:06:22 by qmennen ### ########.fr #
|
# Updated: 2025/02/18 20:11:18 by qmennen ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
@ -22,7 +22,7 @@ LIBFT = $(LIBFT_PATH)/libft.a
|
|||||||
|
|
||||||
OBJ_PATH = obj
|
OBJ_PATH = obj
|
||||||
|
|
||||||
VPATH = src:src/environment:src/prompt:src/lexer:src/token:src/utils:src/executor:src/parser:src/expander
|
VPATH = src:src/environment:src/prompt:src/lexer:src/token:src/utils:src/executor:src/parser:src/expander:src/debug
|
||||||
SOURCES = $(shell basename -a $(shell find $(SRC_PATH) -type f -name "*.c"))
|
SOURCES = $(shell basename -a $(shell find $(SRC_PATH) -type f -name "*.c"))
|
||||||
|
|
||||||
OBJECTS = $(addprefix $(OBJ_PATH)/, $(SOURCES:.c=.o))
|
OBJECTS = $(addprefix $(OBJ_PATH)/, $(SOURCES:.c=.o))
|
||||||
|
|||||||
20
inc/debug.h
Normal file
20
inc/debug.h
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* debug.h :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2025/02/18 20:06:53 by qmennen #+# #+# */
|
||||||
|
/* Updated: 2025/02/18 20:10:49 by qmennen ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#ifndef DEBUG_H
|
||||||
|
# define DEBUG_H
|
||||||
|
|
||||||
|
# include "minishell.h"
|
||||||
|
|
||||||
|
void print_commands(void *param);
|
||||||
|
|
||||||
|
#endif
|
||||||
@ -22,6 +22,7 @@
|
|||||||
# include "executor.h"
|
# include "executor.h"
|
||||||
# include "parser.h"
|
# include "parser.h"
|
||||||
# include "expander.h"
|
# include "expander.h"
|
||||||
|
# include "debug.h"
|
||||||
# include "utils.h"
|
# include "utils.h"
|
||||||
|
|
||||||
# define TRUE 1
|
# define TRUE 1
|
||||||
|
|||||||
29
src/debug/print_commands.c
Normal file
29
src/debug/print_commands.c
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* print_commands.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2025/02/18 20:06:37 by qmennen #+# #+# */
|
||||||
|
/* Updated: 2025/02/18 20:11:45 by qmennen ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#include "minishell.h"
|
||||||
|
|
||||||
|
void print_commands(void *param)
|
||||||
|
{
|
||||||
|
t_command *command;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
command = (t_command *)param;
|
||||||
|
if (!command)
|
||||||
|
return ;
|
||||||
|
printf("command: %s\n", command->command);
|
||||||
|
printf("args: ");
|
||||||
|
i = 0;
|
||||||
|
while (command->args[i++])
|
||||||
|
printf("%s ", command->args[i]);
|
||||||
|
printf("\n");
|
||||||
|
}
|
||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/18 19:00:35 by qmennen #+# #+# */
|
/* Created: 2025/02/18 19:00:35 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/02/18 20:00:51 by qmennen ### ########.fr */
|
/* Updated: 2025/02/18 20:31:36 by qmennen ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -33,7 +33,7 @@ static size_t len_var_name(const char *s)
|
|||||||
return (0);
|
return (0);
|
||||||
start++;
|
start++;
|
||||||
i = 0;
|
i = 0;
|
||||||
while (s[start + i])
|
while (s[start + i] && !ft_isspace(s[start + i]))
|
||||||
i++;
|
i++;
|
||||||
return (i);
|
return (i);
|
||||||
}
|
}
|
||||||
@ -53,17 +53,23 @@ static char *get_env_value(char *s)
|
|||||||
|
|
||||||
static char *expand_string(char *s, t_environment *env)
|
static char *expand_string(char *s, t_environment *env)
|
||||||
{
|
{
|
||||||
|
char *s1;
|
||||||
|
char *s2;
|
||||||
|
char *s3;
|
||||||
char *final_str;
|
char *final_str;
|
||||||
|
|
||||||
final_str = ft_calloc(1, ft_strlen(env->value) + len_prefix(s) + 1);
|
final_str = ft_calloc(1, ft_strlen(env->value) + ft_strlen(s) - len_var_name(s));
|
||||||
if (!final_str)
|
if (!final_str)
|
||||||
{
|
{
|
||||||
perror("malloc");
|
perror("malloc");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
ft_strlcat(final_str, s, len_prefix(s) + 1);
|
s1 = ft_substr(s, 0, len_prefix(s));
|
||||||
ft_strlcat(final_str, env->value, ft_strlen(env->value));
|
s2 = ft_strdup(env->value);
|
||||||
return (final_str);
|
s3 = ft_substr(s, len_prefix(s) + 1 + len_var_name(s),len_prefix(s) + len_var_name(s) - ft_strlen(s));
|
||||||
|
if (!s1 || !s2 || !s3)
|
||||||
|
perror("expand");
|
||||||
|
return (ft_strjoin(ft_strjoin(s1, s2), s3));
|
||||||
}
|
}
|
||||||
|
|
||||||
char *expander_parse_string(char *s, t_minishell *minishell)
|
char *expander_parse_string(char *s, t_minishell *minishell)
|
||||||
@ -80,6 +86,8 @@ char *expander_parse_string(char *s, t_minishell *minishell)
|
|||||||
if (!name)
|
if (!name)
|
||||||
return (ft_strdup(""));
|
return (ft_strdup(""));
|
||||||
env = environment_get(minishell->environment, name);
|
env = environment_get(minishell->environment, name);
|
||||||
|
if (!env)
|
||||||
|
return (ft_strdup(""));
|
||||||
result = expand_string(s, env);
|
result = expand_string(s, env);
|
||||||
free(name);
|
free(name);
|
||||||
return (result);
|
return (result);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/02/11 14:06:02 by qmennen #+# #+# */
|
/* Created: 2025/02/11 14:06:02 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/02/18 19:29:38 by qmennen ### ########.fr */
|
/* Updated: 2025/02/18 20:31:54 by qmennen ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -34,6 +34,6 @@ t_list *parser_get_commands(t_minishell *minishell)
|
|||||||
if (current && ((t_token *)current->content)->type != T_WORD)
|
if (current && ((t_token *)current->content)->type != T_WORD)
|
||||||
current = current->next;
|
current = current->next;
|
||||||
}
|
}
|
||||||
//ft_lstiter(command_list, print_cmds);
|
// ft_lstiter(command_list, print_commands);
|
||||||
return (command_list);
|
return (command_list);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user