Skip to content

csplit: incorrect split with --suppress-matched and positive offset #7052

@jfinkels

Description

@jfinkels

Environment: Ubuntu 20.04, uutils main branch (git commit 6a8b766), GNU coreutils v9.5.227-28b1.

Steps to reproduce:

printf "a\nb\nc\nd\ne\n" | ./target/debug/csplit - --suppress-matched /b/+1

What happens now: with uutils csplit the command outputs:

2
6

and the contents of the two files are

$ cat xx00
a
$ cat xx01
c
d
e

What I expected to happen: with GNU csplit, the command outputs

4
4

and the contents of the two files are

$ cat xx00
a
b
$ cat xx01
d
e

Notes: this is causing a test failure in GNU test file tests/csplit/csplit-suppress-matched.pl.

Also, the current erroneous behavior is enforced by a unit test in tests/by-util/test_csplit.rs named test_up_to_match_offset_option_suppress_matched. That test case will need to be updated as well.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions