diff options
author | Christian Wieninger <cwieninger (at) gmx (dot) de> | 2009-05-06 23:02:32 +0200 |
---|---|---|
committer | Christian Wieninger <cwieninger (at) gmx (dot) de> | 2009-05-06 23:02:32 +0200 |
commit | c0cadf7fbf8a9df4273fcd6757debefb86c7a4aa (patch) | |
tree | 05c68cbef2995176476150a330ceb8a27ffdde59 /epgsearchtools.c | |
parent | e6bd92773bdd36685070a1e06b677fd6bc539a70 (diff) | |
download | vdr-plugin-epgsearch-c0cadf7fbf8a9df4273fcd6757debefb86c7a4aa.tar.gz vdr-plugin-epgsearch-c0cadf7fbf8a9df4273fcd6757debefb86c7a4aa.tar.bz2 |
some speed enhancements
Diffstat (limited to 'epgsearchtools.c')
-rw-r--r-- | epgsearchtools.c | 75 |
1 files changed, 20 insertions, 55 deletions
diff --git a/epgsearchtools.c b/epgsearchtools.c index 8021c12..89f820c 100644 --- a/epgsearchtools.c +++ b/epgsearchtools.c @@ -537,45 +537,6 @@ char *strreplacei(char *s, const char *s1, const char *s2) return s; } -unsigned int strcharcount(char* source, char ch) -{ - unsigned int count; - - for (count = 0; *source; source++) - if (*source == ch) - count++; - return (count); -} - -char *strreplaceall(char* source, char ch, const char* replacement) -{ - int replen; - int srclen; - unsigned int chnum; - register char *sptr, *nptr; - char *newval; - - chnum = strcharcount(source, ch); - - if (chnum == 0) - return (NULL); - - srclen = strlen(source); - replen = strlen(replacement); - newval = (char*) malloc(srclen + (chnum * replen) + 1); - nptr = newval; - for (sptr = source; chnum > 0; sptr++) - if (*sptr == ch) { - memcpy(nptr, replacement, replen); - nptr += replen; - chnum--; - } - else - *nptr++ = *sptr; - memcpy(nptr, sptr, srclen - (sptr - source) + 1); - return (newval); -} - void sleepMSec(long ms) { cCondWait::SleepMs(ms); @@ -898,22 +859,26 @@ void DelTimer(int index) char* FixSeparators(char* buffer, char sep) { - char tmp[5]; - sprintf(tmp, "%c\t", sep); - buffer = strreplacei(buffer, tmp, "\t"); - sprintf(tmp, "%c \t", sep); - buffer = strreplacei(buffer, tmp, "\t"); - sprintf(tmp, "%c ", sep); - if (strstr(buffer, tmp) == buffer + strlen(buffer) - 2) buffer[strlen(buffer) - 2] = 0; - if (buffer[strlen(buffer)-1] == sep) buffer[strlen(buffer) - 1] = 0; - - sprintf(tmp, "\t%c", sep); - buffer = strreplacei(buffer, tmp, "\t"); - sprintf(tmp, "\t %c", sep); - buffer = strreplacei(buffer, tmp, "\t"); - sprintf(tmp, "\t %c", sep); - buffer = strreplacei(buffer, tmp, "\t"); - return buffer; + char tmp[5]; + tmp[0] = sep; tmp[1] = '\t'; tmp[2] = '\0'; + buffer = strreplacei(buffer, tmp, '\t'); + tmp[0] = sep; tmp[1] = ' '; tmp[2] = '\t'; tmp[3] = '\0'; + buffer = strreplacei(buffer, tmp, '\t'); + tmp[0] = sep; tmp[1] = ' '; tmp[2] = '\0'; + + unsigned int len = strlen(buffer); + if (strstr(buffer, tmp) == buffer + len - 2) + buffer[len-2] = '\0'; + if (buffer[len-1] == sep) + buffer[len-1] = '\0'; + + tmp[0] = '\t'; tmp[1] = sep; tmp[2] = '\0'; + buffer = strreplacei(buffer, tmp, '\t'); + tmp[0] = '\t'; tmp[1] = ' '; tmp[2] = sep; tmp[3] = '\0'; + buffer = strreplacei(buffer, tmp, '\t'); + tmp[0] = '\t'; tmp[1] = ' '; tmp[2] = ' '; tmp[3] = sep; tmp[4] = '\0'; + buffer = strreplacei(buffer, tmp, '\t'); + return buffer; } cString DateTime(time_t t) |