summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
7487f34)
Judging by the documentation, `?ERRNO' is supposed to take an `int'
argument and format the error it specifies; but it actually works by
examining `errno', and all the callers know this. Changing it now seems
pointless, but I do want to be able to report errors in cases where
`errno' is or might be stale, and stuffing an error code back into
`errno' just so that it can be reported seems rather ugly.
Instead, add `?ERR' which /does/ accept an `int' argument, and fix the
documentation so that it describes reality.
*
* * "?PEER" PEER -- peer's name
*
*
* * "?PEER" PEER -- peer's name
*
- * * "?ERRNO" ERRNO -- system error code
+ * * "?ERR" CODE -- system error code
+ *
+ * * "?ERRNO" -- system error code from @errno@
*
* * "[!]..." ... -- @dstr_putf@-like string as single token
*/
*
* * "[!]..." ... -- @dstr_putf@-like string as single token
*/
while (*av) u_quotify(d, *av++);
} else if (strcmp(fmt, "?PEER") == 0)
u_quotify(d, p_name(va_arg(*ap, peer *)));
while (*av) u_quotify(d, *av++);
} else if (strcmp(fmt, "?PEER") == 0)
u_quotify(d, p_name(va_arg(*ap, peer *)));
- else if (strcmp(fmt, "?ERRNO") == 0) {
+ else if (strcmp(fmt, "?ERR") == 0) {
+ int e = va_arg(*ap, int);
+ dstr_putf(d, " E%d", e);
+ u_quotify(d, strerror(e));
+ } else if (strcmp(fmt, "?ERRNO") == 0) {
dstr_putf(d, " E%d", errno);
u_quotify(d, strerror(errno));
} else
dstr_putf(d, " E%d", errno);
u_quotify(d, strerror(errno));
} else
*
* * "?PEER" PEER -- peer's name
*
*
* * "?PEER" PEER -- peer's name
*
- * * "?ERRNO" ERRNO -- system error code
+ * * "?ERR" CODE -- system error code
+ *
+ * * "?ERRNO" -- system error code from @errno@
*
* * "[!]..." ... -- @dstr_putf@-like string as single token
*/
*
* * "[!]..." ... -- @dstr_putf@-like string as single token
*/