Commit 2d869952 authored by antirez's avatar antirez
Browse files

GETRANGE: return empty string with negative, inverted start/end.

parent eb45e114
...@@ -773,12 +773,12 @@ void bitcountCommand(client *c) { ...@@ -773,12 +773,12 @@ void bitcountCommand(client *c) {
if (getLongFromObjectOrReply(c,c->argv[3],&end,NULL) != C_OK) if (getLongFromObjectOrReply(c,c->argv[3],&end,NULL) != C_OK)
return; return;
/* Convert negative indexes */ /* Convert negative indexes */
if (start < 0) start = strlen+start;
if (end < 0) end = strlen+end;
if (start < 0 && end < 0 && start > end) { if (start < 0 && end < 0 && start > end) {
addReply(c,shared.czero); addReply(c,shared.czero);
return; return;
} }
if (start < 0) start = strlen+start;
if (end < 0) end = strlen+end;
if (start < 0) start = 0; if (start < 0) start = 0;
if (end < 0) end = 0; if (end < 0) end = 0;
if (end >= strlen) end = strlen-1; if (end >= strlen) end = strlen-1;
......
...@@ -263,6 +263,10 @@ void getrangeCommand(client *c) { ...@@ -263,6 +263,10 @@ void getrangeCommand(client *c) {
} }
/* Convert negative indexes */ /* Convert negative indexes */
if (start < 0 && end < 0 && start > end) {
addReply(c,shared.emptybulk);
return;
}
if (start < 0) start = strlen+start; if (start < 0) start = strlen+start;
if (end < 0) end = strlen+end; if (end < 0) end = strlen+end;
if (start < 0) start = 0; if (start < 0) start = 0;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment