[Mplayer-cvslog] CVS: main/input input.c,1.36,1.37

Alban Bedel CVS albeu at mplayerhq.hu
Wed Jun 12 12:39:06 CEST 2002


Update of /cvsroot/mplayer/main/input
In directory mail:/var/tmp.root/cvs-serv28948/input

Modified Files:
	input.c 
Log Message:
Add support for hex key code in input.conf


Index: input.c
===================================================================
RCS file: /cvsroot/mplayer/main/input/input.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- input.c	6 Jun 2002 07:13:56 -0000	1.36
+++ input.c	12 Jun 2002 10:39:04 -0000	1.37
@@ -11,6 +11,7 @@
 #include <sys/types.h>
 #include <sys/time.h>
 #include <fcntl.h>
+#include <ctype.h>
 
 #include "input.h"
 #include "mouse.h"
@@ -963,7 +964,7 @@
   return ret;
 }
 
-static char key_str[2];
+static char key_str[12];
 
 static char*
 mp_input_get_key_name(int key) {
@@ -974,21 +975,25 @@
       return key_names[i].name;
   }
   
-  if(key >> 8 == 0) {
-    snprintf(key_str,2,"%c",(char)key);
+  if(isascii(key)) {
+    snprintf(key_str,12,"%c",(char)key);
     return key_str;
   }
 
-  return NULL;
+  // Print the hex key code
+  snprintf(key_str,12,"%#-8x",key);
+  return key_str;
+
 }
 
 static int
 mp_input_get_key_from_name(char* name) {
-  int i,ret = 0;
-  if(strlen(name) == 1) { // Direct key code
-    (char)ret = name[0];
+  int i,ret = 0,len = strlen(name);
+  if(len == 1) { // Direct key code
+    ret = (unsigned char)name[0];
     return ret;
-  }
+  } else if(len > 2 && strncasecmp("0x",name,2) == 0)
+    return strtol(name,NULL,16);
 
   for(i = 0; key_names[i].name != NULL; i++) {
     if(strcasecmp(key_names[i].name,name) == 0)




More information about the MPlayer-cvslog mailing list