fix(mail): When signature is too big and changing identity, a 'regex too big' error occurs. In this case just add signature at the end. Fixes #5695.

This commit is contained in:
smizrahi
2023-07-31 10:41:11 +02:00
parent 68cef9ae03
commit b7e529dd49
@@ -411,16 +411,24 @@
signature = nl.repeat(nlNb) + '--' + space + nl + identity.signature;
else
signature = '';
previousIdentity = _.find(this.identities, function (currentIdentity, index) {
if (currentIdentity.signature) {
var currentSignature = new RegExp('(' + reNl + '){' + nlNb + '}--' + space + reNl +
currentIdentity.signature.replace(/[-\[\]{}()*+?.,\\^$|#\s]/g, '\\$&'));
if (vm.message.editable.text.search(currentSignature) >= 0) {
vm.message.editable.text = vm.message.editable.text.replace(currentSignature, signature);
try {
var currentSignature = new RegExp('(' + reNl + '){' + nlNb + '}--' + space + reNl +
currentIdentity.signature.replace(/[-\[\]{}()*+?.,\\^$|#\s]/g, '\\$&'));
if (vm.message.editable.text.search(currentSignature) >= 0) {
vm.message.editable.text = vm.message.editable.text.replace(currentSignature, signature);
return true;
}
} catch (error) {
// An error can occur (regex too long) when the signature is too big (using images)
// In this case, just add the signature at the end (#5695)
vm.message.editable.text += signature;
return true;
}
}
return false;
});