summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWolfgang Richter <wolf@cs.cmu.edu>2013-07-10 23:05:39 -0700
committerPieter Noordhuis <pcnoordhuis@gmail.com>2013-07-10 23:05:39 -0700
commit37a840dc2c0899e032e0fb05a0813e137a68f032 (patch)
treed7a43126311b1ab07ca3d83792b595ff2e54206e
parentafc462d35d6940f77db843f7981377b5d0d75c89 (diff)
Emphasize size_t length for %b formatting
Closes #121.
-rw-r--r--README.md2
-rw-r--r--examples/example.c2
-rw-r--r--hiredis.c2
-rw-r--r--test.c8
4 files changed, 7 insertions, 7 deletions
diff --git a/README.md b/README.md
index 45b2eb9..dba4a8c 100644
--- a/README.md
+++ b/README.md
@@ -68,7 +68,7 @@ When you need to pass binary safe strings in a command, the `%b` specifier can b
used. Together with a pointer to the string, it requires a `size_t` length argument
of the string:
- reply = redisCommand(context, "SET foo %b", value, valuelen);
+ reply = redisCommand(context, "SET foo %b", value, (size_t) valuelen);
Internally, Hiredis splits the command in different arguments and will
convert it to the protocol used to communicate with Redis.
diff --git a/examples/example.c b/examples/example.c
index 8b2e7f7..c76451f 100644
--- a/examples/example.c
+++ b/examples/example.c
@@ -32,7 +32,7 @@ int main(void) {
freeReplyObject(reply);
/* Set a key using binary safe API */
- reply = redisCommand(c,"SET %b %b", "bar", 3, "hello", 5);
+ reply = redisCommand(c,"SET %b %b", "bar", (size_t) 3, "hello", (size_t) 5);
printf("SET (binary API): %s\n", reply->str);
freeReplyObject(reply);
diff --git a/hiredis.c b/hiredis.c
index 84baa8c..80599db 100644
--- a/hiredis.c
+++ b/hiredis.c
@@ -917,7 +917,7 @@ err:
* %b represents a binary safe string
*
* When using %b you need to provide both the pointer to the string
- * and the length in bytes. Examples:
+ * and the length in bytes as a size_t. Examples:
*
* len = redisFormatCommand(target, "GET %s", mykey);
* len = redisFormatCommand(target, "SET %s %b", mykey, myval, myvallen);
diff --git a/test.c b/test.c
index 8e0ad7b..b3b806f 100644
--- a/test.c
+++ b/test.c
@@ -130,13 +130,13 @@ static void test_format_commands(void) {
free(cmd);
test("Format command with %%b string interpolation: ");
- len = redisFormatCommand(&cmd,"SET %b %b","foo",3,"b\0r",3);
+ len = redisFormatCommand(&cmd,"SET %b %b","foo",(size_t)3,"b\0r",(size_t)3);
test_cond(strncmp(cmd,"*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$3\r\nb\0r\r\n",len) == 0 &&
len == 4+4+(3+2)+4+(3+2)+4+(3+2));
free(cmd);
test("Format command with %%b and an empty string: ");
- len = redisFormatCommand(&cmd,"SET %b %b","foo",3,"",0);
+ len = redisFormatCommand(&cmd,"SET %b %b","foo",(size_t)3,"",(size_t)0);
test_cond(strncmp(cmd,"*3\r\n$3\r\nSET\r\n$3\r\nfoo\r\n$0\r\n\r\n",len) == 0 &&
len == 4+4+(3+2)+4+(3+2)+4+(0+2));
free(cmd);
@@ -182,7 +182,7 @@ static void test_format_commands(void) {
FLOAT_WIDTH_TEST(double);
test("Format command with invalid printf format: ");
- len = redisFormatCommand(&cmd,"key:%08p %b",(void*)1234,"foo",3);
+ len = redisFormatCommand(&cmd,"key:%08p %b",(void*)1234,"foo",(size_t)3);
test_cond(len == -1);
const char *argv[3];
@@ -335,7 +335,7 @@ static void test_blocking_connection(struct config config) {
freeReplyObject(reply);
test("%%b String interpolation works: ");
- reply = redisCommand(c,"SET %b %b","foo",3,"hello\x00world",11);
+ reply = redisCommand(c,"SET %b %b","foo",(size_t)3,"hello\x00world",(size_t)11);
freeReplyObject(reply);
reply = redisCommand(c,"GET foo");
test_cond(reply->type == REDIS_REPLY_STRING &&