rnd-19990122-1
[rocksndiamonds.git] / src / misc.c
index 7f6bc4bc7ef705f72ebda309f7c825053990a360..0e113727536ae9468a7c83c479be9936cfbff9f4 100644 (file)
@@ -241,6 +241,16 @@ char *getLoginName()
     return pwd->pw_name;
 }
 
+char *getRealName()
+{
+  struct passwd *pwd;
+
+  if (!(pwd = getpwuid(getuid())))
+    return "ANONYMOUS";
+  else
+    return pwd->pw_gecos;
+}
+
 char *getHomeDir()
 {
 #ifndef MSDOS
@@ -315,6 +325,25 @@ void MarkTileDirty(int x, int y)
   redraw_mask |= REDRAW_TILES;
 }
 
+void SetBorderElement()
+{
+  int x, y;
+
+  BorderElement = EL_LEERRAUM;
+
+  for(y=0; y<lev_fieldy && BorderElement == EL_LEERRAUM; y++)
+  {
+    for(x=0; x<lev_fieldx; x++)
+    {
+      if (!IS_MASSIVE(Feld[x][y]))
+       BorderElement = EL_BETON;
+
+      if (y != 0 && y != lev_fieldy - 1 && x != lev_fieldx - 1)
+       x = lev_fieldx - 2;
+    }
+  }
+}
+
 void GetOptions(char *argv[])
 {
   char **options_left = &argv[1];
@@ -602,9 +631,9 @@ void translate_keyname(KeySym *keysym, char **x11name, char **name, int mode)
     { XK_slash,                "XK_slash",             "/" },
     { XK_colon,                "XK_colon",             ":" },
     { XK_semicolon,    "XK_semicolon",         ";" },
-    { XK_less,         "XK_less",              "less" },
-    { XK_equal,                "XK_equal",             "equal" },
-    { XK_greater,      "XK_greater",           "greater" },
+    { XK_less,         "XK_less",              "<" },
+    { XK_equal,                "XK_equal",             "=" },
+    { XK_greater,      "XK_greater",           ">" },
     { XK_question,     "XK_question",          "?" },
     { XK_at,           "XK_at",                "@" },
 
@@ -819,6 +848,21 @@ KeySym getKeySymFromX11KeyName(char *x11name)
   return keysym;
 }
 
+char getCharFromKeySym(KeySym keysym)
+{
+  char *keyname = getKeyNameFromKeySym(keysym);
+  char letter = 0;
+
+  if (strlen(keyname) == 1)
+    letter = keyname[0];
+  else if (strcmp(keyname, "space") == 0)
+    letter = ' ';
+  else if (strcmp(keyname, "circumflex") == 0)
+    letter = '^';
+
+  return letter;
+}
+
 #define TRANSLATE_JOYSYMBOL_TO_JOYNAME 0
 #define TRANSLATE_JOYNAME_TO_JOYSYMBOL 1