mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-13 00:43:32 +00:00
ICU-2784 Need to use the options constructor from UnicodeSet.
X-SVN-Rev: 11467
This commit is contained in:
parent
c85a8170b7
commit
2f7f7b2fcf
3 changed files with 70 additions and 29 deletions
|
@ -14,6 +14,7 @@
|
|||
#include "unicode/utypes.h"
|
||||
#include "unicode/unistr.h"
|
||||
#include "unicode/uchar.h"
|
||||
#include "unicode/uset.h"
|
||||
|
||||
U_NAMESPACE_BEGIN
|
||||
|
||||
|
@ -26,33 +27,6 @@ class TransliteratorParser;
|
|||
class UVector;
|
||||
class CaseEquivClass;
|
||||
|
||||
/**
|
||||
* Bitmask values to be passed to the UnicodeSet constructor or
|
||||
* applyPattern() taking an option parameter.
|
||||
* @internal
|
||||
*/
|
||||
enum {
|
||||
/**
|
||||
* Ignore white space within patterns unless quoted or escaped.
|
||||
* @internal
|
||||
*/
|
||||
USET_IGNORE_SPACE = 1,
|
||||
|
||||
/**
|
||||
* Enable case insensitive matching. E.g., "[ab]" with this flag
|
||||
* will match 'a', 'A', 'b', and 'B'. "[^ab]" with this flag will
|
||||
* match all except 'a', 'A', 'b', and 'B'.
|
||||
* @internal
|
||||
*/
|
||||
USET_CASE_INSENSITIVE = 2,
|
||||
|
||||
/**
|
||||
* Bitmask for UnicodeSet::closeOver() indicating letter case.
|
||||
* This may be ORed together with other selectors.
|
||||
* @internal
|
||||
*/
|
||||
USET_CASE = 2
|
||||
};
|
||||
|
||||
/**
|
||||
* A mutable set of Unicode characters and multicharacter strings. Objects of this class
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
|
||||
#include "unicode/utypes.h"
|
||||
|
||||
#ifndef UCNV_H
|
||||
struct USet;
|
||||
/**
|
||||
* A UnicodeSet. Use the uset_* API to manipulate. Create with
|
||||
|
@ -36,9 +37,39 @@ struct USet;
|
|||
* @draft ICU 2.4
|
||||
*/
|
||||
typedef struct USet USet;
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Bitmask values to be passed to the UnicodeSet constructor or
|
||||
* applyPattern() taking an option parameter.
|
||||
* @draft
|
||||
*/
|
||||
enum {
|
||||
USET_SERIALIZED_STATIC_ARRAY_CAPACITY=8 /**< enough for any single-code point set */
|
||||
/**
|
||||
* Ignore white space within patterns unless quoted or escaped.
|
||||
* @draft
|
||||
*/
|
||||
USET_IGNORE_SPACE = 1,
|
||||
|
||||
/**
|
||||
* Enable case insensitive matching. E.g., "[ab]" with this flag
|
||||
* will match 'a', 'A', 'b', and 'B'. "[^ab]" with this flag will
|
||||
* match all except 'a', 'A', 'b', and 'B'.
|
||||
* @draft
|
||||
*/
|
||||
USET_CASE_INSENSITIVE = 2,
|
||||
|
||||
/**
|
||||
* Bitmask for UnicodeSet::closeOver() indicating letter case.
|
||||
* This may be ORed together with other selectors.
|
||||
* @internal
|
||||
*/
|
||||
USET_CASE = 2,
|
||||
/**
|
||||
* Enough for any single-code point set
|
||||
* @internal
|
||||
*/
|
||||
USET_SERIALIZED_STATIC_ARRAY_CAPACITY=8
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -98,6 +129,20 @@ U_CAPI USet* U_EXPORT2
|
|||
uset_openPattern(const UChar* pattern, int32_t patternLength,
|
||||
UErrorCode* ec);
|
||||
|
||||
/**
|
||||
* Creates a set from the given pattern. See the UnicodeSet class
|
||||
* description for the syntax of the pattern language.
|
||||
* @param pattern a string specifying what characters are in the set
|
||||
* @param patternLength the length of the pattern, or -1 if null
|
||||
* terminated
|
||||
* @param ec the error code
|
||||
* @draft ICU 2.4
|
||||
*/
|
||||
U_CAPI USet* U_EXPORT2
|
||||
uset_openPatternOptions(const UChar* pattern, int32_t patternLength,
|
||||
uint32_t options,
|
||||
UErrorCode* ec);
|
||||
|
||||
/**
|
||||
* Disposes of the storage used by a USet object. This function should
|
||||
* be called exactly once for objects returned by uset_open().
|
||||
|
|
|
@ -35,7 +35,8 @@ uset_open(UChar32 start, UChar32 end) {
|
|||
|
||||
U_CAPI USet* U_EXPORT2
|
||||
uset_openPattern(const UChar* pattern, int32_t patternLength,
|
||||
UErrorCode* ec) {
|
||||
UErrorCode* ec)
|
||||
{
|
||||
UnicodeString pat(patternLength==-1, pattern, patternLength);
|
||||
UnicodeSet* set = new UnicodeSet(pat, *ec);
|
||||
/* test for NULL */
|
||||
|
@ -51,6 +52,27 @@ uset_openPattern(const UChar* pattern, int32_t patternLength,
|
|||
return (USet*) set;
|
||||
}
|
||||
|
||||
U_CAPI USet* U_EXPORT2
|
||||
uset_openPatternOptions(const UChar* pattern, int32_t patternLength,
|
||||
uint32_t options,
|
||||
UErrorCode* ec)
|
||||
{
|
||||
UnicodeString pat(patternLength==-1, pattern, patternLength);
|
||||
UnicodeSet* set = new UnicodeSet(pat, options, *ec);
|
||||
/* test for NULL */
|
||||
if(set == 0) {
|
||||
*ec = U_MEMORY_ALLOCATION_ERROR;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (U_FAILURE(*ec)) {
|
||||
delete set;
|
||||
set = NULL;
|
||||
}
|
||||
return (USet*) set;
|
||||
}
|
||||
|
||||
|
||||
U_CAPI void U_EXPORT2
|
||||
uset_close(USet* set) {
|
||||
delete (UnicodeSet*) set;
|
||||
|
|
Loading…
Add table
Reference in a new issue