[prev in list] [next in list] [prev in thread] [next in thread] 

List:       busybox
Subject:    [PATCH] libbb: special treatment for aliases of test
From:       Ron Yorston <rmy () pobox ! com>
Date:       2022-08-25 10:34:14
Message-ID: 63075026.Ik1rCtweWTlfqcLE%rmy () pobox ! com
[Download RAW message or body]

Commit 5a9d2b6e0 (libbb: make '--help' handling more consistent)
broke the command "[ --help ]".  This should check that the string
is non-empty, not display help.

function                                             old     new   delta
show_usage_if_dash_dash_help                          69      74      +5
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 1/0 up/down: 5/0)                 Total: 5 bytes

Signed-off-by: Ron Yorston <rmy@pobox.com>
Reported-by: Harald van Dijk <harald@gigawatt.nl>
---
 applets/applet_tables.c | 4 ++++
 libbb/appletlib.c       | 8 +++++++-
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/applets/applet_tables.c b/applets/applet_tables.c
index 66ef7e4ac..923cb2a22 100644
--- a/applets/applet_tables.c
+++ b/applets/applet_tables.c
@@ -147,6 +147,10 @@ int main(int argc, char **argv)
 	for (i = 0; i < NUM_APPLETS; i++) {
 		if (str_isalnum_(applets[i].name))
 			printf("#define APPLET_NO_%s %d\n", applets[i].name, i);
+		else if (strcmp(applets[i].name, "[") == 0)
+			printf("#define APPLET_NO_test1 %d\n", i);
+		else if (strcmp(applets[i].name, "[[") == 0)
+			printf("#define APPLET_NO_test2 %d\n", i);
 	}
 	printf("\n");
 
diff --git a/libbb/appletlib.c b/libbb/appletlib.c
index 9b9d7dbd6..a9901aa72 100644
--- a/libbb/appletlib.c
+++ b/libbb/appletlib.c
@@ -923,12 +923,18 @@ void FAST_FUNC show_usage_if_dash_dash_help(int applet_no, char **argv)
 	/* Special case. POSIX says "test --help"
 	 * should be no different from e.g. "test --foo".
 	 * Thus for "test", we skip --help check.
-	 * "true", "false", "echo" are also special.
+	 * "[", "[[", "true", "false", "echo" are also special.
 	 */
 	if (1
 #  if defined APPLET_NO_test
 	 && applet_no != APPLET_NO_test
 #  endif
+#  if defined APPLET_NO_test1
+	 && applet_no != APPLET_NO_test1
+#  endif
+#  if defined APPLET_NO_test2
+	 && applet_no != APPLET_NO_test2
+#  endif
 #  if defined APPLET_NO_true
 	 && applet_no != APPLET_NO_true
 #  endif
-- 
2.37.2

_______________________________________________
busybox mailing list
busybox@busybox.net
http://lists.busybox.net/mailman/listinfo/busybox
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic