diff options
| author | Konstantin Podsvirov <konstantin@podsvirov.pro> | 2017-10-13 05:33:32 +0300 |
|---|---|---|
| committer | Konstantin Podsvirov <konstantin@podsvirov.pro> | 2017-10-13 05:33:32 +0300 |
| commit | 37fba399ef5c57573a1218206cb2c55f5f6bc13c (patch) | |
| tree | 796534fec4f3fef31d42cbb61f73a8473a96c6cd /toolsrc/src/commands_export_ifw.cpp | |
| parent | 9e19c24d2911ff1ef648aeed0c596e3987eafebf (diff) | |
| download | vcpkg-37fba399ef5c57573a1218206cb2c55f5f6bc13c.tar.gz vcpkg-37fba399ef5c57573a1218206cb2c55f5f6bc13c.zip | |
[vcpkg-export-ifw] Safe description
QtIFW support rich text for component description,
bu some port has not safe ampersand symbol
in description text (for example 'openexr' package),
that should be replaced to '&' symbol name
Diffstat (limited to 'toolsrc/src/commands_export_ifw.cpp')
| -rw-r--r-- | toolsrc/src/commands_export_ifw.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/toolsrc/src/commands_export_ifw.cpp b/toolsrc/src/commands_export_ifw.cpp index 191dbb763..c001a93ed 100644 --- a/toolsrc/src/commands_export_ifw.cpp +++ b/toolsrc/src/commands_export_ifw.cpp @@ -26,6 +26,14 @@ namespace vcpkg::Commands::Export::IFW return date_time_as_string; } + std::string safe_rich_from_plain_text(const std::string& text) + { + // match standalone ampersand, no HTML number or name
+ std::regex standalone_ampersand(R"###(&(?!(#[0-9]+|\w+);))###"); + + return std::regex_replace(text, standalone_ampersand, "&"); + } + fs::path get_packages_dir_path(const std::string& export_id, const Options& ifw_options, const VcpkgPaths& paths) { return ifw_options.maybe_packages_dir_path.has_value() @@ -156,7 +164,7 @@ namespace vcpkg::Commands::Export::IFW </Package> )###", action.spec.name(), - binary_paragraph.description, + safe_rich_from_plain_text(binary_paragraph.description), binary_paragraph.version, create_release_date())); } |
