/*
* Dolda Connect - Modular multiuser Direct Connect-style client
- * Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com)
+ * Copyright (C) 2004 Fredrik Tolf <fredrik@dolda2000.com>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
return(ln);
}
+static int wcsexists(wchar_t *h, wchar_t *n)
+{
+ size_t hl = wcslen(h), nl = wcslen(n);
+ wchar_t lh[hl + 1], ln[nl + 1];
+ int i;
+
+ for(i = 0; i <= hl; i++)
+ lh[i] = towlower(h[i]);
+ for(i = 0; i <= nl; i++)
+ ln[i] = towlower(n[i]);
+ return(wcsstr(lh, ln) != NULL);
+}
+
static void slmerge1(struct wcslist **list, wchar_t *str)
{
size_t len;
free(buf);
return(!ret);
case SOP_LINKRE:
- p = sr->filename;
- if(sr->fnet->filebasename != NULL)
- p = sr->fnet->filebasename(p);
+ p = fnfilebasename(sr->filename);
if((buf = icwcstombs(p, "UTF-8")) == NULL)
return(0);
ret = regexec(&sexpr->d.re.cre, buf, 0, NULL, 0);
case SOP_NAMESS:
return(wcsexists(sr->filename, sexpr->d.s));
case SOP_LINKSS:
- p = sr->filename;
- if(sr->fnet->filebasename != NULL)
- p = sr->fnet->filebasename(p);
+ p = fnfilebasename(sr->filename);
return(wcsexists(p, sexpr->d.s));
case SOP_SIZELT:
return(sr->size < sexpr->d.n);