You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-26 15:46:23 +00:00
Fix version.txt validation logic for export templates .tpz
It assumed that the version would always be `x.y-status`,
with no dot possible in `status`, so:
- It would not work for 3.0.1-stable (nor 3.0.1.stable with new version logic)
- It would not support Mono templates when we provide them
The validation it did was not really useful anyway, so we just use the raw
string.
(cherry picked from commit eec9261a75)
This commit is contained in:
@@ -215,25 +215,15 @@ void ExportTemplateManager::_install_from_file(const String &p_file, bool p_use_
|
||||
data_str.parse_utf8((const char *)data.ptr(), data.size());
|
||||
data_str = data_str.strip_edges();
|
||||
|
||||
if (data_str.get_slice_count("-") != 2 || data_str.get_slice_count(".") != 2) {
|
||||
// Version number should be of the form major.minor[.patch].status[.module_config]
|
||||
// so it can in theory have 3 or more slices.
|
||||
if (data_str.get_slice_count(".") < 3) {
|
||||
EditorNode::get_singleton()->show_warning(TTR("Invalid version.txt format inside templates."));
|
||||
unzClose(pkg);
|
||||
return;
|
||||
}
|
||||
|
||||
String ver = data_str.get_slice("-", 0);
|
||||
|
||||
int major = ver.get_slice(".", 0).to_int();
|
||||
int minor = ver.get_slice(".", 1).to_int();
|
||||
String rev = data_str.get_slice("-", 1);
|
||||
|
||||
if (!rev.is_valid_identifier()) {
|
||||
EditorNode::get_singleton()->show_warning(TTR("Invalid version.txt format inside templates. Revision is not a valid identifier."));
|
||||
unzClose(pkg);
|
||||
return;
|
||||
}
|
||||
|
||||
version = itos(major) + "." + itos(minor) + "-" + rev;
|
||||
version = data_str;
|
||||
}
|
||||
|
||||
fc++;
|
||||
|
||||
Reference in New Issue
Block a user