diff options
Diffstat (limited to 'src/termcap.c')
-rw-r--r-- | src/termcap.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/src/termcap.c b/src/termcap.c index fb9f56c..32ae63d 100644 --- a/src/termcap.c +++ b/src/termcap.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2008 +/* Copyright (c) 2008, 2009 * Juergen Weigert (jnweiger@immd4.informatik.uni-erlangen.de) * Michael Schroeder (mlschroe@immd4.informatik.uni-erlangen.de) * Micah Cowan (micah@cowan.name) @@ -31,8 +31,6 @@ #include "screen.h" #include "extern.h" -#undef DEBUGG - extern struct display *display, *displays; extern int real_uid, real_gid, eff_uid, eff_gid; extern struct term term[]; /* terminal capabilities */ @@ -139,7 +137,7 @@ int he; if ((D_tentry = (char *)malloc(TERMCAP_BUFSIZE + (extra_incap ? strlen(extra_incap) + 1 : 0))) == 0) { - Msg(0, strnomem); + Msg(0, "%s", strnomem); return -1; } @@ -226,7 +224,8 @@ int he; /* ISO2022 */ if ((D_EA && InStr(D_EA, "\033(B")) || (D_AS && InStr(D_AS, "\033(0"))) D_CG0 = 1; - if (InStr(D_termname, "xterm") || InStr(D_termname, "rxvt")) + if (InStr(D_termname, "xterm") || InStr(D_termname, "rxvt") || + (D_CKM && InStr(D_CKM, "\033[M"))) D_CXT = 1; /* "be" seems to be standard for xterms... */ if (D_CXT) @@ -261,7 +260,7 @@ int he; D_US = D_UE = 0; if (D_SG > 0) D_SO = D_SE = 0; - /* Unfortunatelly there is no 'mg' capability. + /* Unfortunately there is no 'mg' capability. * For now we think that mg > 0 if sg and ug > 0. */ if (D_UG > 0 && D_SG > 0) @@ -553,6 +552,8 @@ int map; else break; } + if (n < KMAP_KEYS) + domap = 1; if (map == 0 && domap) return 0; if (map && !domap) @@ -1197,7 +1198,7 @@ char *s; if ((D_xtable = (char ***)calloc(256, sizeof(char **))) == 0) { - Msg(0, strnomem); + Msg(0, "%s", strnomem); return -1; } @@ -1215,7 +1216,7 @@ char *s; { if ((D_xtable[curchar] = (char **)calloc(257, sizeof(char *))) == 0) { - Msg(0, strnomem); + Msg(0, "%s", strnomem); FreeTransTable(); return -1; } @@ -1249,7 +1250,7 @@ char *s; l = l * templnsub + templlen; if ((ctable[c] = (char *)malloc(l + 1)) == 0) { - Msg(0, strnomem); + Msg(0, "%s", strnomem); FreeTransTable(); return -1; } |