1 /* +------------------------------------+
2 * | Inspire Internet Relay Chat Daemon |
3 * +------------------------------------+
5 * InspIRCd: (C) 2002-2007 InspIRCd Development Team
6 * See: http://www.inspircd.org/wiki/index.php/Credits
8 * This program is free but copyrighted software; see
9 * the file COPYING for details.
11 * ---------------------------------------------------
14 #ifndef __IN_INSPSTRING_H
15 #define __IN_INSPSTRING_H
17 #include "inspircd_config.h"
22 /** strlcpy() implementation for systems that don't have it (linux) */
23 CoreExport size_t strlcpy(char *dst, const char *src, size_t siz);
24 /** strlcat() implementation for systems that don't have it (linux) */
25 CoreExport size_t strlcat(char *dst, const char *src, size_t siz);
28 /** charlcat() will append one character to a string using the same
29 * safety scemantics as strlcat().
30 * @param x The string to operate on
31 * @param y the character to append to the end of x
32 * @param z The maximum allowed length for z including null terminator
34 CoreExport int charlcat(char* x,char y,int z);
35 /** charremove() will remove all instances of a character from a string
36 * @param mp The string to operate on
37 * @param remove The character to remove
39 CoreExport bool charremove(char* mp, char remove);
41 /** strnewdup() is an implemenetation of strdup() which calls operator new
42 * rather than malloc to allocate the new string, therefore allowing it to
43 * be hooked into the C++ memory manager, and freed with operator delete.
44 * This is required for windows, where we override operators new and delete
45 * to allow for global allocation between modules and the core.
47 inline char * strnewdup(const char * s1)
49 size_t len = strlen(s1) + 1;
50 char * p = new char[len];