30 if (next_c ==
'\0' || next_c ==
' ' || next_c ==
'"')
53 if (str[len] ==
'$' || str[len] ==
'!' || str[len] ==
'@' || str[len] ==
'#'
56 if (ft_isdigit(str[len]))
61 while (str[len] && str[len] !=
'}')
67 while (ft_isalnum(str[len]) || str[len] ==
'_')
89 return (ft_itoa((
int)getpid()));
91 return (ft_strdup(
"bash"));
93 return (ft_strdup(
"0"));
94 if (*var_name ==
'!' || *var_name ==
'@' || *var_name ==
'-')
95 return (ft_strdup(
""));
96 if (ft_isdigit(*var_name))
97 return (ft_strdup(
""));
100 return (ft_strdup(env_val));
101 return (ft_strdup(
""));
123 if (vars->
prev == NULL)
128 if (vars->
temp->content)
char * get_env_value(t_list *env_list, char *key)
Environment listesinde key'e göre değer döndürür.
char * get_var_value(t_shell *shell, char *var_name)
Bir değişkenin değerini bulur ve kopyasını döndürür.
void process_token_cleanup(t_shell *shell, t_token_cleaner *vars)
Tek bir token düğümü için silme veya ilerleme mantığını yürütür.
int get_var_name_len(char *str)
Değişken isminin uzunluğunu hesaplar.
void remove_empty_tokens(t_shell *shell)
Expander sonrası oluşan boş ve tırnaksız tokenları listeden temizler.
int can_expand(char next_c)
'$' işaretinden sonra gelen karakterin genişletmeye uygun olup olmadığını kontrol eder.
Minishell ana header dosyası
struct s_token_cleaner t_token_cleaner
void free_token_content(void *content)