annotate console/libgnt/gntkeys.c @ 14976:1c0772f7260b

[gaim-migrate @ 17755] Decide the values for ctrl-up/down at startup depending on $TERM. committer: Tailor Script <tailor@pidgin.im>
author Sadrul Habib Chowdhury <imadil@gmail.com>
date Wed, 15 Nov 2006 20:39:32 +0000
parents 2ccce4e114ca
children b28f5caf9445
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14091
ae4cbed1b309 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
1 #include "gntkeys.h"
ae4cbed1b309 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
2
14877
c01f62c83647 [gaim-migrate @ 17646]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14876
diff changeset
3 #include <stdlib.h>
14091
ae4cbed1b309 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
4 #include <string.h>
ae4cbed1b309 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
5
14971
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
6 static const char *term;
14876
70623f0d5cdc [gaim-migrate @ 17645]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14091
diff changeset
7
14976
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
8 void gnt_init_keys()
14091
ae4cbed1b309 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
9 {
14971
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
10 if (term == NULL) {
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
11 term = getenv("TERM");
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
12 if (!term)
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
13 term = ""; /* Just in case */
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
14 }
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
15
14976
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
16 if (strcmp(term, "xterm") == 0 || strcmp(term, "rxvt") == 0) {
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
17 gnt_key_cup = "\033" "[1;5A";
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
18 gnt_key_cdown = "\033" "[1;5B";
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
19 gnt_key_cright = "\033" "[1;5C";
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
20 gnt_key_cleft = "\033" "[1;5D";
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
21 } else if (strcmp(term, "screen") == 0 || strcmp(term, "rxvt-unicode") == 0) {
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
22 gnt_key_cup = "\033" "Oa";
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
23 gnt_key_cdown = "\033" "Ob";
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
24 gnt_key_cright = "\033" "Oc";
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
25 gnt_key_cleft = "\033" "Od";
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
26 }
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
27 }
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
28
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
29 void gnt_keys_refine(char *text)
1c0772f7260b [gaim-migrate @ 17755]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14975
diff changeset
30 {
14876
70623f0d5cdc [gaim-migrate @ 17645]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14091
diff changeset
31 if (*text == 27 && *(text + 1) == '[' && *(text + 3) == '\0' &&
14975
2ccce4e114ca [gaim-migrate @ 17754]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14971
diff changeset
32 (*(text + 2) >= 'A' && *(text + 2) <= 'D')) {
14971
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
33 /* Apparently this is necessary for urxvt and screen and xterm */
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
34 if (strcmp(term, "screen") == 0 || strcmp(term, "rxvt-unicode") == 0 ||
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
35 strcmp(term, "xterm") == 0)
14876
70623f0d5cdc [gaim-migrate @ 17645]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14091
diff changeset
36 *(text + 1) = 'O';
14971
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
37 } else if (*(unsigned char*)text == 195) {
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
38 if (*(text + 2) == 0 && strcmp(term, "xterm") == 0) {
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
39 *(text) = 27;
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
40 *(text + 1) -= 64; /* Say wha? */
99112cd4a2f4 [gaim-migrate @ 17750]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents: 14877
diff changeset
41 }
14091
ae4cbed1b309 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
42 }
ae4cbed1b309 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
43 }
ae4cbed1b309 [gaim-migrate @ 16715]
Sadrul Habib Chowdhury <imadil@gmail.com>
parents:
diff changeset
44