From 2777a04ed2ba4fd36138b991d66a32a283361f7e Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Thu, 1 May 2008 16:34:46 +0000 Subject: Import parser construction utility library svn path=/trunk/libparserutils/; revision=4111 --- src/utils/errors.c | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/utils/errors.c (limited to 'src/utils/errors.c') diff --git a/src/utils/errors.c b/src/utils/errors.c new file mode 100644 index 0000000..353cda1 --- /dev/null +++ b/src/utils/errors.c @@ -0,0 +1,70 @@ +/* + * This file is part of LibParserUtils. + * Licensed under the MIT License, + * http://www.opensource.org/licenses/mit-license.php + * Copyright 2007 John-Mark Bell + */ + +#include + +#include + +/** + * Convert a parserutils error code to a string + * + * \param error The error code to convert + * \return Pointer to string representation of error, or NULL if unknown. + */ +const char *parserutils_error_to_string(parserutils_error error) +{ + const char *result = NULL; + + switch (error) { + case PARSERUTILS_OK: + result = "No error"; + break; + case PARSERUTILS_NOMEM: + result = "Insufficient memory"; + break; + case PARSERUTILS_BADPARM: + result = "Bad parameter"; + break; + case PARSERUTILS_INVALID: + result = "Invalid input"; + break; + case PARSERUTILS_FILENOTFOUND: + result = "File not found"; + break; + case PARSERUTILS_NEEDDATA: + result = "Insufficient data"; + break; + } + + return result; +} + +/** + * Convert a string representation of an error name to a parserutils error code + * + * \param str String containing error name + * \param len Length of string (bytes) + * \return Error code, or PARSERUTILS_OK if unknown + */ +parserutils_error parserutils_error_from_string(const char *str, size_t len) +{ + if (strncmp(str, "PARSERUTILS_OK", len) == 0) { + return PARSERUTILS_OK; + } else if (strncmp(str, "PARSERUTILS_NOMEM", len) == 0) { + return PARSERUTILS_NOMEM; + } else if (strncmp(str, "PARSERUTILS_BADPARM", len) == 0) { + return PARSERUTILS_BADPARM; + } else if (strncmp(str, "PARSERUTILS_INVALID", len) == 0) { + return PARSERUTILS_INVALID; + } else if (strncmp(str, "PARSERUTILS_FILENOTFOUND", len) == 0) { + return PARSERUTILS_FILENOTFOUND; + } else if (strncmp(str, "PARSERUTILS_NEEDDATA", len) == 0) { + return PARSERUTILS_NEEDDATA; + } + + return PARSERUTILS_OK; +} -- cgit v1.2.3