X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Futils.h;h=ce46c01f89eb241345d43da0545184c52ae1e6fa;hb=b00ef4d125101f053361481b238fcf5318aac805;hp=b8b6803e7e11855cacd0d8a8e0c85ebad107c019;hpb=d3372da97568d5e1f35fa19787c8ec8af93a0435;p=doldaconnect.git diff --git a/daemon/utils.h b/daemon/utils.h index b8b6803..ce46c01 100644 --- a/daemon/utils.h +++ b/daemon/utils.h @@ -24,6 +24,12 @@ #include #include "log.h" +struct wcspair { + struct wcspair *next; + wchar_t *key; + wchar_t *val; +}; + /* "Safe" functions */ #define smalloc(size) ({void *__result__; ((__result__ = malloc(size)) == NULL)?({LOGOOM(size); abort(); (void *)0;}):__result__;}) #define srealloc(ptr, size) ({void *__result__; ((__result__ = realloc((ptr), (size))) == NULL)?({LOGOOM(size); abort(); (void *)0;}):__result__;}) @@ -59,10 +65,10 @@ char *sprintf2(char *format, ...) #if defined(__GNUC__) && 0 __attribute__ ((format (printf, 1, 2))) #endif - ; wchar_t *vswprintf2(wchar_t *format, va_list al); wchar_t *swprintf2(wchar_t *format, ...); +int havecharset(char *charset); wchar_t *icmbstowcs(char *mbs, char *charset); wchar_t *icsmbstowcs(char *mbs, char *charset, wchar_t *def); char *icwcstombs(wchar_t *wcs, char *charset); @@ -83,7 +89,10 @@ char *base32encode(char *data, size_t datalen); char *base32decode(char *data, size_t *datalen); void _freeparr(void **arr); int _parrlen(void **arr); -char *findfile(char *gname, char *uname, char *homedir); +char *findfile(char *gname, char *uname, char *homedir, int filldef); +struct wcspair *newwcspair(wchar_t *key, wchar_t *val, struct wcspair **list); +void freewcspair(struct wcspair *pair, struct wcspair **list); +wchar_t *wpfind(struct wcspair *list, wchar_t *key); #define sizebuf(b, bs, rs, es, a) _sizebuf((void **)(b), (bs), (rs), (es), (a)) #define sizebuf2(b, rs, a) _sizebuf((void **)(&(b)), &(b ## size), (rs), sizeof(*(b)), (a))