1
0
mirror of https://github.com/cc65/cc65.git synced 2024-07-04 13:29:35 +00:00

New module strutil

git-svn-id: svn://svn.cc65.org/cc65/trunk@693 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2001-04-25 13:50:35 +00:00
parent 9cb63b679c
commit 4fdd595007
5 changed files with 134 additions and 2 deletions

View File

@ -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;

View File

@ -20,6 +20,7 @@ OBJS = abend.o \
fname.o \
hashstr.o \
print.o \
strutil.o \
target.o \
tgttrans.o \
xmalloc.o \

View File

@ -76,6 +76,7 @@ OBJS = abend.obj \
fname.obj \
hashstr.obj \
print.obj \
strutil.obj \
target.obj \
tgttrans.obj \
wildargv.obj \

66
src/common/strutil.c Normal file
View File

@ -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 <string.h>
/* 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;
}

64
src/common/strutil.h Normal file
View File

@ -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 <stdlib.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.
*/
/* End of strutil.h */
#endif