blob: dfe4e8049779138dd8fd36aea1544c5edda8f363 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
/* libmisc/error.c - Go-esque errors
*
* Copyright (C) 2025 Luke T. Shumaker <lukeshu@lukeshu.com>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#include <libmisc/error.h>
const char *error_msg(error err) {
return (err._msg && err._msg[0])
? err._msg
: _errnum_str_msg(err.num);
}
void error_cleanup(error *errptr) {
if (!errptr)
return;
if (errptr->_msg)
free(errptr->_msg);
errptr->num = E_NOERROR;
errptr->_msg = NULL;
}
void fmt_print_error(lo_interface fmt_dest w, error err) {
fmt_print(w, (str, error_msg(err)), " (", _errnum_str_sym(err.num), ")");
}
|