summaryrefslogtreecommitdiff
path: root/plugins/Db3x_mmap/src/dbtool/settingschain.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Db3x_mmap/src/dbtool/settingschain.cpp')
-rw-r--r--plugins/Db3x_mmap/src/dbtool/settingschain.cpp40
1 files changed, 22 insertions, 18 deletions
diff --git a/plugins/Db3x_mmap/src/dbtool/settingschain.cpp b/plugins/Db3x_mmap/src/dbtool/settingschain.cpp
index aaa52d9e22..1311b58661 100644
--- a/plugins/Db3x_mmap/src/dbtool/settingschain.cpp
+++ b/plugins/Db3x_mmap/src/dbtool/settingschain.cpp
@@ -19,11 +19,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "..\commonheaders.h"
-static DWORD ofsThisSettings,ofsDestPrevSettings;
+static DWORD ofsThisSettings, ofsDestPrevSettings;
-int CDb3Base::WorkSettingsChain(DWORD ofsContact,DBContact *dbc,int firstTime)
+int CDb3Base::WorkSettingsChain(DWORD ofsContact, DBContact *dbc, int firstTime)
{
- DBContactSettings *dbcsNew,dbcsOld;
DWORD ofsDestThis;
int ret;
@@ -35,39 +34,44 @@ int CDb3Base::WorkSettingsChain(DWORD ofsContact,DBContact *dbc,int firstTime)
if (ofsThisSettings == 0)
return ERROR_NO_MORE_ITEMS;
- if (!SignatureValid(ofsThisSettings,DBCONTACTSETTINGS_SIGNATURE)) {
- cb->pfnAddLogMessage(STATUS_ERROR,TranslateT("Settings chain corrupted, further entries ignored"));
+ if (!SignatureValid(ofsThisSettings, DBCONTACTSETTINGS_SIGNATURE)) {
+ cb->pfnAddLogMessage(STATUS_ERROR, TranslateT("Settings chain corrupted, further entries ignored"));
return ERROR_NO_MORE_ITEMS;
}
- if (PeekSegment(ofsThisSettings,&dbcsOld,sizeof(dbcsOld)) != ERROR_SUCCESS)
+ DBContactSettings dbcsOld;
+ if (PeekSegment(ofsThisSettings, &dbcsOld, sizeof(dbcsOld)) != ERROR_SUCCESS)
return ERROR_NO_MORE_ITEMS;
- if (dbcsOld.cbBlob>256*1024 || dbcsOld.cbBlob == 0) {
- cb->pfnAddLogMessage(STATUS_ERROR,TranslateT("Infeasibly large settings blob: skipping"));
+
+ if (dbcsOld.cbBlob > 256 * 1024 || dbcsOld.cbBlob == 0) {
+ cb->pfnAddLogMessage(STATUS_ERROR, TranslateT("Infeasibly large settings blob: skipping"));
ofsThisSettings = dbcsOld.ofsNext;
return ERROR_SUCCESS;
}
- dbcsNew = (DBContactSettings*)_alloca(offsetof(DBContactSettings,blob)+dbcsOld.cbBlob);
- if ((ret = ReadSegment(ofsThisSettings,dbcsNew,offsetof(DBContactSettings,blob)+dbcsOld.cbBlob)) != ERROR_SUCCESS) {
- if (ret != ERROR_HANDLE_EOF) { //eof is OK because blank space at the end doesn't matter
+
+ DBContactSettings *dbcsNew = (DBContactSettings*)_alloca(offsetof(DBContactSettings, blob) + dbcsOld.cbBlob);
+ if ((ret = ReadSegment(ofsThisSettings, dbcsNew, offsetof(DBContactSettings, blob) + dbcsOld.cbBlob)) != ERROR_SUCCESS)
+ if (ret != ERROR_HANDLE_EOF) //eof is OK because blank space at the end doesn't matter
return ERROR_NO_MORE_ITEMS;
- }
- }
+
if ((dbcsNew->ofsModuleName = ConvertModuleNameOfs(dbcsOld.ofsModuleName)) == 0) {
ofsThisSettings = dbcsOld.ofsNext;
return ERROR_SUCCESS;
}
+
if (dbcsNew->blob[0] == 0) {
- cb->pfnAddLogMessage(STATUS_MESSAGE,TranslateT("Empty settings group at %08X: skipping"),ofsThisSettings);
+ cb->pfnAddLogMessage(STATUS_MESSAGE, TranslateT("Empty settings group at %08X: skipping"), ofsThisSettings);
ofsThisSettings = dbcsOld.ofsNext;
return ERROR_SUCCESS;
}
dbcsNew->ofsNext = 0;
//TODO? validate all settings in blob/compact if necessary
- if ((ofsDestThis = WriteSegment(WSOFS_END,dbcsNew,offsetof(DBContactSettings,blob)+dbcsNew->cbBlob)) == WS_ERROR) {
+ if ((ofsDestThis = WriteSegment(WSOFS_END, dbcsNew, offsetof(DBContactSettings, blob) + dbcsNew->cbBlob)) == WS_ERROR)
return ERROR_HANDLE_DISK_FULL;
- }
- if (ofsDestPrevSettings) WriteSegment(ofsDestPrevSettings+offsetof(DBContactSettings,ofsNext),&ofsDestThis,sizeof(DWORD));
- else dbc->ofsFirstSettings = ofsDestThis;
+
+ if (ofsDestPrevSettings)
+ WriteSegment(ofsDestPrevSettings + offsetof(DBContactSettings, ofsNext), &ofsDestThis, sizeof(DWORD));
+ else
+ dbc->ofsFirstSettings = ofsDestThis;
ofsDestPrevSettings = ofsDestThis;
ofsThisSettings = dbcsOld.ofsNext;
return ERROR_SUCCESS;