diff options
| author | WormHeamer | 2026-01-02 03:40:51 -0500 |
|---|---|---|
| committer | WormHeamer | 2026-01-02 03:40:51 -0500 |
| commit | 548284b1ff30fb349822886281fd44a371b73b41 (patch) | |
| tree | b47d902daef8115524cf3c121ae522135b4b49ba | |
| parent | 5898b883c8cb2817dade1b234ad29ceeab624c0e (diff) | |
fix invalid null yank at end of file
| -rw-r--r-- | main.c | 10 |
1 files changed, 6 insertions, 4 deletions
@@ -1367,6 +1367,7 @@ void yank_range(Editor *e, TxtLoc start, TxtLoc end) { end = t; } Str s = txt_collect_range(start, end, &e->scratch); + if (!s.n) return; e->yank.s = realloc(e->yank.s, s.n); if (!e->yank.s) FAIL_WITH_MSG("couldn't reallocate clipboard"); memcpy(e->yank.s, s.s, s.n); @@ -1475,12 +1476,13 @@ void mode_key_normal(Editor *e, u32 c) { e->mode = 1; break; case 'x': - yank_range(e, eb->cur, cnext(eb->cur)); - eb->cur = txt_delete_c(cnext(eb->cur)); + if (!at_end(eb->cur)) { + yank_range(e, eb->cur, cnext(eb->cur)); + eb->cur = txt_delete_c(cnext(eb->cur)); + } break; case 's': - yank_range(e, eb->cur, cnext(eb->cur)); - eb->cur = txt_delete_c(cnext(eb->cur)); + mode_key_normal(e, 'x'); e->mode = 1; break; case 'r': |
