Replaced more regular expressions with search & replace.
continuous-integration/drone/push Build is passing Details

This commit is contained in:
tastytea 2019-05-20 10:50:49 +02:00
parent 344e77d8bf
commit 32040c277c
Signed by: tastytea
GPG Key ID: CFC39497F1B26E07
4 changed files with 16 additions and 11 deletions

View File

@ -14,14 +14,11 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <regex>
#include "time.hpp"
#include "export.hpp"
using std::cerr;
using std::endl;
using std::regex;
using std::regex_replace;
void export_csv(const vector<Database::entry> &entries, ostream &out)
{
@ -55,7 +52,12 @@ void export_csv(const vector<Database::entry> &entries, ostream &out)
}
}
const string quote_csv(const string &field)
const string quote_csv(string field)
{
return regex_replace(field, regex("\""), "\"\"");
size_t pos = 0;
while ((pos = field.find('"', pos)) != std::string::npos)
{
field.replace(pos, 1, "\"\"");
}
return field;
}

View File

@ -27,7 +27,7 @@ using std::cout;
void export_csv(const vector<Database::entry> &entries, ostream &out = cout);
//! replaces " with "".
const string quote_csv(const string &field);
const string quote_csv(string field);
void export_adoc(const vector<Database::entry> &entries, ostream &out = cout);
//! Replaces characters in tags that asciidoctor doesn't like.

View File

@ -17,7 +17,6 @@
#include <exception>
#include <iostream>
#include <algorithm>
#include <regex>
#include <basedir.h>
#include <sqlite/execute.hpp>
#include <sqlite/query.hpp>
@ -26,8 +25,6 @@
using std::cerr;
using std::endl;
using std::regex;
using std::regex_replace;
Database::Database()
: _connected(false)
@ -75,7 +72,13 @@ bool operator ==(const Database::entry &a, const Database::entry &b)
const string Database::entry::fulltext_oneline() const
{
return regex_replace(fulltext, regex("\n"), "\\n");
string oneline = fulltext;
size_t pos = 0;
while ((pos = oneline.find('\n', pos)) != std::string::npos)
{
oneline.replace(pos, 1, "\\n");
}
return oneline;
}
void Database::store(const Database::entry &data) const

View File

@ -119,7 +119,7 @@ const string URI::strip_html(const string &html)
out = remove_html_tags(out); // Remove tags.
size_t pos = 0;
while ((pos = out.find("\r")) != std::string::npos) // Remove CR.
while ((pos = out.find("\r", pos)) != std::string::npos) // Remove CR.
{
out.replace(pos, 1, "");
}