]> Dogcows Code - chaz/openbox/blobdiff - openbox/translate.c
if sm is disabled, there is nothing to shutdown, so don't go trying to free things...
[chaz/openbox] / openbox / translate.c
index 9ae4f43111ecea5cbfb03e123e3f9306a441955f..b1c0edbf02b537dad239401a5654902ed6d94109 100644 (file)
@@ -1,6 +1,7 @@
 /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
 
    translate.c for the Openbox window manager
+   Copyright (c) 2006        Mikael Magnusson
    Copyright (c) 2003        Ben Jansens
 
    This program is free software; you can redistribute it and/or modify
 #include <string.h>
 #include <stdlib.h>
 
-static guint translate_modifier(char *str)
+static guint translate_modifier(gchar *str)
 {
     if (!g_ascii_strcasecmp("Mod1", str) ||
         !g_ascii_strcasecmp("A", str)) return Mod1Mask;
     else if (!g_ascii_strcasecmp("Mod2", str)) return Mod2Mask;
-    else if (!g_ascii_strcasecmp("Mod3", str)) return Mod3Mask;
+    else if (!g_ascii_strcasecmp("Mod3", str) ||
+             !g_ascii_strcasecmp("M", str)) return Mod3Mask;
     else if (!g_ascii_strcasecmp("Mod4", str) ||
              !g_ascii_strcasecmp("W", str)) return Mod4Mask;
     else if (!g_ascii_strcasecmp("Mod5", str)) return Mod5Mask;
@@ -39,11 +41,11 @@ static guint translate_modifier(char *str)
     return 0;
 }
 
-gboolean translate_button(char *str, guint *state, guint *button)
+gboolean translate_button(const gchar *str, guint *state, guint *button)
 {
-    char **parsed;
-    char *l;
-    int i;
+    gchar **parsed;
+    gchar *l;
+    gint i;
     gboolean ret = FALSE;
 
     parsed = g_strsplit(str, "-", -1);
@@ -51,16 +53,16 @@ gboolean translate_button(char *str, guint *state, guint *button)
     /* first, find the button (last token) */
     l = NULL;
     for (i = 0; parsed[i] != NULL; ++i)
-       l = parsed[i];
+        l = parsed[i];
     if (l == NULL)
-       goto translation_fail;
+        goto translation_fail;
 
     /* figure out the mod mask */
     *state = 0;
     for (i = 0; parsed[i] != l; ++i) {
-       guint m = translate_modifier(parsed[i]);
-       if (!m) goto translation_fail;
-       *state |= m;
+        guint m = translate_modifier(parsed[i]);
+        if (!m) goto translation_fail;
+        *state |= m;
     }
 
     /* figure out the button */
@@ -71,8 +73,8 @@ gboolean translate_button(char *str, guint *state, guint *button)
     else if (!g_ascii_strcasecmp("Down", l)) *button = 5;
     else if (!g_ascii_strncasecmp("Button", l, 6)) *button = atoi(l+6);
     if (!*button) {
-       g_warning("Invalid button '%s' in pointer binding.", l);
-       goto translation_fail;
+        g_warning("Invalid button '%s' in pointer binding.", l);
+        goto translation_fail;
     }
 
     ret = TRUE;
@@ -82,11 +84,11 @@ translation_fail:
     return ret;
 }
 
-gboolean translate_key(char *str, guint *state, guint *keycode)
+gboolean translate_key(const gchar *str, guint *state, guint *keycode)
 {
-    char **parsed;
-    char *l;
-    int i;
+    gchar **parsed;
+    gchar *l;
+    gint i;
     gboolean ret = FALSE;
     KeySym sym;
 
@@ -95,16 +97,16 @@ gboolean translate_key(char *str, guint *state, guint *keycode)
     /* first, find the key (last token) */
     l = NULL;
     for (i = 0; parsed[i] != NULL; ++i)
-       l = parsed[i];
+        l = parsed[i];
     if (l == NULL)
-       goto translation_fail;
+        goto translation_fail;
 
     /* figure out the mod mask */
     *state = 0;
     for (i = 0; parsed[i] != l; ++i) {
-       guint m = translate_modifier(parsed[i]);
-       if (!m) goto translation_fail;
-       *state |= m;
+        guint m = translate_modifier(parsed[i]);
+        if (!m) goto translation_fail;
+        *state |= m;
     }
 
     if (!g_ascii_strncasecmp("0x", l, 2)) {
@@ -126,8 +128,8 @@ gboolean translate_key(char *str, guint *state, guint *keycode)
         *keycode = XKeysymToKeycode(ob_display, sym);
     }
     if (!*keycode) {
-       g_warning("Key '%s' does not exist on the display.", l); 
-       goto translation_fail;
+        g_warning("Key '%s' does not exist on the display.", l); 
+        goto translation_fail;
     }
 
     ret = TRUE;
This page took 0.025869 seconds and 4 git commands to generate.