From 3d30ed65f9e226b7b183b23ce5dba435ec491f0b Mon Sep 17 00:00:00 2001 From: George Hazan Date: Fri, 10 Jan 2025 18:28:28 +0300 Subject: DBEVENTINFO::timestamp to become 64-bit integer --- src/core/stdmsg/src/cmdlist.cpp | 2 +- src/core/stdmsg/src/msgdialog.cpp | 20 ++++++++++---------- src/core/stdmsg/src/msglog.cpp | 18 +++++++++--------- src/core/stduihist/src/history.cpp | 8 +++----- src/mir_app/src/chat_tools.cpp | 2 +- src/mir_app/src/db_events.cpp | 30 +++++++++++++++--------------- src/mir_app/src/file.cpp | 8 ++++---- src/mir_app/src/filerecvdlg.cpp | 2 +- src/mir_app/src/filexferdlg.cpp | 2 +- src/mir_app/src/srmm_base.cpp | 4 ++-- src/mir_app/src/srmm_log_rtf.cpp | 2 +- src/mir_app/src/srmm_util.cpp | 4 ++-- 12 files changed, 50 insertions(+), 52 deletions(-) (limited to 'src') diff --git a/src/core/stdmsg/src/cmdlist.cpp b/src/core/stdmsg/src/cmdlist.cpp index 4d44e69a67..a0226ee979 100644 --- a/src/core/stdmsg/src/cmdlist.cpp +++ b/src/core/stdmsg/src/cmdlist.cpp @@ -93,7 +93,7 @@ void msgQueue_processack(MCONTACT hContact, int id, BOOL success, LPARAM lParam) dbei.eventType = EVENTTYPE_MESSAGE; dbei.flags = DBEF_SENT | DBEF_UTF | (p->flags & DBEF_RTL ? DBEF_RTL : 0); dbei.szModule = Proto_GetBaseAccountName(hContact); - dbei.timestamp = time(0); + dbei.iTimestamp = time(0); dbei.cbBlob = (uint32_t)(mir_strlen(p->szMsg) + 1); dbei.pBlob = p->szMsg; dbei.szId = (char *)lParam; diff --git a/src/core/stdmsg/src/msgdialog.cpp b/src/core/stdmsg/src/msgdialog.cpp index c1d544a028..fdcea57c48 100644 --- a/src/core/stdmsg/src/msgdialog.cpp +++ b/src/core/stdmsg/src/msgdialog.cpp @@ -141,8 +141,8 @@ bool CMsgDialog::OnInitDialog() while (MEVENT hdbEvent = pCursor.FetchNext()) { DBEVENTINFO dbei = {}; db_event_get(hdbEvent, &dbei); - if ((dbei.eventType == EVENTTYPE_MESSAGE) && !(dbei.flags & DBEF_SENT)) { - m_lastMessage = dbei.timestamp; + if ((dbei.eventType == EVENTTYPE_MESSAGE) && !dbei.bSent) { + m_lastMessage = dbei.getUnixtime(); bUpdate = true; break; } @@ -1208,18 +1208,18 @@ void CMsgDialog::EventAdded(MEVENT hDbEvent, const DB::EventInfo &dbei) if (m_hDbEventFirst == 0) m_hDbEventFirst = hDbEvent; - bool isMessage = (dbei.eventType == EVENTTYPE_MESSAGE), isSent = ((dbei.flags & DBEF_SENT) != 0); + bool isMessage = (dbei.eventType == EVENTTYPE_MESSAGE); bool isActive = IsActive(); if (DbEventIsShown(dbei)) { // Sounds *only* for sent messages, not for custom events - if (isMessage && !isSent) { + if (isMessage && !dbei.bSent) { if (isActive) Skin_PlaySound("RecvMsgActive"); else Skin_PlaySound("RecvMsgInactive"); } - if (isMessage && !isSent) { - m_lastMessage = dbei.timestamp; + if (isMessage && !dbei.bSent) { + m_lastMessage = dbei.getUnixtime(); UpdateLastMessage(); } @@ -1229,7 +1229,7 @@ void CMsgDialog::EventAdded(MEVENT hDbEvent, const DB::EventInfo &dbei) RemakeLog(); // Flash window *only* for messages, not for custom events - if (isMessage && !isSent) + if (isMessage && !dbei.bSent) if (!isActive || !m_pLog->AtBottom()) StartFlash(); } @@ -1260,15 +1260,15 @@ bool CMsgDialog::GetFirstEvent() case LOADHISTORY_TIME: DBEVENTINFO dbei = {}; if (m_hDbEventFirst == 0) - dbei.timestamp = (uint32_t)time(0); + dbei.iTimestamp = (uint32_t)time(0); else db_event_get(m_hDbEventFirst, &dbei); - uint32_t firstTime = dbei.timestamp - 60 * g_plugin.nLoadTime; + uint32_t firstTime = dbei.getUnixtime() - 60 * g_plugin.nLoadTime; while (MEVENT hPrevEvent = pCursor.FetchNext()) { dbei.cbBlob = 0; db_event_get(hPrevEvent, &dbei); - if (dbei.timestamp < firstTime) + if (dbei.getUnixtime() < firstTime) break; m_hDbEventFirst = hPrevEvent; } diff --git a/src/core/stdmsg/src/msglog.cpp b/src/core/stdmsg/src/msglog.cpp index 0156f1fa6b..f120d26c27 100644 --- a/src/core/stdmsg/src/msglog.cpp +++ b/src/core/stdmsg/src/msglog.cpp @@ -300,7 +300,7 @@ public: } if (g_plugin.bShowIcons) { - int i = ((dbei.eventType == EVENTTYPE_MESSAGE) ? ((dbei.flags & DBEF_SENT) ? LOGICON_MSG_OUT : LOGICON_MSG_IN) : LOGICON_MSG_NOTICE); + int i = ((dbei.eventType == EVENTTYPE_MESSAGE) ? (dbei.bSent ? LOGICON_MSG_OUT : LOGICON_MSG_IN) : LOGICON_MSG_NOTICE); buf.Append("\\f0\\fs14"); buf.Append(pLogIconBmpBits[i]); @@ -321,9 +321,9 @@ public: else szFormat = g_plugin.bShowDate ? L"d t" : L"t"; - TimeZone_PrintTimeStamp(nullptr, dbei.timestamp, szFormat, str, _countof(str), 0); + TimeZone_PrintTimeStamp(nullptr, dbei.getUnixtime(), szFormat, str, _countof(str), 0); - SetToStyle((dbei.flags & DBEF_SENT) ? MSGFONTID_MYTIME : MSGFONTID_YOURTIME, buf); + SetToStyle(dbei.bSent ? MSGFONTID_MYTIME : MSGFONTID_YOURTIME, buf); AppendToBufferWithRTF(buf, str); showColon = 1; } @@ -331,7 +331,7 @@ public: if (g_plugin.bShowNames && dbei.eventType != EVENTTYPE_JABBER_CHATSTATES && dbei.eventType != EVENTTYPE_JABBER_PRESENCE) { wchar_t *szName; - if (dbei.flags & DBEF_SENT) { + if (dbei.bSent) { if (wchar_t *p = Contact::GetInfo(CNF_DISPLAY, 0, dbei.szModule)) szName = NEWWSTR_ALLOCA(p); else @@ -339,19 +339,19 @@ public: } else szName = Clist_GetContactDisplayName(dat->hContact); - SetToStyle((dbei.flags & DBEF_SENT) ? MSGFONTID_MYNAME : MSGFONTID_YOURNAME, buf); + SetToStyle(dbei.bSent ? MSGFONTID_MYNAME : MSGFONTID_YOURNAME, buf); AppendToBufferWithRTF(buf, szName); showColon = 1; } if (showColon) - SetToStyle((dbei.flags & DBEF_SENT) ? MSGFONTID_MYCOLON : MSGFONTID_YOURCOLON, buf); + SetToStyle(dbei.bSent ? MSGFONTID_MYCOLON : MSGFONTID_YOURCOLON, buf); wchar_t *msg, *szName; switch (dbei.eventType) { case EVENTTYPE_JABBER_CHATSTATES: case EVENTTYPE_JABBER_PRESENCE: - if (dbei.flags & DBEF_SENT) { + if (dbei.bSent) { if (wchar_t *p = Contact::GetInfo(CNF_DISPLAY, 0, dbei.szModule)) { szName = NEWWSTR_ALLOCA(p); mir_free(p); @@ -379,7 +379,7 @@ public: InsertFileLink(buf, dat->hDbEvent, blob); } else { - AppendToBufferWithRTF(buf, (dbei.flags & DBEF_SENT) ? TranslateT("File sent") : TranslateT("File received")); + AppendToBufferWithRTF(buf, dbei.bSent ? TranslateT("File sent") : TranslateT("File received")); buf.Append(": "); AppendToBufferWithRTF(buf, blob.getName()); @@ -395,7 +395,7 @@ public: case EVENTTYPE_MESSAGE: default: msg = dbei.getText(); - SetToStyle((dbei.eventType == EVENTTYPE_MESSAGE) ? ((dbei.flags & DBEF_SENT) ? MSGFONTID_MYMSG : MSGFONTID_YOURMSG) : MSGFONTID_NOTICE, buf); + SetToStyle((dbei.eventType == EVENTTYPE_MESSAGE) ? (dbei.bSent ? MSGFONTID_MYMSG : MSGFONTID_YOURMSG) : MSGFONTID_NOTICE, buf); AppendToBufferWithRTF(buf, msg); mir_free(msg); } diff --git a/src/core/stduihist/src/history.cpp b/src/core/stduihist/src/history.cpp index 80dff0c6d3..d99226fd9d 100644 --- a/src/core/stduihist/src/history.cpp +++ b/src/core/stduihist/src/history.cpp @@ -73,13 +73,11 @@ static void GetObjectSummary(DBEVENTINFO *dbei, wchar_t *str, int cbStr) switch (dbei->eventType) { case EVENTTYPE_MESSAGE: - if (dbei->flags & DBEF_SENT) pszSrc = TranslateT("Outgoing message"); - else pszSrc = TranslateT("Incoming message"); + pszSrc = (dbei->bSent) ? TranslateT("Outgoing message") : TranslateT("Incoming message"); break; case EVENTTYPE_FILE: - if (dbei->flags & DBEF_SENT) pszSrc = TranslateT("Outgoing file"); - else pszSrc = TranslateT("Incoming file"); + pszSrc = (dbei->bSent) ? TranslateT("Outgoing file") : TranslateT("Incoming file"); break; case EVENTTYPE_AUTHREQUEST: @@ -133,7 +131,7 @@ static void FillHistoryThread(THistoryThread *hInfo) wchar_t str[200], eventText[256], strdatetime[64]; GetObjectSummary(&dbei, str, _countof(str)); if (str[0]) { - TimeZone_PrintTimeStamp(NULL, dbei.timestamp, L"d t", strdatetime, _countof(strdatetime), 0); + TimeZone_PrintTimeStamp(NULL, dbei.getUnixtime(), L"d t", strdatetime, _countof(strdatetime), 0); mir_snwprintf(eventText, L"%s: %s", strdatetime, str); i = SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM)eventText); SendMessage(hwndList, LB_SETITEMDATA, i, (LPARAM)hDbEvent); diff --git a/src/mir_app/src/chat_tools.cpp b/src/mir_app/src/chat_tools.cpp index f9e468246b..168ac45746 100644 --- a/src/mir_app/src/chat_tools.cpp +++ b/src/mir_app/src/chat_tools.cpp @@ -704,7 +704,7 @@ void Chat_EventToGC(SESSION_INFO *si, MEVENT hDbEvent) else gce.pszNick.w = wszUserId; gce.pszText.w = wszText; - gce.time = dbei.timestamp; + gce.time = dbei.getUnixtime(); gce.hEvent = hDbEvent; Chat_Event(&gce); } diff --git a/src/mir_app/src/db_events.cpp b/src/mir_app/src/db_events.cpp index 538350c3be..ac3c9085cb 100644 --- a/src/mir_app/src/db_events.cpp +++ b/src/mir_app/src/db_events.cpp @@ -537,10 +537,10 @@ MIR_APP_DLL(bool) DB::IsDuplicateEvent(MCONTACT hContact, DBEVENTINFO &dbei) DBEVENTINFO dbeiExisting = {}; db_event_get(hExistingDbEvent, &dbeiExisting); - uint32_t dwEventTimeStamp = dbeiExisting.timestamp; + uint32_t dwEventTimeStamp = dbeiExisting.getUnixtime(); // compare with last timestamp - if (dbei.timestamp > dwEventTimeStamp) { + if (dbei.getUnixtime() > dwEventTimeStamp) { // remember event hPreviousDbEvent = hExistingDbEvent; dwPreviousTimeStamp = dwEventTimeStamp; @@ -559,21 +559,21 @@ MIR_APP_DLL(bool) DB::IsDuplicateEvent(MCONTACT hContact, DBEVENTINFO &dbei) memset(&dbeiExisting, 0, sizeof(dbeiExisting)); db_event_get(hExistingDbEvent, &dbeiExisting); - dwEventTimeStamp = dbeiExisting.timestamp; + dwEventTimeStamp = dbeiExisting.getUnixtime(); // compare with first timestamp - if (dbei.timestamp <= dwEventTimeStamp) { + if (dbei.getUnixtime() <= dwEventTimeStamp) { // remember event dwPreviousTimeStamp = dwEventTimeStamp; hPreviousDbEvent = hExistingDbEvent; - if (dbei.timestamp != dwEventTimeStamp) + if (dbei.getUnixtime() != dwEventTimeStamp) return false; } } // check for equal timestamps - if (dbei.timestamp == dwPreviousTimeStamp) { + if (dbei.iTimestamp == dwPreviousTimeStamp) { memset(&dbeiExisting, 0, sizeof(dbeiExisting)); db_event_get(hPreviousDbEvent, &dbeiExisting); @@ -586,10 +586,10 @@ MIR_APP_DLL(bool) DB::IsDuplicateEvent(MCONTACT hContact, DBEVENTINFO &dbei) memset(&dbeiExisting, 0, sizeof(dbeiExisting)); db_event_get(hExistingDbEvent, &dbeiExisting); - if (dbeiExisting.timestamp != dwPreviousTimeStamp) { + if (dbeiExisting.getUnixtime() != dwPreviousTimeStamp) { // use found event hPreviousDbEvent = hExistingDbEvent; - dwPreviousTimeStamp = dbeiExisting.timestamp; + dwPreviousTimeStamp = dbeiExisting.getUnixtime(); break; } @@ -600,16 +600,16 @@ MIR_APP_DLL(bool) DB::IsDuplicateEvent(MCONTACT hContact, DBEVENTINFO &dbei) hExistingDbEvent = hPreviousDbEvent; - if (dbei.timestamp <= dwPreviousTimeStamp) { + if (dbei.getUnixtime() <= dwPreviousTimeStamp) { // look back while (hExistingDbEvent != 0) { memset(&dbeiExisting, 0, sizeof(dbeiExisting)); db_event_get(hExistingDbEvent, &dbeiExisting); - if (dbei.timestamp > dbeiExisting.timestamp) { + if (dbei.getUnixtime() > dbeiExisting.getUnixtime()) { // remember event hPreviousDbEvent = hExistingDbEvent; - dwPreviousTimeStamp = dbeiExisting.timestamp; + dwPreviousTimeStamp = dbeiExisting.getUnixtime(); return false; } @@ -617,7 +617,7 @@ MIR_APP_DLL(bool) DB::IsDuplicateEvent(MCONTACT hContact, DBEVENTINFO &dbei) if (dbei == dbeiExisting) { // remember event hPreviousDbEvent = hExistingDbEvent; - dwPreviousTimeStamp = dbeiExisting.timestamp; + dwPreviousTimeStamp = dbeiExisting.getUnixtime(); return true; } @@ -631,10 +631,10 @@ MIR_APP_DLL(bool) DB::IsDuplicateEvent(MCONTACT hContact, DBEVENTINFO &dbei) memset(&dbeiExisting, 0, sizeof(dbeiExisting)); db_event_get(hExistingDbEvent, &dbeiExisting); - if (dbei.timestamp < dbeiExisting.timestamp) { + if (dbei.getUnixtime() < dbeiExisting.getUnixtime()) { // remember event hPreviousDbEvent = hExistingDbEvent; - dwPreviousTimeStamp = dbeiExisting.timestamp; + dwPreviousTimeStamp = dbeiExisting.getUnixtime(); return false; } @@ -642,7 +642,7 @@ MIR_APP_DLL(bool) DB::IsDuplicateEvent(MCONTACT hContact, DBEVENTINFO &dbei) if (dbei == dbeiExisting) { // remember event hPreviousDbEvent = hExistingDbEvent; - dwPreviousTimeStamp = dbeiExisting.timestamp; + dwPreviousTimeStamp = dbeiExisting.getUnixtime(); return true; } diff --git a/src/mir_app/src/file.cpp b/src/mir_app/src/file.cpp index 5dddd4a952..97323e5efb 100644 --- a/src/mir_app/src/file.cpp +++ b/src/mir_app/src/file.cpp @@ -174,7 +174,7 @@ static int SRFileEventDeleted(WPARAM hContact, LPARAM hDbEvent) GetContactSentFilesDir(hContact, wszReceiveFolder, _countof(wszReceiveFolder)); // we don't remove sent files, located outside Miranda's folder for sent offline files - if ((dbei.flags & DBEF_SENT) == 0 || !wcsnicmp(pwszName, wszReceiveFolder, wcslen(wszReceiveFolder))) + if (!dbei.bSent || !wcsnicmp(pwszName, wszReceiveFolder, wcslen(wszReceiveFolder))) DeleteFileW(pwszName); } } @@ -209,9 +209,9 @@ INT_PTR openRecDir(WPARAM, LPARAM) MEVENT Proto_RecvFile(MCONTACT hContact, DB::FILE_BLOB &blob, DB::EventInfo &dbei) { - bool bSilent = (dbei.flags & DBEF_TEMPORARY) != 0; - bool bSent = (dbei.flags & DBEF_SENT) != 0; - bool bRead = (dbei.flags & DBEF_READ) != 0; + bool bSilent = dbei.bTemporary; + bool bSent = dbei.bSent; + bool bRead = dbei.bRead; dbei.szModule = Proto_GetBaseAccountName(hContact); dbei.eventType = EVENTTYPE_FILE; diff --git a/src/mir_app/src/filerecvdlg.cpp b/src/mir_app/src/filerecvdlg.cpp index 1bdf5c6179..46dac31cca 100644 --- a/src/mir_app/src/filerecvdlg.cpp +++ b/src/mir_app/src/filerecvdlg.cpp @@ -253,7 +253,7 @@ public: SetDlgItemText(m_hwnd, IDC_MSG, blob.getDescr()); wchar_t datetimestr[64]; - TimeZone_PrintTimeStamp(NULL, dbei.timestamp, L"t d", datetimestr, _countof(datetimestr), 0); + TimeZone_PrintTimeStamp(NULL, dbei.getUnixtime(), L"t d", datetimestr, _countof(datetimestr), 0); SetDlgItemText(m_hwnd, IDC_DATE, datetimestr); ptrW info(Contact::GetInfo(CNF_UNIQUEID, dat->hContact)); diff --git a/src/mir_app/src/filexferdlg.cpp b/src/mir_app/src/filexferdlg.cpp index 604a14f977..d946f4c65f 100644 --- a/src/mir_app/src/filexferdlg.cpp +++ b/src/mir_app/src/filexferdlg.cpp @@ -596,7 +596,7 @@ INT_PTR CALLBACK DlgProcFileTransfer(HWND hwndDlg, UINT msg, WPARAM wParam, LPAR dbei.szModule = Proto_GetBaseAccountName(dat->hContact); dbei.eventType = EVENTTYPE_FILE; dbei.flags = DBEF_SENT | DBEF_UTF; - dbei.timestamp = time(0); + dbei.iTimestamp = time(0); DB::FILE_BLOB blob(dat->szFilenames, dat->szMsg); if (auto *pa = Proto_GetAccount(ack->szModule)) diff --git a/src/mir_app/src/srmm_base.cpp b/src/mir_app/src/srmm_base.cpp index 88c470aa90..5407755e30 100644 --- a/src/mir_app/src/srmm_base.cpp +++ b/src/mir_app/src/srmm_base.cpp @@ -838,7 +838,7 @@ void CSrmmBaseDialog::UpdateChatLog() for (MEVENT hDbEvent = m_hDbEventFirst; hDbEvent; hDbEvent = db_event_next(m_hContact, hDbEvent)) { DB::EventInfo dbei(hDbEvent); if (dbei && !mir_strcmp(szProto, dbei.szModule) && g_chatApi.DbEventIsShown(dbei) && dbei.szUserId) { - if (iHistoryMode == LOADHISTORY_UNREAD && (dbei.flags & DBEF_READ) != 0) + if (iHistoryMode == LOADHISTORY_UNREAD && dbei.bRead) continue; Utf2T wszUserId(dbei.szUserId); @@ -848,7 +848,7 @@ void CSrmmBaseDialog::UpdateChatLog() gce.dwFlags = GCEF_ADDTOLOG; gce.pszUserInfo.w = wszUserId; gce.pszText.w = wszText; - gce.time = dbei.timestamp; + gce.time = dbei.getUnixtime(); gce.hEvent = hDbEvent; if (USERINFO *ui = g_chatApi.UM_FindUser(m_si, wszUserId)) diff --git a/src/mir_app/src/srmm_log_rtf.cpp b/src/mir_app/src/srmm_log_rtf.cpp index 396abbed6f..54dfe980f3 100644 --- a/src/mir_app/src/srmm_log_rtf.cpp +++ b/src/mir_app/src/srmm_log_rtf.cpp @@ -334,7 +334,7 @@ static bool CreateRtfFromDbEvent(RtfLogStreamData *dat) if (!dat->pLog->CreateRtfEvent(dat, dbei)) return false; - if (!(dbei.flags & DBEF_SENT)) { + if (!dbei.bSent) { if (dbei.isSrmm()) dat->pLog->GetDialog().MarkEventRead(dbei); diff --git a/src/mir_app/src/srmm_util.cpp b/src/mir_app/src/srmm_util.cpp index 78500bed71..f7e485a2b4 100644 --- a/src/mir_app/src/srmm_util.cpp +++ b/src/mir_app/src/srmm_util.cpp @@ -179,7 +179,7 @@ void GetContactSentFilesDir(MCONTACT hContact, wchar_t *szDir, int cchDir) static void GenerateLocalName(const DB::EventInfo &dbei, DB::FILE_BLOB &blob, MCONTACT hContact) { wchar_t wszReceiveFolder[MAX_PATH]; - if (dbei.flags & DBEF_SENT) // don't mix sent & received files + if (dbei.bSent) // don't mix sent & received files GetContactSentFilesDir(hContact, wszReceiveFolder, _countof(wszReceiveFolder)); else File::GetReceivedFolder(hContact, wszReceiveFolder, _countof(wszReceiveFolder), true); @@ -227,7 +227,7 @@ void DownloadOfflineFile(MCONTACT hContact, MEVENT hDbEvent, DB::EventInfo &dbei OFDTHREAD *ofd = new OFDTHREAD(hContact, hDbEvent, blob.getLocalName(), iCommand); ofd->bLocked = true; - ofd->dwTimestamp = dbei.timestamp; + ofd->dwTimestamp = dbei.getUnixtime(); ofd->pCallback = callback.release(); CallProtoService(dbei.szModule, PS_OFFLINEFILE, (WPARAM)ofd); } -- cgit v1.2.3