Commits


reworked the tokenizer -- breaking change The parser was pratically rewritten. Strings now are required to be quoted with single quotes, while keys (still) requires double quotes. In addition, the * is no longer a valid match argument: to match on everything you need to use the special keyword `all'. match all # before was `match *' on "C-a" do "<Home>" # unchanged match class 'Firefox' # before was `match class Firefox' # ...


improved error messages yyerror now is a printf-like variadic function. This helps to generate custom error message like "invalid keysym %s" or "invalid key %s" during parsing.


add ``match *'' to match everything Rationale: sometimes it can be useful to globally bind a key. For instance, some users may like to bind on "C-<Up>" do "<Page_Up>" for every application.


initial commit