Format null pointer as (nil) and null string as (null) in printf (#226)

This commit is contained in:
vitaut
2015-11-11 07:57:19 -08:00
parent e61c8d4cba
commit b5fda1c90d
2 changed files with 18 additions and 0 deletions
+14
View File
@@ -540,6 +540,20 @@ class PrintfArgFormatter :
*out = static_cast<Char>(value);
}
void visit_cstring(const char *value) {
if (value)
BasicArgFormatter<PrintfArgFormatter<Char>, Char>::visit_cstring(value);
else
this->writer() << "(null)";
}
void visit_pointer(const void *value) {
if (value)
BasicArgFormatter<PrintfArgFormatter<Char>, Char>::visit_pointer(value);
else
this->writer() << "(nil)";
}
void visit_custom(Arg::CustomValue c) {
BasicFormatter<Char> formatter(ArgList(), this->writer());
const Char format_str[] = {'}', 0};