summaryrefslogtreecommitdiff
path: root/saltoqd/cardmanager.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'saltoqd/cardmanager.cpp')
-rw-r--r--saltoqd/cardmanager.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/saltoqd/cardmanager.cpp b/saltoqd/cardmanager.cpp
index 7465cc4..ab3a0bc 100644
--- a/saltoqd/cardmanager.cpp
+++ b/saltoqd/cardmanager.cpp
@@ -274,28 +274,37 @@ void CardManager::uninstallDeck(CardDeck *deck)
disconnect(deck, 0, this, 0);
}
+QString CardManager::escapeString(const QString &s)
+{
+ QString e(s);
+ e.replace('\\', "\\\\");
+ e.replace('\n', "\\n");
+ e.replace('"', "\\\"");
+ return e;
+}
+
QString CardManager::generateCardDescription(const QString &verb, Card *card) const
{
QString desc = verb + " { ";
desc += QString("id = \"%1\", ").arg(card->id());
desc += QString("version = 2, cardevents = \"true\", ");
if (!card->header().isEmpty()) {
- desc += QString("header = \"%1\", ").arg(card->header());
+ desc += QString("header = \"%1\", ").arg(escapeString(card->header()));
}
if (!card->title().isEmpty()) {
- desc += QString("title = \"%1\", ").arg(card->title());
+ desc += QString("title = \"%1\", ").arg(escapeString(card->title()));
}
if (card->dateTime().isValid()) {
desc += QString("time = \"%1\", ").arg(card->dateTime().toMSecsSinceEpoch());
}
if (!card->info().isEmpty()) {
- desc += QString("info = \"%1\", ").arg(card->info());
+ desc += QString("info = \"%1\", ").arg(escapeString(card->info()));
}
if (!card->isVibrate()) {
desc += QString("suppressvibe = \"true\", ");
}
if (!card->text().isEmpty()) {
- desc += QString("detail = { \"%1\" }").arg(card->text());
+ desc += QString("detail = { \"%1\" }").arg(escapeString(card->text()));
}
desc += QString("}\n");
return desc;