Idź do dokumentacji tego pliku.00001
00002
00003 #ifndef __EKG_STRINGS_H
00004 #define __EKG_STRINGS_H
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "ekg2-config.h"
00025
00026
00027 #if USE_UNICODE
00028
00029 #include <wchar.h>
00030
00031 extern int config_use_unicode;
00032
00033 #define CHAR_T wchar_t
00034 #define TEXT(x) (wchar_t *) L##x
00035 #define CHAR(x) (wchar_t) L##x
00036 #define STRING_FORMAT "%ls"
00037 #define CHAR_FORMAT "%lc"
00038
00039 extern size_t xwcslen(const CHAR_T *str);
00040 extern size_t xmbslen(const char *str);
00041 extern CHAR_T *xwcscpy(CHAR_T *dst, CHAR_T *src);
00042 extern CHAR_T *xwcsdup(CHAR_T *str);
00043 extern CHAR_T *xwcscat(CHAR_T *dst, const CHAR_T *src);
00044 extern int xwcscmp(const CHAR_T *s1, const CHAR_T *s2);
00045 extern CHAR_T *xwcschr(const CHAR_T *s, CHAR_T c);
00046 extern char *wcs_to_normal(const CHAR_T *str);
00047 extern CHAR_T *normal_to_wcs(const char *str);
00048 extern CHAR_T **wcs_array_make(const CHAR_T *string, const CHAR_T *sep, int max, int trim, int quotes);
00049 extern CHAR_T *wcs_array_join(CHAR_T **array, const CHAR_T *sep);
00050 extern size_t xwcslcpy(CHAR_T *dst, const CHAR_T *src, size_t size);
00051
00052 #define free_utf(x) xfree(x)
00053
00054 #else
00055
00056 #include "xmalloc.h"
00057
00058 #define CHAR_T unsigned char
00059 #define TEXT(x) x
00060 #define CHAR(x) x
00061 #define STRING_FORMAT "%s"
00062 #define CHAR_FORMAT "%c"
00063
00064 #define xwcslen(str) xstrlen((char *) str)
00065 #define xmbslen(str) xstrlen(str)
00066 #define xwcscpy(dst, str) xstrcpy((char *) dst, (char *) str)
00067 #define xwcsdup(str) (CHAR_T *) xstrdup((char *) str)
00068 #define xwcscat(dst, src) xstrcat((char *) dst, (char *) src)
00069 #define xwcscmp(s1, s2) xstrcmp((char *) s1, (char *) s2)
00070 #define xwcschr(s, c) xstrchr((char *) s, c)
00071 #define wcs_to_normal(x) (char *) x
00072 #define wcs_array_make(str, sep, max, trim, quotes) (CHAR_T **) array_make((char *) str, sep, max, trim, quotes)
00073 #define wcs_array_join(arr, sep) (CHAR_T *) array_join((char **) arr, sep)
00074 #define xwcslcpy(dst, src, size) strlcpy((char *) dst, (char *) src, size)
00075 #define free_utf(x)
00076
00077 #endif
00078
00079
00080 #endif