diff options
author | waker <wakeroid@gmail.com> | 2013-08-18 16:47:43 +0200 |
---|---|---|
committer | waker <wakeroid@gmail.com> | 2013-08-18 16:47:43 +0200 |
commit | 4b3d9b3dbf50cf65b690099047b6f0f8cbb380d2 (patch) | |
tree | 82d5158eac8bf97778fa71943d480a63e568db67 /plugins/hotkeys | |
parent | b81070152bb7a13c50a936ed9b1cf3d734583b2f (diff) |
moved parser into separate lib
Diffstat (limited to 'plugins/hotkeys')
-rw-r--r-- | plugins/hotkeys/Makefile.am | 2 | ||||
-rw-r--r-- | plugins/hotkeys/hotkeys.c | 2 | ||||
-rw-r--r-- | plugins/hotkeys/parser.c | 107 | ||||
-rw-r--r-- | plugins/hotkeys/parser.h | 39 |
4 files changed, 2 insertions, 148 deletions
diff --git a/plugins/hotkeys/Makefile.am b/plugins/hotkeys/Makefile.am index 8b89bfe6..b9624917 100644 --- a/plugins/hotkeys/Makefile.am +++ b/plugins/hotkeys/Makefile.am @@ -1,7 +1,7 @@ if HAVE_HOTKEYS hotkeysdir = $(libdir)/$(PACKAGE) pkglib_LTLIBRARIES = hotkeys.la -hotkeys_la_SOURCES = hotkeys.c hotkeys.h parser.c parser.h actionhandlers.c actionhandlers.h +hotkeys_la_SOURCES = hotkeys.c hotkeys.h ../libparser/parser.c ../libparser/parser.h actionhandlers.c actionhandlers.h hotkeys_la_LDFLAGS = -module EXTRA_hotkeys_la_SOURCES = keysyms.inc diff --git a/plugins/hotkeys/hotkeys.c b/plugins/hotkeys/hotkeys.c index a7a1096c..9450e36c 100644 --- a/plugins/hotkeys/hotkeys.c +++ b/plugins/hotkeys/hotkeys.c @@ -26,7 +26,7 @@ #include <sys/prctl.h> #endif -#include "parser.h" +#include "../libparser/parser.h" #include "hotkeys.h" #include "../../deadbeef.h" #include "actionhandlers.h" diff --git a/plugins/hotkeys/parser.c b/plugins/hotkeys/parser.c deleted file mode 100644 index c49eeb72..00000000 --- a/plugins/hotkeys/parser.c +++ /dev/null @@ -1,107 +0,0 @@ -/* - DeaDBeeF - ultimate music player for GNU/Linux systems with X11 - Copyright (C) 2009-2012 Alexey Yakovenko <waker@users.sourceforge.net> - - 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 2 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 <http://www.gnu.org/licenses/>. -*/ - -#include <stdlib.h> -#include <assert.h> -#include <string.h> -#include <stdio.h> -#include "parser.h" - -// very basic parser, ripped from psynth, optimized, and extended to support -// quoted strings and extra special chars -int parser_line; - -void -parser_init (void) { - parser_line = 1; -} - -const char * -skipws (const char *p) { - while (*p <= ' ' && *p) { - if (*p == '\n') { - parser_line++; - } - p++; - } - if (!*p) { - return NULL; - } - return p; -} - -const char * -gettoken (const char *p, char *tok) { - const char *c; - assert (p); - assert (tok); - int n = MAX_TOKEN-1; - char specialchars[] = "{}();"; - if (!(p = skipws (p))) { - return NULL; - } - if (*p == '"') { - p++; - c = p; - while (n > 0 && *c && *c != '"') { - if (*c == '\n') { - parser_line++; - } - *tok++ = *c++; - n--; - } - if (*c) { - c++; - } - *tok = 0; - return c; - } - if (strchr (specialchars, *p)) { - *tok = *p; - tok[1] = 0; - return p+1; - } - c = p; - while (n > 0 && *c > ' ' && !strchr (specialchars, *c)) { - *tok++ = *c++; - n--; - } - *tok = 0; - return c; -} - -const char * -gettoken_warn_eof (const char *p, char *tok) { - p = gettoken (p, tok); - if (!p) { - fprintf (stderr, "parser: unexpected eof at line %d", parser_line); - } - return p; -} - -const char * -gettoken_err_eof (const char *p, char *tok) { - p = gettoken (p, tok); - if (!p) { - fprintf (stderr, "parser: unexpected eof at line %d", parser_line); - exit (-1); - } - return p; -} - - diff --git a/plugins/hotkeys/parser.h b/plugins/hotkeys/parser.h deleted file mode 100644 index b0f95169..00000000 --- a/plugins/hotkeys/parser.h +++ /dev/null @@ -1,39 +0,0 @@ -/* - DeaDBeeF - ultimate music player for GNU/Linux systems with X11 - Copyright (C) 2009-2012 Alexey Yakovenko <waker@users.sourceforge.net> - - 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 2 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 <http://www.gnu.org/licenses/>. -*/ -#ifndef __PARSER_H -#define __PARSER_H - -#define MAX_TOKEN 256 -extern int parser_line; - -void -parser_init (void); - -const char * -skipws (const char *p); - -const char * -gettoken (const char *p, char *tok); - -const char * -gettoken_warn_eof (const char *p, char *tok); - -const char * -gettoken_err_eof (const char *p, char *tok); - -#endif |