blob: 944d9097aeb2562c522acfa540497381e8ad374a (
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
27
28
29
30
31
32
33
34
35
|
#!/usr/bin/env bash
# libmisc/error_generated.c.gen - Generate _errnum strings
#
# Copyright (C) 2025 Luke T. Shumaker <lukeshu@lukeshu.com>
# SPDX-License-Identifier: AGPL-3.0-or-later
error_h=$1
outfile=$2
{
echo "/* ${outfile} - Generated by $0. DO NOT EDIT! */"
echo
echo '#include <libmisc/error.h>'
echo
echo 'const char *_errnum_str_sym(_errnum errnum) {'
echo $'\tswitch (errnum) {'
sed -nE \
-e 's@^(#define)?\s+(E_[_A-Z0-9]+)[ ,][^/]*/\* ([^*(]+) (\*/|\().*@'$'\tcase \\2: return "\\2";''@p' \
-- "$error_h"
echo $'\tcase E_EUNKNOWN: return "E_EUNKNOWN";'
echo $'\tdefault: return "E_<invalid>";'
echo $'\t}'
echo '}'
echo
echo 'const char *_errnum_str_msg(_errnum errnum) {'
echo $'\tswitch (errnum) {'
sed -nE \
-e 's@^(#define)?\s+(E_[_A-Z0-9]+)[ ,][^/]*/\* ([^*(]+) (\*/|\().*@'$'\tcase \\2: return "\\3";''@p' \
-- "$error_h"
echo $'\tcase E_EUNKNOWN:'
echo $'\tdefault:'
echo $'\t\treturn "unknown error";'
echo $'\t}'
echo '}'
} >"$outfile"
|