#!/usr/bin/env bash # libmisc/error_generated.c.gen - Generate _errnum strings # # Copyright (C) 2025 Luke T. Shumaker # SPDX-License-Identifier: AGPL-3.0-or-later error_h=$1 outfile=$2 { echo "/* ${outfile} - Generated by $0. DO NOT EDIT! */" echo echo '#include ' 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_";' 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"