aboutsummaryrefslogtreecommitdiff
path: root/libbpkg/manifest.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'libbpkg/manifest.cxx')
-rw-r--r--libbpkg/manifest.cxx15
1 files changed, 14 insertions, 1 deletions
diff --git a/libbpkg/manifest.cxx b/libbpkg/manifest.cxx
index e1dfb52..2374b77 100644
--- a/libbpkg/manifest.cxx
+++ b/libbpkg/manifest.cxx
@@ -2093,7 +2093,7 @@ namespace bpkg
// Verify the URL fragment.
//
if (url_.fragment)
- git_ref_filter r (*url_.fragment);
+ parse_git_ref_filters (*url_.fragment);
break;
}
@@ -2327,6 +2327,19 @@ namespace bpkg
"git repository commit id must be 40 characters long");
}
+ git_ref_filters
+ parse_git_ref_filters (const string& s)
+ {
+ git_ref_filters r;
+ for (size_t p (0); p != string::npos; )
+ {
+ size_t e (s.find (',', p));
+ r.emplace_back (string (s, p, e != string::npos ? e - p : e));
+ p = e != string::npos ? e + 1 : e;
+ }
+ return r;
+ }
+
// repository_manifest
//
repository_role repository_manifest::