Bläddra i källkod

Handle %c in json_printf()

PUBLISHED_FROM=98e913b0043585af159a55e1fef4d192d88dbd4e
Sergey Lyubka 8 år sedan
förälder
incheckning
4e9a24d7a9
2 ändrade filer med 8 tillägg och 1 borttagningar
  1. 1 1
      frozen.c
  2. 7 0
      unit_test.c

+ 1 - 1
frozen.c

@@ -630,7 +630,7 @@ int json_vprintf(struct json_out *out, const char *fmt, va_list xap) {
          * TODO(dfrank): reimplement %s and %.*s in order to avoid that.
          */
 
-        const char *end_of_format_specifier = "sdfFgGlhuI.*-0123456789";
+        const char *end_of_format_specifier = "sdfFgGlhuIc.*-0123456789";
         size_t n = strspn(fmt + 1, end_of_format_specifier);
         char *pbuf = buf;
         size_t need_len;

+ 7 - 0
unit_test.c

@@ -323,6 +323,13 @@ static const char *test_json_printf(void) {
     ASSERT(strcmp(buf, "\"002001200220616263\"") == 0);
   }
 
+  {
+    struct json_out out = JSON_OUT_BUF(buf, sizeof(buf));
+    memset(buf, 0, sizeof(buf));
+    ASSERT(json_printf(&out, "%c", 0x53) > 0);
+    ASSERT(strcmp(buf, "S") == 0);
+  }
+
   return NULL;
 }