blob: 1cb6c66cac8f08511aeb0ecb50a5fe83d0b66390 [file] [log] [blame]
/* CFCharacterSet.h
Copyright (C) 2012 Free Software Foundation, Inc.
Written by: Stefan Bidigaray
Date: January, 2012
This file is part of the GNUstep CoreBase Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; see the file COPYING.LIB.
If not, see <http://www.gnu.org/licenses/> or write to the
Free Software Foundation, 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#ifndef __COREFOUNDATION_CFCHARACTERSET_H__
#define __COREFOUNDATION_CFCHARACTERSET_H__
#include "CFBase.h"
#include "CFData.h"
CF_EXTERN_C_BEGIN
/** \ingroup CFCharacterSetRef */
typedef const struct __CFCharacterSet * CFCharacterSetRef;
/** \ingroup CFMutableCharacterSetRef */
typedef struct __CFCharacterSet * CFMutableCharacterSetRef;
/** \defgroup CFCharacterSetRef CFCharacterSet Reference
\{
*/
typedef enum
{
kCFCharacterSetControl = 1,
kCFCharacterSetWhitespace,
kCFCharacterSetWhitespaceAndNewline,
kCFCharacterSetDecimalDigit,
kCFCharacterSetLetter,
kCFCharacterSetLowercaseLetter,
kCFCharacterSetUppercaseLetter,
kCFCharacterSetNonBase,
kCFCharacterSetDecomposable,
kCFCharacterSetAlphaNumeric,
kCFCharacterSetPunctuation,
#if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
kCFCharacterSetCapitalizedLetter = 13,
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
kCFCharacterSetSymbol = 14,
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_5, GS_API_LATEST)
kCFCharacterSetNewline = 15,
#endif
kCFCharacterSetIllegal = 12
} CFCharacterSetPredefinedSet;
/** \name Creating Character Sets
\{
*/
#if OS_API_VERSION(MAC_OS_X_VERSION_10_3, GS_API_LATEST)
CF_EXPORT CFCharacterSetRef
CFCharacterSetCreateCopy (CFAllocatorRef alloc, CFCharacterSetRef set);
#endif
#if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
CF_EXPORT CFCharacterSetRef
CFCharacterSetCreateInvertedSet (CFAllocatorRef alloc, CFCharacterSetRef set);
#endif
CF_EXPORT CFCharacterSetRef
CFCharacterSetCreateWithCharactersInRange (CFAllocatorRef alloc,
CFRange range);
CF_EXPORT CFCharacterSetRef
CFCharacterSetCreateWithCharactersInString (CFAllocatorRef alloc,
CFStringRef string);
CF_EXPORT CFCharacterSetRef
CFCharacterSetCreateWithBitmapRepresentation (CFAllocatorRef alloc,
CFDataRef data);
/** \} */
/** \name Getting Predefined Character Sets
\{
*/
CF_EXPORT CFCharacterSetRef
CFCharacterSetGetPredefined (CFCharacterSetPredefinedSet setIdentifier);
/** \} */
/** \name Querying Character Sets
\{
*/
CF_EXPORT CFDataRef
CFCharacterSetCreateBitmapRepresentation (CFAllocatorRef alloc,
CFCharacterSetRef set);
CF_EXPORT Boolean
CFCharacterSetIsCharacterMember (CFCharacterSetRef set, UniChar c);
#if OS_API_VERSION(MAC_OS_X_VERSION_10_2, GS_API_LATEST)
CF_EXPORT Boolean
CFCharacterSetHasMemberInPlane (CFCharacterSetRef set, CFIndex plane);
CF_EXPORT Boolean
CFCharacterSetIsLongCharacterMember (CFCharacterSetRef set, UTF32Char c);
CF_EXPORT Boolean
CFCharacterSetIsSupersetOfSet (CFCharacterSetRef set,
CFCharacterSetRef otherSet);
#endif
/** \} */
/** \name Getting the Character Set Type Identifier
\{
*/
CF_EXPORT CFTypeID
CFCharacterSetGetTypeID (void);
/** \} */
/** \} */
/** \defgroup CFMutableCharacterSetRef CFMutableCharacterSet Reference
\{
*/
CF_EXPORT CFMutableCharacterSetRef
CFCharacterSetCreateMutable (CFAllocatorRef alloc);
CF_EXPORT CFMutableCharacterSetRef
CFCharacterSetCreateMutableCopy (CFAllocatorRef alloc, CFCharacterSetRef set);
CF_EXPORT void
CFCharacterSetAddCharactersInRange (CFMutableCharacterSetRef set,
CFRange range);
CF_EXPORT void
CFCharacterSetAddCharactersInString (CFMutableCharacterSetRef set,
CFStringRef string);
CF_EXPORT void
CFCharacterSetRemoveCharactersInRange (CFMutableCharacterSetRef set,
CFRange range);
CF_EXPORT void
CFCharacterSetRemoveCharactersInString (CFMutableCharacterSetRef set,
CFStringRef string);
CF_EXPORT void
CFCharacterSetIntersect (CFMutableCharacterSetRef set,
CFCharacterSetRef otherSet);
CF_EXPORT void
CFCharacterSetInvert (CFMutableCharacterSetRef set);
CF_EXPORT void
CFCharacterSetUnion (CFMutableCharacterSetRef set, CFCharacterSetRef otherSet);
/** \} */
CF_EXTERN_C_END
#endif /* __COREFOUNDATION_CFCHARACTERSET_H__ */