]> git.sur5r.net Git - cc65/commitdiff
More string buffer functions
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 22 Oct 2003 18:12:31 +0000 (18:12 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Wed, 22 Oct 2003 18:12:31 +0000 (18:12 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@2556 b7a2c559-68d2-44c3-8de9-860c34a00d81

src/common/strbuf.c
src/common/strbuf.h

index 7b5c80f3a482fbf70a2c71dbf9af5bd1a83dfbea..39a3259908d08129c3d7fb2b98fbca093086c696 100644 (file)
@@ -6,7 +6,7 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2001-2002 Ullrich von Bassewitz                                       */
+/* (C) 2001-2003 Ullrich von Bassewitz                                       */
 /*               Römerstrasse 52                                             */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
@@ -283,3 +283,22 @@ void SB_Slice (StrBuf* Target, const StrBuf* Source, unsigned Start, unsigned Le
 
 
 
+void SB_Move (StrBuf* Target, StrBuf* Source)
+/* Move the complete contents of Source to target. This will delete the old
+ * contents of Target, and Source will be empty after the call.
+ */                                          
+{
+    /* Free the target string */
+    if (Target->Buf) {
+        xfree (Target->Buf);
+    }
+
+    /* Move all data from Source to Target */
+    *Target = *Source;
+
+    /* Clear Source */
+    InitStrBuf (Source);
+}
+
+
+
index c22d0ded08ea91b8d4eb3a2f75e9831f3fb5daec..cd58932c638577a1f23b10df879b8651358a26ee 100644 (file)
@@ -6,7 +6,7 @@
 /*                                                                           */
 /*                                                                           */
 /*                                                                           */
-/* (C) 2001-2002 Ullrich von Bassewitz                                       */
+/* (C) 2001-2003 Ullrich von Bassewitz                                       */
 /*               Römerstrasse 52                                             */
 /*               D-70794 Filderstadt                                         */
 /* EMail:        uz@cc65.org                                                 */
@@ -225,7 +225,7 @@ INLINE char SB_LookAt (const StrBuf* B, unsigned Index)
     return (Index < B->Len)? B->Buf[Index] : '\0';
 }
 #else
-#  define SB_Peek(B,Index)     (((Index) < (B)->Len)? (B)->Buf[(Index)] : '\0')
+#  define SB_LookAt(B,Index)     (((Index) < (B)->Len)? (B)->Buf[(Index)] : '\0')
 #endif
 
 #if defined(HAVE_INLINE)
@@ -338,6 +338,11 @@ void SB_Slice (StrBuf* Target, const StrBuf* Source, unsigned Start, unsigned Le
  * bytes.
  */
 
+void SB_Move (StrBuf* Target, StrBuf* Source);
+/* Move the complete contents of Source to target. This will delete the old
+ * contents of Target, and Source will be empty after the call.
+ */
+
 
 
 /* End of strbuf.h */