summaryrefslogtreecommitdiff
path: root/util/epist/parser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'util/epist/parser.cc')
-rw-r--r--util/epist/parser.cc23
1 files changed, 16 insertions, 7 deletions
diff --git a/util/epist/parser.cc b/util/epist/parser.cc
index 00be5d7e..5c953aae 100644
--- a/util/epist/parser.cc
+++ b/util/epist/parser.cc
@@ -61,6 +61,18 @@ void parser::parse(string rc_file)
_kt->initialize();
}
+void parser::setKey(string key)
+{
+ KeySym sym = XStringToKeysym(key.c_str());
+
+ if (sym == 0) {
+ std::cerr << "ERROR: Invalid key (" << key << ")! This may cause odd behavior.\n";
+ _add = false;
+ } else {
+ _key = key;
+ }
+}
+
void parser::setAction(string act)
{
struct {
@@ -189,14 +201,11 @@ void parser::endChain()
void parser::setChainBinding()
{
- if (_mask != 0 && _key != "") {
- if (!_add) {
- cout << "Error: Bad modifier detected on chain's root key.\n";
- _add = true;
- }
+ if (_add)
_kt->setCurrentNodeProps(Action::noaction, _mask, _key, "");
- reset();
- }
+
+ _add = true;
+ reset();
}
void parser::reset()