[Libreoffice-commits] core.git: i18nutil/source
Justin Luth
justin_luth at sil.org
Thu Nov 5 10:18:08 PST 2015
i18nutil/source/utility/unicode.cxx | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
New commits:
commit c93db073425e61907a290f3f5826c0f79f310275
Author: Justin Luth <justin_luth at sil.org>
Date: Thu Nov 5 17:22:42 2015 +0300
related tdf#73691 - prevent AltX creating control characters
Do nothing for numbers 0x00 - 0x1f.
Change-Id: Idda596e735c464b97dc3624253ebbea86933ff2c
Reviewed-on: https://gerrit.libreoffice.org/19654
Tested-by: Jenkins <ci at libreoffice.org>
Reviewed-by: Eike Rathke <erack at redhat.com>
Tested-by: Eike Rathke <erack at redhat.com>
diff --git a/i18nutil/source/utility/unicode.cxx b/i18nutil/source/utility/unicode.cxx
index 8b56239..a7d3d46 100644
--- a/i18nutil/source/utility/unicode.cxx
+++ b/i18nutil/source/utility/unicode.cxx
@@ -1084,6 +1084,13 @@ bool ToggleUnicodeCodepoint::AllowMoreInput(sal_Unicode uChar)
return false;
}
+ // 0 - 1f are control characters. Do not process those.
+ if( uChar < 0x20 )
+ {
+ mbAllowMoreChars = false;
+ return false;
+ }
+
switch( uChar )
{
case 'u':
@@ -1117,9 +1124,6 @@ bool ToggleUnicodeCodepoint::AllowMoreInput(sal_Unicode uChar)
maInput.insertUtf32(0, uChar);
}
break;
- case 0:
- mbAllowMoreChars = false;
- break;
default:
// + already found. Since not U, cancel further input
if( mbRequiresU )
@@ -1185,15 +1189,15 @@ OUString ToggleUnicodeCodepoint::StringToReplace()
while( nUPlus != -1 )
{
nUnicode = sIn.copy(0, nUPlus).toString().toUInt32(16);
- //strip out all null or invalid Unicode values
- if( !nUnicode || nUnicode > 0x10ffff )
+ //prevent creating control characters or invalid Unicode values
+ if( nUnicode < 0x20 || nUnicode > 0x10ffff )
maInput = sIn.copy(nUPlus);
sIn = sIn.copy(nUPlus+2);
nUPlus = sIn.indexOf("U+");
}
nUnicode = sIn.toString().toUInt32(16);
- if( !nUnicode || nUnicode > 0x10ffff )
+ if( nUnicode < 0x20 || nUnicode > 0x10ffff )
maInput.truncate().append( sIn[sIn.getLength()-1] );
return maInput.toString();
}
More information about the Libreoffice-commits
mailing list