* EOControl/EOQualifier.m (_isLike): Handle unichar characters.

git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@22126 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
ayers 2005-11-30 20:50:30 +00:00
parent 4360053b01
commit daf9d811a9
2 changed files with 10 additions and 3 deletions

View file

@ -7,6 +7,7 @@
(getOperator, getKey, isNotQualifier, whichQualifier): Use
unichar instead of char.
([+qualifierWithQualifierFormat:varargList:]): Ditto.
(_isLike): Handle unichar characters.
2005-11-28 David Ayers <d.ayers@inode.at>

View file

@ -1154,7 +1154,7 @@ _isLike (NSString *self, NSString *regExpr, BOOL isCaseSensative)
NSString *scanned;
unsigned c = 0;
unsigned i = 0;
GDL2_BUFFER (tokens, [regExpr cStringLength], id);
GDL2_BUFFER (tokens, [regExpr length], id);
if ([self isEqual: regExpr])
{
@ -1181,9 +1181,15 @@ _isLike (NSString *self, NSString *regExpr, BOOL isCaseSensative)
if ([regExScanner scanCharactersFromSet: isLikeWildCardSet
intoString: &scanned])
{
const char *cScanned;
unsigned scannedLen;
unichar *cScanned;
for (cScanned = [scanned cString]; *cScanned != 0; cScanned++)
scannedLen = [scanned length];
cScanned = GSAutoreleasedBuffer((scannedLen+1) * sizeof(unichar));
[scanned getCharacters: cScanned];
cScanned[scannedLen] = 0;
for (; *cScanned != 0; cScanned++)
{
if (*cScanned == '?'
&& tokens[c - 1] != isLikeWildCardTokenS)