gwenhywfar  4.3.3
text.h
Go to the documentation of this file.
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