diff options
Diffstat (limited to 'st.c')
| -rw-r--r-- | st.c | 37 |
1 files changed, 37 insertions, 0 deletions
| @@ -140,6 +140,7 @@ static void tscrollup(int, int); | |||
| 140 | static void tscrolldown(int, int); | 140 | static void tscrolldown(int, int); |
| 141 | static void tsetattr(int *, int); | 141 | static void tsetattr(int *, int); |
| 142 | static void tsetchar(Rune, Glyph *, int, int); | 142 | static void tsetchar(Rune, Glyph *, int, int); |
| 143 | static void tsetdirt(int, int); | ||
| 143 | static void tsetscroll(int, int); | 144 | static void tsetscroll(int, int); |
| 144 | static void tswapscreen(void); | 145 | static void tswapscreen(void); |
| 145 | static void tsetmode(int, int, int *, int); | 146 | static void tsetmode(int, int, int *, int); |
| @@ -385,6 +386,42 @@ tlinelen(int y) | |||
| 385 | } | 386 | } |
| 386 | 387 | ||
| 387 | void | 388 | void |
| 389 | selstart(int col, int row, int snap) | ||
| 390 | { | ||
| 391 | selclear(); | ||
| 392 | sel.mode = SEL_EMPTY; | ||
| 393 | sel.type = SEL_REGULAR; | ||
| 394 | sel.snap = snap; | ||
| 395 | sel.oe.x = sel.ob.x = col; | ||
| 396 | sel.oe.y = sel.ob.y = row; | ||
| 397 | selnormalize(); | ||
| 398 | |||
| 399 | if (sel.snap != 0) | ||
| 400 | sel.mode = SEL_READY; | ||
| 401 | tsetdirt(sel.nb.y, sel.ne.y); | ||
| 402 | } | ||
| 403 | |||
| 404 | void | ||
| 405 | selextend(int col, int row, int type) | ||
| 406 | { | ||
| 407 | int oldey, oldex, oldsby, oldsey, oldtype; | ||
| 408 | oldey = sel.oe.y; | ||
| 409 | oldex = sel.oe.x; | ||
| 410 | oldsby = sel.nb.y; | ||
| 411 | oldsey = sel.ne.y; | ||
| 412 | oldtype = sel.type; | ||
| 413 | |||
| 414 | sel.alt = IS_SET(MODE_ALTSCREEN); | ||
| 415 | sel.oe.x = col; | ||
| 416 | sel.oe.y = row; | ||
| 417 | selnormalize(); | ||
| 418 | sel.type = type; | ||
| 419 | |||
| 420 | if (oldey != sel.oe.y || oldex != sel.oe.x || oldtype != sel.type) | ||
| 421 | tsetdirt(MIN(sel.nb.y, oldsby), MAX(sel.ne.y, oldsey)); | ||
| 422 | } | ||
| 423 | |||
| 424 | void | ||
| 388 | selnormalize(void) | 425 | selnormalize(void) |
| 389 | { | 426 | { |
| 390 | int i; | 427 | int i; |
