2
* Copyright 2010 John Schember <john@nachtimwald.com>
4
* This library is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU Lesser General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
9
* This library is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU Lesser General Public License for more details.
14
* You should have received a copy of the GNU Lesser General Public License
15
* along with this library. If not, see <http://www.gnu.org/licenses/>.
20
QByteArray PalmDoc::decompress(const QByteArray &data)
25
while (i < data.count()) {
26
int c = (quint8)data.at(i);
29
if (c >= 0x01 && c <= 0x08) {
30
for (int j = 0; j < c; j++) {
31
result.append(data.at(i + j));
39
result.append(c ^ 0x80);
42
c = (c << 8) + (quint8)data.at(i);
44
int di = (c & 0x3fff) >> 3;
45
int j = result.count();
46
int num = (c & ((1 << 3) - 1)) + 3;
48
for (int k = 0; k < num; k++) {
49
result.append((result.at(j - di + k)));