From 4fdd59500758973275905107533daeaf323b7a31 Mon Sep 17 00:00:00 2001 From: cuz Date: Wed, 25 Apr 2001 13:50:35 +0000 Subject: [PATCH] New module strutil git-svn-id: svn://svn.cc65.org/cc65/trunk@693 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/common/coll.c | 4 +-- src/common/make/gcc.mak | 1 + src/common/make/watcom.mak | 1 + src/common/strutil.c | 66 ++++++++++++++++++++++++++++++++++++++ src/common/strutil.h | 64 ++++++++++++++++++++++++++++++++++++ 5 files changed, 134 insertions(+), 2 deletions(-) create mode 100644 src/common/strutil.c create mode 100644 src/common/strutil.h diff --git a/src/common/coll.c b/src/common/coll.c index d6929f707..5d77ca2e8 100644 --- a/src/common/coll.c +++ b/src/common/coll.c @@ -56,8 +56,8 @@ Collection* InitCollection (Collection* C) { /* Intialize the fields. */ C->Count = 0; - C->Size = 8; - C->Items = xmalloc (8 * sizeof (void*)); + C->Size = 0; + C->Items = 0; /* Return the new struct */ return C; diff --git a/src/common/make/gcc.mak b/src/common/make/gcc.mak index 45f3940f5..83b64f0c0 100644 --- a/src/common/make/gcc.mak +++ b/src/common/make/gcc.mak @@ -20,6 +20,7 @@ OBJS = abend.o \ fname.o \ hashstr.o \ print.o \ + strutil.o \ target.o \ tgttrans.o \ xmalloc.o \ diff --git a/src/common/make/watcom.mak b/src/common/make/watcom.mak index b122be10a..d4d9ada28 100644 --- a/src/common/make/watcom.mak +++ b/src/common/make/watcom.mak @@ -76,6 +76,7 @@ OBJS = abend.obj \ fname.obj \ hashstr.obj \ print.obj \ + strutil.obj \ target.obj \ tgttrans.obj \ wildargv.obj \ diff --git a/src/common/strutil.c b/src/common/strutil.c new file mode 100644 index 000000000..3d5293e48 --- /dev/null +++ b/src/common/strutil.c @@ -0,0 +1,66 @@ +/*****************************************************************************/ +/* */ +/* strutil.h */ +/* */ +/* String utility functions */ +/* */ +/* */ +/* */ +/* (C) 2001 Ullrich von Bassewitz */ +/* Wacholderweg 14 */ +/* D-70597 Stuttgart */ +/* EMail: uz@musoftware.de */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ + + + +#include + +/* common */ +#include "strutil.h" + + + +/*****************************************************************************/ +/* Code */ +/*****************************************************************************/ + + + +char* StrCopy (char* Dest, size_t DestSize, const char* Source) +/* Copy Source to Dest honouring the maximum size of the target buffer. In + * constrast to strncpy, the resulting string will always be NUL terminated. + * The function returns the pointer to the destintation buffer. + */ +{ + size_t Len = strlen (Source); + if (Len >= DestSize) { + memcpy (Dest, Source, DestSize-1); + Dest[DestSize-1] = '\0'; + } else { + memcpy (Dest, Source, Len+1); + } + return Dest; +} + + + diff --git a/src/common/strutil.h b/src/common/strutil.h new file mode 100644 index 000000000..a5cb66edd --- /dev/null +++ b/src/common/strutil.h @@ -0,0 +1,64 @@ +/*****************************************************************************/ +/* */ +/* strutil.h */ +/* */ +/* String utility functions */ +/* */ +/* */ +/* */ +/* (C) 2001 Ullrich von Bassewitz */ +/* Wacholderweg 14 */ +/* D-70597 Stuttgart */ +/* EMail: uz@musoftware.de */ +/* */ +/* */ +/* This software is provided 'as-is', without any expressed or implied */ +/* warranty. In no event will the authors be held liable for any damages */ +/* arising from the use of this software. */ +/* */ +/* Permission is granted to anyone to use this software for any purpose, */ +/* including commercial applications, and to alter it and redistribute it */ +/* freely, subject to the following restrictions: */ +/* */ +/* 1. The origin of this software must not be misrepresented; you must not */ +/* claim that you wrote the original software. If you use this software */ +/* in a product, an acknowledgment in the product documentation would be */ +/* appreciated but is not required. */ +/* 2. Altered source versions must be plainly marked as such, and must not */ +/* be misrepresented as being the original software. */ +/* 3. This notice may not be removed or altered from any source */ +/* distribution. */ +/* */ +/*****************************************************************************/ + + + +#ifndef STRUTIL_H +#define STRUTIL_H + + + +#include + + + +/*****************************************************************************/ +/* Code */ +/*****************************************************************************/ + + + +char* StrCopy (char* Dest, size_t DestSize, const char* Source); +/* Copy Source to Dest honouring the maximum size of the target buffer. In + * constrast to strncpy, the resulting string will always be NUL terminated. + * The function returns the pointer to the destintation buffer. + */ + + + +/* End of strutil.h */ + +#endif + + + -- 2.39.5