From: tsteven4 <13596209+tsteven4@users.noreply.github.com> Date: Sat, 29 Apr 2023 13:11:34 +0000 (-0600) Subject: remove C style legacy time from sbn format. (#1096) X-Git-Tag: archive/raspbian/1.10.0+ds-2+rpi1~1^2~12^2~1^2~63 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=2079d52801921b3446d2e2dd4118068a45ec9f5a;p=gpsbabel.git remove C style legacy time from sbn format. (#1096) --- diff --git a/sbn.cc b/sbn.cc index f28669026..222cdd548 100644 --- a/sbn.cc +++ b/sbn.cc @@ -19,16 +19,19 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ -#include // for tm -#include // for size_t, memcpy +#include // for size_t, memcpy -#include // for QString -#include // for QVector -#include // for Q_UNUSED +#include // for QDate +#include // for QDateTime +#include // for QTime +#include // for QString +#include // for QVector +#include // for Q_UNUSED +#include // for UTC #include "defs.h" -#include "gbfile.h" // for gbfread, gbfclose, gbfeof, gbfopen -#include "navilink.h" // for navilink_checksum_packet, locosys_... +#include "gbfile.h" // for gbfread, gbfclose, gbfeof, gbfopen +#include "navilink.h" // for navilink_checksum_packet, locosys_... #define MYNAME "sbn" @@ -220,17 +223,17 @@ decode_sbn_mode(const unsigned char* mode) static void decode_sbn_datetime(const unsigned char* buffer, Waypoint* waypt) { - std::tm tm{}; - int ms = be_readu16(buffer + 6); + int scaled_seconds = be_readu16(buffer + 6); - tm.tm_sec = ms / 1000; - tm.tm_min = buffer[5]; - tm.tm_hour = buffer[4]; - tm.tm_mday = buffer[3]; - tm.tm_mon = buffer[2] - 1; - tm.tm_year = be_readu16(buffer) - 1900; + int ms = scaled_seconds % 1000; + int sec = scaled_seconds / 1000; + int min = buffer[5]; + int hour = buffer[4]; + int mday = buffer[3]; + int mon = buffer[2]; + int year = be_readu16(buffer); - waypt->SetCreationTime(mkgmtime(&tm), (ms % 1000)); + waypt->SetCreationTime(QDateTime(QDate(year, mon, mday), QTime(hour, min, sec, ms), Qt::UTC)); } static void