diff options
Diffstat (limited to 'csv')
| -rw-r--r-- | csv/csv.cpp | 41 | 
1 files changed, 15 insertions, 26 deletions
| diff --git a/csv/csv.cpp b/csv/csv.cpp index 73c56aed..aa518673 100644 --- a/csv/csv.cpp +++ b/csv/csv.cpp @@ -137,43 +137,32 @@ bool CSV::getGameData(int id, unsigned char* table, QString& gamename)                  const QByteArray id_cstr = gameLine[7].toLatin1(); -                if (proto == QStringLiteral("V160")) -                { -                    /* nothing */ -                } -                else if (id_cstr.length() != 22 || -                         sscanf(id_cstr.constData(), -                                "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", -                                fuzz + 2, -                                fuzz + 0, -                                tmp + 3, -                                tmp + 2, -                                tmp + 1, -                                tmp + 0, -                                tmp + 7, -                                tmp + 6, -                                tmp + 5, -                                tmp + 4, -                                fuzz + 1) != 11) -                { +                auto do_scanf = [&]() { +                    return sscanf(id_cstr.constData(), +                                  "%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", +                                  fuzz + 2, +                                  fuzz + 0, +                                  tmp + 3, tmp + 2, tmp + 1, tmp + 0, +                                  tmp + 7, tmp + 6, tmp + 5, tmp + 4, +                                  fuzz + 1); +                }; + +                if (proto == QStringLiteral("V160") || id_cstr.length() != 22) +                    (void)0; +                else if (id_cstr.length() != 22 || do_scanf() != 11)                      qDebug() << "scanf failed" << lineno; -                }                  else                  { +                    using uchar = unsigned char;                      for (int i = 0; i < 8; i++) -                    { -                        using t = unsigned char; -                        table[i] = t(tmp[i]); -                    } +                        table[i] = uchar(tmp[i]);                  }                  gamename = std::move(name);                  return true;              }          }          else -        {              qDebug() << "malformed csv line" << lineno; -        }      }      if (id) | 
