[ADD] export with "name=value" syntax
This commit is contained in:
parent
532b4e959f
commit
b72be8973e
1 changed files with 21 additions and 3 deletions
|
@ -6,7 +6,7 @@
|
||||||
/* By: jschaft <cecile.schaft@orange.fr> +#+ +:+ +#+ */
|
/* By: jschaft <cecile.schaft@orange.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2024/06/25 13:28:29 by jschaft #+# #+# */
|
/* Created: 2024/06/25 13:28:29 by jschaft #+# #+# */
|
||||||
/* Updated: 2024/06/28 14:26:05 by mcolonna ### ########.fr */
|
/* Updated: 2024/06/28 14:50:17 by mcolonna ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -15,11 +15,29 @@
|
||||||
// TODO 'name=value' notation
|
// TODO 'name=value' notation
|
||||||
int export_builtin(t_env *env, t_call call)
|
int export_builtin(t_env *env, t_call call)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
char *name;
|
||||||
|
char *value;
|
||||||
|
char **splitted;
|
||||||
|
const t_memclass mc = mem_subclass(fatal_error, env->mc_global);
|
||||||
|
|
||||||
i = 0;
|
i = 0;
|
||||||
while (call.argv[++i])
|
while (call.argv[++i])
|
||||||
variables_export(env->variables, call.argv[i]);
|
{
|
||||||
|
if (char_isin('=', call.argv[i]))
|
||||||
|
{
|
||||||
|
splitted = str_split(fatal_error, mc, call.argv[i], "=");
|
||||||
|
name = splitted[0];
|
||||||
|
value = splitted[1];
|
||||||
|
if (!value)
|
||||||
|
value = "";
|
||||||
|
variables_set(env->variables, name, value);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
name = call.argv[i];
|
||||||
|
variables_export(env->variables, name);
|
||||||
|
}
|
||||||
|
mem_freeall(mc);
|
||||||
return (0);
|
return (0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue