diff options
Diffstat (limited to 'mxml/mxml-private.c')
-rw-r--r-- | mxml/mxml-private.c | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/mxml/mxml-private.c b/mxml/mxml-private.c new file mode 100644 index 000000000..d78484b08 --- /dev/null +++ b/mxml/mxml-private.c @@ -0,0 +1,128 @@ +/* + * "$Id$" + * + * Private functions for Mini-XML, a small XML-like file parsing library. + * + * Copyright 2003-2005 by Michael Sweet. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2, 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. + * + * Contents: + * + * mxml_error() - Display an error message. + * mxml_integer_cb() - Default callback for integer values. + * mxml_opaque_cb() - Default callback for opaque values. + * mxml_real_cb() - Default callback for real number values. + */ + +/* + * Include necessary headers... + */ + +#include "config.h" +#include "mxml.h" + + +/* + * Error callback function... + */ + +void (*mxml_error_cb)(const char *) = NULL; + + +/* + * 'mxml_error()' - Display an error message. + */ + +void +mxml_error(const char *format, /* I - Printf-style format string */ + ...) /* I - Additional arguments as needed */ +{ + va_list ap; /* Pointer to arguments */ + char *s; /* Message string */ + + + /* + * Range check input... + */ + + if (!format) + return; + + /* + * Format the error message string... + */ + + va_start(ap, format); + + s = mxml_strdupf(format, ap); + + va_end(ap); + + /* + * And then display the error message... + */ + + if (mxml_error_cb) + (*mxml_error_cb)(s); + else + fprintf(stderr, "mxml: %s\n", s); + + /* + * Free the string... + */ + + free(s); +} + + +/* + * 'mxml_integer_cb()' - Default callback for integer values. + */ + +mxml_type_t /* O - Node type */ +mxml_integer_cb(mxml_node_t *node) /* I - Current node */ +{ + (void)node; + + return (MXML_INTEGER); +} + + +/* + * 'mxml_opaque_cb()' - Default callback for opaque values. + */ + +mxml_type_t /* O - Node type */ +mxml_opaque_cb(mxml_node_t *node) /* I - Current node */ +{ + (void)node; + + return (MXML_OPAQUE); +} + + +/* + * 'mxml_real_cb()' - Default callback for real number values. + */ + +mxml_type_t /* O - Node type */ +mxml_real_cb(mxml_node_t *node) /* I - Current node */ +{ + (void)node; + + return (MXML_REAL); +} + + +/* + * End of "$Id$". + */ |