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> +#+ #
|
# By: whaffman <whaffman@student.codam.nl> +#+ #
|
||||||
# +#+ #
|
# +#+ #
|
||||||
# Created: 2024/10/15 11:48:46 by whaffman #+# #+# #
|
# 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)
|
INCLUDES = -I./$(INC_PATH) -I./$(LIBFT_INC_PATH)
|
||||||
CFLAGS = -Wall -Wextra -Werror -MMD -fsanitize=address,undefined -g
|
CFLAGS = -Wall -Wextra -Werror -MMD -fsanitize=address,undefined -g
|
||||||
|
|
||||||
LDLIBS := -L$(LIBFT_PATH) -lft
|
LDLIBS := -L$(LIBFT_PATH) -lft -lreadline
|
||||||
|
|
||||||
|
|
||||||
all: $(NAME)
|
all: $(NAME)
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/02/04 16:13:13 by whaffman #+# #+# */
|
/* 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 "allowed.h"
|
||||||
# include "libft.h"
|
# include "libft.h"
|
||||||
# include "enviroment.h"
|
# include "enviroment.h"
|
||||||
|
# include "prompt.h"
|
||||||
|
|
||||||
|
typedef struct s_minishell
|
||||||
|
{
|
||||||
|
t_enviroment *enviroment;
|
||||||
|
char *pwd;
|
||||||
|
} t_minishell;
|
||||||
|
|
||||||
#endif // MINISHELL_H
|
#endif // MINISHELL_H
|
||||||
|
|||||||
@ -6,13 +6,15 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/02/04 16:35:35 by whaffman #+# #+# */
|
/* 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
|
#ifndef PROMPT_H
|
||||||
# define PROMPT_H
|
# define PROMPT_H
|
||||||
|
|
||||||
|
# include "minishell.h"
|
||||||
|
|
||||||
|
char *prompt(t_minishell *minishell);
|
||||||
|
|
||||||
#endif // PROMPT_H
|
#endif // PROMPT_H
|
||||||
|
|||||||
10
src/main.c
10
src/main.c
@ -6,7 +6,7 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/02/04 16:19:22 by whaffman #+# #+# */
|
/* 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)argc;
|
||||||
(void)argv;
|
(void)argv;
|
||||||
parse_enviroment(envp, &enviroment);
|
parse_enviroment(envp, &enviroment);
|
||||||
|
while (1)
|
||||||
|
{
|
||||||
|
line = prompt();
|
||||||
|
if (line != NULL)
|
||||||
|
add_history(line);
|
||||||
|
printf("%s\n", line);
|
||||||
|
free(line);
|
||||||
|
}
|
||||||
//print_enviroment(enviroment);
|
//print_enviroment(enviroment);
|
||||||
free_enviroment(enviroment);
|
free_enviroment(enviroment);
|
||||||
return (EXIT_SUCCESS);
|
return (EXIT_SUCCESS);
|
||||||
|
|||||||
@ -6,24 +6,44 @@
|
|||||||
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
/* By: whaffman <whaffman@student.codam.nl> +#+ */
|
||||||
/* +#+ */
|
/* +#+ */
|
||||||
/* Created: 2025/02/04 16:13:08 by whaffman #+# #+# */
|
/* 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"
|
#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)
|
if (cwd == NULL)
|
||||||
{
|
{
|
||||||
perror("getcwd");
|
perror("getcwd");
|
||||||
return;
|
return (NULL);
|
||||||
}
|
}
|
||||||
line = readline(cwd);
|
while (ft_strncmp(cwd, minishell->pwd, ft_strlen(minishell->pwd)) == 0)
|
||||||
|
{
|
||||||
|
home = ft_strjoin("~", cwd + ft_strlen(minishell->pwd));
|
||||||
free(cwd);
|
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);
|
return (line);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user