*/
char *edit_uint64_with_commas(uint64_t val, char *buf)
{
- /*
- * Replacement for sprintf(buf, "%" llu, val)
- */
- char mbuf[50];
- mbuf[sizeof(mbuf)-1] = 0;
- int i = sizeof(mbuf)-2; /* edit backward */
- if (val == 0) {
- mbuf[i--] = '0';
- } else {
- while (val != 0) {
- mbuf[i--] = "0123456789"[val%10];
- val /= 10;
- }
- }
- bstrncpy(buf, &mbuf[i+1], 27);
+ edit_uint64(val, buf);
return add_commas(buf, buf);
}
return buf;
}
+/*
+ * Edit an integer number with commas, the supplied buffer
+ * must be at least 27 bytes long. The incoming number
+ * is always widened to 64 bits.
+ */
+char *edit_int64_with_commas(int64_t val, char *buf)
+{
+ edit_int64(val, buf);
+ return add_commas(buf, buf);
+}
/*
* Given a string "str", separate the numeric part into