]> git.sur5r.net Git - cc65/commitdiff
New module strutil
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 25 Apr 2001 13:50:35 +0000 (13:50 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 25 Apr 2001 13:50:35 +0000 (13:50 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@693 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/common/coll.c
src/common/make/gcc.mak
src/common/make/watcom.mak
src/common/strutil.c [new file with mode: 0644]
src/common/strutil.h [new file with mode: 0644]

index d6929f7071ffc44522ea4fa3e666ee2c13936ef3..5d77ca2e8630c4fe82685d4d44f6bb3fbb940034 100644 (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;
index 45f3940f5c5efbb147a986f6f38a5e3d7dd6dd20..83b64f0c004b4ae8e791abfb50d04e84f12f4ba0 100644 (file)
@@ -20,6 +20,7 @@ OBJS =        abend.o         \
        fname.o         \
        hashstr.o       \
        print.o         \
+       strutil.o       \
        target.o        \
        tgttrans.o      \
        xmalloc.o       \
index b122be10a9189111349791e3d0e326e7df26eb40..d4d9ada28d32eae4a84eaa933778792f70d69d39 100644 (file)
@@ -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 (file)
index 0000000..3d5293e
--- /dev/null
@@ -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;
+}
+
+
+
diff --git a/src/common/strutil.h b/src/common/strutil.h
new file mode 100644 (file)
index 0000000..a5cb66e
--- /dev/null
@@ -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
+
+
+