22 ft_putstr_fd(
"declare -x ", STDOUT_FILENO);
23 ft_putstr_fd(env->
key, STDOUT_FILENO);
26 ft_putstr_fd(
"=\"", STDOUT_FILENO);
27 ft_putstr_fd(env->
value, STDOUT_FILENO);
28 ft_putchar_fd(
'"', STDOUT_FILENO);
30 ft_putchar_fd(
'\n', STDOUT_FILENO);
46 env = (
t_env *)curr->content;
47 if (!last_printed ||
ft_strcmp(env->
key, last_printed) > 0)
76 last_printed = min->
key;
94 env->
value = ft_strdup(value);
108 eq_pos = ft_strchr(arg,
'=');
111 *key = ft_strdup(arg);
116 *key = ft_substr(arg, 0, eq_pos - arg);
117 *value = ft_strdup(eq_pos + 1);
131 shell_error(
"export", arg,
"not a valid identifier");
int process_export_arg(t_shell *shell, char *arg)
static int update_or_add_env(t_shell *shell, char *key, char *value)
Mevcut değişkeni günceller veya yeni ekler.
void print_export_list(t_shell *shell)
Argümansız export - tüm değişkenleri alfabetik sıralı yazdırır.
void print_env_declare(t_env *env)
Tek bir env değişkenini declare -x formatında yazdırır.
static int parse_export_arg(char *arg, char **key, char **value)
Argümanı key=value olarak parse eder.
t_env * find_min_env(t_list *list, char *last_printed)
Listedeki en küçük (alfabetik) env'i bulur (zaten yazdırılmamış).
int is_valid_identifier(char *str)
int append_env_node(t_list **env_list, char *key, char *value)
Ortam değişkeni node'u listeye ekler.
t_env * find_env_by_key(t_list *env_list, char *key)
Env listesinde key'e göre arama yapar.
void shell_error(char *cmd, char *arg, char *msg)
Minishell ana header dosyası
struct s_env t_env
-----> EXPANDER <--—
int ft_strcmp(const char *s1, const char *s2)