summaryrefslogtreecommitdiff
path: root/plugins/hotkeys
diff options
context:
space:
mode:
authorGravatar waker <wakeroid@gmail.com>2013-08-18 16:47:43 +0200
committerGravatar waker <wakeroid@gmail.com>2013-08-18 16:47:43 +0200
commit4b3d9b3dbf50cf65b690099047b6f0f8cbb380d2 (patch)
tree82d5158eac8bf97778fa71943d480a63e568db67 /plugins/hotkeys
parentb81070152bb7a13c50a936ed9b1cf3d734583b2f (diff)
moved parser into separate lib
Diffstat (limited to 'plugins/hotkeys')
-rw-r--r--plugins/hotkeys/Makefile.am2
-rw-r--r--plugins/hotkeys/hotkeys.c2
-rw-r--r--plugins/hotkeys/parser.c107
-rw-r--r--plugins/hotkeys/parser.h39
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