#117·kilo

editorDelRow increments row indices instead of decrementing them

Author: glopusmaximusCreated Mar 12, 2026Updated Mar 12, 2026

In editorDelRow (line 628), after memmove shifts rows left to fill the gap, the loop updates row indices:

c
for (int j = at; j < E.numrows-1; j++) E.row[j].idx++;

This increments idx, but deletion should decrement it. After deleting row 5, row 6 (now at position 5) should have idx = 5, not idx = 7.

Compare with editorInsertRow (line 597), which correctly increments after shifting rows right:

c
for (int j = at+1; j <= E.numrows; j++) E.row[j].idx++;

The fix is E.row[j].idx-- instead of E.row[j].idx++.

The corrupted idx values cause editorUpdateSyntax to access wrong rows when checking for open multi-line comments (line 408), which can lead to the segfault reported in #28. PR #20 contains a fix but was never merged.