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.
This commit is contained in:
parent
08584b7e22
commit
eec9261a75
|
@ -217,25 +217,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.parse_utf8((const char *)data.ptr(), data.size());
|
||||||
data_str = data_str.strip_edges();
|
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]
|
||||||
EditorNode::get_singleton()->show_warning(TTR("Invalid version.txt format inside templates."));
|
// so it can in theory have 3 or more slices.
|
||||||
|
if (data_str.get_slice_count(".") < 3) {
|
||||||
|
EditorNode::get_singleton()->show_warning(vformat(TTR("Invalid version.txt format inside templates: %s."), data_str));
|
||||||
unzClose(pkg);
|
unzClose(pkg);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
String ver = data_str.get_slice("-", 0);
|
version = data_str;
|
||||||
|
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fc++;
|
fc++;
|
||||||
|
|
Loading…
Reference in New Issue