aboutsummaryrefslogtreecommitdiff
path: root/toolsrc/src/vcpkglib_helpers.cpp
diff options
context:
space:
mode:
authorAlexander Karatarakis <alkarata@microsoft.com>2016-11-02 20:26:52 -0700
committerAlexander Karatarakis <alkarata@microsoft.com>2016-11-02 20:26:52 -0700
commit4665b16ab3556235ddcbdac160df261ee87694e4 (patch)
tree6bbe535285a808ff457ada4cccc28838a7868400 /toolsrc/src/vcpkglib_helpers.cpp
parent079a027b1e81becd4ba448362579f625dd7bcca4 (diff)
downloadvcpkg-4665b16ab3556235ddcbdac160df261ee87694e4.tar.gz
vcpkg-4665b16ab3556235ddcbdac160df261ee87694e4.zip
Add checks for fields in CONTROL file. Resolves #228
Diffstat (limited to 'toolsrc/src/vcpkglib_helpers.cpp')
-rw-r--r--toolsrc/src/vcpkglib_helpers.cpp29
1 files changed, 26 insertions, 3 deletions
diff --git a/toolsrc/src/vcpkglib_helpers.cpp b/toolsrc/src/vcpkglib_helpers.cpp
index 02182b995..3d14d4b06 100644
--- a/toolsrc/src/vcpkglib_helpers.cpp
+++ b/toolsrc/src/vcpkglib_helpers.cpp
@@ -13,14 +13,37 @@ namespace vcpkg {namespace details
}
return it->second;
- };
+ }
+
+ std::string remove_optional_field(std::unordered_map<std::string, std::string>* fields, const std::string& fieldname)
+ {
+ auto it = fields->find(fieldname);
+ if (it == fields->end())
+ {
+ return std::string();
+ }
+
+ const std::string value = std::move(it->second);
+ fields->erase(it);
+ return value;
+ }
std::string required_field(const std::unordered_map<std::string, std::string>& fields, const std::string& fieldname)
{
auto it = fields.find(fieldname);
- vcpkg::Checks::check_exit(it != fields.end(), "Required field not present: %s", fieldname);
+ Checks::check_exit(it != fields.end(), "Required field not present: %s", fieldname);
return it->second;
- };
+ }
+
+ std::string remove_required_field(std::unordered_map<std::string, std::string>* fields, const std::string& fieldname)
+ {
+ auto it = fields->find(fieldname);
+ Checks::check_exit(it != fields->end(), "Required field not present: %s", fieldname);
+
+ const std::string value = std::move(it->second);
+ fields->erase(it);
+ return value;
+ }
std::vector<std::string> parse_depends(const std::string& depends_string)
{