From 95612b6b1c01ab62b1dd8d51a9d62d4e502cef11 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 17 Sep 2004 20:08:52 +0000 Subject: rename some more git-svn-id: file:///home/lennart/svn/public/pulseaudio/trunk@213 fefdeb5f-60dc-0310-8127-8f9354f1896f --- polyp/Makefile.am | 6 +- polyp/client-conf.c | 2 +- polyp/conf-parser.c | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++ polyp/conf-parser.h | 37 ++++++++++++ polyp/confparser.c | 168 ---------------------------------------------------- polyp/confparser.h | 37 ------------ polyp/daemon-conf.c | 2 +- 7 files changed, 210 insertions(+), 210 deletions(-) create mode 100644 polyp/conf-parser.c create mode 100644 polyp/conf-parser.h delete mode 100644 polyp/confparser.c delete mode 100644 polyp/confparser.h diff --git a/polyp/Makefile.am b/polyp/Makefile.am index 9dde211d..7efb46c7 100644 --- a/polyp/Makefile.am +++ b/polyp/Makefile.am @@ -159,7 +159,7 @@ polypaudio_SOURCES = idxset.c idxset.h \ modinfo.c modinfo.h \ daemon-conf.c daemon-conf.h \ dumpmodules.c dumpmodules.h \ - conparser.h confparser.c + conf-parser.h conf-parser.c polypaudio_CFLAGS = $(AM_CFLAGS) $(LIBSAMPLERATE_CFLAGS) $(LIBSNDFILE_CFLAGS) polypaudio_INCLUDES = $(INCLTDL) @@ -334,8 +334,8 @@ libpolyp_@PA_MAJORMINOR@_la_SOURCES = polyplib.h \ llist.h \ log.c log.h \ gcc-printf.h \ - client-conf.c client-conf.h \ - confparser.c confparser.h + client-conf.c client-conf.h \ + conf-parser.c conf-parser.h libpolyp_@PA_MAJORMINOR@_la_CFLAGS = $(AM_CFLAGS) libpolyp_@PA_MAJORMINOR@_la_LDFLAGS = -version-info 0:0:0 diff --git a/polyp/client-conf.c b/polyp/client-conf.c index cfc257c6..d904cb49 100644 --- a/polyp/client-conf.c +++ b/polyp/client-conf.c @@ -26,7 +26,7 @@ #include "client-conf.h" #include "xmalloc.h" #include "log.h" -#include "confparser.h" +#include "conf-parser.h" #include "util.h" #ifndef DEFAULT_CLIENT_CONFIG_FILE diff --git a/polyp/conf-parser.c b/polyp/conf-parser.c new file mode 100644 index 00000000..20e8e723 --- /dev/null +++ b/polyp/conf-parser.c @@ -0,0 +1,168 @@ +/* $Id$ */ + +/*** + This file is part of polypaudio. + + polypaudio 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 2 of the License, + or (at your option) any later version. + + polypaudio 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 polypaudio; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + +#include +#include +#include +#include + +#include "conf-parser.h" +#include "log.h" +#include "util.h" +#include "xmalloc.h" + +#define WHITESPACE " \t\n" +#define COMMENTS "#;\n" + +static int next_assignment(const char *filename, unsigned line, const struct pa_config_item *t, const char *lvalue, const char *rvalue, void *userdata) { + assert(filename && t && lvalue && rvalue); + + for (; t->parse; t++) + if (!strcmp(lvalue, t->lvalue)) + return t->parse(filename, line, lvalue, rvalue, t->data, userdata); + + pa_log(__FILE__": [%s:%u] Unknown lvalue '%s'.\n", filename, line, lvalue); + + return -1; +} + +static int in_string(char c, const char *s) { + assert(s); + + for (; *s; s++) + if (*s == c) + return 1; + + return 0; +} + +static char *strip(char *s) { + char *b = s+strspn(s, WHITESPACE); + char *e, *l = NULL; + + for (e = b; *e; e++) + if (!in_string(*e, WHITESPACE)) + l = e; + + if (l) + *(l+1) = 0; + + return b; +} + +static int parse_line(const char *filename, unsigned line, const struct pa_config_item *t, char *l, void *userdata) { + char *e, *c, *b = l+strspn(l, WHITESPACE); + + if ((c = strpbrk(b, COMMENTS))) + *c = 0; + + if (!*b) + return 0; + + if (!(e = strchr(b, '='))) { + pa_log(__FILE__": [%s:%u] Missing '='.\n", filename, line); + return -1; + } + + *e = 0; + e++; + + return next_assignment(filename, line, t, strip(b), strip(e), userdata); +} + + +int pa_config_parse(const char *filename, const struct pa_config_item *t, void *userdata) { + FILE *f; + int r = -1; + unsigned line = 0; + assert(filename && t); + + if (!(f = fopen(filename, "r"))) { + if (errno == ENOENT) { + r = 0; + goto finish; + } + + pa_log(__FILE__": WARNING: failed to open configuration file '%s': %s\n", filename, strerror(errno)); + goto finish; + } + + while (!feof(f)) { + char l[256]; + if (!fgets(l, sizeof(l), f)) { + if (feof(f)) + break; + + pa_log(__FILE__": WARNING: failed to read configuration file '%s': %s\n", filename, strerror(errno)); + goto finish; + } + + if (parse_line(filename, ++line, t, l, userdata) < 0) + goto finish; + } + + r = 0; + +finish: + + if (f) + fclose(f); + + return r; +} + +int pa_config_parse_int(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) { + int *i = data, k; + char *x = NULL; + assert(filename && lvalue && rvalue && data); + + k = strtol(rvalue, &x, 0); + if (!*rvalue || !x || *x) { + pa_log(__FILE__": [%s:%u] Failed to parse numeric value: %s\n", filename, line, rvalue); + return -1; + } + + *i = k; + return 0; +} + +int pa_config_parse_bool(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) { + int *b = data, k; + assert(filename && lvalue && rvalue && data); + + if ((k = pa_parse_boolean(rvalue)) < 0) { + pa_log(__FILE__": [%s:%u] Failed to parse boolean value: %s\n", filename, line, rvalue); + return -1; + } + + *b = k; + + return 0; +} + +int pa_config_parse_string(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) { + char **s = data; + assert(filename && lvalue && rvalue && data); + + pa_xfree(*s); + *s = *rvalue ? pa_xstrdup(rvalue) : NULL; + return 0; +} diff --git a/polyp/conf-parser.h b/polyp/conf-parser.h new file mode 100644 index 00000000..a0eb52d0 --- /dev/null +++ b/polyp/conf-parser.h @@ -0,0 +1,37 @@ +#ifndef fooconfparserhfoo +#define fooconfparserhfoo + +/* $Id$ */ + +/*** + This file is part of polypaudio. + + polypaudio 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 2 of the License, + or (at your option) any later version. + + polypaudio 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 polypaudio; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + +struct pa_config_item { + const char *lvalue; + int (*parse)(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata); + void *data; +}; + +int pa_config_parse(const char *filename, const struct pa_config_item *t, void *userdata); + +int pa_config_parse_int(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata); +int pa_config_parse_bool(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata); +int pa_config_parse_string(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata); + +#endif diff --git a/polyp/confparser.c b/polyp/confparser.c deleted file mode 100644 index 8f551b95..00000000 --- a/polyp/confparser.c +++ /dev/null @@ -1,168 +0,0 @@ -/* $Id$ */ - -/*** - This file is part of polypaudio. - - polypaudio 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 2 of the License, - or (at your option) any later version. - - polypaudio 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 polypaudio; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - USA. -***/ - -#include -#include -#include -#include - -#include "confparser.h" -#include "log.h" -#include "util.h" -#include "xmalloc.h" - -#define WHITESPACE " \t\n" -#define COMMENTS "#;\n" - -static int next_assignment(const char *filename, unsigned line, const struct pa_config_item *t, const char *lvalue, const char *rvalue, void *userdata) { - assert(filename && t && lvalue && rvalue); - - for (; t->parse; t++) - if (!strcmp(lvalue, t->lvalue)) - return t->parse(filename, line, lvalue, rvalue, t->data, userdata); - - pa_log(__FILE__": [%s:%u] Unknown lvalue '%s'.\n", filename, line, lvalue); - - return -1; -} - -static int in_string(char c, const char *s) { - assert(s); - - for (; *s; s++) - if (*s == c) - return 1; - - return 0; -} - -static char *strip(char *s) { - char *b = s+strspn(s, WHITESPACE); - char *e, *l = NULL; - - for (e = b; *e; e++) - if (!in_string(*e, WHITESPACE)) - l = e; - - if (l) - *(l+1) = 0; - - return b; -} - -static int parse_line(const char *filename, unsigned line, const struct pa_config_item *t, char *l, void *userdata) { - char *e, *c, *b = l+strspn(l, WHITESPACE); - - if ((c = strpbrk(b, COMMENTS))) - *c = 0; - - if (!*b) - return 0; - - if (!(e = strchr(b, '='))) { - pa_log(__FILE__": [%s:%u] Missing '='.\n", filename, line); - return -1; - } - - *e = 0; - e++; - - return next_assignment(filename, line, t, strip(b), strip(e), userdata); -} - - -int pa_config_parse(const char *filename, const struct pa_config_item *t, void *userdata) { - FILE *f; - int r = -1; - unsigned line = 0; - assert(filename && t); - - if (!(f = fopen(filename, "r"))) { - if (errno == ENOENT) { - r = 0; - goto finish; - } - - pa_log(__FILE__": WARNING: failed to open configuration file '%s': %s\n", filename, strerror(errno)); - goto finish; - } - - while (!feof(f)) { - char l[256]; - if (!fgets(l, sizeof(l), f)) { - if (feof(f)) - break; - - pa_log(__FILE__": WARNING: failed to read configuration file '%s': %s\n", filename, strerror(errno)); - goto finish; - } - - if (parse_line(filename, ++line, t, l, userdata) < 0) - goto finish; - } - - r = 0; - -finish: - - if (f) - fclose(f); - - return r; -} - -int pa_config_parse_int(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) { - int *i = data, k; - char *x = NULL; - assert(filename && lvalue && rvalue && data); - - k = strtol(rvalue, &x, 0); - if (!*rvalue || !x || *x) { - pa_log(__FILE__": [%s:%u] Failed to parse numeric value: %s\n", filename, line, rvalue); - return -1; - } - - *i = k; - return 0; -} - -int pa_config_parse_bool(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) { - int *b = data, k; - assert(filename && lvalue && rvalue && data); - - if ((k = pa_parse_boolean(rvalue)) < 0) { - pa_log(__FILE__": [%s:%u] Failed to parse boolean value: %s\n", filename, line, rvalue); - return -1; - } - - *b = k; - - return 0; -} - -int pa_config_parse_string(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata) { - char **s = data; - assert(filename && lvalue && rvalue && data); - - pa_xfree(*s); - *s = *rvalue ? pa_xstrdup(rvalue) : NULL; - return 0; -} diff --git a/polyp/confparser.h b/polyp/confparser.h deleted file mode 100644 index a0eb52d0..00000000 --- a/polyp/confparser.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef fooconfparserhfoo -#define fooconfparserhfoo - -/* $Id$ */ - -/*** - This file is part of polypaudio. - - polypaudio 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 2 of the License, - or (at your option) any later version. - - polypaudio 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 polypaudio; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 - USA. -***/ - -struct pa_config_item { - const char *lvalue; - int (*parse)(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata); - void *data; -}; - -int pa_config_parse(const char *filename, const struct pa_config_item *t, void *userdata); - -int pa_config_parse_int(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata); -int pa_config_parse_bool(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata); -int pa_config_parse_string(const char *filename, unsigned line, const char *lvalue, const char *rvalue, void *data, void *userdata); - -#endif diff --git a/polyp/daemon-conf.c b/polyp/daemon-conf.c index 72ded989..a3185364 100644 --- a/polyp/daemon-conf.c +++ b/polyp/daemon-conf.c @@ -34,7 +34,7 @@ #include "util.h" #include "xmalloc.h" #include "strbuf.h" -#include "confparser.h" +#include "conf-parser.h" #ifndef DEFAULT_SCRIPT_FILE #define DEFAULT_SCRIPT_FILE "/etc/polypaudio/default.pa" -- cgit