|
|
|
@ -408,6 +408,7 @@ static void ttysend(char *, size_t);
|
|
|
|
|
static void ttywrite(const char *, size_t);
|
|
|
|
|
static void tstrsequence(uchar);
|
|
|
|
|
|
|
|
|
|
static inline ushort sixd_to_16bit(int);
|
|
|
|
|
static void xdraws(char *, Glyph, int, int, int, int);
|
|
|
|
|
static void xhints(void);
|
|
|
|
|
static void xclear(int, int, int, int);
|
|
|
|
@ -452,6 +453,8 @@ static char *getsel(void);
|
|
|
|
|
static void selcopy(void);
|
|
|
|
|
static void selscroll(int, int);
|
|
|
|
|
static void selsnap(int, int *, int *, int);
|
|
|
|
|
static int x2col(int);
|
|
|
|
|
static int y2row(int);
|
|
|
|
|
static void getbuttoninfo(XEvent *);
|
|
|
|
|
static void mousereport(XEvent *);
|
|
|
|
|
|
|
|
|
@ -640,7 +643,7 @@ utf8validate(long *u, size_t i) {
|
|
|
|
|
return i;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
void
|
|
|
|
|
selinit(void) {
|
|
|
|
|
memset(&sel.tclick1, 0, sizeof(sel.tclick1));
|
|
|
|
|
memset(&sel.tclick2, 0, sizeof(sel.tclick2));
|
|
|
|
@ -653,7 +656,7 @@ selinit(void) {
|
|
|
|
|
sel.xtarget = XA_STRING;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
int
|
|
|
|
|
x2col(int x) {
|
|
|
|
|
x -= borderpx;
|
|
|
|
|
x /= xw.cw;
|
|
|
|
@ -661,7 +664,7 @@ x2col(int x) {
|
|
|
|
|
return LIMIT(x, 0, term.col-1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
int
|
|
|
|
|
y2row(int y) {
|
|
|
|
|
y -= borderpx;
|
|
|
|
|
y /= xw.ch;
|
|
|
|
@ -669,7 +672,7 @@ y2row(int y) {
|
|
|
|
|
return LIMIT(y, 0, term.row-1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int tlinelen(int y) {
|
|
|
|
|
int tlinelen(int y) {
|
|
|
|
|
int i = term.col;
|
|
|
|
|
|
|
|
|
|
if(term.line[y][i - 1].mode & ATTR_WRAP)
|
|
|
|
@ -681,7 +684,7 @@ static int tlinelen(int y) {
|
|
|
|
|
return i;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
void
|
|
|
|
|
selnormalize(void) {
|
|
|
|
|
int i;
|
|
|
|
|
|
|
|
|
@ -708,7 +711,7 @@ selnormalize(void) {
|
|
|
|
|
sel.ne.x = term.col - 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline bool
|
|
|
|
|
bool
|
|
|
|
|
selected(int x, int y) {
|
|
|
|
|
if(sel.type == SEL_RECTANGULAR)
|
|
|
|
|
return BETWEEN(y, sel.nb.y, sel.ne.y)
|
|
|
|
@ -2857,7 +2860,7 @@ xresize(int col, int row) {
|
|
|
|
|
xclear(0, 0, xw.w, xw.h);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline ushort
|
|
|
|
|
ushort
|
|
|
|
|
sixd_to_16bit(int x) {
|
|
|
|
|
return x == 0 ? 0 : 0x3737 + 0x2828 * x;
|
|
|
|
|
}
|
|
|
|
@ -3772,7 +3775,7 @@ focus(XEvent *ev) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static inline bool
|
|
|
|
|
bool
|
|
|
|
|
match(uint mask, uint state) {
|
|
|
|
|
return mask == XK_ANY_MOD || mask == (state & ~ignoremod);
|
|
|
|
|
}
|
|
|
|
|