Skip to content

editorDelRow increments row indices instead of decrementing them #117

@glopusmaximus

Description

@glopusmaximus

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

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:

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions