1
0
mirror of https://github.com/cc65/cc65.git synced 2025-01-26 17:36:57 +00:00

New functions SB_ToLower and SB_ToUpper.

git-svn-id: svn://svn.cc65.org/cc65/trunk@3821 b7a2c559-68d2-44c3-8de9-860c34a00d81
This commit is contained in:
cuz 2008-03-27 13:40:38 +00:00
parent 79fdf9e7c6
commit e917645145
2 changed files with 42 additions and 6 deletions

View File

@ -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 <string.h>
#include <ctype.h>
/* 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. */
{

View File

@ -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. */