summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2013-10-07 08:00:25 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2013-10-07 08:00:25 +0200
commit33c56e21eb3bf841c79d9c8a40dedc8b16b774f2 (patch)
treefc0e871d5fc9020e0c4bb01ef0a5cf4ece6060a1 /lib
parentd32008b2797a7c1bb13ec0cb3273de2dfcc97d02 (diff)
parentce8f489122e8390360e87c84888aacfc87743a83 (diff)
downloadbarebox-33c56e21eb3bf841c79d9c8a40dedc8b16b774f2.tar.gz
barebox-33c56e21eb3bf841c79d9c8a40dedc8b16b774f2.tar.xz
Merge branch 'for-next/misc'
Conflicts: commands/Makefile
Diffstat (limited to 'lib')
-rw-r--r--lib/process_escape_sequence.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/process_escape_sequence.c b/lib/process_escape_sequence.c
index be77792787..47a7e5cd92 100644
--- a/lib/process_escape_sequence.c
+++ b/lib/process_escape_sequence.c
@@ -19,6 +19,7 @@
#include <common.h>
#include <fs.h>
#include <libbb.h>
+#include <shell.h>
int process_escape_sequence(const char *source, char *dest, int destlen)
{
@@ -59,6 +60,12 @@ int process_escape_sequence(const char *source, char *dest, int destlen)
case 'w':
i += snprintf(dest + i, destlen - i, "%s", getcwd());
break;
+ case '$':
+ if (*(source + 2) == '?') {
+ i += snprintf(dest + i, destlen - i, "%d", shell_get_last_return_code());
+ source++;
+ break;
+ }
default:
dest[i++] = '\\';
dest[i++] = *(source + 1);