54 lines
2.4 KiB
Text
54 lines
2.4 KiB
Text
From f8a0bbff1bb98eee95658fa81e276e9630a67468 Mon Sep 17 00:00:00 2001
|
|
From: Guenter Obiltschnig <guenter.obiltschnig@appinf.com>
|
|
Date: Sat, 11 Feb 2017 12:03:37 +0100
|
|
Subject: [PATCH] fixed GH #1581: Cannot find 'pcre.h' when using
|
|
POCO_UNBUNDLED, a non-system PCRE, and CMake
|
|
|
|
Index: Foundation/src/RegularExpression.cpp
|
|
--- Foundation/src/RegularExpression.cpp.orig
|
|
+++ Foundation/src/RegularExpression.cpp
|
|
@@ -62,14 +62,14 @@ RegularExpression::RegularExpression(const std::string
|
|
throw RegularExpressionException(msg.str());
|
|
}
|
|
if (study)
|
|
- _extra = pcre_study(_pcre, 0, &error);
|
|
+ _extra = pcre_study(reinterpret_cast<pcre*>(_pcre), 0, &error);
|
|
}
|
|
|
|
|
|
RegularExpression::~RegularExpression()
|
|
{
|
|
- if (_pcre) pcre_free(_pcre);
|
|
- if (_extra) pcre_free(_extra);
|
|
+ if (_pcre) pcre_free(reinterpret_cast<pcre*>(_pcre));
|
|
+ if (_extra) pcre_free(reinterpret_cast<struct pcre_extra*>(_extra));
|
|
}
|
|
|
|
|
|
@@ -78,7 +78,7 @@ int RegularExpression::match(const std::string& subjec
|
|
poco_assert (offset <= subject.length());
|
|
|
|
int ovec[OVEC_SIZE];
|
|
- int rc = pcre_exec(_pcre, _extra, subject.c_str(), int(subject.size()), int(offset), options & 0xFFFF, ovec, OVEC_SIZE);
|
|
+ int rc = pcre_exec(reinterpret_cast<pcre*>(_pcre), reinterpret_cast<struct pcre_extra*>(_extra), subject.c_str(), int(subject.size()), int(offset), options & 0xFFFF, ovec, OVEC_SIZE);
|
|
if (rc == PCRE_ERROR_NOMATCH)
|
|
{
|
|
mtch.offset = std::string::npos;
|
|
@@ -112,7 +112,7 @@ int RegularExpression::match(const std::string& subjec
|
|
matches.clear();
|
|
|
|
int ovec[OVEC_SIZE];
|
|
- int rc = pcre_exec(_pcre, _extra, subject.c_str(), int(subject.size()), int(offset), options & 0xFFFF, ovec, OVEC_SIZE);
|
|
+ int rc = pcre_exec(reinterpret_cast<pcre*>(_pcre), reinterpret_cast<struct pcre_extra*>(_extra), subject.c_str(), int(subject.size()), int(offset), options & 0xFFFF, ovec, OVEC_SIZE);
|
|
if (rc == PCRE_ERROR_NOMATCH)
|
|
{
|
|
return 0;
|
|
@@ -225,7 +225,7 @@ std::string::size_type RegularExpression::substOne(std
|
|
if (offset >= subject.length()) return std::string::npos;
|
|
|
|
int ovec[OVEC_SIZE];
|
|
- int rc = pcre_exec(_pcre, _extra, subject.c_str(), int(subject.size()), int(offset), options & 0xFFFF, ovec, OVEC_SIZE);
|
|
+ int rc = pcre_exec(reinterpret_cast<pcre*>(_pcre), reinterpret_cast<struct pcre_extra*>(_extra), subject.c_str(), int(subject.size()), int(offset), options & 0xFFFF, ovec, OVEC_SIZE);
|
|
if (rc == PCRE_ERROR_NOMATCH)
|
|
{
|
|
return std::string::npos;
|