| Index: icu46/source/i18n/ucsdet.cpp
|
| ===================================================================
|
| --- icu46/source/i18n/ucsdet.cpp (revision 0)
|
| +++ icu46/source/i18n/ucsdet.cpp (revision 0)
|
| @@ -0,0 +1,180 @@
|
| +/*
|
| + ********************************************************************************
|
| + * Copyright (C) 2005-2007, International Business Machines
|
| + * Corporation and others. All Rights Reserved.
|
| + ********************************************************************************
|
| + */
|
| +
|
| +#include "unicode/utypes.h"
|
| +
|
| +#if !UCONFIG_NO_CONVERSION
|
| +#include "unicode/ucsdet.h"
|
| +#include "csdetect.h"
|
| +#include "csmatch.h"
|
| +
|
| +#include "cmemory.h"
|
| +
|
| +U_NAMESPACE_USE
|
| +
|
| +#define ARRAY_SIZE(array) (sizeof array / sizeof array[0])
|
| +
|
| +#define NEW_ARRAY(type,count) (type *) uprv_malloc((count) * sizeof(type))
|
| +#define DELETE_ARRAY(array) uprv_free((void *) (array))
|
| +
|
| +U_CDECL_BEGIN
|
| +
|
| +U_CAPI UCharsetDetector * U_EXPORT2
|
| +ucsdet_open(UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return 0;
|
| + }
|
| +
|
| + CharsetDetector* csd = new CharsetDetector(*status);
|
| +
|
| + if (U_FAILURE(*status)) {
|
| + delete csd;
|
| + csd = NULL;
|
| + }
|
| +
|
| + return (UCharsetDetector *) csd;
|
| +}
|
| +
|
| +U_CAPI void U_EXPORT2
|
| +ucsdet_close(UCharsetDetector *ucsd)
|
| +{
|
| + CharsetDetector *csd = (CharsetDetector *) ucsd;
|
| + delete csd;
|
| +}
|
| +
|
| +U_CAPI void U_EXPORT2
|
| +ucsdet_setText(UCharsetDetector *ucsd, const char *textIn, int32_t len, UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return;
|
| + }
|
| +
|
| + ((CharsetDetector *) ucsd)->setText(textIn, len);
|
| +}
|
| +
|
| +U_CAPI const char * U_EXPORT2
|
| +ucsdet_getName(const UCharsetMatch *ucsm, UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return NULL;
|
| + }
|
| +
|
| + return ((CharsetMatch *) ucsm)->getName();
|
| +}
|
| +
|
| +U_CAPI int32_t U_EXPORT2
|
| +ucsdet_getConfidence(const UCharsetMatch *ucsm, UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return 0;
|
| + }
|
| +
|
| + return ((CharsetMatch *) ucsm)->getConfidence();
|
| +}
|
| +
|
| +U_CAPI const char * U_EXPORT2
|
| +ucsdet_getLanguage(const UCharsetMatch *ucsm, UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return NULL;
|
| + }
|
| +
|
| + return ((CharsetMatch *) ucsm)->getLanguage();
|
| +}
|
| +
|
| +U_CAPI const UCharsetMatch * U_EXPORT2
|
| +ucsdet_detect(UCharsetDetector *ucsd, UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return NULL;
|
| + }
|
| +
|
| + return (const UCharsetMatch *) ((CharsetDetector *) ucsd)->detect(*status);
|
| +}
|
| +
|
| +U_CAPI void U_EXPORT2
|
| +ucsdet_setDeclaredEncoding(UCharsetDetector *ucsd, const char *encoding, int32_t length, UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return;
|
| + }
|
| +
|
| + ((CharsetDetector *) ucsd)->setDeclaredEncoding(encoding,length);
|
| +}
|
| +
|
| +U_CAPI const UCharsetMatch**
|
| +ucsdet_detectAll(UCharsetDetector *ucsd,
|
| + int32_t *maxMatchesFound, UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return NULL;
|
| + }
|
| +
|
| + CharsetDetector *csd = (CharsetDetector *) ucsd;
|
| +
|
| + return (const UCharsetMatch**)csd->detectAll(*maxMatchesFound,*status);
|
| +}
|
| +
|
| +// U_CAPI const char * U_EXPORT2
|
| +// ucsdet_getDetectableCharsetName(const UCharsetDetector *csd, int32_t index, UErrorCode *status)
|
| +// {
|
| +// if(U_FAILURE(*status)) {
|
| +// return 0;
|
| +// }
|
| +// return csd->getCharsetName(index,*status);
|
| +// }
|
| +
|
| +// U_CAPI int32_t U_EXPORT2
|
| +// ucsdet_getDetectableCharsetsCount(const UCharsetDetector *csd, UErrorCode *status)
|
| +// {
|
| +// if(U_FAILURE(*status)) {
|
| +// return -1;
|
| +// }
|
| +// return UCharsetDetector::getDetectableCount();
|
| +// }
|
| +
|
| +U_CAPI UBool U_EXPORT2
|
| +ucsdet_isInputFilterEnabled(const UCharsetDetector *ucsd)
|
| +{
|
| + // todo: could use an error return...
|
| + if (ucsd == NULL) {
|
| + return FALSE;
|
| + }
|
| +
|
| + return ((CharsetDetector *) ucsd)->getStripTagsFlag();
|
| +}
|
| +
|
| +U_CAPI UBool U_EXPORT2
|
| +ucsdet_enableInputFilter(UCharsetDetector *ucsd, UBool filter)
|
| +{
|
| + // todo: could use an error return...
|
| + if (ucsd == NULL) {
|
| + return FALSE;
|
| + }
|
| +
|
| + CharsetDetector *csd = (CharsetDetector *) ucsd;
|
| + UBool prev = csd->getStripTagsFlag();
|
| +
|
| + csd->setStripTagsFlag(filter);
|
| +
|
| + return prev;
|
| +}
|
| +
|
| +U_CAPI int32_t U_EXPORT2
|
| +ucsdet_getUChars(const UCharsetMatch *ucsm,
|
| + UChar *buf, int32_t cap, UErrorCode *status)
|
| +{
|
| + if(U_FAILURE(*status)) {
|
| + return 0;
|
| + }
|
| +
|
| + return ((CharsetMatch *) ucsm)->getUChars(buf, cap, status);
|
| +}
|
| +U_CDECL_END
|
| +
|
| +#endif
|
|
|
| Property changes on: icu46/source/i18n/ucsdet.cpp
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|