diff options
| author | John Turner <jturner.usa@gmail.com> | 2025-10-24 21:40:14 -0400 |
|---|---|---|
| committer | John Turner <jturner.usa@gmail.com> | 2025-10-24 21:40:14 -0400 |
| commit | ccf7aeb98d6dcc67ce2190b7343bb4543165aeb0 (patch) | |
| tree | 09e5533f66adf074b1c8248dd9f338d624635cc2 /src/atom | |
| parent | aa0d4edc57a9ac74a79f6f567e17ce583abb84de (diff) | |
| download | gentoo-utils-ccf7aeb98d6dcc67ce2190b7343bb4543165aeb0.tar.gz | |
disallow upper case letters in versions
Diffstat (limited to 'src/atom')
| -rw-r--r-- | src/atom/parsers.rs | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/atom/parsers.rs b/src/atom/parsers.rs index f4686f2..e1954c0 100644 --- a/src/atom/parsers.rs +++ b/src/atom/parsers.rs @@ -51,7 +51,9 @@ pub fn version<'a>() -> impl Parser<&'a str, Output = Version> { let rev = version_number().preceded_by(tag("-r")); numbers - .and(opt(r#if(|c: &char| c.is_ascii_alphabetic()))) + .and(opt(r#if(|c: &char| { + c.is_ascii_alphabetic() && c.is_ascii_lowercase() + }))) .and(opt(suffixes.preceded_by(tag("_")))) .and(opt(rev)) .map(|(((numbers, letter), suffixes), rev)| Version { @@ -287,4 +289,11 @@ mod test { atom().check_finished(it).unwrap(); } + + #[test] + fn test_version_with_uppercase_letter() { + let it = InputIter::new("foo/bar-1.0.0V"); + + assert!(atom().check_finished(it).is_err()); + } } |
