broken prompt

This commit is contained in:
whaffman 2025-02-04 18:59:51 +01:00
parent de6bb00acf
commit c111b8cbc7
5 changed files with 49 additions and 12 deletions

View File

@ -6,7 +6,7 @@
# By: whaffman <whaffman@student.codam.nl> +#+ #
# +#+ #
# Created: 2024/10/15 11:48:46 by whaffman #+# #+# #
# Updated: 2025/02/04 16:40:44 by whaffman ######## odam.nl #
# Updated: 2025/02/04 16:47:57 by whaffman ######## odam.nl #
# #
# **************************************************************************** #
@ -34,7 +34,7 @@ RM = rm -rf
INCLUDES = -I./$(INC_PATH) -I./$(LIBFT_INC_PATH)
CFLAGS = -Wall -Wextra -Werror -MMD -fsanitize=address,undefined -g
LDLIBS := -L$(LIBFT_PATH) -lft
LDLIBS := -L$(LIBFT_PATH) -lft -lreadline
all: $(NAME)

View File

@ -6,7 +6,7 @@
/* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/02/04 16:13:13 by whaffman #+# #+# */
/* Updated: 2025/02/04 16:28:30 by whaffman ######## odam.nl */
/* Updated: 2025/02/04 18:58:01 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
@ -19,5 +19,12 @@
# include "allowed.h"
# include "libft.h"
# include "enviroment.h"
# include "prompt.h"
typedef struct s_minishell
{
t_enviroment *enviroment;
char *pwd;
} t_minishell;
#endif // MINISHELL_H

View File

@ -6,13 +6,15 @@
/* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/02/04 16:35:35 by whaffman #+# #+# */
/* Updated: 2025/02/04 16:36:04 by whaffman ######## odam.nl */
/* Updated: 2025/02/04 18:58:19 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#ifndef PROMPT_H
# define PROMPT_H
# include "minishell.h"
char *prompt(t_minishell *minishell);
#endif // PROMPT_H

View File

@ -6,7 +6,7 @@
/* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/02/04 16:19:22 by whaffman #+# #+# */
/* Updated: 2025/02/04 16:39:58 by whaffman ######## odam.nl */
/* Updated: 2025/02/04 18:04:25 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
@ -20,6 +20,14 @@ int main(int argc, char **argv, char **envp)
(void)argc;
(void)argv;
parse_enviroment(envp, &enviroment);
while (1)
{
line = prompt();
if (line != NULL)
add_history(line);
printf("%s\n", line);
free(line);
}
//print_enviroment(enviroment);
free_enviroment(enviroment);
return (EXIT_SUCCESS);

View File

@ -6,24 +6,44 @@
/* By: whaffman <whaffman@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2025/02/04 16:13:08 by whaffman #+# #+# */
/* Updated: 2025/02/04 16:39:39 by whaffman ######## odam.nl */
/* Updated: 2025/02/04 18:56:08 by whaffman ######## odam.nl */
/* */
/* ************************************************************************** */
#include "minishell.h"
char *prompt(void)
char *get_path(t_minishell *minishell)
{
char *line;
char *path;
char *home;
char *cwd;
char *cwd = getcwd(NULL, 0);
cwd = getcwd(NULL, 0);
if (cwd == NULL)
{
perror("getcwd");
return;
return (NULL);
}
line = readline(cwd);
free(cwd);
while (ft_strncmp(cwd, minishell->pwd, ft_strlen(minishell->pwd)) == 0)
{
home = ft_strjoin("~", cwd + ft_strlen(minishell->pwd));
free(cwd);
cwd = home;
}
return (path);
}
char *prompt(t_minishell *minishell)
{
char *line;
char *pwd;
char *prompt;
pwd = get_path(minishell);
prompt = ft_strjoin(pwd, " > ");
line = readline(prompt);
free(prompt);
return (line);
}