diff --git a/src/redis-cli.c b/src/redis-cli.c index 60bdca6de..d79fb35f8 100644 --- a/src/redis-cli.c +++ b/src/redis-cli.c @@ -239,6 +239,7 @@ static struct config { int output; /* output mode, see OUTPUT_* defines */ int push_output; /* Should we display spontaneous PUSH replies */ sds mb_delim; + sds cmd_delim; char prompt[128]; char *eval; int eval_ldb; @@ -1236,7 +1237,7 @@ static sds cliFormatReply(redisReply *reply, int mode, int verbatim) { out = cliFormatReplyTTY(reply, ""); } else if (mode == OUTPUT_RAW) { out = cliFormatReplyRaw(reply); - out = sdscatlen(out, "\n", 1); + out = sdscatsds(out, config.cmd_delim); } else if (mode == OUTPUT_CSV) { out = cliFormatReplyCSV(reply); out = sdscatlen(out, "\n", 1); @@ -1604,6 +1605,9 @@ static int parseOptions(int argc, char **argv) { } else if (!strcmp(argv[i],"-d") && !lastarg) { sdsfree(config.mb_delim); config.mb_delim = sdsnew(argv[++i]); + } else if (!strcmp(argv[i],"-D") && !lastarg) { + sdsfree(config.cmd_delim); + config.cmd_delim = sdsnew(argv[++i]); } else if (!strcmp(argv[i],"--verbose")) { config.verbose = 1; } else if (!strcmp(argv[i],"--cluster") && !lastarg) { @@ -1807,7 +1811,8 @@ static void usage(void) { " -n Database number.\n" " -3 Start session in RESP3 protocol mode.\n" " -x Read last argument from STDIN.\n" -" -d Multi-bulk delimiter in for raw formatting (default: \\n).\n" +" -d Delimiter between response bulks for raw formatting (default: \\n).\n" +" -D Delimiter between responses for raw formatting (default: \\n).\n" " -c Enable cluster mode (follow -ASK and -MOVED redirections).\n" #ifdef USE_OPENSSL " --tls Establish a secure TLS connection.\n" @@ -5443,8 +5448,6 @@ static void clusterManagerMode(clusterManagerCommandProc *proc) { exit(0); cluster_manager_err: freeClusterManager(); - sdsfree(config.hostip); - sdsfree(config.mb_delim); exit(1); } @@ -8204,6 +8207,7 @@ int main(int argc, char **argv) { config.push_output = 1; } config.mb_delim = sdsnew("\n"); + config.cmd_delim = sdsnew("\n"); firstarg = parseOptions(argc,argv); argc -= firstarg; @@ -8227,8 +8231,6 @@ int main(int argc, char **argv) { if (CLUSTER_MANAGER_MODE()) { clusterManagerCommandProc *proc = validateClusterManagerCommand(); if (!proc) { - sdsfree(config.hostip); - sdsfree(config.mb_delim); exit(1); } clusterManagerMode(proc);