c = (int)(unsigned char)*data;
if(c == '=')
break;
+ if(c == '\n')
+ continue;
if(base64rev[c] == -1)
{
if(buf != NULL)
c = (int)(unsigned char)*data;
if(c == '=')
break;
+ if(c == '\n')
+ continue;
if(base32rev[c] == -1)
{
if(buf != NULL)
}
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);
+}