00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
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