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
00028
00029
00030 #ifndef GWENHYWFAR_TEXT_H
00031 #define GWENHYWFAR_TEXT_H
00032
00033 #include <gwenhywfar/gwenhywfarapi.h>
00034 #include <gwenhywfar/types.h>
00035 #include <gwenhywfar/logger.h>
00036 #include <gwenhywfar/buffer.h>
00037 #include <stdio.h>
00038
00039
00040 #ifdef __cplusplus
00041 extern "C" {
00042 #endif
00043
00044 #define GWEN_TEXT_FUZZY_SHIFT 10
00045
00046
00047 #define GWEN_TEXT_FLAGS_DEL_LEADING_BLANKS 0x00000001
00048 #define GWEN_TEXT_FLAGS_DEL_TRAILING_BLANKS 0x00000002
00049 #define GWEN_TEXT_FLAGS_DEL_MULTIPLE_BLANKS 0x00000004
00050 #define GWEN_TEXT_FLAGS_NEED_DELIMITER 0x00000008
00051 #define GWEN_TEXT_FLAGS_NULL_IS_DELIMITER 0x00000010
00052 #define GWEN_TEXT_FLAGS_DEL_QUOTES 0x00000020
00053 #define GWEN_TEXT_FLAGS_CHECK_BACKSLASH 0x00000040
00054
00055
00072 GWENHYWFAR_API
00073 char *GWEN_Text_GetWord(const char *src,
00074 const char *delims,
00075 char *buffer,
00076 unsigned int maxsize,
00077 GWEN_TYPE_UINT32 flags,
00078 const char **next);
00079
00080 GWENHYWFAR_API
00081 int GWEN_Text_GetWordToBuffer(const char *src,
00082 const char *delims,
00083 GWEN_BUFFER *buf,
00084 GWEN_TYPE_UINT32 flags,
00085 const char **next);
00086
00087
00093 GWENHYWFAR_API
00094 char *GWEN_Text_Escape(const char *src,
00095 char *buffer,
00096 unsigned int maxsize);
00097
00098 GWENHYWFAR_API
00099 char *GWEN_Text_Unescape(const char *src,
00100 char *buffer,
00101 unsigned int maxsize);
00102
00103 GWENHYWFAR_API
00104 int GWEN_Text_EscapeToBuffer(const char *src, GWEN_BUFFER *buf);
00105
00106 GWENHYWFAR_API
00107 int GWEN_Text_UnescapeToBuffer(const char *src, GWEN_BUFFER *buf);
00108
00114 GWENHYWFAR_API
00115 int GWEN_Text_EscapeToBufferTolerant(const char *src, GWEN_BUFFER *buf);
00116
00117 GWENHYWFAR_API
00118 int GWEN_Text_EscapeToBufferTolerant2(GWEN_BUFFER *src, GWEN_BUFFER *buf);
00119
00120
00125 GWENHYWFAR_API
00126 int GWEN_Text_UnescapeToBufferTolerant(const char *src, GWEN_BUFFER *buf);
00127
00128
00129 GWENHYWFAR_API
00130 char *GWEN_Text_ToHex(const char *src, unsigned l, char *buffer,
00131 unsigned int maxsize);
00132
00140 GWENHYWFAR_API
00141 int GWEN_Text_ToHexBuffer(const char *src, unsigned l,
00142 GWEN_BUFFER *buf,
00143 unsigned int groupsize,
00144 char delimiter,
00145 int skipLeadingZeroes);
00146
00151 GWENHYWFAR_API
00152 char *GWEN_Text_ToHexGrouped(const char *src,
00153 unsigned l,
00154 char *buffer,
00155 unsigned maxsize,
00156 unsigned int groupsize,
00157 char delimiter,
00158 int skipLeadingZeros);
00159
00160 GWENHYWFAR_API
00161 int GWEN_Text_FromHex(const char *src, char *buffer, unsigned maxsize);
00162
00166 GWENHYWFAR_API
00167 int GWEN_Text_FromHexBuffer(const char *src, GWEN_BUFFER *buf);
00168
00169
00173 GWENHYWFAR_API
00174 int GWEN_Text_FromBcdBuffer(const char *src, GWEN_BUFFER *buf);
00175
00176
00184 GWENHYWFAR_API
00185 int GWEN_Text_ToBcdBuffer(const char *src, unsigned l,
00186 GWEN_BUFFER *buf,
00187 unsigned int groupsize,
00188 char delimiter,
00189 int skipLeadingZeroes);
00190
00191
00197 GWENHYWFAR_API
00198 int GWEN_Text_NumToString(int num, char *buffer, unsigned int bufsize,
00199 int fillchar);
00200
00207 GWENHYWFAR_API
00208 int GWEN_Text_DoubleToBuffer(double num, GWEN_BUFFER *buf);
00209
00216 GWENHYWFAR_API
00217 int GWEN_Text_StringToDouble(const char *s, double *num);
00218
00219
00226 GWENHYWFAR_API
00227 int GWEN_Text_Compare(const char *s1, const char *s2, int ign);
00228
00229
00237 GWENHYWFAR_API
00238 int GWEN_Text_ComparePattern(const char *w, const char *p, int sensecase);
00239
00240
00245 GWENHYWFAR_API
00246 void GWEN_Text_DumpString(const char *s, unsigned l, FILE *f, unsigned insert);
00247
00248
00249 GWENHYWFAR_API
00250 void GWEN_Text_DumpString2Buffer(const char *s, unsigned l,
00251 GWEN_BUFFER *mbuf,
00252 unsigned insert);
00253
00254 GWENHYWFAR_API
00255 void GWEN_Text_LogString(const char *s, unsigned l,
00256 const char *logDomain,
00257 GWEN_LOGGER_LEVEL lv);
00258
00259
00264 GWENHYWFAR_API
00265 void GWEN_Text_CondenseBuffer(GWEN_BUFFER *buf);
00266
00267
00274 GWENHYWFAR_API
00275 int GWEN_Text_CountUtf8Chars(const char *s, int len);
00276
00277
00282 GWENHYWFAR_API
00283 int GWEN_Text_EscapeXmlToBuffer(const char *src, GWEN_BUFFER *buf);
00284
00288 GWENHYWFAR_API
00289 int GWEN_Text_UnescapeXmlToBuffer(const char *src, GWEN_BUFFER *buf);
00290
00291
00307 GWENHYWFAR_API
00308 double GWEN_Text_CheckSimilarity(const char *s1, const char *s2, int ign);
00309
00310
00311
00312 #ifdef __cplusplus
00313 }
00314 #endif
00315
00316
00317 #endif
00318
00319
00320