From f86bd9f2cdfa3e9cfb54724e98f71a7657ff6019 Mon Sep 17 00:00:00 2001
From: Glenn L McGrath <bug1@ihug.co.nz>
Date: Fri, 3 Oct 2003 13:21:10 +0000
Subject: Reverse my previous changes and make a note about why its dont this
 way

---
 applets/busybox.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/applets/busybox.c b/applets/busybox.c
index 13b9f6fcb..9d41b52f7 100644
--- a/applets/busybox.c
+++ b/applets/busybox.c
@@ -162,7 +162,18 @@ int busybox_main(int argc, char **argv)
 	been_there_done_that = 1;
 
 	/* Move the command line down a notch */
-	return (main(argc, argv+1));
+	/* Preserve pointers so setproctitle() works consistently */
+	len = argv[argc] + strlen(argv[argc]) - argv[1];
+	memmove(argv[0], argv[1], len);
+	memset(argv[0] + len, 0, argv[1] - argv[0]);
+
+	/* Fix up the argv pointers */
+	len = argv[1] - argv[0];
+	memmove(argv, argv + 1, sizeof(char *) * (argc + 1));
+	for (i = 0; i < argc; i++)
+		argv[i] -= len;
+
+	return (main(argc, argv));
 }
 
 /*
-- 
cgit v1.2.3-55-g6feb