From f361b19c06d801535a66ed1cd77b75e496b85426 Mon Sep 17 00:00:00 2001 From: Adam Dickmeiss Date: Mon, 18 Jul 2011 14:21:48 +0200 Subject: [PATCH] url_recipe: avoid empty regex On some Boost regex libraries an empty regex throws an exception --- src/url_recipe.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/url_recipe.cpp b/src/url_recipe.cpp index 8076928..7a8f28f 100644 --- a/src/url_recipe.cpp +++ b/src/url_recipe.cpp @@ -117,15 +117,19 @@ std::string mp_xml::url_recipe_handle(xmlDoc *doc, std::string recipe) break; } } - boost::regex::flag_type b_mode = boost::regex::perl; - if (mode.find_first_of('i') != std::string::npos) - b_mode |= boost::regex::icase; - boost::regex e(pattern, b_mode); - - boost::match_flag_type match_mode = boost::format_first_only; - if (mode.find_first_of('g') != std::string::npos) - match_mode = boost::format_all; - result += regex_replace(text, e, replacement, match_mode); + if (pattern.length() == 0) + result += text; + else + { + boost::regex::flag_type b_mode = boost::regex::perl; + if (mode.find_first_of('i') != std::string::npos) + b_mode |= boost::regex::icase; + boost::regex e(pattern, b_mode); + boost::match_flag_type match_mode = boost::format_first_only; + if (mode.find_first_of('g') != std::string::npos) + match_mode = boost::format_all; + result += regex_replace(text, e, replacement, match_mode); + } } } return result; -- 1.7.10.4