summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/b_export.c37
1 files changed, 22 insertions, 15 deletions
diff --git a/src/b_export.c b/src/b_export.c
index 411f142..8b72b64 100644
--- a/src/b_export.c
+++ b/src/b_export.c
@@ -80,12 +80,30 @@ void b_add_to_env_from_globals(const char varname[],
msh->envp = nenvp;
}
-uint8_t b_export(char *args[], t_msh *msh)
+static void b_classic_export(char *ptr[], t_msh *msh)
{
- /* TODO: norme */
- char **ptr;
char varval[4096];
char fmt[4096];
+
+ if (check_equals(*ptr) == FALSE)
+ {
+ ft_sprintf(fmt, "$%s", *ptr);
+ u_get_custom_var(varval, fmt, 4096, msh);
+ if (varval[0] != C_NUL)
+ {
+ ft_sprintf(fmt, "%s=%s", *ptr, varval);
+ b_add_to_env_from_globals(*ptr, fmt, msh);
+ }
+ }
+ else
+ {
+ b_export_with_equals(*ptr, msh);
+ }
+}
+
+uint8_t b_export(char *args[], t_msh *msh)
+{
+ char **ptr;
uint8_t r;
if (args[0] == NULL)
@@ -101,18 +119,7 @@ uint8_t b_export(char *args[], t_msh *msh)
ptr++;
continue ;
}
- if (check_equals(*ptr) == FALSE)
- {
- ft_sprintf(fmt, "$%s", *ptr);
- u_get_custom_var(varval, fmt, 4096, msh);
- if (varval[0] != C_NUL)
- {
- ft_sprintf(fmt, "%s=%s", *ptr, varval);
- b_add_to_env_from_globals(*ptr, fmt, msh);
- }
- }
- else if (check_equals(*ptr) == TRUE)
- b_export_with_equals(*ptr, msh);
+ b_classic_export(ptr, msh);
ptr++;
}
return (r);