X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Futils.c;h=8f66370a0529e6cfa9e242418202d0bb4779efe7;hb=14a9e5fd98873ace8b10bb86c4b079374329ca62;hp=8e38459e004f9166aa5033297963e61852828bd1;hpb=65399bc233d5f8910bf589d08b43b933975b462a;p=doldaconnect.git diff --git a/daemon/utils.c b/daemon/utils.c index 8e38459..8f66370 100644 --- a/daemon/utils.c +++ b/daemon/utils.c @@ -745,3 +745,45 @@ char *findfile(char *gname, char *uname, char *homedir) } return(NULL); } + +struct wcspair *newwcspair(wchar_t *key, wchar_t *val, struct wcspair **list) +{ + struct wcspair *pair; + + pair = smalloc(sizeof(*pair)); + memset(pair, 0, sizeof(*pair)); + if(key != NULL) + pair->key = swcsdup(key); + if(val != NULL) + pair->val = swcsdup(val); + if(list == NULL) + { + pair->next = NULL; + } else { + pair->next = *list; + *list = pair; + } + return(pair); +} + +void freewcspair(struct wcspair *pair, struct wcspair **list) +{ + if(list != NULL) + { + if(*list == pair) + *list = pair->next; + } + free(pair->key); + free(pair->val); + free(pair); +} + +wchar_t *wpfind(struct wcspair *list, wchar_t *key) +{ + for(; list != NULL; list = list->next) + { + if(!wcscmp(list->key, key)) + return(list->val); + } + return(NULL); +}