char *auth;
int raw_output; /* output mode per command */
sds mb_delim;
+ char prompt[32];
} config;
static void usage();
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
*--------------------------------------------------------------------------- */
/* Send SELECT dbnum to the server */
static int cliSelect() {
redisReply *reply;
- char dbnum[16];
if (config.dbnum == 0) return REDIS_OK;
- snprintf(dbnum,sizeof(dbnum),"%d",config.dbnum);
- reply = redisCommand(context,"SELECT %s",dbnum);
+ reply = redisCommand(context,"SELECT %d",config.dbnum);
if (reply != NULL) {
freeReplyObject(reply);
return REDIS_OK;
}
}
- if (cliReadReply(output_raw) != REDIS_OK)
+ if (cliReadReply(output_raw) != REDIS_OK) {
+ free(argvlen);
return REDIS_ERR;
+ } else {
+ /* Store database number when SELECT was successfully executed. */
+ if (!strcasecmp(command,"select") && argc == 2) {
+ config.dbnum = atoi(argv[1]);
+ cliRefreshPrompt();
+ }
+ }
}
+
+ free(argvlen);
return REDIS_OK;
}
}
}
- 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);