Improved raw Redis output.

master
Nicolas Favre-Felix 14 years ago
parent c12768eab0
commit 3fbc7b85b7

@ -83,6 +83,7 @@ This is the raw output of Redis; enable it with `?format=raw`.
// string // string
$ curl http://127.0.0.1:7379/GET/z?format=raw $ curl http://127.0.0.1:7379/GET/z?format=raw
$5
hello hello
// number // number

@ -108,7 +108,7 @@ raw_array(const redisReply *r, size_t *sz) {
static char * static char *
raw_wrap(const redisReply *r, size_t *sz) { raw_wrap(const redisReply *r, size_t *sz) {
char *ret; char *ret, *p;
switch(r->type) { switch(r->type) {
case REDIS_REPLY_STATUS: case REDIS_REPLY_STATUS:
@ -121,9 +121,10 @@ raw_wrap(const redisReply *r, size_t *sz) {
return ret; return ret;
case REDIS_REPLY_STRING: case REDIS_REPLY_STRING:
*sz = 1 + r->len; *sz = 1 + integer_length(r->len) + 1 + r->len + 1;
ret = malloc(*sz); p = ret = malloc(*sz);
memcpy(ret, r->str, *sz - 1); p += sprintf(p, "$%d\n", r->len);
memcpy(p, r->str, *sz - 1);
memcpy(ret + *sz - 1, "\n", 1); memcpy(ret + *sz - 1, "\n", 1);
return ret; return ret;

Loading…
Cancel
Save