mirror of
https://github.com/godotengine/godot.git
synced 2025-04-13 01:00:35 +08: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 eec9261a75699723f6e4b722910e5bb762b736db)
This commit is contained in:
parent
cb65617897
commit
be771e7165
@ -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++;
|
||||
|
Loading…
x
Reference in New Issue
Block a user