/* * libexplain - Explain errno values returned by libc functions * Copyright (C) 2009 Peter Miller * Written by Peter Miller * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or (at * your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #include #include #include #include int string_to_boolean(const char *text) { typedef struct table_t table_t; struct table_t { const char *name; int value; }; static const table_t table[] = { { "true", 1 }, { "false", 0 }, { "yes", 1 }, { "no", 0 }, }; const table_t *tp; for (tp = table; tp < ENDOF(table); ++tp) { if (0 == strcasecmp(tp->name, text)) return tp->value; } return !!strtol(text, 0, 0); } const char * boolean_to_string(int value) { return (value ? "true" : "false"); }