return ret;
}
-static size_t advance(char **buf, size_t *n, size_t amount)
+static size_t advance_(char **buf, size_t *n, size_t amount)
{
- if (!amount)
- return 0;
-
if (amount >= *n) {
*n = 0;
*buf = 0;
} else {
- (*buf)[amount] = ' ';
- if (amount + 1 >= *n) {
- *buf = 0;
- *n = 0;
- } else {
- *buf += amount + 1;
- *n -= amount + 1;
- }
+ *buf += amount;
+ *n -= amount;
}
- return amount + 1;
+ return amount;
+}
+
+static size_t advance(char **buf, size_t *n, size_t amount)
+{
+ size_t ret, rc;
+
+ if (!amount)
+ return 0;
+
+ ret = advance_(buf, n, amount);
+ rc = snprintf(*buf, *n, " ");
+ return ret + advance_(buf, n, rc);
}
static size_t