dte test coverage


Directory: ./
File: src/copy.c
Date: 2025-02-14 16:55:22
Exec Total Coverage
Lines: 16 21 76.2%
Functions: 1 1 100.0%
Branches: 9 14 64.3%

Line Branch Exec Source
1 #include "copy.h"
2 #include "block-iter.h"
3 #include "change.h"
4 #include "insert.h"
5 #include "move.h"
6 #include "selection.h"
7
8 6 void paste(Clipboard *clip, View *view, PasteLinesType type, bool move_after)
9 {
10
1/2
✓ Branch 0 (2→3) taken 6 times.
✗ Branch 1 (2→24) not taken.
6 if (clip->len == 0) {
11 return;
12 }
13
14 6 BUG_ON(!clip->buf);
15
4/4
✓ Branch 0 (5→6) taken 5 times.
✓ Branch 1 (5→7) taken 1 times.
✓ Branch 2 (6→7) taken 1 times.
✓ Branch 3 (6→9) taken 4 times.
6 if (!clip->is_lines || type == PASTE_LINES_INLINE) {
16 2 insert_text(view, clip->buf, clip->len, move_after);
17 2 return;
18 }
19
20 4 size_t del_count = 0;
21
1/2
✗ Branch 0 (9→10) not taken.
✓ Branch 1 (9→12) taken 4 times.
4 if (view->selection) {
22 del_count = prepare_selection(view);
23 unselect(view);
24 }
25
26 4 const long x = view_get_preferred_x(view);
27
1/2
✓ Branch 0 (13→14) taken 4 times.
✗ Branch 1 (13→19) not taken.
4 if (!del_count) {
28
1/2
✓ Branch 0 (14→15) taken 4 times.
✗ Branch 1 (14→16) not taken.
4 if (type == PASTE_LINES_BELOW_CURSOR) {
29 4 block_iter_eat_line(&view->cursor);
30 } else {
31 BUG_ON(type != PASTE_LINES_ABOVE_CURSOR);
32 block_iter_bol(&view->cursor);
33 }
34 }
35
36 4 buffer_replace_bytes(view, del_count, clip->buf, clip->len);
37
38
1/2
✗ Branch 0 (20→21) not taken.
✓ Branch 1 (20→22) taken 4 times.
4 if (move_after) {
39 block_iter_skip_bytes(&view->cursor, clip->len);
40 } else {
41 // Try to keep cursor column
42 4 move_to_preferred_x(view, x);
43 }
44
45 // New preferred_x
46 4 view_reset_preferred_x(view);
47 }
48