X-Git-Url: https://git.saurik.com/redis.git/blobdiff_plain/96e34b3ce11e4cda35b9127b6a75756fb42f12ba..255eebe22167e00f74e359bc71718225d6bd70c8:/src/redis-cli.c diff --git a/src/redis-cli.c b/src/redis-cli.c index fc2d4d73..123231d4 100644 --- a/src/redis-cli.c +++ b/src/redis-cli.c @@ -64,6 +64,7 @@ static struct config { char *auth; int raw_output; /* output mode per command */ sds mb_delim; + char prompt[32]; } config; static void usage(); @@ -84,6 +85,13 @@ static long long mstime(void) { return mst; } +static void cliRefreshPrompt(void) { + if (config.dbnum == 0) + snprintf(config.prompt,sizeof(config.prompt),"redis> "); + else + snprintf(config.prompt,sizeof(config.prompt),"redis:%d> ",config.dbnum); +} + /*------------------------------------------------------------------------------ * Help functions *--------------------------------------------------------------------------- */ @@ -491,8 +499,10 @@ static int cliSendCommand(int argc, char **argv, int repeat) { return REDIS_ERR; } else { /* Store database number when SELECT was successfully executed. */ - if (!strcasecmp(command,"select") && argc == 2) + if (!strcasecmp(command,"select") && argc == 2) { config.dbnum = atoi(argv[1]); + cliRefreshPrompt(); + } } } @@ -633,7 +643,8 @@ static void repl() { } } - while((line = linenoise(context ? "redis> " : "not connected> ")) != NULL) { + cliRefreshPrompt(); + while((line = linenoise(context ? config.prompt : "not connected> ")) != NULL) { if (line[0] != '\0') { argv = sdssplitargs(line,&argc); if (history) linenoiseHistoryAdd(line);