From: PHO Date: Mon, 18 Oct 2010 17:30:13 +0000 (+0900) Subject: CFString.h (partway) X-Git-Url: http://git.cielonegro.org/gitweb.cgi?p=bindings-CoreFoundation.git;a=commitdiff_plain;h=390ebeaac98f21e2c6c5e8054353b40b0cd61313 CFString.h (partway) --- diff --git a/Bindings/CoreFoundation/CFString.hsc b/Bindings/CoreFoundation/CFString.hsc new file mode 100644 index 0000000..ea41f9f --- /dev/null +++ b/Bindings/CoreFoundation/CFString.hsc @@ -0,0 +1,159 @@ +#include +#include + +module Bindings.CoreFoundation.CFString where +#strict_import +import Bindings.CoreFoundation.CFBase +import Bindings.CoreFoundation.CFArray +import Bindings.CoreFoundation.CFData +import Bindings.CoreFoundation.CFDictionary +import Bindings.CoreFoundation.CFCharacterSet +import Bindings.CoreFoundation.CFLocale + +#integral_t CFStringEncoding +#num kCFStringEncodingInvalidId +#num kCFStringEncodingMacRoman +#num kCFStringEncodingWindowsLatin1 +#num kCFStringEncodingISOLatin1 +#num kCFStringEncodingNextStepLatin +#num kCFStringEncodingASCII +#num kCFStringEncodingUnicode +#num kCFStringEncodingUTF8 +#num kCFStringEncodingNonLossyASCII +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 +# num kCFStringEncodingUTF16 +# num kCFStringEncodingUTF16BE +# num kCFStringEncodingUTF16LE +# num kCFStringEncodingUTF32 +# num kCFStringEncodingUTF32BE +# num kCFStringEncodingUTF32LE +#endif +#synonym_t CFStringBuiltInEncodings, + +#ccall CFStringGetTypeID, IO + +-- NOTE: There's no way to import CFSTR(cStr) macro as it mentions +-- builtin functions. + +#ccall CFStringCreateWithPascalString, -> -> -> IO +#ccall CFStringCreateWithCString , -> Ptr CChar -> -> IO +#ccall CFStringCreateWithBytes , -> Ptr -> -> -> -> IO +#ccall CFStringCreateWithCharacters , -> Ptr -> -> IO + +#ccall CFStringCreateWithPascalStringNoCopy, -> -> -> -> IO +#ccall CFStringCreateWithCStringNoCopy , -> Ptr CChar -> -> -> IO + +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_4 +# ccall CFStringCreateWithBytesNoCopy, -> Ptr -> -> -> -> -> IO +#endif + +#cinline CFStringCreateWithSubstring, -> -> Ptr -> IO +#ccall CFStringCreateCopy , -> -> IO +-- NOTE: CFStringCreateWithFormat takes varargs. +-- NOTE: CFStringCreateWithFormatAndArguments takes va_list. +#ccall CFStringCreateMutable , -> -> IO +#ccall CFStringCreateMutableCopy , -> -> -> IO +#ccall CFStringCreateMutableWithExternalCharactersNoCopy, -> Ptr -> -> -> -> IO +#ccall CFStringGetLength , -> IO +#ccall CFStringGetCharacterAtIndex, -> -> IO +#cinline CFStringGetCharacters , -> Ptr -> Ptr -> IO () +#ccall CFStringGetPascalString , -> -> -> -> IO +#ccall CFStringGetCString , -> Ptr CChar -> -> -> IO +#ccall CFStringGetPascalStringPtr , -> -> IO +#ccall CFStringGetCStringPtr , -> -> IO (Ptr CChar) +#ccall CFStringGetCharactersPtr , -> IO (Ptr ) +#cinline CFStringGetBytes , -> Ptr -> -> -> -> Ptr -> -> Ptr -> IO +#ccall CFStringCreateFromExternalRepresentation, -> -> -> IO +#ccall CFStringCreateExternalRepresentation , -> -> -> -> IO +#ccall CFStringGetSmallestEncoding , -> IO +#ccall CFStringGetFastestEncoding , -> IO +#ccall CFStringGetSystemEncoding , IO +#ccall CFStringGetMaximumSizeForEncoding , -> -> IO +#ccall CFStringGetFileSystemRepresentation , -> Ptr CChar -> -> IO +#ccall CFStringGetMaximumSizeOfFileSystemRepresentation, -> IO +#ccall CFStringCreateWithFileSystemRepresentation , -> Ptr CChar -> IO + +#num kCFCompareCaseInsensitive +#num kCFCompareBackwards +#num kCFCompareAnchored +#num kCFCompareNonliteral +#num kCFCompareLocalized +#num kCFCompareNumerically +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +# num kCFCompareDiacriticInsensitive +# num kCFCompareWidthInsensitive +# num kCFCompareForcedOrdering +#endif +#synonym_t CFStringCompareFlags, + +#if !defined(__WIN32__) +# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +# cinline CFStringCompareWithOptionsAndLocale, -> -> Ptr -> -> -> IO +# endif +#endif + +#cinline CFStringCompareWithOptions, -> -> Ptr -> -> IO +#ccall CFStringCompare , -> -> -> IO + +#if !defined(__WIN32__) +# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +# cinline CFStringFindWithOptionsAndLocale, -> -> Ptr -> -> -> Ptr -> IO +# endif +#endif + +#cinline CFStringFindWithOptions , -> -> Ptr -> -> Ptr -> IO +#cinline CFStringCreateArrayWithFindResults, -> -> -> Ptr -> -> IO +#cinline CFStringFind , -> -> -> Ptr -> IO () +#ccall CFStringHasPrefix, -> -> IO +#ccall CFStringHasSuffix, -> -> IO + +#if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED +# cinline CFStringGetRangeOfComposedCharactersAtIndex, -> -> Ptr -> IO () +# cinline CFStringFindCharacterFromSet , -> -> Ptr -> -> Ptr -> IO +#endif + +#cinline CFStringGetLineBounds , -> Ptr -> Ptr -> Ptr -> Ptr -> IO () +#cinline CFStringGetParagraphBounds, -> Ptr -> Ptr -> Ptr -> Ptr -> IO () +#ccall CFStringCreateByCombiningStrings , -> -> -> IO +#ccall CFStringCreateArrayBySeparatingStrings, -> -> -> IO +#ccall CFStringGetIntValue , -> IO +#ccall CFStringGetDoubleValue , -> IO CDouble +#ccall CFStringAppend , -> -> IO () +#ccall CFStringAppendCharacters , -> Ptr -> -> IO () +#ccall CFStringAppendPascalString, -> -> -> IO () +#ccall CFStringAppendCString , -> Ptr CChar -> -> IO () +-- NOTE: CFStringAppendFormat takes varargs. +-- NOTE: CFStringAppendFormatAndArguments takes va_list. +#ccall CFStringInsert , -> -> -> IO () +#cinline CFStringDelete , -> Ptr -> IO () +#cinline CFStringReplace , -> Ptr -> -> IO () +#ccall CFStringReplaceAll , -> -> IO () + +#if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED +# cinline CFStringFindAndReplace , -> -> -> Ptr -> -> IO +#endif + +#ccall CFStringSetExternalCharactersNoCopy, -> Ptr -> -> -> IO () +#ccall CFStringPad , -> -> -> -> IO () +#ccall CFStringTrim , -> -> IO () +#ccall CFStringTrimWhitespace, -> IO () + +#ccall CFStringLowercase , -> -> IO () +#ccall CFStringUppercase , -> -> IO () +#ccall CFStringCapitalize, -> -> IO () + +#if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED +# num kCFStringNormalizationFormD +# num kCFStringNormalizationFormKD +# num kCFStringNormalizationFormC +# num kCFStringNormalizationFormKC +# synonym_t CFStringNormalizationForm , +# ccall CFStringNormalize , -> -> IO () +#endif + +#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +# ccall CFStringFold, -> -> -> IO () +#endif + +#ccall CFStringTransform, -> Ptr -> -> -> IO + diff --git a/bindings-CoreFoundation.cabal b/bindings-CoreFoundation.cabal index 8c4b6e4..d2573d8 100644 --- a/bindings-CoreFoundation.cabal +++ b/bindings-CoreFoundation.cabal @@ -35,6 +35,7 @@ Library Bindings.CoreFoundation.CFData Bindings.CoreFoundation.CFDictionary Bindings.CoreFoundation.CFLocale + Bindings.CoreFoundation.CFString C-Sources: cbits/helper_CFArray.c @@ -43,6 +44,7 @@ Library cbits/helper_CFData.c cbits/helper_CFDictionary.c cbits/helper_CFLocale.c + cbits/helper_CFString.c Extensions: ForeignFunctionInterface diff --git a/cbits/helper_CFString.c b/cbits/helper_CFString.c new file mode 100644 index 0000000..b6288ef --- /dev/null +++ b/cbits/helper_CFString.c @@ -0,0 +1,168 @@ +#include +#include + +CFStringRef +inline_CFStringCreateWithSubstring(CFAllocatorRef alloc, + CFStringRef str, + CFRange* range) { + return CFStringCreateWithSubstring(alloc, str, *range); +} + +void +inline_CFStringGetCharacters(CFStringRef theString, + CFRange* range, + UniChar *buffer) { + return CFStringGetCharacters(theString, *range, buffer); +} + +CFIndex +inline_CFStringGetBytes(CFStringRef theString, + CFRange* range, + CFStringEncoding encoding, + UInt8 lossByte, + Boolean isExternalRepresentation, + UInt8 *buffer, + CFIndex maxBufLen, + CFIndex *usedBufLen) { + return CFStringGetBytes(theString, *range, encoding, + lossByte, isExternalRepresentation, + buffer, maxBufLen, usedBufLen); +} + +#if !defined(__WIN32__) +# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +CFComparisonResult +inline_CFStringCompareWithOptionsAndLocale(CFStringRef theString1, + CFStringRef theString2, + CFRange* rangeToCompare, + CFOptionFlags compareOptions, + CFLocaleRef locale) { + return CFStringCompareWithOptionsAndLocale(theString1, theString2, + *rangeToCompare, + compareOptions, locale); +} +# endif +#endif + +CFComparisonResult +inline_CFStringCompareWithOptions(CFStringRef theString1, + CFStringRef theString2, + CFRange* rangeToCompare, + CFOptionFlags compareOptions) { + return CFStringCompareWithOptions(theString1, theString2, + *rangeToCompare, compareOptions); +} + +#if !defined(__WIN32__) +# if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_5 +Boolean +inline_CFStringFindWithOptionsAndLocale(CFStringRef theString, + CFStringRef stringToFind, + CFRange* rangeToSearch, + CFOptionFlags searchOptions, + CFLocaleRef locale, + CFRange *result) { + return CFStringFindWithOptionsAndLocale(theString, stringToFind, + *rangeToSearch, + searchOptions, locale, result); +} +# endif +#endif + +Boolean +inline_CFStringFindWithOptions(CFStringRef theString, + CFStringRef stringToFind, + CFRange* rangeToSearch, + CFOptionFlags searchOptions, + CFRange *result) { + return CFStringFindWithOptions(theString, stringToFind, + *rangeToSearch, + searchOptions, result); +} + +CFArrayRef +inline_CFStringCreateArrayWithFindResults(CFAllocatorRef alloc, + CFStringRef theString, + CFStringRef stringToFind, + CFRange* rangeToSearch, + CFOptionFlags compareOptions) { + return CFStringCreateArrayWithFindResults(alloc, theString, stringToFind, + *rangeToSearch, compareOptions); +} + +void +inline_CFStringFind(CFStringRef theString, + CFStringRef stringToFind, + CFOptionFlags compareOptions, + CFRange* result) { + *result = CFStringFind(theString, stringToFind, compareOptions); +} + +#if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED +void +inline_CFStringGetRangeOfComposedCharactersAtIndex(CFStringRef theString, + CFIndex theIndex, + CFRange* result) { + *result = CFStringGetRangeOfComposedCharactersAtIndex(theString, theIndex); +} + +Boolean +inline_CFStringFindCharacterFromSet(CFStringRef theString, + CFCharacterSetRef theSet, + CFRange* rangeToSearch, + CFOptionFlags searchOptions, + CFRange *result) { + return CFStringFindCharacterFromSet(theString, theSet, + *rangeToSearch, + searchOptions, result); +} +#endif + +void +inline_CFStringGetLineBounds(CFStringRef theString, + CFRange* range, + CFIndex *lineBeginIndex, + CFIndex *lineEndIndex, + CFIndex *contentsEndIndex) { + return CFStringGetLineBounds(theString, *range, + lineBeginIndex, lineEndIndex, + contentsEndIndex); +} + +void +inline_CFStringGetParagraphBounds(CFStringRef string, + CFRange* range, + CFIndex *parBeginIndex, + CFIndex *parEndIndex, + CFIndex *contentsEndIndex) { + return CFStringGetParagraphBounds(string, *range, + parBeginIndex, parEndIndex, + contentsEndIndex); +} + +void +inline_CFStringDelete(CFMutableStringRef theString, + CFRange* range) { + return CFStringDelete(theString, *range); +} + +void +inline_CFStringReplace(CFMutableStringRef theString, + CFRange* range, + CFStringRef replacement) { + return CFStringReplace(theString, *range, replacement); +} + +#if MAC_OS_X_VERSION_10_2 <= MAC_OS_X_VERSION_MAX_ALLOWED +CFIndex +inline_CFStringFindAndReplace(CFMutableStringRef theString, + CFStringRef stringToFind, + CFStringRef replacementString, + CFRange* rangeToSearch, + CFOptionFlags compareOptions) { + return CFStringFindAndReplace(theString, stringToFind, + replacementString, *rangeToSearch, + compareOptions); +} +#endif +