Skip to content

editorDelRow increments row indices instead of decrementing them #117

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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