From e91764514561e2bc5066e19e2eb90ce2e6c50230 Mon Sep 17 00:00:00 2001 From: cuz Date: Thu, 27 Mar 2008 13:40:38 +0000 Subject: [PATCH] New functions SB_ToLower and SB_ToUpper. git-svn-id: svn://svn.cc65.org/cc65/trunk@3821 b7a2c559-68d2-44c3-8de9-860c34a00d81 --- src/common/strbuf.c | 36 +++++++++++++++++++++++++++++++++--- src/common/strbuf.h | 12 +++++++++--- 2 files changed, 42 insertions(+), 6 deletions(-) diff --git a/src/common/strbuf.c b/src/common/strbuf.c index 2b2558edd..dbdde1b78 100644 --- a/src/common/strbuf.c +++ b/src/common/strbuf.c @@ -6,8 +6,8 @@ /* */ /* */ /* */ -/* (C) 2001-2004 Ullrich von Bassewitz */ -/* Römerstrasse 52 */ +/* (C) 2001-2008 Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ /* D-70794 Filderstadt */ /* EMail: uz@cc65.org */ /* */ @@ -34,8 +34,10 @@ #include +#include /* common */ +#include "chartype.h" #include "strbuf.h" #include "va_copy.h" #include "xmalloc.h" @@ -269,7 +271,7 @@ void SB_Slice (StrBuf* Target, const StrBuf* Source, unsigned Start, unsigned Le /* Target will be empty */ SB_Clear (Target); return; - } + } if (Start + Len > Source->Len) { Len = Source->Len - Start; } @@ -305,6 +307,34 @@ void SB_Move (StrBuf* Target, StrBuf* Source) +void SB_ToLower (StrBuf* S) +/* Convert all characters in S to lower case */ +{ + unsigned I; + char* B = S->Buf; + for (I = 0; I < S->Len; ++I, ++B) { + if (IsUpper (*B)) { + *B = tolower (*B); + } + } +} + + + +void SB_ToUpper (StrBuf* S) +/* Convert all characters in S to upper case */ +{ + unsigned I; + char* B = S->Buf; + for (I = 0; I < S->Len; ++I, ++B) { + if (IsLower (*B)) { + *B = toupper (*B); + } + } +} + + + int SB_Compare (const StrBuf* S1, const StrBuf* S2) /* Do a lexical compare of S1 and S2. See strcmp for result codes. */ { diff --git a/src/common/strbuf.h b/src/common/strbuf.h index 1073f2594..e2bb6f15d 100644 --- a/src/common/strbuf.h +++ b/src/common/strbuf.h @@ -6,8 +6,8 @@ /* */ /* */ /* */ -/* (C) 2001-2004 Ullrich von Bassewitz */ -/* Römerstrasse 52 */ +/* (C) 2001-2008 Ullrich von Bassewitz */ +/* Roemerstrasse 52 */ /* D-70794 Filderstadt */ /* EMail: uz@cc65.org */ /* */ @@ -60,7 +60,7 @@ struct StrBuf { unsigned Len; /* Length of the string */ unsigned Index; /* Used for reading (Get and friends) */ char* Buf; /* Pointer to buffer */ -}; +}; /* An empty string buf */ extern const StrBuf EmptyStrBuf; @@ -349,6 +349,12 @@ void SB_Move (StrBuf* Target, StrBuf* Source); * contents of Target, and Source will be empty after the call. */ +void SB_ToLower (StrBuf* S); +/* Convert all characters in S to lower case */ + +void SB_ToUpper (StrBuf* S); +/* Convert all characters in S to upper case */ + int SB_Compare (const StrBuf* S1, const StrBuf* S2); /* Do a lexical compare of S1 and S2. See strcmp for result codes. */ -- 2.39.5