45 lines
1.3 KiB
C
45 lines
1.3 KiB
C
|
#define TLINE(y) ( \
|
||
|
(y) < term.scr ? term.hist[(term.histi + (y) - term.scr + 1 + HISTSIZE) % HISTSIZE] \
|
||
|
: term.line[(y) - term.scr] \
|
||
|
)
|
||
|
|
||
|
#define TLINEABS(y) ( \
|
||
|
(y) < 0 ? term.hist[(term.histi + (y) + 1 + HISTSIZE) % HISTSIZE] : term.line[(y)] \
|
||
|
)
|
||
|
|
||
|
#define UPDATEWRAPNEXT(alt, col) do { \
|
||
|
if ((term.c.state & CURSOR_WRAPNEXT) && term.c.x + term.wrapcwidth[alt] < col) { \
|
||
|
term.c.x += term.wrapcwidth[alt]; \
|
||
|
term.c.state &= ~CURSOR_WRAPNEXT; \
|
||
|
} \
|
||
|
} while (0);
|
||
|
|
||
|
static int tiswrapped(Line line);
|
||
|
static size_t tgetline(char *, const Glyph *);
|
||
|
static inline int regionselected(int, int, int, int);
|
||
|
static void tloaddefscreen(int, int);
|
||
|
static void tloadaltscreen(int, int);
|
||
|
static void selmove(int);
|
||
|
static inline void tclearglyph(Glyph *, int);
|
||
|
static void treflow(int, int);
|
||
|
static void rscrolldown(int);
|
||
|
static void tresizedef(int, int);
|
||
|
static void tresizealt(int, int);
|
||
|
void kscrolldown(const Arg *);
|
||
|
void kscrollup(const Arg *);
|
||
|
static void tscrollup(int, int, int, int);
|
||
|
static void tclearregion(int, int, int, int, int);
|
||
|
static void tdeletechar(int);
|
||
|
static int tlinelen(Line len);
|
||
|
static char * tgetglyphs(char *buf, const Glyph *gp, const Glyph *lgp);
|
||
|
static void selscroll(int, int, int);
|
||
|
|
||
|
typedef struct {
|
||
|
uint b;
|
||
|
uint mask;
|
||
|
void (*func)(const Arg *);
|
||
|
const Arg arg;
|
||
|
} MouseKey;
|
||
|
|
||
|
extern MouseKey mkeys[];
|