Minishell
 
Loading...
Searching...
No Matches
env.h
Go to the documentation of this file.
1/* ************************************************************************** */
2/* */
3/* ::: :::::::: */
4/* env.h :+: :+: :+: */
5/* +:+ +:+ +:+ */
6/* By: ppontet <ppontet@student.42lyon.fr> +#+ +:+ +#+ */
7/* +#+#+#+#+#+ +#+ */
8/* Created: 2025/05/09 16:28:35 by lud-adam #+# #+# */
9/* Updated: 2025/05/28 10:12:58 by ppontet ### ########lyon.fr */
10/* */
11/* ************************************************************************** */
12
13#ifndef ENV_H
14# define ENV_H
15
16# include "garbage.h"
17# include "libft.h"
18# include <stddef.h>
19
20# define DEFAULT_PROMPT "Minishell$ "
21
22# ifndef PROMPT_COLOR
23# define PROMPT_COLOR 1
24# endif
25# define COLOR_OFF "\033[0m"
26# define CYAN_COLOR "\033[0;36m"
27# define PURPLE_COLOR "\033[0;35m"
28
29typedef struct s_var t_var;
30typedef struct s_env_vars t_env_vars;
31typedef struct s_params t_params;
32typedef struct s_vars t_vars;
33typedef struct s_supp t_supp;
34
35// from data_structure.h
36typedef struct s_data t_data;
37
39{
41 size_t count;
42};
43
44struct s_var
45{
47 char *value;
49 size_t count;
50};
51
53{
55 char *value;
56};
57
68
69struct s_supp
70{
73};
74
75// Utils
76int check_args_export(const char *str);
77size_t ft_strlen_choose_c(const char *str, char c);
78int ft_strcmp(const char *s1, const char *s2);
80t_bool detect_equal(char *str);
81char **build_elements(char *str);
82
83// Utils env
84t_env_vars *init_env(char **envp);
86void set_env(t_data *data, char *envp[]);
87void sort_ascii_order(t_garbage *garbage,
88 t_env_vars *env);
89char *search_env_str(t_garbage *garbage, t_env_vars *env,
90 const char *var, size_t size);
91t_var *search_env_var(t_env_vars *env, char *var);
93void update_shlvl(t_garbage *garbage, t_env_vars *env);
94char **env_to_array(t_data *data);
95
96// Utils params
98 t_params *params);
99t_params *get_param(t_garbage *garbage, char *content,
100 size_t detect_equal);
102void replace_param(t_garbage *garbage, t_var *var,
103 char *new_content, size_t equal);
104void ft_paramsadd_back(t_params **params, t_params *new);
105void print_export(t_env_vars *env);
106
107// Utils vars
108t_var *ft_varlast(t_var *var);
109t_var *get_var(t_garbage *garbage, const char *var);
110void ft_varsadd_back(t_var **var, t_var *new);
111void ft_varsadd_front(t_var **head, t_var *new);
112void supp_var(t_garbage *garbage, t_var **head,
113 char *str);
114void swap_vars(t_garbage *garbage, t_var **head,
115 char *str, char *str_1);
116
117// Sorting algorithms
118void bubble_sort(t_garbage *garbage, t_var **head);
119
120// free
121void free_params(t_garbage *garbage, t_params *element);
122void free_env(t_garbage *garbage, t_env_vars *env);
123
124#endif
struct s_var t_var
Definition data_structure.h:30
struct s_data t_data
Definition data_structure.h:38
struct s_params t_params
Definition data_structure.h:36
struct s_garbage t_garbage
Definition data_structure.h:26
struct s_env_vars t_env_vars
Definition data_structure.h:29
t_bool detect_equal(char *str)
Definition functions_utils.c:71
void ft_paramsadd_back(t_params **params, t_params *new)
Definition manipulation_params.c:67
void ft_varsadd_back(t_var **var, t_var *new)
Definition manipulation_var.c:28
t_var * search_env_var(t_env_vars *env, char *var)
Definition search_env.c:16
char ** env_to_array(t_data *data)
Definition env_to_array.c:113
int ft_strcmp(const char *s1, const char *s2)
Definition functions_utils.c:55
void sort_ascii_order(t_garbage *garbage, t_env_vars *env)
Definition sort_env.c:41
t_env_vars * copy_env(t_garbage *garbage, t_env_vars *env)
Definition copy_env.c:51
struct s_supp t_supp
Definition env.h:33
struct s_vars t_vars
Definition env.h:32
void bubble_sort(t_garbage *garbage, t_var **head)
Definition sort_env.c:17
void replace_param(t_garbage *garbage, t_var *var, char *new_content, size_t equal)
Definition manipulation_params.c:35
void free_params(t_garbage *garbage, t_params *element)
Definition free_env.c:16
int count_env(t_env_vars env)
t_params * ft_paramlast(t_params *params)
Definition manipulation_params.c:56
void swap_vars(t_garbage *garbage, t_var **head, char *str, char *str_1)
Definition swap_env.c:59
void ft_varsadd_front(t_var **head, t_var *new)
Definition manipulation_var.c:44
void supp_var(t_garbage *garbage, t_var **head, char *str)
Definition supp_var_in_env.c:17
t_var * ft_varlast(t_var *var)
Definition manipulation_var.c:17
char * create_str_with_params(t_garbage *garbage, t_params *params)
Definition create_str_with_params.c:35
char * search_env_str(t_garbage *garbage, t_env_vars *env, const char *var, size_t size)
Definition expand_variable.c:19
void set_env(t_data *data, char *envp[])
Definition set_env.c:125
void free_env(t_garbage *garbage, t_env_vars *env)
Definition free_env.c:33
void print_export(t_env_vars *env)
Definition print_export.c:53
int check_args_export(const char *str)
Definition check_args_export.c:18
size_t ft_strlen_choose_c(const char *str, char c)
Definition functions_utils.c:45
void update_shlvl(t_garbage *garbage, t_env_vars *env)
Definition update_shlvl.c:35
t_var * get_var(t_garbage *garbage, const char *var)
Definition manipulation_var.c:52
char ** build_elements(char *str)
Definition ft_build_elements.c:52
void print_env_vars(t_env_vars *env)
t_env_vars * init_env(char **envp)
t_params * get_param(t_garbage *garbage, char *content, size_t detect_equal)
Definition manipulation_params.c:16
t_bool detect_equal(char *str)
Definition functions_utils.c:71
General structure that have access to all needed in minishell.
Definition data_structure.h:45
Definition env.h:39
size_t count
Definition env.h:41
t_var * head_var
Definition env.h:40
Definition env.h:53
char * value
Definition env.h:55
t_params * next
Definition env.h:54
Definition env.h:70
t_var * prev_str
Definition env.h:72
t_var * curr
Definition env.h:71
Definition env.h:45
char * value
Definition env.h:47
t_params * head_params
Definition env.h:48
size_t count
Definition env.h:49
t_var * next
Definition env.h:46
Definition env.h:59
t_var * prev_str_1
Definition env.h:61
t_var * curr_1
Definition env.h:65
t_var * temp
Definition env.h:66
t_var * prev_str
Definition env.h:60
t_var * curr
Definition env.h:64
t_var * curr_str
Definition env.h:62
t_var * curr_str_1
Definition env.h:63