aboutsummaryrefslogtreecommitdiff
path: root/hush.c
diff options
context:
space:
mode:
Diffstat (limited to 'hush.c')
-rw-r--r--hush.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/hush.c b/hush.c
index 5a4966b07..c938fb1e3 100644
--- a/hush.c
+++ b/hush.c
@@ -239,17 +239,17 @@ unsigned int shell_context; /* Used in cmdedit.c to reset the
* context when someone hits ^C */
/* "globals" within this file */
-static char *ifs=NULL;
+static char *ifs;
static char map[256];
-static int fake_mode=0;
-static int interactive=0;
-static struct close_me *close_me_head = NULL;
+static int fake_mode;
+static int interactive;
+static struct close_me *close_me_head;
static const char *cwd;
static struct jobset *job_list;
-static unsigned int last_bg_pid=0;
+static unsigned int last_bg_pid;
static char *PS1;
-static char *PS2 = "> ";
-static char **__shell_local_env = 0;
+static char *PS2;
+static char **__shell_local_env;
#define B_CHUNK (100)
#define B_NOSPAC 1
@@ -2511,7 +2511,16 @@ int shell_main(int argc, char **argv)
int opt;
FILE *input;
struct jobset joblist_end = { NULL, NULL };
+
+ /* (re?) initialize globals */
+ ifs=NULL;
+ fake_mode=0;
+ interactive=0;
+ close_me_head = NULL;
job_list = &joblist_end;
+ last_bg_pid=0;
+ PS2 = "> ";
+ __shell_local_env = 0;
last_return_code=EXIT_SUCCESS;