mirror of
https://github.com/amyinspace/MagicSetEditor2.git
synced 2026-06-11 21:27:01 -04:00
The 'Big Whine' patch:
Any use of a file from another package without a declared dependency will give a warning; Also added some more _LOCALE_123_ macros so we need less format_string calls git-svn-id: svn://svn.code.sf.net/p/magicseteditor/code/trunk@753 0fc631ac-6414-0410-93d0-97cfa31319b6
This commit is contained in:
@@ -101,17 +101,24 @@ void PackageManager::findMatching(const String& pattern, vector<PackagedP>& out)
|
||||
}
|
||||
}
|
||||
|
||||
InputStreamP PackageManager::openFileFromPackage(const String& name) {
|
||||
// we don't want an absolute path (for security reasons)
|
||||
String n;
|
||||
if (!name.empty() && name.GetChar(0) == _('/')) n = name.substr(1);
|
||||
else n = name;
|
||||
// break
|
||||
size_t pos = n.find_first_of(_("/\\"));
|
||||
if (pos == String::npos) throw FileNotFoundError(n, _("No package name specified, use 'package/filename'"));
|
||||
// open package and file
|
||||
PackagedP p = openAny(n.substr(0, pos));
|
||||
return p->openIn(n.substr(pos+1));
|
||||
InputStreamP PackageManager::openFileFromPackage(Packaged*& package, const String& name) {
|
||||
if (!name.empty() && name.GetChar(0) == _('/')) {
|
||||
// absolute name; break name
|
||||
size_t pos = name.find_first_of(_("/\\"), 1);
|
||||
if (pos != String::npos) {
|
||||
// open package
|
||||
PackagedP p = openAny(name.substr(1, pos-1));
|
||||
if (package) {
|
||||
package->requireDependency(p.get());
|
||||
}
|
||||
package = p.get();
|
||||
return p->openIn(name.substr(pos + 1));
|
||||
}
|
||||
} else if (package) {
|
||||
// relative name
|
||||
return package->openIn(name);
|
||||
}
|
||||
throw FileNotFoundError(name, _("No package name specified, use '/package/filename'"));
|
||||
}
|
||||
|
||||
bool PackageManager::checkDependency(const PackageDependency& dep, bool report_errors) {
|
||||
|
||||
Reference in New Issue
Block a user