]> git.sur5r.net Git - cc65/commitdiff
New functions SB_ToLower and SB_ToUpper.
authorcuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 27 Mar 2008 13:40:38 +0000 (13:40 +0000)
committercuz <cuz@b7a2c559-68d2-44c3-8de9-860c34a00d81>
Thu, 27 Mar 2008 13:40:38 +0000 (13:40 +0000)
git-svn-id: svn://svn.cc65.org/cc65/trunk@3821 b7a2c559-68d2-44c3-8de9-860c34a00d81

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

index 2b2558eddd20153fb06d833d93278757c0fd4e10..dbdde1b7802428f05effbafc5bbdecd5b44d139d 100644 (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                                                 */
 /*                                                                           */
 
 
 #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. */
 {
index 1073f2594d8d080faf63cae8a0bf4c9e1a3dea09..e2bb6f15d48e0da33e3fc0b64aea5588ea378091 100644 (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. */