X-Git-Url: https://jfr.im/git/irc/rqf/shadowircd.git/blobdiff_plain/08a5f1f9485a5f34039e66cec5419c205881bd7a..13ae2f4b6904ebf7b8160902f9ffeb80f7585ed2:/src/irc_string.c diff --git a/src/irc_string.c b/src/irc_string.c index fecd3d1..5b3a463 100644 --- a/src/irc_string.c +++ b/src/irc_string.c @@ -24,144 +24,7 @@ * $Id: irc_string.c 678 2006-02-03 20:25:01Z jilles $ */ -#include "stdinc.h" -#include "sprintf_irc.h" #include "irc_string.h" -#include "client.h" -#include "setup.h" - -#ifndef INT16SZ -#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) - * - * Copies src to dst, while converting all \t (tabs) into spaces. - * - * NOTE: jdc: I have a gut feeling there's a faster way to do this. - */ -char * -strip_tabs(char *dest, const unsigned char *src, size_t len) -{ - char *d = dest; - /* Sanity check; we don't want anything nasty... */ - s_assert(0 != dest); - s_assert(0 != src); - - if(dest == NULL || src == NULL) - return NULL; - - while(*src && (len > 0)) - { - if(*src == '\t') - { - *d++ = ' '; /* Translate the tab into a space */ - } - else - { - *d++ = *src; /* Copy src to dst */ - } - ++src; - --len; - } - *d = '\0'; /* Null terminate, thanks and goodbye */ - return dest; -} - -/* - * strtoken - walk through a string of tokens, using a set of separators - * argv 9/90 - * - */ -char * -strtoken(char **save, char *str, const char *fs) -{ - char *pos = *save; /* keep last position across calls */ - char *tmp; - - if(str) - pos = str; /* new string scan */ - - while(pos && *pos && strchr(fs, *pos) != NULL) - ++pos; /* skip leading separators */ - - if(!pos || !*pos) - return (pos = *save = NULL); /* string contains only sep's */ - - tmp = pos; /* now, keep position of the token */ - - while(*pos && strchr(fs, *pos) == NULL) - ++pos; /* skip content of the token */ - - if(*pos) - *pos++ = '\0'; /* remove first sep after the token */ - else - pos = NULL; /* end of string */ - - *save = pos; - return tmp; -} - -/* - * Copyright (c) 1996-1999 by Internet Software Consortium. - * - * Permission to use, copy, modify, and distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS - * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE - * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL - * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR - * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS - * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS - * SOFTWARE. - */ - -#define SPRINTF(x) ((size_t)rb_sprintf x) char * strip_colour(char *string)