broken prompt
This commit is contained in:
parent
de6bb00acf
commit
c111b8cbc7
4
Makefile
4
Makefile
@ -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)
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
10
src/main.c
10
src/main.c
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user