/*------------------------------------------------------------------------------ * Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team * * Distributable under the terms of either the Apache License (Version 2.0) or * the GNU Lesser General Public License, as specified in the COPYING file. ------------------------------------------------------------------------------*/ #ifndef _lucene_repl_wchar_h #define _lucene_repl_wchar_h #ifdef _UCS2 #ifndef _CL_HAVE_WCSCPY //copy a string to another string #error wcscpy is not defined, and a licensed replacement has not been written yet #endif #ifndef _CL_HAVE_WCSNCPY //copy a specified amount of one string to another string. #error wcsncpy is not defined, and a licensed replacement has not been written yet #endif #ifndef _CL_HAVE_WCSCAT //copy a string onto the end of the other string #error wcscat is not defined, and a licensed replacement has not been written yet #endif #ifndef _CL_HAVE_WCSCHR //find location of one character #error wcschr is not defined, and a licensed replacement has not been written yet #endif #ifndef _CL_HAVE_WCSSTR //find location of a string #error wcspy is not defined, and a licensed replacement has not been written yet #endif #ifndef _CL_HAVE_WCSLEN //get length of a string #error wcslen is not defined, and a licensed replacement has not been written yet #endif #ifndef _CL_HAVE_WCSCMP //case sensitive compare two strings #error wcscmp is not defined, and a licensed replacement has not been written yet #endif #ifndef _CL_HAVE_WCSNCMP //case sensitive compare two strings of a specified length #error wcsncmp is not defined, and a licensed replacement has not been written yet #endif #ifndef _CL_HAVE_WCSCSPN //Return the length of the maximum initial segment //of WCS which contains only wide-characters not in REJECT. #error wcscspn is not defined, and a licensed replacement has not been written yet #endif #endif //_UCS2 //string function replacements #if defined(LUCENE_USE_INTERNAL_CHAR_FUNCTIONS) || (defined(_UCS2) && !defined(_CL_HAVE_WCSCASECMP)) || (defined(_ASCII) && !defined(_CL_HAVE_STRCASECMP)) int lucene_tcscasecmp(const TCHAR *, const TCHAR *); #undef _tcsicmp #define _tcsicmp lucene_tcscasecmp #endif #if defined(LUCENE_USE_INTERNAL_CHAR_FUNCTIONS) || (defined(_UCS2) && !defined(_CL_HAVE_WCSLWR)) || (defined(_ASCII) && !defined(_CL_HAVE_STRLWR)) TCHAR* lucene_tcslwr( TCHAR* str ); #undef _tcslwr #define _tcslwr lucene_tcslwr #endif //conversion functions #if (defined(_ASCII) && !defined(_CL_HAVE_LLTOA)) || (defined(_UCS2) && !defined(_CL_HAVE_LLTOW)) TCHAR* lucene_i64tot( int64_t value, TCHAR* str, int radix); #undef _i64tot #define _i64tot lucene_i64tot #endif #if (defined(_UCS2) && !defined(_CL_HAVE_WCSTOLL)) || (defined(_ASCII) && !defined(_CL_HAVE_STRTOLL)) int64_t lucene_tcstoi64(const TCHAR* str, TCHAR**end, int radix); #undef _tcstoi64 #define _tcstoi64 lucene_tcstoi64 #endif #if defined(_UCS2) && !defined(_CL_HAVE_WCSTOD) double lucene_tcstod(const TCHAR *value, TCHAR **end); #undef _tcstod #define _tcstod lucene_tcstod #endif //printf functions #if defined(_UCS2) && (!defined(_CL_HAVE_SNWPRINTF) || defined(_CL_HAVE_SWPRINTF_BUG) ) #undef _sntprintf #define _sntprintf lucene_snwprintf int lucene_snwprintf(wchar_t* strbuf, size_t count, const wchar_t * format, ...); #ifndef __CL_INCLUDE_TPRINTF #define __CL_INCLUDE_TPRINTF #endif #endif #if defined(_UCS2) && !defined(_CL_HAVE_WPRINTF) #undef _tprintf #define _tprintf lucene_wprintf void lucene_wprintf(const wchar_t * format, ...); #ifndef __CL_INCLUDE_TPRINTF #define __CL_INCLUDE_TPRINTF #endif #endif #if defined(_UCS2) && (!defined(_CL_HAVE_VSNWPRINTF) || defined(_CL_HAVE_SWPRINTF_BUG) ) #undef _vsntprintf #define _vsntprintf lucene_vsnwprintf int lucene_vsnwprintf(wchar_t * strbuf, size_t count, const wchar_t * format, va_list& ap); #ifndef __CL_INCLUDE_TPRINTF #define __CL_INCLUDE_TPRINTF #endif #endif //todo: if _CL_HAVE_SNPRINTF_BUG fails(snprintf overflow),we should use our own //function. but we don't have it currently, and our functions are dubious anyway... #endif //end of _lucene_repl_wchar_h