From 4cf08cdbace699ba24838ff8223c94213146b880 Mon Sep 17 00:00:00 2001 From: helge Date: Mon, 15 Jan 2007 19:05:37 +0000 Subject: [PATCH] fixed a bug in the qualifier parser git-svn-id: http://svn.opengroupware.org/SOPE/trunk@1399 e4a50df8-12e2-0310-a44c-efbce7f8a7e3 --- sope-core/EOControl/ChangeLog | 5 +++++ sope-core/EOControl/EOQualifierParser.m | 15 ++++++++++++--- sope-core/EOControl/Version | 2 +- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/sope-core/EOControl/ChangeLog b/sope-core/EOControl/ChangeLog index d38d2939..0810e125 100644 --- a/sope-core/EOControl/ChangeLog +++ b/sope-core/EOControl/ChangeLog @@ -1,3 +1,8 @@ +2007-01-15 Stephane Corthesy + + * EOQualifierParser.m (_parseValue): fixed a bug in the qualifier + parser (v4.5.72) + 2006-12-17 Marcus Mueller * EOKeyValueCoding.m: fixed a runtime portability issue - removed diff --git a/sope-core/EOControl/EOQualifierParser.m b/sope-core/EOControl/EOQualifierParser.m index 5f228670..1f803442 100644 --- a/sope-core/EOControl/EOQualifierParser.m +++ b/sope-core/EOControl/EOQualifierParser.m @@ -1,5 +1,6 @@ /* - Copyright (C) 2000-2005 SKYRIX Software AG + Copyright (C) 2000-2007 SKYRIX Software AG + Copyright (C) 2007 Helge Hess This file is part of SOPE. @@ -956,9 +957,17 @@ static id _parseValue(id _ctx, const char *_buf, unsigned _bufLen, if (rc != 0) /* does not match */ continue; - if (!(_buf[pos + toklen] == '\0' || isspace(_buf[pos + toklen]))) - /* not at the string end or folloed by a space */ + + if (!(_buf[pos + toklen] == '\0' || isspace(_buf[pos + toklen]) || + _buf[pos + toklen] == ')')) { + /* + Not at the string end or followed by a space or a right + parenthesis. The latter is required to correctly parse this: + (not (attribute = nil) and + attribute.className = 'com.webobjects.foundation.NSTimestamp') + */ continue; + } /* wow, found the token */ pos += toklen; /* skip it */ diff --git a/sope-core/EOControl/Version b/sope-core/EOControl/Version index 1adf4e06..c897650b 100644 --- a/sope-core/EOControl/Version +++ b/sope-core/EOControl/Version @@ -1,3 +1,3 @@ # version file -SUBMINOR_VERSION:=71 +SUBMINOR_VERSION:=72 -- 2.39.5