|
|
@ -40,10 +40,13 @@ enum { CRset=1, CRupdate=2 }; |
|
|
|
enum { TMwrap=1, TMinsert=2 }; |
|
|
|
enum { SCupdate, SCredraw }; |
|
|
|
|
|
|
|
#include "config.h" |
|
|
|
|
|
|
|
typedef int Color; |
|
|
|
|
|
|
|
typedef struct { |
|
|
|
KeySym k; |
|
|
|
char s[ESCSIZ]; |
|
|
|
} Key; |
|
|
|
|
|
|
|
typedef struct { |
|
|
|
char c; /* character code */ |
|
|
|
char mode; /* attribute flags */ |
|
|
@ -95,6 +98,8 @@ typedef struct { |
|
|
|
int cw; /* char width */ |
|
|
|
} XWindow; |
|
|
|
|
|
|
|
#include "config.h" |
|
|
|
|
|
|
|
/* Drawing Context */ |
|
|
|
typedef struct { |
|
|
|
unsigned long col[LEN(colorname)]; |
|
|
@ -992,6 +997,15 @@ draw(int redraw_all) { |
|
|
|
xcursor(CSdraw); |
|
|
|
} |
|
|
|
|
|
|
|
char* |
|
|
|
kmap(KeySym k) { |
|
|
|
int i; |
|
|
|
for(i = 0; i < LEN(key); i++) |
|
|
|
if(key[i].k == k) |
|
|
|
return (char*)key[i].s; |
|
|
|
return NULL; |
|
|
|
} |
|
|
|
|
|
|
|
void |
|
|
|
kpress(XKeyEvent *e) { |
|
|
|
KeySym ksym; |
|
|
@ -1004,7 +1018,7 @@ kpress(XKeyEvent *e) { |
|
|
|
meta = e->state & Mod1Mask; |
|
|
|
shift = e->state & ShiftMask; |
|
|
|
len = XLookupString(e, buf, sizeof(buf), &ksym, NULL); |
|
|
|
if(skmap = key[ksym]) |
|
|
|
if(skmap = kmap(ksym)) |
|
|
|
ttywrite(skmap, strlen(skmap)); |
|
|
|
else if(len > 0) { |
|
|
|
buf[sizeof(buf)-1] = '\0'; |
|
|
|