Code

Make sure to print non-a-number as 'nan'.
[sysdb.git] / src / core / data.c
index 3186aa2622ecbfdc3caf2fc877dc7ae890c7754f..9f2b1f6fe4dda241997222ec62ac4fcdabf96eb0 100644 (file)
@@ -851,7 +851,10 @@ sdb_data_format(const sdb_data_t *datum, char *buf, size_t buflen, int quoted)
                ret = snprintf(buf, buflen, "%"PRIi64, datum->data.integer);
        }
        else if (datum->type == SDB_TYPE_DECIMAL) {
-               ret = snprintf(buf, buflen, "%g", datum->data.decimal);
+               if (isnan(datum->data.decimal))
+                       ret = snprintf(buf, buflen, "nan");
+               else
+                       ret = snprintf(buf, buflen, "%g", datum->data.decimal);
        }
        else if (datum->type == SDB_TYPE_STRING) {
                if (! datum->data.string)