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);
 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)
        xclear(0, 0, xw.w, xw.h);
 }
 
-static inline ushort
+ushort
 sixd_to_16bit(int x) {
        return x == 0 ? 0 : 0x3737 + 0x2828 * x;
 }
        }
 }
 
-static inline bool
+bool
 match(uint mask, uint state) {
        return mask == XK_ANY_MOD || mask == (state & ~ignoremod);
 }