summaryrefslogtreecommitdiffstats
path: root/src/package
diff options
context:
space:
mode:
authorMatthias Beyer <matthias.beyer@atos.net>2021-08-13 17:58:26 +0200
committerMatthias Beyer <matthias.beyer@atos.net>2021-08-13 17:58:27 +0200
commit589f428b05d7a7bae1759f92e82d29b1281522db (patch)
tree76caf82df308aaa93b8d3db7aa10e62691c80c56 /src/package
parent2d4945938be440411e43c3440a368df0f70e5810 (diff)
Fix: Allow punctuation (.-) in package name
This patch fixes that punctuation (namingly dot and dash) are allowed in a package name. A testcase was added. Signed-off-by: Matthias Beyer <matthias.beyer@atos.net>
Diffstat (limited to 'src/package')
-rw-r--r--src/package/dependency/mod.rs16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/package/dependency/mod.rs b/src/package/dependency/mod.rs
index e58d0a0..37cb82b 100644
--- a/src/package/dependency/mod.rs
+++ b/src/package/dependency/mod.rs
@@ -34,7 +34,7 @@ pub trait ParseDependency {
lazy_static! {
pub(in crate::package::dependency) static ref DEPENDENCY_PARSING_RE: Regex =
- Regex::new("^(?P<name>[[:alpha:]]([[[:alnum:]]-_])*) (?P<version>([\\*=><])?[[:alnum:]]([[[:alnum:]][[:punct:]]])*)$").unwrap();
+ Regex::new("^(?P<name>[[:alpha:]]([[[:alnum:]]\\.\\-_])*) (?P<version>([\\*=><])?[[:alnum:]]([[[:alnum:]][[:punct:]]])*)$").unwrap();
}
/// Helper function for the actual implementation of the ParseDependency trait.
@@ -116,4 +116,18 @@ mod tests {
PackageVersionConstraint::from_version(String::from("="), exact("1b"))
);
}
+
+ #[test]
+ fn test_dependency_string_with_punctuation() {
+ let s = "foo-bar1.2.3 =0.123";
+ let d = Dependency::from(String::from(s));
+
+ let (n, c) = d.parse_as_name_and_version().unwrap();
+
+ assert_eq!(n, name("foo-bar1.2.3"));
+ assert_eq!(
+ c,
+ PackageVersionConstraint::from_version(String::from("="), exact("0.123"))
+ );
+ }
}