chiark / gitweb /
CMakeLists.txt, lib.h, t/soak, t/treetest.c: Add some support for Windows.
[xyla] / diag.c
1 /* -*-c-*-
2  *
3  * Dianostic definitions
4  *
5  * (c) 2024 Straylight/Edgeware
6  */
7
8 /*----- Licensing notice --------------------------------------------------*
9  *
10  * This file is part of Xyla, a library of binary trees.
11  *
12  * Xyla is free software: you can redistribute it and/or modify it under
13  * the terms of the GNU Lesser General Public License as published by the
14  * Free Software Foundation; either version 3 of the License, or (at your
15  * option) any later version.
16  *
17  * Xyla is distributed in the hope that it will be useful, but WITHOUT
18  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
19  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public
20  * License for more details.
21  *
22  * You should have received a copy of the GNU Lesser General Public
23  * License along with Xyla.  If not, see <https://www.gnu.org/licenses/>.
24  */
25
26 /*----- Header files ------------------------------------------------------*/
27
28 #include "lib.h"
29 #include "bt.h"
30
31 /*----- Main code ---------------------------------------------------------*/
32
33 const char *xyla_strerror(int rc)
34 {
35   /* Return the message string associated with the return code RC. */
36
37   static const char *const msgtab[] = {
38 #define MSG(tag, msg) msg,
39     XYLA_RC_DOLOSE(MSG)
40     XYLA_RC_DOWIN(MSG)
41 #undef MSG
42   };
43
44   if (XYLA_RC_LOSELIMIT <= rc && rc < XYLA_RC_WINLIMIT)
45     return (msgtab[rc - XYLA_RC_LOSELIMIT]);
46   else
47     return ("#<unknown libxyla error code>");
48 }
49
50 /*----- That's all, folks -------------------------------------------------*/