From 8ebbde3223643ce359742a30d2afa15a4b68317d Mon Sep 17 00:00:00 2001 From: ajuaristi Date: Thu, 22 May 2014 09:51:59 +0200 Subject: [PATCH] Added function to trim strings. --- hydra-mod.c | 23 +++++++++++++++++++++++ hydra-mod.h | 1 + 2 files changed, 24 insertions(+) diff --git a/hydra-mod.c b/hydra-mod.c index a9cefab..c8aa999 100644 --- a/hydra-mod.c +++ b/hydra-mod.c @@ -1285,3 +1285,26 @@ int hydra_memsearch(char *haystack, int hlen, char *needle, int nlen) { return i; return -1; } + +char * hydra_trim(char * str) { + size_t len = strlen(str); + char * str_ptr[] = {str, NULL}; + + // Truncate leading spaces + for(; *str_ptr[0] == ' ' && len > 0; str_ptr[0]++) + len--; + + if(len == 0) + return NULL; + + // Truncate trailing spaces + str_ptr[1] = str + len; + for(; *str_ptr[1] == ' '; str_ptr[1]--) + len--; + *(str_ptr[1] + 1) = 0; + + char * trimmed_str = strndup(str_ptr[0], len); + free(str); + + return trimmed_str; +} diff --git a/hydra-mod.h b/hydra-mod.h index 5330e5c..5830607 100644 --- a/hydra-mod.h +++ b/hydra-mod.h @@ -38,6 +38,7 @@ extern char *hydra_strcasestr(const char *haystack, const char *needle); extern void hydra_dump_data(unsigned char *buf, int len, char *text); extern int hydra_memsearch(char *haystack, int hlen, char *needle, int nlen); extern char *hydra_strrep(char *string, char *oldpiece, char *newpiece); +extern char * hydra_trim(char * str); #ifdef HAVE_PCRE int hydra_string_match(char *str, const char *regex);