From c6b832270e0ed10bc2415f4e49ea48aeca5c3105 Mon Sep 17 00:00:00 2001 From: Valery Yatsko Date: Sun, 20 Apr 2008 09:35:22 +0400 Subject: [PATCH] clean_string() is related to m_links.c ONLY - moved it there --- include/irc_string.h | 6 ------ modules/m_links.c | 34 ++++++++++++++++++++++++++++++++++ src/irc_string.c | 41 ----------------------------------------- 3 files changed, 34 insertions(+), 47 deletions(-) diff --git a/include/irc_string.h b/include/irc_string.h index 913c868..3bddd4d 100644 --- a/include/irc_string.h +++ b/include/irc_string.h @@ -77,12 +77,6 @@ extern int ircncmp(const char *s1, const char *s2, int n); extern char *canonize(char *); #endif -/* - * clean_string - cleanup control and high ascii characters - * -Dianora - */ -char *clean_string(char *dest, const unsigned char *src, size_t len); - /* * strip_colour - remove colour codes from a string * -asuffield (?) diff --git a/modules/m_links.c b/modules/m_links.c index f68d19a..75598a7 100644 --- a/modules/m_links.c +++ b/modules/m_links.c @@ -40,6 +40,7 @@ static int m_links(struct Client *, struct Client *, int, const char **); static int mo_links(struct Client *, struct Client *, int, const char **); +static char * clean_string(char *dest, const unsigned char *src, size_t len); struct Message links_msgtab = { "LINKS", 0, 0, 0, MFLG_SLOW, @@ -129,3 +130,36 @@ mo_links(struct Client *client_p, struct Client *source_p, int parc, const char return 0; } +static char * +clean_string(char *dest, const unsigned char *src, size_t len) +{ + char *d = dest; + s_assert(0 != dest); + s_assert(0 != src); + + if(dest == NULL || src == NULL) + return NULL; + + len -= 3; /* allow for worst case, '^A\0' */ + + while (*src && (len > 0)) + { + if(*src & 0x80) /* if high bit is set */ + { + *d++ = '.'; + --len; + } + else if(!IsPrint(*src)) /* if NOT printable */ + { + *d++ = '^'; + --len; + *d++ = 0x40 + *src; /* turn it into a printable */ + } + else + *d++ = *src; + ++src; + --len; + } + *d = '\0'; + return dest; +} diff --git a/src/irc_string.c b/src/irc_string.c index e550e1d..f16916b 100644 --- a/src/irc_string.c +++ b/src/irc_string.c @@ -33,47 +33,6 @@ #define INT16SZ 2 #endif -/* - * clean_string - clean up a string possibly containing garbage - * - * *sigh* Before the kiddies find this new and exciting way of - * annoying opers, lets clean up what is sent to local opers - * -Dianora - */ -char * -clean_string(char *dest, const unsigned char *src, size_t len) -{ - char *d = dest; - s_assert(0 != dest); - s_assert(0 != src); - - if(dest == NULL || src == NULL) - return NULL; - - len -= 3; /* allow for worst case, '^A\0' */ - - while(*src && (len > 0)) - { - if(*src & 0x80) /* if high bit is set */ - { - *d++ = '.'; - --len; - } - else if(!IsPrint(*src)) /* if NOT printable */ - { - *d++ = '^'; - --len; - *d++ = 0x40 + *src; /* turn it into a printable */ - } - else - *d++ = *src; - ++src; - --len; - } - *d = '\0'; - return dest; -} - /* * strip_tabs(dst, src, length) *