gwenhywfar
4.3.1
|
00001 /*************************************************************************** 00002 begin : Sat Jun 28 2003 00003 copyright : (C) 2003 by Martin Preuss 00004 email : martin@libchipcard.de 00005 00006 *************************************************************************** 00007 * * 00008 * This library is free software; you can redistribute it and/or * 00009 * modify it under the terms of the GNU Lesser General Public * 00010 * License as published by the Free Software Foundation; either * 00011 * version 2.1 of the License, or (at your option) any later version. * 00012 * * 00013 * This library is distributed in the hope that it will be useful, * 00014 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 00015 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * 00016 * Lesser General Public License for more details. * 00017 * * 00018 * You should have received a copy of the GNU Lesser General Public * 00019 * License along with this library; if not, write to the Free Software * 00020 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, * 00021 * MA 02111-1307 USA * 00022 * * 00023 ***************************************************************************/ 00024 00025 00026 00027 #ifndef GWENHYWFAR_TEXT_H 00028 #define GWENHYWFAR_TEXT_H 00029 00030 #include <gwenhywfar/gwenhywfarapi.h> 00031 #include <gwenhywfar/types.h> 00032 #include <gwenhywfar/logger.h> 00033 #include <gwenhywfar/buffer.h> 00034 #include <stdio.h> 00035 00036 00037 #ifdef __cplusplus 00038 extern "C" { 00039 #endif 00040 00041 #define GWEN_TEXT_FUZZY_SHIFT 10 00042 00043 00044 #define GWEN_TEXT_FLAGS_DEL_LEADING_BLANKS 0x00000001 00045 #define GWEN_TEXT_FLAGS_DEL_TRAILING_BLANKS 0x00000002 00046 #define GWEN_TEXT_FLAGS_DEL_MULTIPLE_BLANKS 0x00000004 00047 #define GWEN_TEXT_FLAGS_NEED_DELIMITER 0x00000008 00048 #define GWEN_TEXT_FLAGS_NULL_IS_DELIMITER 0x00000010 00049 #define GWEN_TEXT_FLAGS_DEL_QUOTES 0x00000020 00050 #define GWEN_TEXT_FLAGS_CHECK_BACKSLASH 0x00000040 00051 00052 00069 GWENHYWFAR_API 00070 char *GWEN_Text_GetWord(const char *src, 00071 const char *delims, 00072 char *buffer, 00073 unsigned int maxsize, 00074 uint32_t flags, 00075 const char **next); 00076 00077 GWENHYWFAR_API 00078 int GWEN_Text_GetWordToBuffer(const char *src, 00079 const char *delims, 00080 GWEN_BUFFER *buf, 00081 uint32_t flags, 00082 const char **next); 00083 00084 00090 GWENHYWFAR_API 00091 char *GWEN_Text_Escape(const char *src, 00092 char *buffer, 00093 unsigned int maxsize); 00094 00095 GWENHYWFAR_API 00096 char *GWEN_Text_Unescape(const char *src, 00097 char *buffer, 00098 unsigned int maxsize); 00099 00100 GWENHYWFAR_API 00101 char *GWEN_Text_UnescapeN(const char *src, 00102 unsigned int srclen, 00103 char *buffer, 00104 unsigned int maxsize); 00105 00106 GWENHYWFAR_API 00107 char *GWEN_Text_EscapeTolerant(const char *src, 00108 char *buffer, 00109 unsigned int maxsize); 00110 00111 GWENHYWFAR_API 00112 char *GWEN_Text_UnescapeTolerant(const char *src, 00113 char *buffer, 00114 unsigned int maxsize); 00115 00116 GWENHYWFAR_API 00117 char *GWEN_Text_UnescapeTolerantN(const char *src, 00118 unsigned int srclen, 00119 char *buffer, 00120 unsigned int maxsize); 00121 00122 00123 GWENHYWFAR_API 00124 int GWEN_Text_EscapeToBuffer(const char *src, GWEN_BUFFER *buf); 00125 00126 GWENHYWFAR_API 00127 int GWEN_Text_UnescapeToBuffer(const char *src, GWEN_BUFFER *buf); 00128 00134 GWENHYWFAR_API 00135 int GWEN_Text_EscapeToBufferTolerant(const char *src, GWEN_BUFFER *buf); 00136 00137 GWENHYWFAR_API 00138 int GWEN_Text_EscapeToBufferTolerant2(GWEN_BUFFER *src, GWEN_BUFFER *buf); 00139 00140 00145 GWENHYWFAR_API 00146 int GWEN_Text_UnescapeToBufferTolerant(const char *src, GWEN_BUFFER *buf); 00147 00148 00149 GWENHYWFAR_API 00150 char *GWEN_Text_ToHex(const char *src, unsigned l, char *buffer, 00151 unsigned int maxsize); 00152 00160 GWENHYWFAR_API 00161 int GWEN_Text_ToHexBuffer(const char *src, unsigned l, 00162 GWEN_BUFFER *buf, 00163 unsigned int groupsize, 00164 char delimiter, 00165 int skipLeadingZeroes); 00166 00171 GWENHYWFAR_API 00172 char *GWEN_Text_ToHexGrouped(const char *src, 00173 unsigned l, 00174 char *buffer, 00175 unsigned maxsize, 00176 unsigned int groupsize, 00177 char delimiter, 00178 int skipLeadingZeros); 00179 00180 GWENHYWFAR_API 00181 int GWEN_Text_FromHex(const char *src, char *buffer, unsigned maxsize); 00182 00186 GWENHYWFAR_API 00187 int GWEN_Text_FromHexBuffer(const char *src, GWEN_BUFFER *buf); 00188 00189 00193 GWENHYWFAR_API 00194 int GWEN_Text_FromBcdBuffer(const char *src, GWEN_BUFFER *buf); 00195 00196 00204 GWENHYWFAR_API 00205 int GWEN_Text_ToBcdBuffer(const char *src, unsigned l, 00206 GWEN_BUFFER *buf, 00207 unsigned int groupsize, 00208 char delimiter, 00209 int skipLeadingZeroes); 00210 00211 00217 GWENHYWFAR_API 00218 int GWEN_Text_NumToString(int num, char *buffer, unsigned int bufsize, 00219 int fillchar); 00220 00227 GWENHYWFAR_API 00228 int GWEN_Text_DoubleToBuffer(double num, GWEN_BUFFER *buf); 00229 00236 GWENHYWFAR_API 00237 int GWEN_Text_StringToDouble(const char *s, double *num); 00238 00239 00246 GWENHYWFAR_API 00247 int GWEN_Text_Compare(const char *s1, const char *s2, int ign); 00248 00249 00254 GWENHYWFAR_API 00255 const char *GWEN_Text_StrCaseStr(const char *haystack, const char *needle); 00256 00257 00265 GWENHYWFAR_API 00266 int GWEN_Text_ComparePattern(const char *w, const char *p, int sensecase); 00267 00268 00273 GWENHYWFAR_API 00274 void GWEN_Text_DumpString(const char *s, unsigned int l, 00275 unsigned int insert); 00276 00277 00278 GWENHYWFAR_API 00279 void GWEN_Text_DumpString2Buffer(const char *s, unsigned int l, 00280 GWEN_BUFFER *mbuf, 00281 unsigned int insert); 00282 00283 GWENHYWFAR_API 00284 void GWEN_Text_LogString(const char *s, unsigned int l, 00285 const char *logDomain, 00286 GWEN_LOGGER_LEVEL lv); 00287 00288 00293 GWENHYWFAR_API 00294 void GWEN_Text_CondenseBuffer(GWEN_BUFFER *buf); 00295 00296 00303 GWENHYWFAR_API 00304 int GWEN_Text_CountUtf8Chars(const char *s, int len); 00305 00306 00311 GWENHYWFAR_API 00312 int GWEN_Text_EscapeXmlToBuffer(const char *src, GWEN_BUFFER *buf); 00313 00317 GWENHYWFAR_API 00318 int GWEN_Text_UnescapeXmlToBuffer(const char *src, GWEN_BUFFER *buf); 00319 00320 00336 GWENHYWFAR_API 00337 double GWEN_Text_CheckSimilarity(const char *s1, const char *s2, int ign); 00338 00339 00350 GWENHYWFAR_API 00351 int GWEN_Text_ConvertCharset(const char *fromCharset, 00352 const char *toCharset, 00353 const char *text, int len, 00354 GWEN_BUFFER *tbuf); 00355 00356 00357 00358 #ifdef __cplusplus 00359 } 00360 #endif 00361 00362 00363 #endif 00364 00365 00366