From: cuz Date: Wed, 22 Oct 2003 18:12:31 +0000 (+0000) Subject: More string buffer functions X-Git-Tag: V2.12.0~1238 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=5956040691cdb20e9cf163fafec6cba5a4efa49e;p=cc65 More string buffer functions git-svn-id: svn://svn.cc65.org/cc65/trunk@2556 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- diff --git a/src/common/strbuf.c b/src/common/strbuf.c index 7b5c80f3a..39a325990 100644 --- a/src/common/strbuf.c +++ b/src/common/strbuf.c @@ -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); +} + + + diff --git a/src/common/strbuf.h b/src/common/strbuf.h index c22d0ded0..cd58932c6 100644 --- a/src/common/strbuf.h +++ b/src/common/strbuf.h @@ -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 */