From f7676f83b2b39a31b6db502af2c8bc024b302f81 Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Mon, 9 Mar 2020 19:27:15 -0400 Subject: Add \? exit status prompt expansion --- bin/1sh/1sh.1 | 2 ++ bin/1sh/parser.c | 12 ++++++++++++ 2 files changed, 14 insertions(+) (limited to 'bin/1sh') diff --git a/bin/1sh/1sh.1 b/bin/1sh/1sh.1 index 9bbd881b..d72a87c7 100644 --- a/bin/1sh/1sh.1 +++ b/bin/1sh/1sh.1 @@ -1427,6 +1427,8 @@ This system's hostname. The final component of the current working directory. .It Li \ew The entire path of the current working directory. +.It Li \e? +Exit status if it is non-zero, empty string otherwise. .It Li \e$ Superuser status. .Dq Li "$ " diff --git a/bin/1sh/parser.c b/bin/1sh/parser.c index 3f73220f..1038aa43 100644 --- a/bin/1sh/parser.c +++ b/bin/1sh/parser.c @@ -2038,6 +2038,18 @@ expandprompt(const char *fmt) { --i; break; + /* + * Exit status if non-zero. + */ + case '?': + if (exitstatus != 0) { + snprintf(&ps[i], PROMPTLEN - i, "%d", exitstatus); + while (ps[i] != '\0') + i++; + } + i--; + break; + /* * Superuser status. * -- cgit 1.4.1