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 uint32_t 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 uint32_t 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 char *GWEN_Text_UnescapeN(const char *src,
00105 unsigned int srclen,
00106 char *buffer,
00107 unsigned int maxsize);
00108
00109 GWENHYWFAR_API
00110 char *GWEN_Text_EscapeTolerant(const char *src,
00111 char *buffer,
00112 unsigned int maxsize);
00113
00114 GWENHYWFAR_API
00115 char *GWEN_Text_UnescapeTolerant(const char *src,
00116 char *buffer,
00117 unsigned int maxsize);
00118
00119 GWENHYWFAR_API
00120 char *GWEN_Text_UnescapeTolerantN(const char *src,
00121 unsigned int srclen,
00122 char *buffer,
00123 unsigned int maxsize);
00124
00125
00126 GWENHYWFAR_API
00127 int GWEN_Text_EscapeToBuffer(const char *src, GWEN_BUFFER *buf);
00128
00129 GWENHYWFAR_API
00130 int GWEN_Text_UnescapeToBuffer(const char *src, GWEN_BUFFER *buf);
00131
00137 GWENHYWFAR_API
00138 int GWEN_Text_EscapeToBufferTolerant(const char *src, GWEN_BUFFER *buf);
00139
00140 GWENHYWFAR_API
00141 int GWEN_Text_EscapeToBufferTolerant2(GWEN_BUFFER *src, GWEN_BUFFER *buf);
00142
00143
00148 GWENHYWFAR_API
00149 int GWEN_Text_UnescapeToBufferTolerant(const char *src, GWEN_BUFFER *buf);
00150
00151
00152 GWENHYWFAR_API
00153 char *GWEN_Text_ToHex(const char *src, unsigned l, char *buffer,
00154 unsigned int maxsize);
00155
00163 GWENHYWFAR_API
00164 int GWEN_Text_ToHexBuffer(const char *src, unsigned l,
00165 GWEN_BUFFER *buf,
00166 unsigned int groupsize,
00167 char delimiter,
00168 int skipLeadingZeroes);
00169
00174 GWENHYWFAR_API
00175 char *GWEN_Text_ToHexGrouped(const char *src,
00176 unsigned l,
00177 char *buffer,
00178 unsigned maxsize,
00179 unsigned int groupsize,
00180 char delimiter,
00181 int skipLeadingZeros);
00182
00183 GWENHYWFAR_API
00184 int GWEN_Text_FromHex(const char *src, char *buffer, unsigned maxsize);
00185
00189 GWENHYWFAR_API
00190 int GWEN_Text_FromHexBuffer(const char *src, GWEN_BUFFER *buf);
00191
00192
00196 GWENHYWFAR_API
00197 int GWEN_Text_FromBcdBuffer(const char *src, GWEN_BUFFER *buf);
00198
00199
00207 GWENHYWFAR_API
00208 int GWEN_Text_ToBcdBuffer(const char *src, unsigned l,
00209 GWEN_BUFFER *buf,
00210 unsigned int groupsize,
00211 char delimiter,
00212 int skipLeadingZeroes);
00213
00214
00220 GWENHYWFAR_API
00221 int GWEN_Text_NumToString(int num, char *buffer, unsigned int bufsize,
00222 int fillchar);
00223
00230 GWENHYWFAR_API
00231 int GWEN_Text_DoubleToBuffer(double num, GWEN_BUFFER *buf);
00232
00239 GWENHYWFAR_API
00240 int GWEN_Text_StringToDouble(const char *s, double *num);
00241
00242
00249 GWENHYWFAR_API
00250 int GWEN_Text_Compare(const char *s1, const char *s2, int ign);
00251
00252
00260 GWENHYWFAR_API
00261 int GWEN_Text_ComparePattern(const char *w, const char *p, int sensecase);
00262
00263
00268 GWENHYWFAR_API
00269 void GWEN_Text_DumpString(const char *s, unsigned intl, FILE *f,
00270 unsigned int insert);
00271
00272
00273 GWENHYWFAR_API
00274 void GWEN_Text_DumpString2Buffer(const char *s, unsigned int l,
00275 GWEN_BUFFER *mbuf,
00276 unsigned int insert);
00277
00278 GWENHYWFAR_API
00279 void GWEN_Text_LogString(const char *s, unsigned int l,
00280 const char *logDomain,
00281 GWEN_LOGGER_LEVEL lv);
00282
00283
00288 GWENHYWFAR_API
00289 void GWEN_Text_CondenseBuffer(GWEN_BUFFER *buf);
00290
00291
00298 GWENHYWFAR_API
00299 int GWEN_Text_CountUtf8Chars(const char *s, int len);
00300
00301
00306 GWENHYWFAR_API
00307 int GWEN_Text_EscapeXmlToBuffer(const char *src, GWEN_BUFFER *buf);
00308
00312 GWENHYWFAR_API
00313 int GWEN_Text_UnescapeXmlToBuffer(const char *src, GWEN_BUFFER *buf);
00314
00315
00331 GWENHYWFAR_API
00332 double GWEN_Text_CheckSimilarity(const char *s1, const char *s2, int ign);
00333
00334
00335
00336 #ifdef __cplusplus
00337 }
00338 #endif
00339
00340
00341 #endif
00342
00343
00344