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)
char *getetcpath(char *binpath)
{
+ int f;
char *etcpath, *p;
size_t etcpathsize, etcpathdata;
etcpath = NULL;
etcpathsize = etcpathdata = 0;
+ f = 1;
do
{
+ if(f)
+ f = 0;
+ else
+ binpath++;
for(p = binpath; *p && (*p != ':'); p++);
for(; (p >= binpath) && (*p != '/'); p--);
if(p >= binpath)
}
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);
+}