From 3d7e17d4478c72306e241cb99909a11922027aa3 Mon Sep 17 00:00:00 2001 From: Mark Riddoch Date: Thu, 2 Oct 2014 11:07:47 +0100 Subject: [PATCH] Add back in the quoting mechanism that was lost when the long argument handling was added. This allow for commands like maxadmin show service "Binlog Service" to work on the command line --- client/maxadmin.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/client/maxadmin.c b/client/maxadmin.c index 97459171e..e3c39afee 100644 --- a/client/maxadmin.c +++ b/client/maxadmin.c @@ -183,11 +183,22 @@ char c; len += strlen(argv[i]) + 1; } - cmd = malloc(len); + cmd = malloc(len + (2 * argc)); // Allow for quotes strcpy(cmd, argv[optind]); - for (i = optind +1; i < argc; i++) { + for (i = optind +1; i < argc; i++) + { strcat(cmd, " "); - strcat(cmd, argv[i]); + /* Arguments after the seconf are quoted to allow for names + * that contain white space + */ + if (i - optind > 1) + { + strcat(cmd, "\""); + strcat(cmd, argv[i]); + strcat(cmd, "\""); + } + else + strcat(cmd, argv[i]); } if (access(cmd, R_OK) == 0)