Skip to content

Commit 362eec4

Browse files
committed
Merge branch 'noblacklisting' into 'master'
Exterminate script blacklisting (#8214) Closes #8214 See merge request OpenMW/openmw!4440
2 parents 6207949 + 5d37cb3 commit 362eec4

20 files changed

+13
-165
lines changed

CHANGELOG.md

+1
Original file line numberDiff line numberDiff line change
@@ -288,6 +288,7 @@
288288
Task #7182: FFMpeg 5.1.1+ support
289289
Task #7394: Drop support for --fs-strict
290290
Task #7720: Drop 360-degree screenshot support
291+
Task #8214: Drop script blacklisting functionality
291292

292293
0.48.0
293294
------

README.md

-4
Original file line numberDiff line numberDiff line change
@@ -74,10 +74,6 @@ Command line options
7474
1 - show warning but consider script as
7575
correctly compiled anyway
7676
2 - treat warnings as errors
77-
--script-blacklist arg ignore the specified script (if the use
78-
of the blacklist is enabled)
79-
--script-blacklist-use [=arg(=1)] (=1)
80-
enable script blacklisting
8177
--load-savegame arg load a save game file on game startup
8278
(specify an absolute filename or a
8379
filename relative to the current

apps/opencs/CMakeLists.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ opencs_units (model/doc
88
)
99

1010
opencs_units (model/doc
11-
savingstate savingstages blacklist messages
11+
savingstate savingstages messages
1212
)
1313

1414
opencs_hdrs (model/doc

apps/opencs/editor.cpp

-10
Original file line numberDiff line numberDiff line change
@@ -126,13 +126,6 @@ boost::program_options::variables_map CS::Editor::readConfiguration()
126126
addOption("fallback",
127127
boost::program_options::value<FallbackMap>()->default_value(FallbackMap(), "")->multitoken()->composing(),
128128
"fallback values");
129-
addOption("script-blacklist",
130-
boost::program_options::value<std::vector<std::string>>()
131-
->default_value(std::vector<std::string>(), "")
132-
->multitoken(),
133-
"exclude specified script from the verifier (if the use of the blacklist is enabled)");
134-
addOption("script-blacklist-use", boost::program_options::value<bool>()->implicit_value(true)->default_value(true),
135-
"enable script blacklisting");
136129
Files::ConfigurationManager::addCommonOptions(desc);
137130

138131
boost::program_options::notify(variables);
@@ -159,9 +152,6 @@ std::pair<Files::PathContainer, std::vector<std::string>> CS::Editor::readConfig
159152
.u8string()); // This call to u8string is redundant, but required
160153
// to build on MSVC 14.26 due to implementation bugs.
161154

162-
if (variables["script-blacklist-use"].as<bool>())
163-
mDocumentManager.setBlacklistedScripts(variables["script-blacklist"].as<std::vector<std::string>>());
164-
165155
Files::PathContainer dataDirs, dataLocal;
166156
if (!variables["data"].empty())
167157
{

apps/opencs/model/doc/blacklist.cpp

-32
This file was deleted.

apps/opencs/model/doc/blacklist.hpp

-24
This file was deleted.

apps/opencs/model/doc/document.cpp

+1-10
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
#include "state.hpp"
44

5-
#include <apps/opencs/model/doc/blacklist.hpp>
65
#include <apps/opencs/model/doc/messages.hpp>
76
#include <apps/opencs/model/doc/operationholder.hpp>
87
#include <apps/opencs/model/doc/runner.hpp>
@@ -295,8 +294,7 @@ void CSMDoc::Document::createBase()
295294

296295
CSMDoc::Document::Document(const Files::ConfigurationManager& configuration, std::vector<std::filesystem::path> files,
297296
bool new_, const std::filesystem::path& savePath, const std::filesystem::path& resDir, ToUTF8::FromType encoding,
298-
const std::vector<std::string>& blacklistedScripts, const Files::PathContainer& dataPaths,
299-
const std::vector<std::string>& archives)
297+
const Files::PathContainer& dataPaths, const std::vector<std::string>& archives)
300298
: mSavePath(savePath)
301299
, mContentFiles(std::move(files))
302300
, mNew(new_)
@@ -339,8 +337,6 @@ CSMDoc::Document::Document(const Files::ConfigurationManager& configuration, std
339337
createBase();
340338
}
341339

342-
mBlacklist.add(CSMWorld::UniversalId::Type_Script, blacklistedScripts);
343-
344340
addOptionalGmsts();
345341
addOptionalGlobals();
346342
addOptionalMagicEffects();
@@ -485,11 +481,6 @@ CSMTools::ReportModel* CSMDoc::Document::getReport(const CSMWorld::UniversalId&
485481
return mTools.getReport(id);
486482
}
487483

488-
bool CSMDoc::Document::isBlacklisted(const CSMWorld::UniversalId& id) const
489-
{
490-
return mBlacklist.isBlacklisted(id);
491-
}
492-
493484
void CSMDoc::Document::startRunning(const std::string& profile, const std::string& startupInstruction)
494485
{
495486
std::vector<std::filesystem::path> contentFiles;

apps/opencs/model/doc/document.hpp

+1-6
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919

2020
#include "../tools/tools.hpp"
2121

22-
#include "blacklist.hpp"
2322
#include "operationholder.hpp"
2423
#include "runner.hpp"
2524
#include "saving.hpp"
@@ -61,7 +60,6 @@ namespace CSMDoc
6160
Saving mSavingOperation;
6261
OperationHolder mSaving;
6362
std::filesystem::path mResDir;
64-
Blacklist mBlacklist;
6563
Runner mRunner;
6664
bool mDirty;
6765

@@ -95,8 +93,7 @@ namespace CSMDoc
9593
public:
9694
Document(const Files::ConfigurationManager& configuration, std::vector<std::filesystem::path> files, bool new_,
9795
const std::filesystem::path& savePath, const std::filesystem::path& resDir, ToUTF8::FromType encoding,
98-
const std::vector<std::string>& blacklistedScripts, const Files::PathContainer& dataPaths,
99-
const std::vector<std::string>& archives);
96+
const Files::PathContainer& dataPaths, const std::vector<std::string>& archives);
10097

10198
~Document() override = default;
10299

@@ -136,8 +133,6 @@ namespace CSMDoc
136133
CSMTools::ReportModel* getReport(const CSMWorld::UniversalId& id);
137134
///< The ownership of the returned report is not transferred.
138135

139-
bool isBlacklisted(const CSMWorld::UniversalId& id) const;
140-
141136
void startRunning(const std::string& profile, const std::string& startupInstruction = "");
142137

143138
void stopRunning();

apps/opencs/model/doc/documentmanager.cpp

+1-7
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ void CSMDoc::DocumentManager::addDocument(
6161
CSMDoc::Document* CSMDoc::DocumentManager::makeDocument(
6262
const std::vector<std::filesystem::path>& files, const std::filesystem::path& savePath, bool new_)
6363
{
64-
return new Document(
65-
mConfiguration, files, new_, savePath, mResDir, mEncoding, mBlacklistedScripts, mDataPaths, mArchives);
64+
return new Document(mConfiguration, files, new_, savePath, mResDir, mEncoding, mDataPaths, mArchives);
6665
}
6766

6867
void CSMDoc::DocumentManager::insertDocument(CSMDoc::Document* document)
@@ -102,11 +101,6 @@ void CSMDoc::DocumentManager::setEncoding(ToUTF8::FromType encoding)
102101
mEncoding = encoding;
103102
}
104103

105-
void CSMDoc::DocumentManager::setBlacklistedScripts(const std::vector<std::string>& scriptIds)
106-
{
107-
mBlacklistedScripts = scriptIds;
108-
}
109-
110104
void CSMDoc::DocumentManager::documentLoaded(Document* document)
111105
{
112106
emit documentAdded(document);

apps/opencs/model/doc/documentmanager.hpp

-3
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ namespace CSMDoc
3131
QThread mLoaderThread;
3232
Loader mLoader;
3333
ToUTF8::FromType mEncoding;
34-
std::vector<std::string> mBlacklistedScripts;
3534

3635
std::filesystem::path mResDir;
3736

@@ -64,8 +63,6 @@ namespace CSMDoc
6463

6564
void setEncoding(ToUTF8::FromType encoding);
6665

67-
void setBlacklistedScripts(const std::vector<std::string>& scriptIds);
68-
6966
/// Sets the file data that gets passed to newly created documents.
7067
void setFileData(const Files::PathContainer& dataPaths, const std::vector<std::string>& archives);
7168

apps/opencs/model/tools/scriptcheck.cpp

-3
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,6 @@ void CSMTools::ScriptCheckStage::perform(int stage, CSMDoc::Messages& messages)
106106

107107
mId = mDocument.getData().getScripts().getId(stage);
108108

109-
if (mDocument.isBlacklisted(CSMWorld::UniversalId(CSMWorld::UniversalId::Type_Script, mId.getRefIdString())))
110-
return;
111-
112109
// Skip "Base" records (setting!) and "Deleted" records
113110
if ((mIgnoreBaseRecords && record.mState == CSMWorld::RecordBase::State_BaseOnly) || record.isDeleted())
114111
return;

apps/openmw/engine.cpp

+1-13
Original file line numberDiff line numberDiff line change
@@ -374,7 +374,6 @@ OMW::Engine::Engine(Files::ConfigurationManager& configurationManager)
374374
, mActivationDistanceOverride(-1)
375375
, mGrab(true)
376376
, mRandomSeed(0)
377-
, mScriptBlacklistUse(true)
378377
, mNewGame(false)
379378
, mCfgMgr(configurationManager)
380379
, mGlMaxTextureImageUnits(0)
@@ -884,8 +883,7 @@ void OMW::Engine::prepareEngine()
884883
mScriptContext = std::make_unique<MWScript::CompilerContext>(MWScript::CompilerContext::Type_Full);
885884
mScriptContext->setExtensions(&mExtensions);
886885

887-
mScriptManager = std::make_unique<MWScript::ScriptManager>(mWorld->getStore(), *mScriptContext, mWarningsMode,
888-
mScriptBlacklistUse ? mScriptBlacklist : std::vector<ESM::RefId>());
886+
mScriptManager = std::make_unique<MWScript::ScriptManager>(mWorld->getStore(), *mScriptContext, mWarningsMode);
889887
mEnvironment.setScriptManager(*mScriptManager);
890888

891889
// Create game mechanics system
@@ -1111,16 +1109,6 @@ void OMW::Engine::setWarningsMode(int mode)
11111109
mWarningsMode = mode;
11121110
}
11131111

1114-
void OMW::Engine::setScriptBlacklist(const std::vector<ESM::RefId>& list)
1115-
{
1116-
mScriptBlacklist = list;
1117-
}
1118-
1119-
void OMW::Engine::setScriptBlacklistUse(bool use)
1120-
{
1121-
mScriptBlacklistUse = use;
1122-
}
1123-
11241112
void OMW::Engine::setSaveGameFile(const std::filesystem::path& savegame)
11251113
{
11261114
mSaveGameFile = savegame;

apps/openmw/engine.hpp

-6
Original file line numberDiff line numberDiff line change
@@ -178,8 +178,6 @@ namespace OMW
178178

179179
Files::Collections mFileCollections;
180180
Translation::Storage mTranslationDataStorage;
181-
std::vector<ESM::RefId> mScriptBlacklist;
182-
bool mScriptBlacklistUse;
183181
bool mNewGame;
184182

185183
// not implemented
@@ -253,10 +251,6 @@ namespace OMW
253251

254252
void setWarningsMode(int mode);
255253

256-
void setScriptBlacklist(const std::vector<ESM::RefId>& list);
257-
258-
void setScriptBlacklistUse(bool use);
259-
260254
/// Set the save game file to load after initialising the engine.
261255
void setSaveGameFile(const std::filesystem::path& savegame);
262256

apps/openmw/main.cpp

-8
Original file line numberDiff line numberDiff line change
@@ -149,14 +149,6 @@ bool parseOptions(int argc, char** argv, OMW::Engine& engine, Files::Configurati
149149
engine.setScriptConsoleMode(variables["script-console"].as<bool>());
150150
engine.setStartupScript(variables["script-run"].as<std::string>());
151151
engine.setWarningsMode(variables["script-warn"].as<int>());
152-
std::vector<ESM::RefId> scriptBlacklist;
153-
auto& scriptBlacklistString = variables["script-blacklist"].as<StringsVector>();
154-
for (const auto& blacklistString : scriptBlacklistString)
155-
{
156-
scriptBlacklist.push_back(ESM::RefId::stringRefId(blacklistString));
157-
}
158-
engine.setScriptBlacklist(scriptBlacklist);
159-
engine.setScriptBlacklistUse(variables["script-blacklist-use"].as<bool>());
160152
engine.setSaveGameFile(variables["load-savegame"].as<Files::MaybeQuotedPath>().u8string());
161153

162154
// other settings

apps/openmw/mwscript/scriptmanagerimp.cpp

+4-12
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424

2525
namespace MWScript
2626
{
27-
ScriptManager::ScriptManager(const MWWorld::ESMStore& store, Compiler::Context& compilerContext, int warningsMode,
28-
const std::vector<ESM::RefId>& scriptBlacklist)
27+
ScriptManager::ScriptManager(const MWWorld::ESMStore& store, Compiler::Context& compilerContext, int warningsMode)
2928
: mErrorHandler()
3029
, mStore(store)
3130
, mCompilerContext(compilerContext)
@@ -35,10 +34,6 @@ namespace MWScript
3534
installOpcodes(mInterpreter);
3635

3736
mErrorHandler.setWarningsMode(warningsMode);
38-
39-
mScriptBlacklist.resize(scriptBlacklist.size());
40-
41-
std::sort(mScriptBlacklist.begin(), mScriptBlacklist.end());
4237
}
4338

4439
bool ScriptManager::compile(const ESM::RefId& name)
@@ -148,13 +143,10 @@ namespace MWScript
148143

149144
for (auto& script : mStore.get<ESM::Script>())
150145
{
151-
if (!std::binary_search(mScriptBlacklist.begin(), mScriptBlacklist.end(), script.mId))
152-
{
153-
++count;
146+
++count;
154147

155-
if (compile(script.mId))
156-
++success;
157-
}
148+
if (compile(script.mId))
149+
++success;
158150
}
159151

160152
return std::make_pair(count, success);

apps/openmw/mwscript/scriptmanagerimp.hpp

+1-3
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,9 @@ namespace MWScript
5959
std::unordered_map<ESM::RefId, CompiledScript> mScripts;
6060
GlobalScripts mGlobalScripts;
6161
std::unordered_map<ESM::RefId, Compiler::Locals> mOtherLocals;
62-
std::vector<ESM::RefId> mScriptBlacklist;
6362

6463
public:
65-
ScriptManager(const MWWorld::ESMStore& store, Compiler::Context& compilerContext, int warningsMode,
66-
const std::vector<ESM::RefId>& scriptBlacklist);
64+
ScriptManager(const MWWorld::ESMStore& store, Compiler::Context& compilerContext, int warningsMode);
6765

6866
void clear() override;
6967

apps/openmw/options.cpp

-7
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,6 @@ namespace OpenMW
6464
"\t1 - show warning but consider script as correctly compiled anyway\n"
6565
"\t2 - treat warnings as errors");
6666

67-
addOption("script-blacklist",
68-
bpo::value<StringsVector>()->default_value(StringsVector(), "")->multitoken()->composing(),
69-
"ignore the specified script (if the use of the blacklist is enabled)");
70-
71-
addOption("script-blacklist-use", bpo::value<bool>()->implicit_value(true)->default_value(true),
72-
"enable script blacklisting");
73-
7467
addOption("load-savegame", bpo::value<Files::MaybeQuotedPath>()->default_value(Files::MaybeQuotedPath(), ""),
7568
"load a save game file on game startup (specify an absolute filename or a filename relative to the current "
7669
"working directory)");

components/config/gamesettings.cpp

+2-4
Original file line numberDiff line numberDiff line change
@@ -121,8 +121,7 @@ bool Config::GameSettings::readFile(
121121
// Replace composing entries with a replace= line
122122
if (key == QLatin1String("config") || key == QLatin1String("replace") || key == QLatin1String("data")
123123
|| key == QLatin1String("fallback-archive") || key == QLatin1String("content")
124-
|| key == QLatin1String("groundcover") || key == QLatin1String("script-blacklist")
125-
|| key == QLatin1String("fallback"))
124+
|| key == QLatin1String("groundcover") || key == QLatin1String("fallback"))
126125
settings.remove(key);
127126
}
128127
}
@@ -145,8 +144,7 @@ bool Config::GameSettings::readFile(
145144
// Don't remove composing entries
146145
if (key != QLatin1String("config") && key != QLatin1String("replace") && key != QLatin1String("data")
147146
&& key != QLatin1String("fallback-archive") && key != QLatin1String("content")
148-
&& key != QLatin1String("groundcover") && key != QLatin1String("script-blacklist")
149-
&& key != QLatin1String("fallback"))
147+
&& key != QLatin1String("groundcover") && key != QLatin1String("fallback"))
150148
settings.remove(key);
151149

152150
if (key == QLatin1String("config") || key == QLatin1String("user-data") || key == QLatin1String("resources")

0 commit comments

Comments
 (0)