← Commit list

afc91faed

Denys Vlasenko
Denys Vlasenko
2020-02-17
SUCCESS Duration: 150s

Subject

ash: mkinit: Split reset into exitreset and reset

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

shell/ash.c+19 -7
@@ -14284,11 +14284,11 @@ read_profile(const char *name)
/*
* This routine is called when an error or an interrupt occurs in an
- * interactive shell and control is returned to the main command loop.
- * (In dash, this function is auto-generated by build machinery).
+ * interactive shell and control is returned to the main command loop
+ * but prior to exitshell.
*/
static void
-reset(void)
+exitreset(void)
{
/* from eval.c: */
evalskip = 0;
@@ -14301,14 +14301,23 @@ reset(void)
/* from expand.c: */
ifsfree();
+ /* from redir.c: */
+ unwindredir(NULL);
+}
+
+/*
+ * This routine is called when an error or an interrupt occurs in an
+ * interactive shell and control is returned to the main command loop.
+ * (In dash, this function is auto-generated by build machinery).
+ */
+static void
+reset(void)
+{
/* from input.c: */
g_parsefile->left_in_buffer = 0;
g_parsefile->left_in_line = 0; /* clear input buffer */
popallfiles();
- /* from redir.c: */
- unwindredir(NULL);
-
/* from var.c: */
unwindlocalvars(NULL);
}
@@ -14356,13 +14365,16 @@ int ash_main(int argc UNUSED_PARAM, char **argv)
smallint e;
smallint s;
- reset();
+ exitreset();
e = exception_type;
s = state;
if (e == EXEXIT || s == 0 || iflag == 0 || shlvl) {
exitshell();
}
+
+ reset();
+
if (e == EXINT) {
newline_and_flush(stderr);
}