mirror of https://github.com/mirror/busybox.git
Don't fork for the . (source) command so that environment settings are
preserved.1_00_stable_10817
parent
322ae93a5e
commit
dd450a0ded
3
lash.c
3
lash.c
|
@ -145,6 +145,7 @@ static struct builtInCommand bltins[] = {
|
|||
{"export", "Set environment variable", builtin_export},
|
||||
{"unset", "Unset environment variable", builtin_unset},
|
||||
{"read", "Input environment variable", builtin_read},
|
||||
{".", "Source-in and run commands in a file", builtin_source},
|
||||
#ifdef BB_FEATURE_SH_IF_EXPRESSIONS
|
||||
{"if", NULL, builtin_if},
|
||||
{"then", NULL, builtin_then},
|
||||
|
@ -159,7 +160,6 @@ static struct builtInCommand bltins[] = {
|
|||
static struct builtInCommand bltins_forking[] = {
|
||||
{"env", "Print all environment variables", builtin_env},
|
||||
{"pwd", "Print current directory", builtin_pwd},
|
||||
{".", "Source-in and run commands in a file", builtin_source},
|
||||
{"help", "List shell built-in commands", builtin_help},
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
|
@ -500,6 +500,7 @@ static int builtin_source(struct job *cmd, struct jobSet *junk)
|
|||
|
||||
/* Now run the file */
|
||||
status = busy_loop(input);
|
||||
fclose(input);
|
||||
return (status);
|
||||
}
|
||||
|
||||
|
|
3
sh.c
3
sh.c
|
@ -145,6 +145,7 @@ static struct builtInCommand bltins[] = {
|
|||
{"export", "Set environment variable", builtin_export},
|
||||
{"unset", "Unset environment variable", builtin_unset},
|
||||
{"read", "Input environment variable", builtin_read},
|
||||
{".", "Source-in and run commands in a file", builtin_source},
|
||||
#ifdef BB_FEATURE_SH_IF_EXPRESSIONS
|
||||
{"if", NULL, builtin_if},
|
||||
{"then", NULL, builtin_then},
|
||||
|
@ -159,7 +160,6 @@ static struct builtInCommand bltins[] = {
|
|||
static struct builtInCommand bltins_forking[] = {
|
||||
{"env", "Print all environment variables", builtin_env},
|
||||
{"pwd", "Print current directory", builtin_pwd},
|
||||
{".", "Source-in and run commands in a file", builtin_source},
|
||||
{"help", "List shell built-in commands", builtin_help},
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
|
@ -500,6 +500,7 @@ static int builtin_source(struct job *cmd, struct jobSet *junk)
|
|||
|
||||
/* Now run the file */
|
||||
status = busy_loop(input);
|
||||
fclose(input);
|
||||
return (status);
|
||||
}
|
||||
|
||||
|
|
|
@ -145,6 +145,7 @@ static struct builtInCommand bltins[] = {
|
|||
{"export", "Set environment variable", builtin_export},
|
||||
{"unset", "Unset environment variable", builtin_unset},
|
||||
{"read", "Input environment variable", builtin_read},
|
||||
{".", "Source-in and run commands in a file", builtin_source},
|
||||
#ifdef BB_FEATURE_SH_IF_EXPRESSIONS
|
||||
{"if", NULL, builtin_if},
|
||||
{"then", NULL, builtin_then},
|
||||
|
@ -159,7 +160,6 @@ static struct builtInCommand bltins[] = {
|
|||
static struct builtInCommand bltins_forking[] = {
|
||||
{"env", "Print all environment variables", builtin_env},
|
||||
{"pwd", "Print current directory", builtin_pwd},
|
||||
{".", "Source-in and run commands in a file", builtin_source},
|
||||
{"help", "List shell built-in commands", builtin_help},
|
||||
{NULL, NULL, NULL}
|
||||
};
|
||||
|
@ -500,6 +500,7 @@ static int builtin_source(struct job *cmd, struct jobSet *junk)
|
|||
|
||||
/* Now run the file */
|
||||
status = busy_loop(input);
|
||||
fclose(input);
|
||||
return (status);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue