diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-03-26 12:52:32 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-03-26 12:52:32 +0000 |
| commit | 91ebde9e8842678e0d0704dc7945b2b84aba314f (patch) | |
| tree | 8a7350529e86af79f865336112ab5cc37f354707 /plugins/keyboard/keysrc.l | |
| parent | 59ad2e319a58af43ca77cda7307888e5ae34ea2a (diff) | |
load keybindings from keysrc
Diffstat (limited to 'plugins/keyboard/keysrc.l')
| -rw-r--r-- | plugins/keyboard/keysrc.l | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/plugins/keyboard/keysrc.l b/plugins/keyboard/keysrc.l new file mode 100644 index 00000000..258a23b9 --- /dev/null +++ b/plugins/keyboard/keysrc.l @@ -0,0 +1,44 @@ +%{ +#include <glib.h> +#include "y.tab.h" + +extern void kparseerror(char *s); +int kparselineno; +%} + +field [A-Za-z0-9][-A-Za-z0-9]* +number [0-9]+ +desktop [dD][eE][sS][kK][tT][oO][pP] +execute [eE][xX][eE][cC][uU][tT][eE] +restart [rR][eE][sS][tT][aA][rR][tT] +string \"[^"\n]*\" + +%% + +^[ \t]*#.*\n kparselineno++; +{number} kparselval.integer = atoi(kparsetext); return INTEGER; +{execute} kparselval.string = g_strdup(kparsetext); return EXECUTE; +{restart} kparselval.string = g_strdup(kparsetext); return RESTART; +{desktop} kparselval.string = g_strdup(kparsetext); return DESKTOP; +{field} kparselval.string = g_strdup(kparsetext); return FIELD; +{string} { + /* drop the quotes */ + kparselval.string = g_strdup(kparsetext+1); + if (kparselval.string[kparseleng-2] != '"') { + g_warning("improperly terminated string on line %d\n", + kparselineno); + kparseerror(""); + } else + kparselval.string[kparseleng-2] = '\0'; + return STRING; + } + +[ \t] +\n kparselineno++; return *yytext; +. kparseerror(""); + +%% + +int kparsewrap() { + return 1; +} |
