cmd.second["fid"] = m_fid;
}
- cmd.second["fmask"] = QString::number(m_fmask, 16);
- // Clear any bits which aren't known.
- cmd.second["amask"] = QString::number(m_amask & FileAnimeFlag::AllData, 16);
+ // Clear any bits which aren't known and pad to 8 characters
+ cmd.second["fmask"] = QString::number(m_fmask & FileFlag::AllData, 16)
+ .rightJustified(8, QLatin1Char('0'));
+ cmd.second["amask"] = QString::number(m_amask & FileAnimeFlag::AllData, 16)
+ .rightJustified(8, QLatin1Char('0'));
return cmd;
}
void FileCommand::readReplyData(const QString &reply)
{
- QString d = reply.mid(reply.indexOf('\n'));
-
+ QString d = reply.mid(reply.indexOf('\n')).trimmed();
+qDebug() << d;
QList<QString> parts = d.split('|', QString::KeepEmptyParts);
-
+qDebug() << parts;
m_fid = parts[0].toInt();
if (m_fmask == 0 && m_amask == 0)
return;
}
- int partNo = 0;
- for (int i = 0, flag = 1; i < 32; ++i, flag <<= 1)
+ int partNo = 1;
+ for (int i = 0, flag = 1 << 31; i < 32; ++i, flag = (flag >> 1) & ~(1 << 31))
{
- if (parts.size() >= partNo)
- {
-qDebug() << "Not enough parts in reply.";
- continue;
- }
if (m_fmask & flag)
{
+ if (partNo >= parts.size())
+ {
+qDebug() << "Not enough parts in reply.";
+ continue;
+ }
fileFlagData.insert(FileFlags(flag), parts[partNo]);
++partNo;
}
}
- for (int i = 0, flag = 1; i < 32; ++i, flag <<= 1)
+ for (int i = 0, flag = 1 << 31; i < 32; ++i, flag = (flag >> 1) & ~(1 << 31))
{
- if (parts.size() >= partNo)
- {
-qDebug() << "Not enough parts in reply.";
- continue;
- }
if (m_amask & flag)
{
+ if (partNo >= parts.size())
+ {
+qDebug() << "Not enough parts in reply.";
+ continue;
+ }
fileAnimeFlagData.insert(FileAnimeFlags(flag), parts[partNo]);
++partNo;
}