aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--butl/standard-version2
-rw-r--r--butl/standard-version.cxx15
2 files changed, 17 insertions, 0 deletions
diff --git a/butl/standard-version b/butl/standard-version
index 71bd5be..c198d3e 100644
--- a/butl/standard-version
+++ b/butl/standard-version
@@ -51,6 +51,7 @@ namespace butl
//
std::string string () const; // Package version.
std::string string_project () const; // Project version (no epoch/rev).
+ std::string string_project_id () const; // Project version id (no snapsn).
std::string string_version () const; // Version only (no snapshot).
std::string string_pre_release () const; // Pre-release part only (a.1).
std::string string_snapshot () const; // Snapshot part only (1234.1f23).
@@ -186,6 +187,7 @@ namespace butl
butl::optional<standard_version> min_version, bool min_open,
butl::optional<standard_version> max_version, bool max_open);
+ explicit
standard_version_constraint (const standard_version& v)
: standard_version_constraint (v, false, v, false) {}
diff --git a/butl/standard-version.cxx b/butl/standard-version.cxx
index 3e049e2..1952653 100644
--- a/butl/standard-version.cxx
+++ b/butl/standard-version.cxx
@@ -332,6 +332,21 @@ namespace butl
}
string standard_version::
+ string_project_id () const
+ {
+ std::string r (string_version ());
+
+ if (snapshot ()) // Trailing dot already in id.
+ {
+ r += (snapshot_sn == latest_sn ? "z" :
+ snapshot_id.empty () ? to_string (snapshot_sn) :
+ snapshot_id);
+ }
+
+ return r;
+ }
+
+ string standard_version::
string () const
{
std::string r;