dump_message_part(str, part);
}
+static void
+dump_cache_append_string(string_t *str, const unsigned char *data,
+ unsigned int size)
+{
+ /* cached strings end with NUL */
+ if (size > 0 && data[size-1] == '\0')
+ size--;
+ str_append_data(str, data, size);
+}
+
static void
dump_cache_snippet(string_t *str, const unsigned char *data, unsigned int size)
{
if (size == 0)
return;
str_printfa(str, " (version=%u: ", data[0]);
- str_append_n(str, data+1, size-1);
+ dump_cache_append_string(str, data+1, size-1);
str_append_c(str, ')');
}
dump_cache_snippet(str, data, size);
break;
case MAIL_CACHE_FIELD_STRING:
- if (size > 0)
- str_printfa(str, "%.*s", (int)size, (const char *)data);
+ dump_cache_append_string(str, data, size);
break;
case MAIL_CACHE_FIELD_HEADER: {
const uint32_t *lines = data;
break;
}
- printf("%s\n", str_c(str));
+ fwrite(str_data(str), 1, str_len(str), stdout);
+ putchar('\n');
}
if (ret < 0)
printf(" - broken cache\n");