I probably did something like this before, ho hum. This is a little
problematic because in ut8.c and utf16.c we are doing rather unconstly
things to variables that we hade previously declared as const, but its
either that or remove the const qualifier from the first argument to
..*_skip_(for|back)ward ...

--- include/parrot/encoding.h~  Mon Mar 18 07:26:24 2002
+++ include/parrot/encoding.h   Mon Mar 18 07:27:10 2002
@@ -28,8 +28,8 @@
      Parrot_UInt(*characters) (const void *ptr, Parrot_UInt bytes);
      Parrot_UInt(*decode) (const void *ptr);
     void *(*encode) (void *ptr, Parrot_UInt c);
-    void *(*skip_forward) (const void *ptr, Parrot_UInt n);
-    void *(*skip_backward) (const void *ptr, Parrot_UInt n);
+    const void *(*skip_forward) (const void *ptr, Parrot_UInt n);
+    const void *(*skip_backward) (const void *ptr, Parrot_UInt n);
 };

 #define Parrot_Encoding struct parrot_encoding_t *
--- encodings/singlebyte.c~     Mon Mar 18 07:22:08 2002
+++ encodings/singlebyte.c      Mon Mar 18 07:24:34 2002
@@ -43,18 +43,18 @@
     return bptr + 1;
 }

-static void *
+static const void *
 singlebyte_skip_forward(const void *ptr, UINTVAL n)
 {
-    byte_t *bptr = (byte_t *)ptr;
+    const byte_t *bptr = (const byte_t *)ptr;

     return bptr + n;
 }

-static void *
+static const void *
 singlebyte_skip_backward(const void *ptr, UINTVAL n)
 {
-    byte_t *bptr = (byte_t *)ptr;
+    const byte_t *bptr = (const byte_t *)ptr;

     return bptr - n;
 }
--- encodings/utf16.c~  Mon Mar 18 07:22:08 2002
+++ encodings/utf16.c   Mon Mar 18 07:33:10 2002
@@ -81,10 +81,10 @@
     return u16ptr;
 }

-static void *
+static const void *
 utf16_skip_forward(const void *ptr, UINTVAL n)
 {
-    utf16_t *u16ptr = (utf16_t *)ptr;
+    const utf16_t *u16ptr = (const utf16_t *)ptr;

     while (n-- > 0) {
         if (UNICODE_IS_HIGH_SURROGATE(*u16ptr)) {
@@ -106,10 +106,10 @@
     return u16ptr;
 }

-static void *
+static const void *
 utf16_skip_backward(const void *ptr, UINTVAL n)
 {
-    utf16_t *u16ptr = (utf16_t *)ptr;
+    const utf16_t *u16ptr = (const utf16_t *)ptr;

     while (n-- > 0) {
         u16ptr--;
--- encodings/utf32.c~  Mon Mar 18 07:22:08 2002
+++ encodings/utf32.c   Mon Mar 18 07:34:07 2002
@@ -48,18 +48,18 @@
     return u32ptr + 1;
 }

-static void *
+static const void *
 utf32_skip_forward(const void *ptr, UINTVAL n)
 {
-    utf32_t *u32ptr = (utf32_t *)ptr;
+    const utf32_t *u32ptr = (const utf32_t *)ptr;

     return u32ptr + n;
 }

-static void *
+static const void *
 utf32_skip_backward(const void *ptr, UINTVAL n)
 {
-    utf32_t *u32ptr = (utf32_t *)ptr;
+    const utf32_t *u32ptr = (const utf32_t *)ptr;

     return u32ptr - n;
 }
--- encodings/utf8.c~   Mon Mar 18 07:22:08 2002
+++ encodings/utf8.c    Mon Mar 18 07:31:34 2002
@@ -107,10 +107,10 @@
     return u8ptr + len;
 }

-static void *
+static const void *
 utf8_skip_forward(const void *ptr, UINTVAL n)
 {
-    utf8_t *u8ptr = (utf8_t *)ptr;
+    const utf8_t *u8ptr = (const utf8_t *)ptr;

     while (n-- > 0) {
         u8ptr += UTF8SKIP(u8ptr);
@@ -119,10 +119,10 @@
     return u8ptr;
 }

-static void *
+static const void *
 utf8_skip_backward(const void *ptr, UINTVAL n)
 {
-    utf8_t *u8ptr = (utf8_t *)ptr;
+    const utf8_t *u8ptr = (const utf8_t *)ptr;

     while (n-- > 0) {
         u8ptr--;
--- string.c~   Mon Mar 18 07:40:41 2002
+++ string.c    Mon Mar 18 07:47:16 2002
@@ -172,8 +172,8 @@
     STRING *dest;
     CHARTYPE_TRANSCODER transcoder1 = (CHARTYPE_TRANSCODER)NULLfunc;
     CHARTYPE_TRANSCODER transcoder2 = (CHARTYPE_TRANSCODER)NULLfunc;
-    char *srcstart;
-    char *srcend;
+    const char *srcstart;
+    const char *srcend;
     char *deststart;
     char *destend;

@@ -365,11 +365,11 @@
         true_length = (UINTVAL)(src->strlen - true_offset);
     }

-    substart_off = (char *)src->encoding->skip_forward(src->bufstart,
+    substart_off = (const char *)src->encoding->skip_forward(src->bufstart,
                                                        true_offset) -
         (char *)src->bufstart;
     subend_off =
-        (char *)src->encoding->skip_forward((char *)src->bufstart +
+        (const char *)src->encoding->skip_forward((char *)src->bufstart +
                                             substart_off,
                                             true_length) -
         (char *)src->bufstart;
@@ -400,8 +400,8 @@
 STRING *
 string_chopn(STRING *s, INTVAL n)
 {
-    char *bufstart = s->bufstart;
-    char *bufend = bufstart + s->bufused;
+    const char *bufstart = s->bufstart;
+    const char *bufend = bufstart + s->bufused;
     UINTVAL true_n;

     true_n = (UINTVAL)n;
@@ -427,10 +427,10 @@
 string_compare(struct Parrot_Interp *interpreter, const STRING *s1,
                const STRING *s2)
 {
-    char *s1start;
-    char *s1end;
-    char *s2start;
-    char *s2end;
+    const char *s1start;
+    const char *s1end;
+    const char *s2start;
+    const char *s2end;
     INTVAL cmp = 0;

     if (s1 && !s2) {
@@ -516,8 +516,8 @@
     INTVAL i = 0;

     if (s) {
-        char *start = s->bufstart;
-        char *end = start + s->bufused;
+        const char *start = s->bufstart;
+        const char *end = start + s->bufused;
         int sign = 1;
         BOOLVAL in_number = 0;

@@ -556,8 +556,8 @@
     FLOATVAL f = 0.0;

     if (s) {
-        char *start = s->bufstart;
-        char *end = start + s->bufused;
+        const char *start = s->bufstart;
+        const char *end = start + s->bufused;
         int sign = 1;
         BOOLVAL seen_dot = 0;
         BOOLVAL seen_e = 0;



/J\
-- 
Jonathan Stowe                      |
<http://www.gellyfish.com>          |      This space for rent
                                    |

Reply via email to