From 2b48e21a28a13c05f0a70157d9091e2a665c1886 Mon Sep 17 00:00:00 2001 From: Marc de Jonge Date: Thu, 30 Jan 2025 16:19:11 +0100 Subject: [PATCH] Fix for issue 1809 --- src/traits.rs | 2 +- tests/issues.rs | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/traits.rs b/src/traits.rs index f778c360..782bc4aa 100644 --- a/src/traits.rs +++ b/src/traits.rs @@ -462,7 +462,7 @@ impl<'a> Input for &'a str { let (str1, str2) = self.split_at(i); Ok((str2, str1)) } - None => Ok(self.split_at(0)), + None => Ok(self.take_split(self.input_len())), } } diff --git a/tests/issues.rs b/tests/issues.rs index 2b1923d6..28558cc7 100644 --- a/tests/issues.rs +++ b/tests/issues.rs @@ -269,3 +269,15 @@ fn issue_1586_parser_iterator_impl() { assert_eq!(parse_input("123\n456").collect::>(), vec![123, 456]); } + +#[test] +fn issue_1809_complete_string_parser_returns_wrong_slice() { + use nom::character::complete::multispace0; + use nom::combinator::recognize; + + let input = "\n"; + assert_eq!( + recognize::<_, nom::error::Error<_>, _>(multispace0).parse(input), + Ok(("", "\n")) + ); +} \ No newline at end of file