Blob Blame History Raw
--- AGReader/Sources/Input.c.keys	2006-05-27 12:01:05.000000000 +0200
+++ AGReader/Sources/Input.c	2006-05-28 12:02:06.000000000 +0200
@@ -163,7 +163,11 @@
 {
 	static char *Keys[] = {
 		"OA", "OB", "OC","OD",        /* Cursor keys */
-		"[5~","[6~","[H","[F",NULL    /* PgDown, PgUp, End, Home */
+		"[5~","[6~","[H","[F",        /* PgDown, PgUp, End, Home */
+		"[1~","[4~","OH","OF",        /* 2x Alternative End, Home */
+		"[11~","[12~", "[13~",        /* F1, F2, F3 */
+		"OP" ,"OQ", "OR",             /* Alternative F1, F2, F3 */
+		"[[A","[[B","[[C", NULL       /* Linux console F1, F2, F3 */
 	};
 	static char *StrNode[] = {
 		"help", "index", "table of content"
@@ -178,7 +182,9 @@
 		/* Get a single char from stdin */
 		*p = getchr();
 		/* A escape char indicates beginning of command */
-		if(*p == '\033') *(p=buffer) = '\033'; *++p = 0;
+		if(*p == '\033') *(p=buffer) = '\033';
+		
+		*++p = 0;
 
 		/* Special sequence ? */
 		if( buffer[0]=='\033' )
@@ -202,6 +208,19 @@
 						case 5: scroll_vert(&terminfo,  terminfo.height-2); break;
 						case 6: scroll_vert(&terminfo, -0x7fff); break;
 						case 7: scroll_vert(&terminfo,  0x7fff); break;
+						case 8: scroll_vert(&terminfo, -0x7fff); break;
+						case 9: scroll_vert(&terminfo,  0x7fff); break;
+						case 10: scroll_vert(&terminfo, -0x7fff); break;
+						case 11: scroll_vert(&terminfo,  0x7fff); break;
+						case 12: p[-1] = '1'; goto singleton;
+						case 13: p[-1] = '2'; goto singleton;
+						case 14: p[-1] = '3'; goto singleton;
+						case 15: p[-1] = '1'; goto singleton;
+						case 16: p[-1] = '2'; goto singleton;
+						case 17: p[-1] = '3'; goto singleton;
+						case 18: p[-1] = '1'; goto singleton;
+						case 19: p[-1] = '2'; goto singleton;
+						case 20: p[-1] = '3'; goto singleton;
 					}
 					p=buffer;
 				} else goto singleton;