1
0
Fork 0
mirror of https://git.jami.net/savoirfairelinux/jami-client-qt.git synced 2025-08-04 23:05:48 +02:00
jami-client-qt/src/libclient/vcard.cpp
Amin Bandali 8d46acedf1 misc: Update copyright years to 2023
Change-Id: Idf38e82631a4e22540aa5dec8ec2db0ab4a38c2e
2023-02-06 01:47:15 -05:00

53 lines
1.7 KiB
C++

/*
* Copyright (C) 2018-2023 Savoir-faire Linux Inc.
* Author: Sébastien Blin <sebastien.blin@savoirfairelinux.com>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "vcard.h"
namespace lrc {
namespace vCard {
namespace utils {
QHash<QByteArray, QByteArray>
toHashMap(const QByteArray& content)
{
// TODO without Qt
QHash<QByteArray, QByteArray> vCard;
QByteArray previousKey, previousValue;
const QList<QByteArray> lines = content.split('\n');
Q_FOREACH (const QByteArray& property, lines) {
// Ignore empty lines
if (property.size()) {
// Some properties are over multiple lines
if (property[0] == ' ' && previousKey.size()) {
previousValue += property.right(property.size() - 1);
}
// Do not use split, URIs can have : in them
const int dblptPos = property.indexOf(':');
const QByteArray k(property.left(dblptPos)),
v(property.right(property.size() - dblptPos - 1));
vCard[k] = v;
}
}
return vCard;
}
} // namespace utils
} // namespace vCard
} // namespace lrc