[Scummvm-git-logs] scummvm master -> fae2a7f93dd9b283459f9c7fe332ffe34b960457
sev-
noreply at scummvm.org
Sat Aug 12 22:53:56 UTC 2023
This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
8bff50d668 WATCHMAKER: sprintf -> snprintf in some places
3271c8af71 WATCHMAKER: Add missing override keywords
fae2a7f93d WATCHMAKER: Eliminate sprintf() and strcpy()
Commit: 8bff50d66874ce68d2e3b65de628077741badc64
https://github.com/scummvm/scummvm/commit/8bff50d66874ce68d2e3b65de628077741badc64
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-08-13T00:38:24+02:00
Commit Message:
WATCHMAKER: sprintf -> snprintf in some places
Changed paths:
engines/watchmaker/ll/ll_util.cpp
engines/watchmaker/saveload.cpp
diff --git a/engines/watchmaker/ll/ll_util.cpp b/engines/watchmaker/ll/ll_util.cpp
index 381e3791144..422f2d28a77 100644
--- a/engines/watchmaker/ll/ll_util.cpp
+++ b/engines/watchmaker/ll/ll_util.cpp
@@ -19,10 +19,6 @@
*
*/
-#define FORBIDDEN_SYMBOL_EXCEPTION_strcpy
-#define FORBIDDEN_SYMBOL_EXCEPTION_sprintf
-#define FORBIDDEN_SYMBOL_EXCEPTION_vsprintf
-
#include "watchmaker/ll/ll_util.h"
#include "watchmaker/ll/ll_anim.h"
#include "watchmaker/ll/ll_diary.h"
@@ -175,22 +171,22 @@ int32 WhatObj(WGame &game, int32 mx, int32 my, uint8 op) {
memset(ObjectUnderCursor, 0, 400);
if (CurMesh || (FloorHit)) {
if (!FloorHit) {
- strcpy(ObjectUnderCursor, CurMesh->name.c_str());
+ Common::strlcpy(ObjectUnderCursor, CurMesh->name.c_str(), 400);
ret = LinkObjToMesh(game, CurMesh, op);
if (NextPortalObj)
- sprintf(ObjectUnderCursor, "NextPortalObj -> %s", CurMesh->name.c_str());
+ snprintf(ObjectUnderCursor, 400, "NextPortalObj -> %s", CurMesh->name.c_str());
mPos.x = CurMesh->Intersection.x;
mPos.y = CurMesh->Intersection.y;
mPos.z = CurMesh->Intersection.z;
} else {
if (CurMesh)
- sprintf(ObjectUnderCursor, "Floor Hit -> %s", CurMesh->name.c_str());
+ snprintf(ObjectUnderCursor, 400, "Floor Hit -> %s", CurMesh->name.c_str());
else
- strcpy(ObjectUnderCursor, "Floor Hit");
+ Common::strlcpy(ObjectUnderCursor, "Floor Hit", 400);
LinkObjToMesh(game, CurMesh, op);
if (NextPortalObj)
- sprintf(ObjectUnderCursor, "NextPortalObj -> Floor Hit -> %s", CurMesh->name.c_str());
+ snprintf(ObjectUnderCursor, 400, "NextPortalObj -> Floor Hit -> %s", CurMesh->name.c_str());
mPos.x = FloorHitCoords.x;
mPos.y = FloorHitCoords.y;
@@ -238,7 +234,7 @@ int32 CreateTooltipBitmap(Renderer &renderer, char *tooltip, FontColor color, ui
surf = rCreateSurface(dimx, dimy, 0);
if (surf <= 0) return -1;
- strcpy(info, "tooltip: ");
+ Common::strlcpy(info, "tooltip: ", 400);
strncat(info, tooltip, 15);
rSetBitmapName(surf, info);
renderer.clearBitmap(surf, 0, 0, dimx, dimy, 18, 18, 18); // Bordino nero
@@ -673,7 +669,7 @@ void DebugVideo(Renderer &renderer, int32 px, int32 py, const char *format, ...)
va_list args;
va_start(args, format);
- vsprintf(str, format, args);
+ vsnprintf(str, 500, format, args);
va_end(args);
renderer._2dStuff.displayDDText(str, FontKind::Standard, WHITE_FONT, px, py, 0, 0, 0, 0);
diff --git a/engines/watchmaker/saveload.cpp b/engines/watchmaker/saveload.cpp
index 39d58d97b3f..8c631011237 100644
--- a/engines/watchmaker/saveload.cpp
+++ b/engines/watchmaker/saveload.cpp
@@ -19,7 +19,6 @@
*
*/
-#define FORBIDDEN_SYMBOL_EXCEPTION_sprintf
#define FORBIDDEN_SYMBOL_EXCEPTION_strcpy
#include "watchmaker/saveload.h"
@@ -191,7 +190,7 @@ bool DataSave(const char *SaveName, uint8 slot) {
}
#endif
*/
- sprintf(str, "%sWm%#02d.sav", WmSavesDir, slot);
+ snprintf(str, T3D_NAMELEN, "%sWm%#02d.sav", WmSavesDir, slot);
if ((fhs = fopen(str, "wb")) == nullptr)
return FALSE;
@@ -373,7 +372,7 @@ bool DataLoad(WGame &game, const Common::String &FileName, uint8 slot) {
if (!FileName.empty())
strcpy(str, FileName.c_str());
else
- sprintf(str, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), slot);
+ snprintf(str, T3D_NAMELEN, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), slot);
auto stream = openFile(FileName);
if (!stream) {
Commit: 3271c8af71eccfd6dcfccb8b049cacf23810158a
https://github.com/scummvm/scummvm/commit/3271c8af71eccfd6dcfccb8b049cacf23810158a
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-08-13T00:43:17+02:00
Commit Message:
WATCHMAKER: Add missing override keywords
Changed paths:
engines/watchmaker/3d/loader.cpp
diff --git a/engines/watchmaker/3d/loader.cpp b/engines/watchmaker/3d/loader.cpp
index c67126f417d..6f1b5c086aa 100644
--- a/engines/watchmaker/3d/loader.cpp
+++ b/engines/watchmaker/3d/loader.cpp
@@ -135,7 +135,7 @@ public:
};
_t3dLOADLIST t3dLoadList[MAX_T3D_LOADLIST_ITEMS] = {};
- void addToLoadList(t3dMESH *m, const Common::String &pname, uint32 _LoaderFlags) {
+ void addToLoadList(t3dMESH *m, const Common::String &pname, uint32 _LoaderFlags) override {
if (!pname.empty()) {
int32 a;
for (a = 0; a < MAX_T3D_LOADLIST_ITEMS; a++) {
@@ -203,7 +203,7 @@ public:
return nullptr;
}
- t3dMESH *linkMeshToStr(Init &init, const Common::String &str) {
+ t3dMESH *linkMeshToStr(Init &init, const Common::String &str) override {
if (str.empty()) return nullptr;
// Cerca tra le camere
Commit: fae2a7f93dd9b283459f9c7fe332ffe34b960457
https://github.com/scummvm/scummvm/commit/fae2a7f93dd9b283459f9c7fe332ffe34b960457
Author: Eugene Sandulenko (sev at scummvm.org)
Date: 2023-08-13T00:53:41+02:00
Commit Message:
WATCHMAKER: Eliminate sprintf() and strcpy()
Changed paths:
engines/watchmaker/classes/do_sound.cpp
engines/watchmaker/classes/do_string.cpp
engines/watchmaker/init/nl_parse.cpp
engines/watchmaker/t2d/t2d.cpp
diff --git a/engines/watchmaker/classes/do_sound.cpp b/engines/watchmaker/classes/do_sound.cpp
index 664516edebb..388969f32ca 100644
--- a/engines/watchmaker/classes/do_sound.cpp
+++ b/engines/watchmaker/classes/do_sound.cpp
@@ -19,8 +19,6 @@
*
*/
-#define FORBIDDEN_SYMBOL_EXCEPTION_sprintf
-
#include "watchmaker/classes/do_sound.h"
#include "watchmaker/utils.h"
#include "watchmaker/types.h"
@@ -87,7 +85,7 @@ bool StartSpeech(WGame &game, int32 n) {
if (game.gameOptions.speech_on == FALSE) return true;
- sprintf(CurSound.name, "%ss%04d.wav", game.workDirs._speechDir.c_str(), n);
+ snprintf(CurSound.name, SOUND_NAME_LEN, "%ss%04d.wav", game.workDirs._speechDir.c_str(), n);
CurSound.lIndex = MAX_SOUNDS + n;
CurSound.dwLooped = FALSE;
@@ -140,7 +138,7 @@ bool StartSound(WGame &game, int32 index) {
if (game.gameOptions.sound_on == FALSE) return TRUE;
- sprintf(CurSound.name, "%s%s", game.workDirs._wavDir.c_str(), init.Sound[index].name);
+ snprintf(CurSound.name, SOUND_NAME_LEN, "%s%s", game.workDirs._wavDir.c_str(), init.Sound[index].name);
CurSound.lIndex = index;
CurSound.dwLooped = (init.Sound[index].flags & SOUND_LOOP);
CurSound.flMinDistance = init.Sound[index].MinDist * METER2UNIT;
@@ -269,7 +267,7 @@ bool StartStepSound(WGame &game, t3dV3F *pos, uint8 side) {
if (index == wNULL)
return FALSE;
- sprintf(CurSound.name, "%s%s", game.workDirs._wavDir.c_str(), init.Sound[index].name);
+ snprintf(CurSound.name, SOUND_NAME_LEN, "%s%s", game.workDirs._wavDir.c_str(), init.Sound[index].name);
CurSound.lIndex = index;
CurSound.dwLooped = (init.Sound[index].flags & SOUND_LOOP);
CurSound.flMinDistance = init.Sound[index].MinDist * METER2UNIT;
@@ -334,7 +332,7 @@ bool PlayMusic(int32 index, uint32 FadeOutTime, uint32 FadeInTime) {
(Music[index].vol[CurSubMusic] != mGetAllVolume())) {
if (!mSetAllVolume((BYTE)Music[index].vol[CurSubMusic])) return FALSE;
}
- sprintf(FileName, "%s%s", WmMidiDir, Music[index].name[CurSubMusic]);
+ snprintf(FileName, MAX_PATH, "%s%s", WmMidiDir, Music[index].name[CurSubMusic]);
if (!mLoadMusic(FileName)) {
if (CurPlayIndex == -1) return TRUE;
mInstantFadeOut(NULL, FadeOutTime);
diff --git a/engines/watchmaker/classes/do_string.cpp b/engines/watchmaker/classes/do_string.cpp
index b2ff6873733..88acedffc8d 100644
--- a/engines/watchmaker/classes/do_string.cpp
+++ b/engines/watchmaker/classes/do_string.cpp
@@ -19,10 +19,6 @@
*
*/
-#define FORBIDDEN_SYMBOL_EXCEPTION_strcat
-#define FORBIDDEN_SYMBOL_EXCEPTION_strcpy
-#define FORBIDDEN_SYMBOL_EXCEPTION_sprintf
-
#include "watchmaker/classes/do_string.h"
#include "watchmaker/globvar.h"
#include "watchmaker/message.h"
@@ -213,13 +209,13 @@ void doString(WGame &game) {
void ShowObjName(Init &init, int32 ob) {
if (bUseWith & UW_ON) {
if (bUseWith & UW_USEDI)
- sprintf(UWStr, "Use %s with ", ObjName[init.InvObj[UseWith[USED]].name]);
+ snprintf(UWStr, 100, "Use %s with ", ObjName[init.InvObj[UseWith[USED]].name]);
else
- sprintf(UWStr, "Use %s with ", ObjName[init.Obj[UseWith[USED]].name]);
+ snprintf(UWStr, 100, "Use %s with ", ObjName[init.Obj[UseWith[USED]].name]);
if ((UseWith[USED] != ob) || (bUseWith & UW_USEDI))
if (ObjName[init.Obj[ob].name] != nullptr)
- strcat(UWStr, ObjName[init.Obj[ob].name]);
+ Common::strlcat(UWStr, ObjName[init.Obj[ob].name], 100);
Text(DEFAULT_TEXT_X, DEFAULT_TEXT_Y, DEFAULT_TEXT_DX, UWStr);
} else if (!ob || !init.Obj[ob].name)
ClearText();
@@ -233,13 +229,13 @@ void ShowObjName(Init &init, int32 ob) {
void ShowInvObjName(Init &init, int32 obj) {
if (bUseWith & UW_ON) {
if (bUseWith & UW_USEDI)
- sprintf(UWStr, "Use %s with ", ObjName[init.InvObj[UseWith[USED]].name]);
+ snprintf(UWStr, 100, "Use %s with ", ObjName[init.InvObj[UseWith[USED]].name]);
else
- sprintf(UWStr, "Use %s with ", ObjName[init.Obj[UseWith[USED]].name]);
+ snprintf(UWStr, 100, "Use %s with ", ObjName[init.Obj[UseWith[USED]].name]);
if ((UseWith[USED] != obj) || !(bUseWith & UW_USEDI))
if (ObjName[init.InvObj[obj].name] != nullptr)
- strcat(UWStr, ObjName[init.InvObj[obj].name]);
+ Common::strlcat(UWStr, ObjName[init.InvObj[obj].name], 100);
Text(DEFAULT_TEXT_X, DEFAULT_TEXT_Y, DEFAULT_TEXT_DX, UWStr);
} else //if ( !obj )
ClearText();
@@ -247,4 +243,4 @@ void ShowInvObjName(Init &init, int32 obj) {
// Text( 100, d3dappi.szClient.cy-30, ObjName[InvObj[obj].name] );
}
-} // End of namespace Watchmaker
\ No newline at end of file
+} // End of namespace Watchmaker
diff --git a/engines/watchmaker/init/nl_parse.cpp b/engines/watchmaker/init/nl_parse.cpp
index b20a857d9fe..8fb8126851a 100644
--- a/engines/watchmaker/init/nl_parse.cpp
+++ b/engines/watchmaker/init/nl_parse.cpp
@@ -19,8 +19,6 @@
*
*/
-#define FORBIDDEN_SYMBOL_EXCEPTION_vsprintf
-
#include "watchmaker/init/nl_parse.h"
#include "common/stream.h"
#include "common/textconsole.h"
@@ -39,7 +37,7 @@ int ParseError(const char *ln, ...) {
ErrorFunc();
va_start(ap, ln);
- vsprintf(err, ln, ap);
+ vsnprintf(err, J_MAXSTRLEN, ln, ap);
va_end(ap);
warning("%s", err);
return 0;
diff --git a/engines/watchmaker/t2d/t2d.cpp b/engines/watchmaker/t2d/t2d.cpp
index f0325d565b8..292016b9991 100644
--- a/engines/watchmaker/t2d/t2d.cpp
+++ b/engines/watchmaker/t2d/t2d.cpp
@@ -2891,7 +2891,7 @@ void doT2DMouse(WGame &game) {
for (i = 0; i < T2D_OPTIONS_MAX_SAVES; i++) {
int afret;
- sprintf(Name, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), i + 1);
+ snprintf(Name, MAX_PATH, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), i + 1);
t3dForceNOFastFile(1);
afret = t3dAccessFile(Name);
@@ -2909,12 +2909,12 @@ void doT2DMouse(WGame &game) {
{
TimeDate sysTime;
g_system->getTimeAndDate(sysTime);
- sprintf(Text, "%02d:%02d.%02d %02d/%02d/%02d", sysTime.tm_hour, sysTime.tm_min,
+ snprintf(Text, 1000, "%02d:%02d.%02d %02d/%02d/%02d", sysTime.tm_hour, sysTime.tm_min,
sysTime.tm_sec, sysTime.tm_mday, sysTime.tm_mon, sysTime.tm_year);
}
if (DataSave(Text, (uint8) optionsSlot)) {
- sprintf(Text, "%stemp.tmp", game.workDirs._gameDir.c_str());
- sprintf(Name, "%sWmSav%02d.tga", game.workDirs._savesDir.c_str(), optionsSlot);
+ snprintf(Text, 1000, "%stemp.tmp", game.workDirs._gameDir.c_str());
+ snprintf(Name, MAX_PATH, "%sWmSav%02d.tga", game.workDirs._savesDir.c_str(), optionsSlot);
CopyFile(Text, Name, FALSE);
} else {
DebugLogFile("DataSave(slot %d) Failed. Quitting ...", optionsSlot);
@@ -2928,7 +2928,7 @@ void doT2DMouse(WGame &game) {
case T2D_BT_OPTIONS_LOAD:
bShowOnlyLoadWindow = 0;
i = Saves[optionsCurPos + optionsWhat].NFile;
- sprintf(Name, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), i);
+ snprintf(Name, MAX_PATH, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), i);
if (!DataLoad(game, "", (uint8) i)) {
DebugLogFile("DataLoad(slot %d) Failed. Quitting ...", i);
CloseSys(game);
@@ -4412,14 +4412,14 @@ void doT2D(WGame &game) {
w->text[T2D_TEXT_PDA_MAIN_TIME].font = FontKind::PDA;
w->text[T2D_TEXT_PDA_MAIN_TIME].color = GREEN_FONT;
if (t3dCurTime >= 1300) {
- sprintf(w->text[T2D_TEXT_PDA_MAIN_TIME].text, "%04d", t3dCurTime - 1200);
+ snprintf(w->text[T2D_TEXT_PDA_MAIN_TIME].text, T2D_MAX_TEXTS_IN_WIN, "%04d", t3dCurTime - 1200);
w->text[T2D_TEXT_PDA_MAIN_TIME].text[5] = 0;
w->text[T2D_TEXT_PDA_MAIN_TIME].text[4] = w->text[T2D_TEXT_PDA_MAIN_TIME].text[3];
w->text[T2D_TEXT_PDA_MAIN_TIME].text[3] = w->text[T2D_TEXT_PDA_MAIN_TIME].text[2];
w->text[T2D_TEXT_PDA_MAIN_TIME].text[2] = ':';
strcat(w->text[T2D_TEXT_PDA_MAIN_TIME].text, " PM");
} else {
- sprintf(w->text[T2D_TEXT_PDA_MAIN_TIME].text, "%04d", t3dCurTime);
+ snprintf(w->text[T2D_TEXT_PDA_MAIN_TIME].text, T2D_MAX_TEXTS_IN_WIN, "%04d", t3dCurTime);
w->text[T2D_TEXT_PDA_MAIN_TIME].text[5] = 0;
w->text[T2D_TEXT_PDA_MAIN_TIME].text[4] = w->text[T2D_TEXT_PDA_MAIN_TIME].text[3];
w->text[T2D_TEXT_PDA_MAIN_TIME].text[3] = w->text[T2D_TEXT_PDA_MAIN_TIME].text[2];
@@ -5456,8 +5456,8 @@ void CaricaSaves(WGame &game) {
t3dForceNOFastFile(1);
for (i = 0; i < T2D_OPTIONS_MAX_SAVES; i++) {
- sprintf(DataFile, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), i + 1);
- sprintf(GfxFile, "%sWmSav%02d.tga", game.workDirs._savesDir.c_str(), i + 1);
+ snprintf(DataFile, MAX_PATH, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), i + 1);
+ snprintf(GfxFile, MAX_PATH, "%sWmSav%02d.tga", game.workDirs._savesDir.c_str(), i + 1);
// se non facessi cosi' la funzione t3dOpenFile() non trovando il file sparerebbe mille warning
if (!t3dAccessFile(DataFile)) continue;
@@ -5542,8 +5542,8 @@ void RefreshSaveImg(WGame &game, int Pos, uint8 Type) {
if (Pos >= NSaves) break;
- sprintf(DataFileName, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), Saves[Pos].NFile);
- sprintf(GfxFileName, "%sWmSav%02d.tga", game.workDirs._savesDir.c_str(), Saves[Pos].NFile);
+ snprintf(DataFileName, MAX_PATH, "%sWm%02d.sav", game.workDirs._savesDir.c_str(), Saves[Pos].NFile);
+ snprintf(GfxFileName, MAX_PATH, "%sWmSav%02d.tga", game.workDirs._savesDir.c_str(), Saves[Pos].NFile);
t3dForceNOFastFile(1);
if (!t3dAccessFile(DataFileName)) {
@@ -5563,7 +5563,7 @@ void RefreshSaveImg(WGame &game, int Pos, uint8 Type) {
w->bm[T2D_BM_OPTIONS_SAVE_START + i].tnum &= ~T2D_BM_OFF;
//Aggiorna la descrizione
- sprintf(w->text[T2D_TEXT_OPTIONS_SAVE_START + i].text, "%02d:%02d %02d/%02d/%04d", Saves[Pos].Hour, Saves[Pos].Min, Saves[Pos].Day, Saves[Pos].Month, Saves[Pos].Year);
+ snprintf(w->text[T2D_TEXT_OPTIONS_SAVE_START + i].text, T2D_MAX_TEXTS_IN_WIN, "%02d:%02d %02d/%02d/%04d", Saves[Pos].Hour, Saves[Pos].Min, Saves[Pos].Day, Saves[Pos].Month, Saves[Pos].Year);
w->bm[T2D_BM_OPTIONS_TEXT_SAVE_START + i].tnum &= ~T2D_BM_OFF;
strcpy(optionsSaves[i], DataFileName);
More information about the Scummvm-git-logs
mailing list