static void csihandle(void);
static void csiparse(void);
static void csireset(void);
-static int eschandle(uchar ascii);
+static int eschandle(uchar);
static void strdump(void);
static void strhandle(void);
static void strparse(void);
static void ttyresize(void);
static void ttysend(char *, size_t);
static void ttywrite(const char *, size_t);
-static void tstrsequence(uchar c);
+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);
static int xgeommasktogravity(int);
static int xloadfont(Font *, FcPattern *);
static void xloadfonts(char *, double);
-static int xloadfontset(Font *);
static void xsettitle(char *);
static void xresettitle(void);
static void xsetpointermotion(int);
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 *);
return i;
}
-static void
+void
selinit(void) {
memset(&sel.tclick1, 0, sizeof(sel.tclick1));
memset(&sel.tclick2, 0, sizeof(sel.tclick2));
sel.xtarget = XA_STRING;
}
-static int
+int
x2col(int x) {
x -= borderpx;
x /= xw.cw;
return LIMIT(x, 0, term.col-1);
}
-static int
+int
y2row(int y) {
y -= borderpx;
y /= xw.ch;
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)
return i;
}
-static void
+void
selnormalize(void) {
int i;
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)
c = "\357\277\275"; /* UTF_INVALID */
width = 1;
}
- control = ISCONTROLC1(unicodep);
ascii = unicodep;
}
* character.
*/
if(term.esc & ESC_STR) {
- if(width == 1 &&
+ if(len == 1 &&
(ascii == '\a' || ascii == 030 ||
ascii == 032 || ascii == 033 ||
ISCONTROLC1(unicodep))) {
xclear(0, 0, xw.w, xw.h);
}
-static inline ushort
+ushort
sixd_to_16bit(int x) {
return x == 0 ? 0 : 0x3737 + 0x2828 * x;
}
FcPatternDestroy(pattern);
}
-int
-xloadfontset(Font *f) {
- FcResult result;
-
- if(!(f->set = FcFontSort(0, f->pattern, FcTrue, 0, &result)))
- return 1;
- return 0;
-}
-
void
xunloadfont(Font *f) {
XftFontClose(xw.dpy, f->match);
/* Nothing was found. */
if(i >= frclen) {
if(!font->set)
- xloadfontset(font);
+ font->set = FcFontSort(0, font->pattern,
+ FcTrue, 0, &fcres);
fcsets[0] = font->set;
/*
}
}
-static inline bool
+bool
match(uint mask, uint state) {
return mask == XK_ANY_MOD || mask == (state & ~ignoremod);
}
run:
setlocale(LC_CTYPE, "");
XSetLocaleModifiers("");
- tnew(cols? cols : 1, rows? rows : 1);
+ tnew(MAX(cols, 1), MAX(rows, 1));
xinit();
selinit();
run();