mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 12:23:15 +00:00
LibDiff: Handle parsing patches containing timestamps separated by \t
This is still a very naive implementation and there are plenty of other cases that we should handle (like a quoted path) - but just looking for a tab handles the common case.
This commit is contained in:
parent
3e3a200eee
commit
3e61d20b40
|
@ -261,3 +261,18 @@ TEST_CASE(patch_remove_file_trailing_garbage)
|
|||
|
||||
EXPECT_FILE_EQ(ByteString::formatted("{}/a", s_test_dir), "2\n"sv);
|
||||
}
|
||||
|
||||
TEST_CASE(patch_with_timestamp_separated_by_tab)
|
||||
{
|
||||
PatchSetup setup;
|
||||
|
||||
auto patch = R"(
|
||||
--- /dev/null 2024-03-02 20:19:31.462146900 +1300
|
||||
+++ 1 2024-03-02 20:56:57.922136203 +1300
|
||||
@@ -0,0 +1 @@
|
||||
+a
|
||||
)"sv;
|
||||
|
||||
run_patch(ExpectSuccess::Yes, {}, patch, "patching file 1\n"sv);
|
||||
EXPECT_FILE_EQ(ByteString::formatted("{}/1", s_test_dir), "a\n"sv);
|
||||
}
|
||||
|
|
|
@ -61,7 +61,10 @@ bool Parser::consume_line_number(size_t& number)
|
|||
ErrorOr<String> Parser::parse_file_line(Optional<size_t> const& strip_count)
|
||||
{
|
||||
// FIXME: handle parsing timestamps as well.
|
||||
auto path = consume_line();
|
||||
auto line = consume_line();
|
||||
|
||||
GenericLexer line_parser(line);
|
||||
auto path = line_parser.consume_until('\t');
|
||||
|
||||
// No strip count given. Default to basename of file.
|
||||
if (!strip_count.has_value())
|
||||
|
|
Loading…
Reference in a new issue