X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=daemon%2Fsearch.c;h=d2d9969c50a8905518fc9f31a53e1c1f0daabb29;hb=e228205873396d5ec9f659c6a363c29e457f330f;hp=d16e5a0118e28ee1a78a2fca0599c0bc4ffe4003;hpb=9d8cf7438740ac21033158d8ba039e40e1f3abc2;p=doldaconnect.git diff --git a/daemon/search.c b/daemon/search.c index d16e5a0..d2d9969 100644 --- a/daemon/search.c +++ b/daemon/search.c @@ -1,6 +1,6 @@ /* * Dolda Connect - Modular multiuser Direct Connect-style client - * Copyright (C) 2004 Fredrik Tolf (fredrik@dolda2000.com) + * Copyright (C) 2004 Fredrik Tolf * * 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 @@ -17,7 +17,6 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include -#include #include #include #include @@ -396,10 +395,12 @@ static struct reinfo analyzere(wchar_t *re, wchar_t **endret, wchar_t endc) if(ret.begstr != NULL) { for(i = 0; (sinf.begstr[i] != L'\0') && (ret.begstr != L'\0') && (ret.begstr[i] == sinf.begstr[i]); i++); - if(i == 0) + if(i == 0) { free(ret.begstr); - else + ret.begstr = NULL; + } else { ret.begstr[i] = L'\0'; + } } free(sinf.begstr); } else { @@ -424,10 +425,12 @@ static struct reinfo analyzere(wchar_t *re, wchar_t **endret, wchar_t endc) maxlen = len1; } for(i = 1; (i <= minlen) && (ret.endstr[len1 - i] == sinf.endstr[len2 - i]); i++); - if(i == 1) + if(i == 1) { free(ret.endstr); - else if(i <= maxlen) + ret.endstr = NULL; + } else if(i <= maxlen) { wmemmove(ret.endstr, ret.endstr + (len1 - i) + 1, i); + } } free(sinf.endstr); } else { @@ -1082,9 +1085,7 @@ static int srisvalid(struct srchres *sr, struct sexpr *sexpr) 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); @@ -1093,9 +1094,7 @@ static int srisvalid(struct srchres *sr, struct sexpr *sexpr) 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);