let string_to_key s =
let mask = ref [] in
let key = try
let pos = String.rindex s '-' in
for i = 0 to pos - 1 do
let m = match s.[i] with
'C' -> `CONTROL
| 'S' -> `SHIFT
| 'L' -> `LOCK
| 'M' -> `MOD1
| 'A' -> `MOD1
| '1' -> `MOD1
| '2' -> `MOD2
| '3' -> `MOD3
| '4' -> `MOD4
| '5' -> `MOD5
| _ ->
prerr_endline s;
raise Not_found
in
mask := m :: !mask
done;
String.sub s (pos+1) (String.length s - pos - 1)
with _ ->
s
in
try
!mask, List.assoc key name_to_keysym
with
e ->
prerr_endline s;
raise e