aboutsummaryrefslogtreecommitdiffstats
path: root/parse.y
diff options
context:
space:
mode:
authorokan2008-06-14 21:48:54 +0000
committerokan2008-06-14 21:48:54 +0000
commitc13dbbd835133e5160bdeefa8251adef63c56a9e (patch)
tree7839e98d228f6339db838ea006fa49f539d18763 /parse.y
parentb41388716ed8af14f5165df937627ad66200a0b5 (diff)
downloadcwm-c13dbbd835133e5160bdeefa8251adef63c56a9e.tar.gz
confable menu and window mouse bindings from rivo nurges (thanks!) with
some minor fixups, man page bits and knf. ok oga@
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y22
1 files changed, 20 insertions, 2 deletions
diff --git a/parse.y b/parse.y
index 6219960..dd2a45b 100644
--- a/parse.y
+++ b/parse.y
@@ -1,4 +1,4 @@
-/* $OpenBSD: parse.y,v 1.9 2008/05/19 17:13:55 oga Exp $ */
+/* $OpenBSD: parse.y,v 1.10 2008/06/14 21:48:54 okan Exp $ */
/*
* Copyright (c) 2002, 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -66,7 +66,7 @@ typedef struct {
%}
-%token FONTNAME STICKY GAP
+%token FONTNAME STICKY GAP MOUSEBIND
%token AUTOGROUP BIND COMMAND IGNORE
%token YES NO
%token ERROR
@@ -167,6 +167,11 @@ main : FONTNAME STRING {
conf->gap_left = $4;
conf->gap_right = $5;
}
+ | MOUSEBIND STRING string {
+ conf_mousebind(conf, $2, $3);
+ free($2);
+ free($3);
+ }
;
%%
@@ -206,6 +211,7 @@ lookup(char *s)
{ "fontname", FONTNAME},
{ "gap", GAP},
{ "ignore", IGNORE},
+ { "mousebind", MOUSEBIND},
{ "no", NO},
{ "sticky", STICKY},
{ "yes", YES}
@@ -469,6 +475,7 @@ conf_clear(struct conf *c)
struct keybinding *kb;
struct winmatch *wm;
struct cmd *cmd;
+ struct mousebinding *mb;
while (cmd = TAILQ_FIRST(&c->cmdq)) {
TAILQ_REMOVE(&c->cmdq, cmd, entry);
@@ -494,6 +501,11 @@ conf_clear(struct conf *c)
free(wm);
}
+ while (mb = TAILQ_FIRST(&c->mousebindingq)) {
+ TAILQ_REMOVE(&c->mousebindingq, mb, entry);
+ free(mb);
+ }
+
if (c->DefaultFontName != NULL &&
c->DefaultFontName != DEFAULTFONTNAME)
free(c->DefaultFontName);
@@ -529,6 +541,7 @@ parse_config(const char *filename, struct conf *xconf)
struct keybinding *kb;
struct winmatch *wm;
struct cmd *cmd;
+ struct mousebinding *mb;
conf_clear(xconf);
@@ -554,6 +567,11 @@ parse_config(const char *filename, struct conf *xconf)
TAILQ_INSERT_TAIL(&xconf->ignoreq, wm, entry);
}
+ while (mb = TAILQ_FIRST(&conf->mousebindingq)) {
+ TAILQ_REMOVE(&conf->mousebindingq, mb, entry);
+ TAILQ_INSERT_TAIL(&xconf->mousebindingq, mb, entry);
+ }
+
strlcpy(xconf->termpath, conf->termpath,
sizeof(xconf->termpath));
strlcpy(xconf->lockpath, conf->lockpath,