1 /*------------------------------------------------------------------------------ 2 * Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team 3 * 4 * Distributable under the terms of either the Apache License (Version 2.0) or 5 * the GNU Lesser General Public License, as specified in the COPYING file. 6 ------------------------------------------------------------------------------*/ 7 #ifndef _lucene_repl_wchar_h 8 #define _lucene_repl_wchar_h 9 10 #ifdef _UCS2 11 12 #ifndef _CL_HAVE_WCSCPY 13 //copy a string to another string 14 #error wcscpy is not defined, and a licensed replacement has not been written yet 15 #endif 16 17 #ifndef _CL_HAVE_WCSNCPY 18 //copy a specified amount of one string to another string. 19 #error wcsncpy is not defined, and a licensed replacement has not been written yet 20 #endif 21 22 #ifndef _CL_HAVE_WCSCAT 23 //copy a string onto the end of the other string 24 #error wcscat is not defined, and a licensed replacement has not been written yet 25 #endif 26 27 #ifndef _CL_HAVE_WCSCHR 28 //find location of one character 29 #error wcschr is not defined, and a licensed replacement has not been written yet 30 #endif 31 32 #ifndef _CL_HAVE_WCSSTR 33 //find location of a string 34 #error wcspy is not defined, and a licensed replacement has not been written yet 35 #endif 36 37 #ifndef _CL_HAVE_WCSLEN 38 //get length of a string 39 #error wcslen is not defined, and a licensed replacement has not been written yet 40 #endif 41 42 #ifndef _CL_HAVE_WCSCMP 43 //case sensitive compare two strings 44 #error wcscmp is not defined, and a licensed replacement has not been written yet 45 #endif 46 47 #ifndef _CL_HAVE_WCSNCMP 48 //case sensitive compare two strings of a specified length 49 #error wcsncmp is not defined, and a licensed replacement has not been written yet 50 #endif 51 52 #ifndef _CL_HAVE_WCSCSPN 53 //Return the length of the maximum initial segment 54 //of WCS which contains only wide-characters not in REJECT. 55 #error wcscspn is not defined, and a licensed replacement has not been written yet 56 #endif 57 58 #endif //_UCS2 59 60 //string function replacements 61 #if defined(LUCENE_USE_INTERNAL_CHAR_FUNCTIONS) || (defined(_UCS2) && !defined(_CL_HAVE_WCSCASECMP)) || (defined(_ASCII) && !defined(_CL_HAVE_STRCASECMP)) 62 int lucene_tcscasecmp(const TCHAR *, const TCHAR *); 63 #undef _tcsicmp 64 #define _tcsicmp lucene_tcscasecmp 65 #endif 66 #if defined(LUCENE_USE_INTERNAL_CHAR_FUNCTIONS) || (defined(_UCS2) && !defined(_CL_HAVE_WCSLWR)) || (defined(_ASCII) && !defined(_CL_HAVE_STRLWR)) 67 TCHAR* lucene_tcslwr( TCHAR* str ); 68 #undef _tcslwr 69 #define _tcslwr lucene_tcslwr 70 #endif 71 72 //conversion functions 73 #if (defined(_ASCII) && !defined(_CL_HAVE_LLTOA)) || (defined(_UCS2) && !defined(_CL_HAVE_LLTOW)) 74 TCHAR* lucene_i64tot( int64_t value, TCHAR* str, int radix); 75 #undef _i64tot 76 #define _i64tot lucene_i64tot 77 #endif 78 #if (defined(_UCS2) && !defined(_CL_HAVE_WCSTOLL)) || (defined(_ASCII) && !defined(_CL_HAVE_STRTOLL)) 79 int64_t lucene_tcstoi64(const TCHAR* str, TCHAR**end, int radix); 80 #undef _tcstoi64 81 #define _tcstoi64 lucene_tcstoi64 82 #endif 83 #if defined(_UCS2) && !defined(_CL_HAVE_WCSTOD) 84 double lucene_tcstod(const TCHAR *value, TCHAR **end); 85 #undef _tcstod 86 #define _tcstod lucene_tcstod 87 #endif 88 89 //printf functions 90 #if defined(_UCS2) && (!defined(_CL_HAVE_SNWPRINTF) || defined(_CL_HAVE_SWPRINTF_BUG) ) 91 #undef _sntprintf 92 #define _sntprintf lucene_snwprintf 93 int lucene_snwprintf(wchar_t* strbuf, size_t count, const wchar_t * format, ...); 94 95 #ifndef __CL_INCLUDE_TPRINTF 96 #define __CL_INCLUDE_TPRINTF 97 #endif 98 #endif 99 #if defined(_UCS2) && !defined(_CL_HAVE_WPRINTF) 100 #undef _tprintf 101 #define _tprintf lucene_wprintf 102 void lucene_wprintf(const wchar_t * format, ...); 103 104 #ifndef __CL_INCLUDE_TPRINTF 105 #define __CL_INCLUDE_TPRINTF 106 #endif 107 #endif 108 #if defined(_UCS2) && (!defined(_CL_HAVE_VSNWPRINTF) || defined(_CL_HAVE_SWPRINTF_BUG) ) 109 #undef _vsntprintf 110 #define _vsntprintf lucene_vsnwprintf 111 int lucene_vsnwprintf(wchar_t * strbuf, size_t count, const wchar_t * format, va_list& ap); 112 113 #ifndef __CL_INCLUDE_TPRINTF 114 #define __CL_INCLUDE_TPRINTF 115 #endif 116 #endif 117 118 //todo: if _CL_HAVE_SNPRINTF_BUG fails(snprintf overflow),we should use our own 119 //function. but we don't have it currently, and our functions are dubious anyway... 120 121 #endif //end of _lucene_repl_wchar_h 122