Fix formatting literal percent characters
This commit is contained in:
parent
9d9b8e1c79
commit
cb89a472b6
@ -564,7 +564,7 @@ int redisvFormatCommand(char **target, const char *format, va_list ap) {
|
|||||||
interpolated = 1;
|
interpolated = 1;
|
||||||
break;
|
break;
|
||||||
case '%':
|
case '%':
|
||||||
cmd = sdscat(cmd,"%");
|
current = sdscat(current,"%");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
c++;
|
c++;
|
||||||
|
6
test.c
6
test.c
@ -65,6 +65,12 @@ static void test_format_commands() {
|
|||||||
len == 4+4+(3+2)+4+(3+2)+4+(0+2));
|
len == 4+4+(3+2)+4+(3+2)+4+(0+2));
|
||||||
free(cmd);
|
free(cmd);
|
||||||
|
|
||||||
|
test("Format command with literal %%: ");
|
||||||
|
len = redisFormatCommand(&cmd,"SET %% %%");
|
||||||
|
test_cond(strncmp(cmd,"*3\r\n$3\r\nSET\r\n$1\r\n%\r\n$1\r\n%\r\n",len) == 0 &&
|
||||||
|
len == 4+4+(3+2)+4+(1+2)+4+(1+2));
|
||||||
|
free(cmd);
|
||||||
|
|
||||||
const char *argv[3];
|
const char *argv[3];
|
||||||
argv[0] = "SET";
|
argv[0] = "SET";
|
||||||
argv[1] = "foo";
|
argv[1] = "foo";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user