From 01a9575f1f4c3d3b365d9519757690064ab5fc1e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Henrik=20Grubbstr=C3=B6m=20=28Grubba=29?=
 <grubba@grubba.org>
Date: Thu, 3 Feb 2000 20:09:13 +0100
Subject: [PATCH] Fixed lots of warnings.

Rev: src/builtin_functions.c:1.235
Rev: src/cpp.c:1.59
Rev: src/dynamic_load.c:1.37
Rev: src/las.c:1.160
Rev: src/lexer.h:1.15
Rev: src/modules/Image/colors.c:1.30
Rev: src/modules/Image/default_font.c:1.2
Rev: src/modules/Image/encodings/avs.c:1.8
Rev: src/modules/Image/encodings/iff.c:1.4
Rev: src/modules/Image/encodings/ilbm.c:1.13
Rev: src/modules/Image/encodings/pcx.c:1.9
Rev: src/modules/Image/encodings/psd.c:1.14
Rev: src/modules/Image/encodings/ras.c:1.5
Rev: src/modules/Image/encodings/tga.c:1.9
Rev: src/modules/Image/encodings/wbf.c:1.4
Rev: src/modules/Image/encodings/xcf.c:1.12
Rev: src/modules/Image/image.c:1.158
Rev: src/modules/Image/layers.c:1.41
Rev: src/modules/_Charset/charsetmod.c:1.18
Rev: src/modules/_Crypto/rsa.c:1.10
Rev: src/modules/files/file.h:1.15
Rev: src/modules/files/file_functions.h:1.15
Rev: src/modules/files/socket.c:1.47
Rev: src/modules/spider/xml.c:1.16
Rev: src/operators.c:1.85
Rev: src/pike_memory.c:1.52
Rev: src/pike_types.c:1.121
Rev: src/preprocessor.h:1.17
Rev: src/stralloc.c:1.78
Rev: src/svalue.c:1.62
---
 src/builtin_functions.c            |  4 ++--
 src/cpp.c                          | 12 +++++------
 src/dynamic_load.c                 |  8 +++----
 src/las.c                          |  6 +++---
 src/lexer.h                        |  6 +++---
 src/modules/Image/colors.c         | 15 ++++++++++---
 src/modules/Image/default_font.c   |  2 +-
 src/modules/Image/encodings/avs.c  |  4 ++--
 src/modules/Image/encodings/iff.c  | 12 +++++------
 src/modules/Image/encodings/ilbm.c | 14 ++++++------
 src/modules/Image/encodings/pcx.c  | 24 ++++++++++-----------
 src/modules/Image/encodings/psd.c  | 34 +++++++++++++++---------------
 src/modules/Image/encodings/ras.c  |  8 +++----
 src/modules/Image/encodings/tga.c  |  9 ++++----
 src/modules/Image/encodings/wbf.c  |  7 +++---
 src/modules/Image/encodings/xcf.c  | 30 +++++++++++++-------------
 src/modules/Image/image.c          | 12 +++++------
 src/modules/Image/layers.c         |  7 ++++--
 src/modules/_Charset/charsetmod.c  |  8 +++----
 src/modules/_Crypto/rsa.c          | 17 ++++++++-------
 src/modules/files/file.h           |  5 ++++-
 src/modules/files/file_functions.h |  2 +-
 src/modules/files/socket.c         |  4 ++--
 src/modules/spider/xml.c           |  2 +-
 src/operators.c                    |  8 ++++---
 src/pike_memory.c                  |  8 +++----
 src/pike_types.c                   |  6 +++---
 src/preprocessor.h                 | 14 ++++++------
 src/stralloc.c                     | 22 +++++++++----------
 src/svalue.c                       |  4 ++--
 30 files changed, 168 insertions(+), 146 deletions(-)

diff --git a/src/builtin_functions.c b/src/builtin_functions.c
index 5287bcd9f7..74b09ec9f4 100644
--- a/src/builtin_functions.c
+++ b/src/builtin_functions.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: builtin_functions.c,v 1.234 2000/02/02 00:38:27 hubbe Exp $");
+RCSID("$Id: builtin_functions.c,v 1.235 2000/02/03 19:09:12 grubba Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "pike_macros.h"
@@ -1312,7 +1312,7 @@ static void f_parse_pike_type( INT32 args )
   if( sp[-1].type != T_STRING ||
       sp[-1].u.string->size_shift )
     error( "__parse_type requires a 8bit string as its first argument\n" );
-  res = parse_type( STR0(sp[-1].u.string) );
+  res = parse_type( (char *)STR0(sp[-1].u.string) );
   pop_stack();
   push_string( res );
 }
diff --git a/src/cpp.c b/src/cpp.c
index 2cfbc43fb5..e2487ed32e 100644
--- a/src/cpp.c
+++ b/src/cpp.c
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: cpp.c,v 1.58 1999/12/28 02:22:22 grubba Exp $
+ * $Id: cpp.c,v 1.59 2000/02/03 19:09:12 grubba Exp $
  */
 #include "global.h"
 #include "language.h"
@@ -826,7 +826,7 @@ static void insert_current_time_as_string(struct cpp *this,
   time(&tmp2);
   buf=ctime(&tmp2);
 
-  PUSH_STRING0(buf+11, 8, tmp);
+  PUSH_STRING0((p_wchar0 *)buf+11, 8, tmp);
 }
 
 static void insert_current_date_as_string(struct cpp *this,
@@ -840,8 +840,8 @@ static void insert_current_date_as_string(struct cpp *this,
   time(&tmp2);
   buf=ctime(&tmp2);
 
-  PUSH_STRING0(buf+19, 5, tmp);
-  PUSH_STRING0(buf+4, 6, tmp);
+  PUSH_STRING0((p_wchar0 *)buf+19, 5, tmp);
+  PUSH_STRING0((p_wchar0 *)buf+4, 6, tmp);
 }
 
 static void check_defined(struct cpp *this,
@@ -852,7 +852,7 @@ static void check_defined(struct cpp *this,
   struct pike_string *s;
   switch(args[0].arg.shift) {
   case 0:
-    s=binary_findstring((p_wchar0 *)args[0].arg.ptr, args[0].len);
+    s=binary_findstring((char *)args[0].arg.ptr, args[0].len);
     break;
   case 1:
     s=binary_findstring1((p_wchar1 *)args[0].arg.ptr, args[0].len);
@@ -882,7 +882,7 @@ static void dumpdef(struct cpp *this,
 
   switch(args[0].arg.shift) {
   case 0:
-    s=binary_findstring((p_wchar0 *)args[0].arg.ptr, args[0].len);
+    s=binary_findstring((char *)args[0].arg.ptr, args[0].len);
     break;
   case 1:
     s=binary_findstring1((p_wchar1 *)args[0].arg.ptr, args[0].len);
diff --git a/src/dynamic_load.c b/src/dynamic_load.c
index fc1c8c99f5..4bd65eaad5 100644
--- a/src/dynamic_load.c
+++ b/src/dynamic_load.c
@@ -8,7 +8,7 @@
 #  include "pike_macros.h"
 #  include "main.h"
 
-RCSID("$Id: dynamic_load.c,v 1.36 1999/04/25 21:07:16 grubba Exp $");
+RCSID("$Id: dynamic_load.c,v 1.37 2000/02/03 19:09:12 grubba Exp $");
 
 #endif /* !TESTING */
 
@@ -60,7 +60,7 @@ static TCHAR *convert_string(char *str, int len)
   return ret;
 }
 
-static void *dlopen(char *foo, int how)
+static void *dlopen(const char *foo, int how)
 {
   TCHAR *tmp;
   HINSTANCE ret;
@@ -95,7 +95,7 @@ static void dlclose(void *module)
 
 #ifdef USE_DLD
 #include <dld.h>
-static void *dlopen(char *module_name, int how)
+static void *dlopen(const char *module_name, int how)
 {
   dld_create_reference("pike_module_init");
   if(dld_link(module_name))
@@ -148,7 +148,7 @@ static void dlinit(void)
 
 extern int errno;
 
-static void *dlopen(char *libname, int how)
+static void *dlopen(const char *libname, int how)
 {
   shl_t lib;
 
diff --git a/src/las.c b/src/las.c
index b714edf439..67e3775c54 100644
--- a/src/las.c
+++ b/src/las.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: las.c,v 1.159 2000/01/04 00:58:07 grubba Exp $");
+RCSID("$Id: las.c,v 1.160 2000/02/03 19:09:12 grubba Exp $");
 
 #include "language.h"
 #include "interpret.h"
@@ -245,7 +245,7 @@ struct pike_string *find_return_type(node *n)
 #undef BLOCK_ALLOC_NEXT
 #define BLOCK_ALLOC_NEXT u.node.a
 
-BLOCK_ALLOC(node_s, NODES);
+BLOCK_ALLOC(node_s, NODES)
 
 #undef BLOCK_ALLOC_NEXT
 #define BLOCK_ALLOC_NEXT next
@@ -1120,7 +1120,7 @@ void resolv_class(node *n)
 	f_object_program(1);
       }
       break;
-      
+
     default:
       if (compiler_pass!=1)
 	yyerror("Illegal program identifier");
diff --git a/src/lexer.h b/src/lexer.h
index 3152b35c45..c343c43bbf 100644
--- a/src/lexer.h
+++ b/src/lexer.h
@@ -1,5 +1,5 @@
 /*
- * $Id: lexer.h,v 1.14 1999/12/30 14:46:07 grubba Exp $
+ * $Id: lexer.h,v 1.15 2000/02/03 19:09:12 grubba Exp $
  *
  * Lexical analyzer template.
  * Based on lex.c 1.62
@@ -122,7 +122,7 @@ static long lex_strtol(char *buf, char **end, int base)
   PCHARP foo;
   long ret;
   ret=STRTOL_PCHARP(MKPCHARP(buf,SHIFT),&foo,base);
-  if(end) end[0]=foo.ptr;
+  if(end) end[0]=(char *)foo.ptr;
   return ret;
 }
 
@@ -131,7 +131,7 @@ static double lex_strtod(char *buf, char **end)
   PCHARP foo;
   double ret;
   ret=STRTOD_PCHARP(MKPCHARP(buf,SHIFT),&foo);
-  if(end) end[0]=foo.ptr;
+  if(end) end[0]=(char *)foo.ptr;
   return ret;
 }
 
diff --git a/src/modules/Image/colors.c b/src/modules/Image/colors.c
index 55951d1770..10dda6f784 100644
--- a/src/modules/Image/colors.c
+++ b/src/modules/Image/colors.c
@@ -1,7 +1,7 @@
 /*
 **! module Image
 **! note
-**!	$Id: colors.c,v 1.29 1999/12/06 21:06:46 mirar Exp $
+**!	$Id: colors.c,v 1.30 2000/02/03 19:02:22 grubba Exp $
 **! submodule Color
 **!
 **!	This module keeps names and easy handling 
@@ -179,7 +179,7 @@
 
 #include "global.h"
 
-RCSID("$Id: colors.c,v 1.29 1999/12/06 21:06:46 mirar Exp $");
+RCSID("$Id: colors.c,v 1.30 2000/02/03 19:02:22 grubba Exp $");
 
 #include "image_machine.h"
 
@@ -281,6 +281,7 @@ static void make_colors(void)
    f_aggregate_mapping(n*2);
    colors=sp[-1].u.mapping;
    sp--;
+   dmalloc_touch_svalue(sp);
 
    for (i=0;i<n;i++)
    {
@@ -307,6 +308,7 @@ static void make_colors(void)
 
    colornames=sp[-1].u.array;
    sp--;
+   dmalloc_touch_svalue(sp);
 }
 
 #ifdef THIS
@@ -989,6 +991,7 @@ static void image_color_light(INT32 args)
    pop_n_elems(args);
    image_color_hsvf(0);
    sp--;
+   dmalloc_touch_svalue(sp);
    push_array_items(sp->u.array); /* frees */
    sp[-1].u.float_number+=+0.2;
    if (sp[-1].u.float_number>=1.0)
@@ -1002,6 +1005,7 @@ static void image_color_dark(INT32 args)
    pop_n_elems(args);
    image_color_hsvf(0);
    sp--;
+   dmalloc_touch_svalue(sp);
    push_array_items(sp->u.array); /* frees */
    sp[-1].u.float_number-=0.2;
    if (sp[-1].u.float_number<0.0)
@@ -1014,6 +1018,7 @@ static void image_color_neon(INT32 args)
    pop_n_elems(args);
    image_color_hsvf(0);
    sp--;
+   dmalloc_touch_svalue(sp);
    push_array_items(sp->u.array); /* frees */
 
    if (sp[-1].u.float_number==0.0 ||
@@ -1038,6 +1043,7 @@ static void image_color_dull(INT32 args)
 
    image_color_hsvf(0);
    sp--;
+   dmalloc_touch_svalue(sp);
    push_array_items(sp->u.array); /* frees */
 
    if (sp[-2].u.float_number==0.0)
@@ -1057,6 +1063,7 @@ static void image_color_bright(INT32 args)
    pop_n_elems(args);
    image_color_hsvf(0);
    sp--;
+   dmalloc_touch_svalue(sp);
    push_array_items(sp->u.array); /* frees */
 
    if (sp[-2].u.float_number==0.0)
@@ -1186,7 +1193,7 @@ static void image_get_color(INT32 args)
 	 /* #rgb, #rrggbb, #rrrgggbbb, etc */
 	 
 	 unsigned long i=sp[-1].u.string->len-1,j,k,rgb[3];
-	 unsigned char *src=sp[-1].u.string->str+1;
+	 unsigned char *src=(unsigned char *)sp[-1].u.string->str+1;
 	 if (!(i%3))
 	 {
 	    i/=3;
@@ -1244,6 +1251,7 @@ static void image_get_color(INT32 args)
 	    stack_swap();
 	    pop_stack();
 	    sp--;
+	    dmalloc_touch_svalue(sp);
 	    push_array_items(sp->u.array);
 	    get_all_args("Image.Color()",3,"%f%f%f",&h,&s,&v);
 	    pop_n_elems(3);
@@ -1268,6 +1276,7 @@ static void image_get_color(INT32 args)
 	    stack_swap();
 	    pop_stack();
 	    sp--;
+	    dmalloc_touch_svalue(sp);
 	    push_array_items(sp->u.array);
 	    image_make_cmyk_color(4);
 	    return;
diff --git a/src/modules/Image/default_font.c b/src/modules/Image/default_font.c
index 98ae83c876..867c6b2e19 100644
--- a/src/modules/Image/default_font.c
+++ b/src/modules/Image/default_font.c
@@ -1,6 +1,6 @@
 #include "global.h"
 
-unsigned char *image_default_font =
+unsigned char *image_default_font = (unsigned char *)
    "FONT\0\0\0\1\0\0\1\0\0\0\0\13\0\0\0\t\0\0"
    "\4\24\0\0\4 \0\0\4,\0\0\4""8\0\0\4D"
    "\0\0\4P\0\0\4\\\0\0\4h\0\0\4t\0\0\4\200\0\0"
diff --git a/src/modules/Image/encodings/avs.c b/src/modules/Image/encodings/avs.c
index 5c215f6d95..8154094aab 100644
--- a/src/modules/Image/encodings/avs.c
+++ b/src/modules/Image/encodings/avs.c
@@ -8,7 +8,7 @@
 #endif
 
 #include "stralloc.h"
-RCSID("$Id: avs.c,v 1.7 1999/05/30 20:12:06 mirar Exp $");
+RCSID("$Id: avs.c,v 1.8 2000/02/03 19:01:29 grubba Exp $");
 #include "pike_macros.h"
 #include "object.h"
 #include "constants.h"
@@ -54,7 +54,7 @@ void image_avs_f__decode(INT32 args)
   unsigned char *q;
   get_all_args( "decode", args, "%S", &s);
   
-  q = s->str;
+  q = (unsigned char *)s->str;
   w = q[0]<<24 | q[1]<<16 | q[2]<<8 | q[3];
   h = q[4]<<24 | q[5]<<16 | q[6]<<8 | q[7];
 
diff --git a/src/modules/Image/encodings/iff.c b/src/modules/Image/encodings/iff.c
index 9a9d794159..209f0f5d82 100644
--- a/src/modules/Image/encodings/iff.c
+++ b/src/modules/Image/encodings/iff.c
@@ -1,9 +1,9 @@
-/* $Id: iff.c,v 1.3 1999/05/10 23:03:44 mirar Exp $ */
+/* $Id: iff.c,v 1.4 2000/02/03 19:01:29 grubba Exp $ */
 
 #include "global.h"
 
 #include "stralloc.h"
-RCSID("$Id: iff.c,v 1.3 1999/05/10 23:03:44 mirar Exp $");
+RCSID("$Id: iff.c,v 1.4 2000/02/03 19:01:29 grubba Exp $");
 #include "pike_macros.h"
 #include "object.h"
 #include "constants.h"
@@ -42,8 +42,8 @@ static INT32 low_parse_iff(unsigned char *data, INT32 len, unsigned char *hdr,
       pos += l+8;
     }
   } else {
-    push_string(make_shared_binary_string(hdr, 4));
-    push_string(make_shared_binary_string(data, clen));
+    push_string(make_shared_binary_string((char *)hdr, 4));
+    push_string(make_shared_binary_string((char *)data, clen));
     mapping_insert(m, sp-2, sp-1);
     pop_n_elems(2);
     if(!memcmp(hdr, stopchunk, 4))
@@ -61,7 +61,7 @@ void parse_iff(char *id, unsigned char *data, INT32 len,
   if(memcmp(id, data+8, 4))
     error("FORM is not %s\n", id);
 
-  low_parse_iff(data+12, len-12, data, m, stopchunk);
+  low_parse_iff(data+12, len-12, data, m, (unsigned char *)stopchunk);
 }
 
 static struct pike_string *low_make_iff(struct svalue *s)
@@ -81,7 +81,7 @@ static struct pike_string *low_make_iff(struct svalue *s)
   lenb[1] = (len & 0x00ff0000)>>16;
   lenb[2] = (len & 0x0000ff00)>>8;
   lenb[3] = (len & 0x000000ff);
-  push_string(make_shared_binary_string(lenb, 4));
+  push_string(make_shared_binary_string((char *)lenb, 4));
   stack_swap();
   if(len&1) {
     push_string(make_shared_binary_string("\0", 1));
diff --git a/src/modules/Image/encodings/ilbm.c b/src/modules/Image/encodings/ilbm.c
index b835d0786b..0663a2d0d8 100644
--- a/src/modules/Image/encodings/ilbm.c
+++ b/src/modules/Image/encodings/ilbm.c
@@ -1,9 +1,9 @@
-/* $Id: ilbm.c,v 1.12 1999/09/25 23:29:53 grubba Exp $ */
+/* $Id: ilbm.c,v 1.13 2000/02/03 19:01:29 grubba Exp $ */
 
 /*
 **! module Image
 **! note
-**!	$Id: ilbm.c,v 1.12 1999/09/25 23:29:53 grubba Exp $
+**!	$Id: ilbm.c,v 1.13 2000/02/03 19:01:29 grubba Exp $
 **! submodule ILBM
 **!
 **!	This submodule keep the ILBM encode/decode capabilities
@@ -14,7 +14,7 @@
 #include "global.h"
 
 #include "stralloc.h"
-RCSID("$Id: ilbm.c,v 1.12 1999/09/25 23:29:53 grubba Exp $");
+RCSID("$Id: ilbm.c,v 1.13 2000/02/03 19:01:29 grubba Exp $");
 #include "pike_macros.h"
 #include "object.h"
 #include "constants.h"
@@ -293,7 +293,7 @@ static void parse_body(struct BMHD *bmhd, unsigned char *body, INT32 blen,
     body += suse;
     if((blen -= suse)<0)
       break;
-    planar2chunky(line, rbyt, bmhd->nPlanes, bmhd->w, cptr=cline);
+    planar2chunky(line, rbyt, bmhd->nPlanes, bmhd->w, (INT32 *)(cptr=cline));
     if(alpha != NULL)
       switch(bmhd->masking) {
       case mskNone:
@@ -617,7 +617,7 @@ static struct pike_string *make_bmhd(struct BMHD *bmhd)
   bdat[16] = (bmhd->pageWidth>>8); bdat[17] = bmhd->pageWidth&0xff;
   bdat[18] = (bmhd->pageHeight>>8); bdat[19] = bmhd->pageHeight&0xff;
 
-  return make_shared_binary_string(bdat, 20);
+  return make_shared_binary_string((char *)bdat, 20);
 }
 
 static void packByteRun1(unsigned char *src, int srclen, int depth,
@@ -631,7 +631,7 @@ static void packByteRun1(unsigned char *src, int srclen, int depth,
 	  if(c+2<left && src[c] == src[c+1] && src[c] == src[c+2])
 	    break;
 	string_builder_putchar(dest, c-1);
-	string_builder_binary_strcat(dest, src, c);
+	string_builder_binary_strcat(dest, (char *)src, c);
       } else {
 	for(c=2; c<128 && c<left && src[c]==src[0]; c++);
 	string_builder_putchar(dest, (1-c)&0xff);
@@ -723,7 +723,7 @@ static struct pike_string *make_body(struct BMHD *bmhd,
     if(bmhd->compression == cmpByteRun1)
       packByteRun1(line, rbyt, eplanes, &bldr);
     else
-      string_builder_binary_strcat(&bldr, line, rbyt*eplanes);
+      string_builder_binary_strcat(&bldr, (char *)line, rbyt*eplanes);
   }
   if(ctable != NULL)
     image_colortable_free_dither(&dith);
diff --git a/src/modules/Image/encodings/pcx.c b/src/modules/Image/encodings/pcx.c
index a0b22df87a..a2f10af845 100644
--- a/src/modules/Image/encodings/pcx.c
+++ b/src/modules/Image/encodings/pcx.c
@@ -1,5 +1,5 @@
 #include "global.h"
-RCSID("$Id: pcx.c,v 1.8 1999/05/30 20:12:14 mirar Exp $");
+RCSID("$Id: pcx.c,v 1.9 2000/02/03 19:01:29 grubba Exp $");
 
 #include "image_machine.h"
 
@@ -59,10 +59,10 @@ struct pcx_header /* All fields are in ~NBO */
 
 unsigned char *get_chunk( struct buffer *b, unsigned int len )
 {
-  char *db;
+  unsigned char *db;
   if(b->len < len)
     return 0;
-  db = b->str;
+  db = (unsigned char *)b->str;
   b->str+=len;
   b->len-=len;
   return db;
@@ -125,7 +125,7 @@ void get_rle_decoded_from_data( unsigned char *dest, struct buffer * source,
 static void load_rgb_pcx( struct pcx_header *hdr, struct buffer *b, 
                           rgb_group *dest )
 {
-  unsigned char *line = xalloc( hdr->bytesperline*hdr->planes );
+  unsigned char *line = (unsigned char *)xalloc(hdr->bytesperline*hdr->planes);
   struct rle_state state;
   int width, height;
   int x, y;
@@ -153,7 +153,7 @@ static void load_rgb_pcx( struct pcx_header *hdr, struct buffer *b,
 static void load_mono_pcx( struct pcx_header *hdr, struct buffer *b,
                            rgb_group *dest)
 {
-  unsigned char *line = xalloc( hdr->bytesperline*hdr->planes );
+  unsigned char *line = (unsigned char *)xalloc(hdr->bytesperline*hdr->planes);
   struct rle_state state;
   int width, height;
   int x, y;
@@ -180,7 +180,7 @@ static void load_mono_pcx( struct pcx_header *hdr, struct buffer *b,
 static void load_planar_palette_pcx( struct pcx_header *hdr, struct buffer *b,
                                      rgb_group *dest)
 {
-  unsigned char *line = xalloc( hdr->bytesperline*hdr->planes );
+  unsigned char *line = (unsigned char *)xalloc(hdr->bytesperline*hdr->planes);
   struct rle_state state;
   rgb_group * palette = (rgb_group *)hdr->palette;
   int width, height;
@@ -211,7 +211,7 @@ static void load_planar_palette_pcx( struct pcx_header *hdr, struct buffer *b,
 static void load_palette_pcx( struct pcx_header *hdr, struct buffer *b,
                              rgb_group *dest)
 {
-  unsigned char *line = xalloc( hdr->bytesperline*hdr->planes );
+  unsigned char *line = (unsigned char *)xalloc(hdr->bytesperline*hdr->planes);
   struct rle_state state;
   /* It's at the end of the 'file' */
   rgb_group * palette = (rgb_group *)(b->str+b->len-(256*3)); 
@@ -429,7 +429,7 @@ static struct pike_string *encode_pcx_24( struct pcx_header *pcx_header,
   s = data->img;
   for(y=0; y<data->ysize; y++)
   {
-    unsigned char *line = buffer+y*data->xsize*3;
+    unsigned char *line = (unsigned char *)buffer+y*data->xsize*3;
     for(x=0; x<data->xsize; x++)
     {
       line[x] = s->r;
@@ -465,9 +465,9 @@ static struct pike_string *encode_pcx_8( struct pcx_header *pcx_header,
 
 
   buffer = malloc(data->xsize*data->ysize);
-  image_colortable_index_8bit_image( opts->colortable,
-                                     data->img, buffer, data->xsize*data->ysize,
-                                     data->xsize );
+  image_colortable_index_8bit_image( opts->colortable, data->img,
+				     (unsigned char *)buffer,
+				     data->xsize*data->ysize, data->xsize );
   push_string(make_shared_binary_string(buffer,data->xsize*data->ysize));
   free(buffer);
 
@@ -477,7 +477,7 @@ static struct pike_string *encode_pcx_8( struct pcx_header *pcx_header,
   {
     char data[256*3+1];
     MEMSET(data, 0x0c, 256*3+1);
-    image_colortable_write_rgb(opts->colortable, data+1);
+    image_colortable_write_rgb(opts->colortable, (unsigned char *)data+1);
     push_string(make_shared_binary_string(data,256*3+1));
   }
 
diff --git a/src/modules/Image/encodings/psd.c b/src/modules/Image/encodings/psd.c
index 5bebf253e8..ca848d5fc4 100644
--- a/src/modules/Image/encodings/psd.c
+++ b/src/modules/Image/encodings/psd.c
@@ -1,5 +1,5 @@
 #include "global.h"
-RCSID("$Id: psd.c,v 1.13 1999/09/06 10:52:19 grubba Exp $");
+RCSID("$Id: psd.c,v 1.14 2000/02/03 19:01:29 grubba Exp $");
 
 #include "image_machine.h"
 
@@ -38,7 +38,7 @@ extern struct program *image_program;
 **!
 */
 
-#define STRING(X) static struct pike_string *PIKE_CONCAT(s_, X);
+#define STRING(X) static struct pike_string *PIKE_CONCAT(s_, X)
 #include "psd_constant_strings.h"
 #undef STRING
 
@@ -104,7 +104,7 @@ static char *read_data( struct buffer * from, unsigned int len )
   char *res;
   if( from->len < len )
     error("Not enough space for %u bytes\n", len);
-  res = from->str;
+  res = (char *)from->str;
   from->str += len;
   from->len -= len;
   return res;
@@ -114,7 +114,7 @@ static struct buffer read_string( struct buffer *data )
 {
   struct buffer res;
   res.len = read_int( data );
-  res.str = read_data( data, res.len );
+  res.str = (unsigned char *)read_data( data, res.len );
   if(res.len > 0) res.len--; /* len includes ending \0 */
   if(!res.str)
     error("String read failed\n");
@@ -225,7 +225,7 @@ static void decode_layers_and_masks( struct psd_image *dst,
     }
     read_uint( src ); /* '8BIM' */
     layer->mode.len = 4;
-    layer->mode.str = read_data( src, 4 );
+    layer->mode.str = (unsigned char *)read_data( src, 4 );
     layer->opacity = read_uchar( src );
     layer->clipping = read_uchar( src );
     layer->flags = read_uchar( src );
@@ -256,7 +256,7 @@ static void decode_layers_and_masks( struct psd_image *dst,
     for(i=0; i<layer->num_channels; i++)
     {
       layer->channel_info[i].data.str=
-        read_data(src,layer->channel_info[i].data.len);
+        (unsigned char *)read_data(src,layer->channel_info[i].data.len);
     }
     layer = layer->prev;
   }
@@ -325,14 +325,14 @@ static void f_decode_packbits_encoded(INT32 args)
   {
     nelems *= sp[-args+3].u.integer;
     compression = sp[-args+4].u.integer;
-    b.str = src->str;
+    b.str = (unsigned char *)src->str;
     b.len = src->len;
     pop_n_elems(4);
   } else if(args == 3) {
     if( src->str[0] )
       error("Impossible compression (%d)!\n", (src->str[0]<<8|src->str[1]) );
     compression = src->str[1];
-    b.str = src->str+2;
+    b.str = (unsigned char *)src->str+2;
     b.len = src->len-2;
     pop_n_elems(2);
   }
@@ -345,14 +345,14 @@ static void f_decode_packbits_encoded(INT32 args)
   {
    case 1:
      dest = begin_shared_string( width * nelems );
-     d.str = dest->str; d.len = width*nelems;
+     d.str = (unsigned char *)dest->str; d.len = width*nelems;
 /*      while(nelems--) */
      /*ob =*/ 
      packbitsdecode( ob, d, width*nelems );
      push_string( end_shared_string( dest ) );
      break;
    case 0:
-     push_string( make_shared_binary_string(b.str,b.len));
+     push_string( make_shared_binary_string((char *)b.str,b.len));
      break;
    default:
      error("Impossible compression (%d)!\n", src->str[1]);
@@ -381,7 +381,7 @@ static void f_decode_image_channel( INT32 args )
   pop_stack();
   if(s->len < w*h)
     error("Not enough data in string for this channel\n");
-  source = s->str;
+  source = (unsigned char *)s->str;
   push_int( w ); push_int( h );
   io = clone_object( image_program, 2 );
   dst = ((struct image *)get_storage(io,image_program))->img;
@@ -417,10 +417,10 @@ static void f_decode_image_data( INT32 args )
   pop_stack();
   if(s->len < w*h*d)
     error("Not enough data in string for this channel\n");
-  source = s->str;
-  source2 = s->str+w*h;
-  source3 = s->str+w*h*2;
-  source4 = s->str+w*h*3;
+  source = (unsigned char *)s->str;
+  source2 = source+w*h;
+  source3 = source+w*h*2;
+  source4 = source+w*h*3;
   push_int( w ); push_int( h );
   io = clone_object( image_program, 2 );
   dst = ((struct image *)get_storage(io,image_program))->img;
@@ -504,7 +504,7 @@ static struct psd_image low_psd_decode( struct buffer *b )
 
 void push_buffer( struct buffer *b )
 {
-  push_string( make_shared_binary_string( b->str, b->len ) );
+  push_string( make_shared_binary_string( (char *)b->str, b->len ) );
 }
 
 void push_layer( struct layer  *l)
@@ -579,7 +579,7 @@ static void image_f_psd___decode( INT32 args )
     error("This is not a Photoshop PSD file (invalid version)\n");
     
   b.len = s->len-12;
-  b.str = s->str+12;
+  b.str = (unsigned char *)s->str+12;
   {
     ONERROR onerr;
     struct psd_image i = low_psd_decode( &b );
diff --git a/src/modules/Image/encodings/ras.c b/src/modules/Image/encodings/ras.c
index c55cdcff79..e22059cc33 100644
--- a/src/modules/Image/encodings/ras.c
+++ b/src/modules/Image/encodings/ras.c
@@ -1,9 +1,9 @@
-/* $Id: ras.c,v 1.4 1999/11/19 15:36:57 grubba Exp $ */
+/* $Id: ras.c,v 1.5 2000/02/03 19:01:29 grubba Exp $ */
 
 /*
 **! module Image
 **! note
-**!	$Id: ras.c,v 1.4 1999/11/19 15:36:57 grubba Exp $
+**!	$Id: ras.c,v 1.5 2000/02/03 19:01:29 grubba Exp $
 **! submodule RAS
 **!
 **!	This submodule keep the RAS encode/decode capabilities
@@ -14,7 +14,7 @@
 #include "global.h"
 
 #include "stralloc.h"
-RCSID("$Id: ras.c,v 1.4 1999/11/19 15:36:57 grubba Exp $");
+RCSID("$Id: ras.c,v 1.5 2000/02/03 19:01:29 grubba Exp $");
 #include "pike_macros.h"
 #include "object.h"
 #include "constants.h"
@@ -547,7 +547,7 @@ static void image_ras_encode(INT32 args)
       
     if(pklen<rs.ras_length) {
       free((char *)res2);
-      res2 = make_shared_binary_string(pkdata, pklen);
+      res2 = make_shared_binary_string((char *)pkdata, pklen);
       rs.ras_length = pklen;
       rs.ras_type = RT_BYTE_ENCODED;
     } else
diff --git a/src/modules/Image/encodings/tga.c b/src/modules/Image/encodings/tga.c
index c0f31bd014..284cfcb7aa 100644
--- a/src/modules/Image/encodings/tga.c
+++ b/src/modules/Image/encodings/tga.c
@@ -1,6 +1,6 @@
 
 /*
- * $Id: tga.c,v 1.8 1999/06/19 20:24:59 hubbe Exp $
+ * $Id: tga.c,v 1.9 2000/02/03 19:01:29 grubba Exp $
  *
  *  Targa codec for pike. Based on the tga plugin for gimp.
  *
@@ -77,7 +77,7 @@
 #include "image.h"
 #include "colortable.h"
 
-RCSID("$Id: tga.c,v 1.8 1999/06/19 20:24:59 hubbe Exp $");
+RCSID("$Id: tga.c,v 1.9 2000/02/03 19:01:29 grubba Exp $");
 
 #ifndef MIN
 # define MIN(X,Y) ((X)<(Y)?(X):(Y))
@@ -743,7 +743,7 @@ static struct buffer save_tga(struct image *img, struct image *alpha,
     free(obuf.str);
     error("Internal error: Out of space in buffer.\n");
   }
-  if (std_fwrite (SAVE_ID_STRING, hdr.idLength, 1, fp) != 1)
+  if (std_fwrite ((void *)SAVE_ID_STRING, hdr.idLength, 1, fp) != 1)
   {
     free(obuf.str);
     error("Internal error: Out of space in buffer.\n");
@@ -793,7 +793,8 @@ static struct buffer save_tga(struct image *img, struct image *alpha,
           *(p++) = (is++)->r;
         }
     }
-    if ((*myfwrite) (data, pixsize,datalen/pixsize, fp) != datalen/pixsize)
+    if ((*myfwrite)((void *)data, pixsize,datalen/pixsize, fp) !=
+	datalen/pixsize)
     {
       free(data);
       free(obuf.str);
diff --git a/src/modules/Image/encodings/wbf.c b/src/modules/Image/encodings/wbf.c
index 30982ceec9..dc92bca0f1 100644
--- a/src/modules/Image/encodings/wbf.c
+++ b/src/modules/Image/encodings/wbf.c
@@ -5,7 +5,7 @@
 #include <ctype.h>
 
 #include "stralloc.h"
-RCSID("$Id: wbf.c,v 1.3 1999/11/19 15:36:17 grubba Exp $");
+RCSID("$Id: wbf.c,v 1.4 2000/02/03 19:01:29 grubba Exp $");
 #include "pike_macros.h"
 #include "object.h"
 #include "mapping.h"
@@ -203,7 +203,7 @@ static void low_image_f_wbf_decode( int args, int mode )
   get_all_args( "decode", args, "%S", &s );
 
   buff.len = s->len;
-  buff.str = s->str;
+  buff.str = (unsigned char *)s->str;
   sp--; /* Evil me */
 
   wh = decode_header( &buff );
@@ -343,7 +343,8 @@ static void push_wap_type0_image_data( struct image *i )
     }
     printf("\n");
   }
-  push_string( make_shared_binary_string( data, i->ysize * (i->xsize+7)/8 ) );
+  push_string( make_shared_binary_string( (char *)data,
+					  i->ysize * (i->xsize+7)/8 ) );
 }
 
 static void image_f_wbf_encode( int args )
diff --git a/src/modules/Image/encodings/xcf.c b/src/modules/Image/encodings/xcf.c
index 6426db0846..f4c4dc7a97 100644
--- a/src/modules/Image/encodings/xcf.c
+++ b/src/modules/Image/encodings/xcf.c
@@ -1,5 +1,5 @@
 #include "global.h"
-RCSID("$Id: xcf.c,v 1.11 1999/08/16 18:10:23 grubba Exp $");
+RCSID("$Id: xcf.c,v 1.12 2000/02/03 19:01:29 grubba Exp $");
 
 #include "image_machine.h"
 
@@ -36,7 +36,7 @@ extern struct program *image_program;
 #define TILE_WIDTH 64
 #define TILE_HEIGHT 64
 
-#define STRING(X) static struct pike_string *s_##X;
+#define STRING(X) static struct pike_string *s_##X
 #include "xcf_constant_strings.h"
 #undef STRING
 
@@ -164,7 +164,7 @@ static char *read_data( struct buffer * from, unsigned int len )
   char *res;
   if( from->len < len )
     error("Not enough space for %ud bytes\n", len);
-  res = from->str;
+  res = (char *)from->str;
   from->str += len;
   from->len -= len;
   return res;
@@ -174,7 +174,7 @@ static struct buffer read_string( struct buffer *data )
 {
   struct buffer res;
   res.len = read_int( data );
-  res.str = read_data( data, res.len );
+  res.str = (unsigned char *)read_data( data, res.len );
   if(res.len > 0) res.len--; /* len includes ending \0 */
   if(!res.str)
     error("String read failed\n");
@@ -192,10 +192,10 @@ static struct property read_property( struct buffer * data )
     read_uint(data); /* bogus 'len'... */
     foo = read_uint( data );
     res.data.len = foo*3;
-    res.data.str = read_data( data,foo*3 );
+    res.data.str = (unsigned char *)read_data( data,foo*3 );
   } else {
     res.data.len = read_uint( data );
-    res.data.str = read_data( data,res.data.len );
+    res.data.str = (unsigned char *)read_data( data,res.data.len );
   }
   res.next = NULL;
   return res;
@@ -561,7 +561,7 @@ static struct gimp_image read_image( struct buffer * data )
        data->str[3] == 'p' &&
        data->str[4] == ' '))
   {
-    if(strlen(data->str) == 13)
+    if(strlen((char *)data->str) == 13)
       error("This is not an xcf file (%s)\n", data->str);
     else
       error("This is not an xcf file\n");
@@ -621,7 +621,7 @@ static struct gimp_image read_image( struct buffer * data )
 
 static void push_buffer( struct buffer *b )
 {
-  push_string( make_shared_binary_string( b->str, b->len ) );
+  push_string( make_shared_binary_string( (char *)b->str, b->len ) );
 }
 
 static void push_properties( struct property *p )
@@ -756,7 +756,7 @@ static void image_xcf____decode( INT32 args )
   if(args > 1)
     error("Too many arguments to Image.XCF.___decode()\n");
 
-  b.str = s->str; b.len = s->len;
+  b.str = (unsigned char *)s->str; b.len = s->len;
   res = read_image( &b );
   SET_ONERROR( err, free_image, &res );
   push_image( &res );
@@ -789,9 +789,9 @@ void image_xcf_f__rle_decode( INT32 args )
   get_all_args( "_rle_decode", args, "%S%d%d%d", &t, &bpp, &xsize, &ysize);
 
   s.len = t->len;
-  s.str = t->str;
-  od.len = xsize*ysize*bpp;
-  od.str = xalloc( xsize*ysize*bpp ); /* Max and only size, really */
+  s.str = (unsigned char *)t->str;
+  od.len = xsize*ysize*bpp;  /* Max and only size, really */
+  od.str = (unsigned char *)xalloc( xsize*ysize*bpp );
   d = od;
   for(i=0; i<bpp; i++)
   {
@@ -841,7 +841,7 @@ void image_xcf_f__rle_decode( INT32 args )
     /* fprintf(stderr, "%d bytes of source data used out of %d bytes\n" */
     /*         "%d bytes decoded data generated\n",  */
     /*         t->len-s.len,t->len,od.len); */
-  push_string(make_shared_binary_string(od.str,od.len));
+  push_string(make_shared_binary_string((char *)od.str,od.len));
   free(od.str);
 }
 
@@ -1157,7 +1157,7 @@ void image_xcf_f__decode_tiles( INT32 args )
       error("Too small tile, was %d bytes, I really need %d\n",
             tile->len, eheight*ewidth * bpp);
     
-    s = tile->str;
+    s = (unsigned char *)tile->str;
  
     check_signals(); /* Allow ^C */
 
@@ -1308,7 +1308,7 @@ void init_image_xcf()
   add_integer_constant( "INDEXED_GIMAGE", INDEXED_GIMAGE, 0 );
   add_integer_constant( "INDEXEDA_GIMAGE", INDEXEDA_GIMAGE, 0 );
 
-#define STRING(X) s_##X = make_shared_binary_string(#X,sizeof( #X )-sizeof(""));
+#define STRING(X) s_##X = make_shared_binary_string(#X,sizeof( #X )-sizeof(""))
 #include "xcf_constant_strings.h"
 #undef STRING
 }
diff --git a/src/modules/Image/image.c b/src/modules/Image/image.c
index 5d72365c7f..cedb38fa44 100644
--- a/src/modules/Image/image.c
+++ b/src/modules/Image/image.c
@@ -1,9 +1,9 @@
-/* $Id: image.c,v 1.157 1999/11/26 00:29:04 per Exp $ */
+/* $Id: image.c,v 1.158 2000/02/03 19:02:22 grubba Exp $ */
 
 /*
 **! module Image
 **! note
-**!	$Id: image.c,v 1.157 1999/11/26 00:29:04 per Exp $
+**!	$Id: image.c,v 1.158 2000/02/03 19:02:22 grubba Exp $
 **! class Image
 **!
 **!	The main object of the <ref>Image</ref> module, this object
@@ -97,7 +97,7 @@
 
 #include "stralloc.h"
 #include "global.h"
-RCSID("$Id: image.c,v 1.157 1999/11/26 00:29:04 per Exp $");
+RCSID("$Id: image.c,v 1.158 2000/02/03 19:02:22 grubba Exp $");
 #include "pike_macros.h"
 #include "object.h"
 #include "constants.h"
@@ -583,7 +583,7 @@ void img_read_get_channel(int arg,char *name,INT32 args,
 		  "string is %d characters, expected %d\n",
 		  arg+1,name,sp[arg-args-1].u.string->len,
 		  THIS->xsize*THIS->ysize);
-	 *s=sp[arg-args-1].u.string->str;
+	 *s=(unsigned char *)sp[arg-args-1].u.string->str;
 	 *m=1;
 	 break;
       case T_OBJECT:
@@ -1727,7 +1727,7 @@ image_tuned_box_topbottom(const rgba_group left, const rgba_group right,
   }
 }
 
-void image_tuned_box(INT32 args)
+static void image_tuned_box(INT32 args)
 {
   INT32 x1,y1,x2,y2,xw,yw,x,y;
   rgba_group topleft,topright,bottomleft,bottomright,sum;
@@ -2078,7 +2078,7 @@ static void image_gradients(INT32 args)
 **! see also: gradients, tuned_box
 */
 
-void image_test(INT32 args)
+static void image_test(INT32 args)
 {
    int i;
 
diff --git a/src/modules/Image/layers.c b/src/modules/Image/layers.c
index 462c69b39f..64e67911c0 100644
--- a/src/modules/Image/layers.c
+++ b/src/modules/Image/layers.c
@@ -1,7 +1,7 @@
 /*
 **! module Image
 **! note
-**!	$Id: layers.c,v 1.40 2000/01/30 22:14:05 hubbe Exp $
+**!	$Id: layers.c,v 1.41 2000/02/03 19:02:22 grubba Exp $
 **! class Layer
 **! see also: layers
 **!
@@ -215,7 +215,7 @@
 
 #include <math.h> /* floor */
 
-RCSID("$Id: layers.c,v 1.40 2000/01/30 22:14:05 hubbe Exp $");
+RCSID("$Id: layers.c,v 1.41 2000/02/03 19:02:22 grubba Exp $");
 
 #include "image_machine.h"
 
@@ -2711,6 +2711,7 @@ static void image_layer_crop(INT32 args)
       free_object(l->image);
       l->image=sp[-1].u.object;
       sp--;
+      dmalloc_touch_svalue(sp);
       l->img=img;
    }
 
@@ -2737,6 +2738,7 @@ static void image_layer_crop(INT32 args)
       free_object(l->alpha);
       l->alpha=sp[-1].u.object;
       sp--;
+      dmalloc_touch_svalue(sp);
       l->alp=img;
    }
 
@@ -2819,6 +2821,7 @@ void image_layer_autocrop(INT32 args)
 {
    image_layer_find_autocrop(args);
    sp--;
+   dmalloc_touch_svalue(sp);
    push_array_items(sp->u.array); /* frees */
    image_layer_crop(4);
 }
diff --git a/src/modules/_Charset/charsetmod.c b/src/modules/_Charset/charsetmod.c
index 0262481d71..9a76863604 100644
--- a/src/modules/_Charset/charsetmod.c
+++ b/src/modules/_Charset/charsetmod.c
@@ -2,8 +2,8 @@
 #include "config.h"
 #endif /* HAVE_CONFIG_H */
 
-#include "global.h"
-RCSID("$Id: charsetmod.c,v 1.17 1999/09/25 20:07:30 grubba Exp $");
+#include "../../global.h"
+RCSID("$Id: charsetmod.c,v 1.18 2000/02/03 19:02:59 grubba Exp $");
 #include "program.h"
 #include "interpret.h"
 #include "stralloc.h"
@@ -196,7 +196,7 @@ static void f_std_feed(INT32 args, INT32 (*func)(const p_wchar0 *, INT32 n,
   l = func(STR0(str), str->len, s);
 
   if(l>0)
-    s->retain = make_shared_binary_string(STR0(str)+str->len-l, l);
+    s->retain = make_shared_binary_string((char *)STR0(str)+str->len-l, l);
 
   if(tmpstr != NULL)
     free_string(tmpstr);
@@ -491,7 +491,7 @@ static void f_rfc1345(INT32 args)
   }
 
   if(str->size_shift==0 &&
-     (tabl = misc_charset_lookup(STR0(str), &lo, &hi))!=NULL) {
+     (tabl = misc_charset_lookup((char *)STR0(str), &lo, &hi))!=NULL) {
 
     if(args>1 && sp[1-args].type == T_INT && sp[1-args].u.integer != 0) {
       struct std8e_stor *s8;
diff --git a/src/modules/_Crypto/rsa.c b/src/modules/_Crypto/rsa.c
index 1553b42557..0ce9c29b1a 100644
--- a/src/modules/_Crypto/rsa.c
+++ b/src/modules/_Crypto/rsa.c
@@ -1,5 +1,5 @@
 /*
- * $Id: rsa.c,v 1.9 2000/02/03 11:41:06 grubba Exp $
+ * $Id: rsa.c,v 1.10 2000/02/03 19:03:37 grubba Exp $
  *
  * Glue to RSA BSAFE's RSA implementation.
  *
@@ -28,7 +28,7 @@
 
 #include <bsafe.h>
 
-RCSID("$Id: rsa.c,v 1.9 2000/02/03 11:41:06 grubba Exp $");
+RCSID("$Id: rsa.c,v 1.10 2000/02/03 19:03:37 grubba Exp $");
 
 struct pike_rsa_data
 {
@@ -394,9 +394,9 @@ static void f_decrypt(INT32 args)
   if (THIS->flags & P_RSA_PRIVATE_KEY_NOT_SET) {
     A_RSA_KEY rsa_private_key;
 
-    rsa_private_key.modulus.data = THIS->n->str;
+    rsa_private_key.modulus.data = (POINTER)THIS->n->str;
     rsa_private_key.modulus.len = THIS->n->len;
-    rsa_private_key.exponent.data = THIS->d->str;
+    rsa_private_key.exponent.data = (POINTER)THIS->d->str;
     rsa_private_key.exponent.len = THIS->d->len;
 
     if ((err = B_SetKeyInfo(THIS->private_key, KI_RSAPublic,
@@ -411,12 +411,13 @@ static void f_decrypt(INT32 args)
     error("Failed to initialize decrypter: %04x\n", err);
   }
 
-  buffer = xalloc(s->len+1);
+  buffer = (unsigned char *)xalloc(s->len+1);
   buffer[s->len] = 0;	/* Ensure NUL-termination. */
 
   len = 0;
   if ((err = B_DecryptUpdate(THIS->cipher, buffer, &len, s->len,
-			     s->str, s->len, (B_ALGORITHM_OBJ)NULL_PTR,
+			     (POINTER)s->str, s->len,
+			     (B_ALGORITHM_OBJ)NULL_PTR,
 			     (A_SURRENDER_CTX *)NULL_PTR))) {
     free(buffer);
     error("decrypt failed: %04x\n", err);
@@ -450,7 +451,7 @@ static void f_decrypt(INT32 args)
 
   /* FIXME: Enforce i being 1? */
   if ((buffer[i] != 2) ||
-      ((i += strlen(buffer + i)) < 9) || (len != THIS->n->len)) {
+      ((i += strlen((char *)buffer + i)) < 9) || (len != THIS->n->len)) {
 #ifdef PIKE_RSA_DEBUG
     fprintf(stderr, "Decrypt failed: i:%d, len:%d, n->len:%d, buffer[0]:%d\n",
 	    i, len, THIS->n->len, buffer[0]);
@@ -466,7 +467,7 @@ static void f_decrypt(INT32 args)
   }
 
   pop_n_elems(args);
-  push_string(make_shared_binary_string(buffer + i + 1, len - i - 1));
+  push_string(make_shared_binary_string((char *)buffer + i + 1, len - i - 1));
 
   free(buffer);
 }
diff --git a/src/modules/files/file.h b/src/modules/files/file.h
index 8f78bf3e3e..2467b1af9d 100644
--- a/src/modules/files/file.h
+++ b/src/modules/files/file.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: file.h,v 1.14 2000/01/27 15:35:22 grubba Exp $
+ * $Id: file.h,v 1.15 2000/02/03 19:05:37 grubba Exp $
  */
 
 #ifndef FILE_H
@@ -89,6 +89,7 @@ struct pike_sendfile
 
   struct iovec *iovs;
   char *buffer;
+  int buf_size;
 };
 
 #endif /* _REENTRANT */
@@ -104,7 +105,9 @@ static void PIKE_CONCAT(file_set_,X) (INT32 args);		\
 static void PIKE_CONCAT(file_query_,X) (INT32 args);		\
 
 
+#ifdef _REENTRANT
 void low_do_sendfile(struct pike_sendfile *);
+#endif /* _REENTRANT */
 
 /* Prototypes begin here */
 void my_set_close_on_exec(int fd, int to);
diff --git a/src/modules/files/file_functions.h b/src/modules/files/file_functions.h
index 63846b83a1..75cddcaa9e 100644
--- a/src/modules/files/file_functions.h
+++ b/src/modules/files/file_functions.h
@@ -12,7 +12,7 @@
 
   FILE_FUNC("seek",file_seek,"function(int,int|void,int|void:int)")
   FILE_FUNC("tell",file_tell,"function(:int)")
-  FILE_FUNC("truncate",file_truncate,"function(int:int)");
+  FILE_FUNC("truncate",file_truncate,"function(int:int)")
   FILE_FUNC("stat",file_stat,"function(:int *)")
   FILE_FUNC("errno",file_errno,"function(:int)")
   FILE_FUNC("mode",file_mode,"function(:int)")
diff --git a/src/modules/files/socket.c b/src/modules/files/socket.c
index fda92312d2..5815aef40d 100644
--- a/src/modules/files/socket.c
+++ b/src/modules/files/socket.c
@@ -19,7 +19,7 @@
 #include "file_machine.h"
 #include "file.h"
 
-RCSID("$Id: socket.c,v 1.46 2000/01/30 20:58:18 per Exp $");
+RCSID("$Id: socket.c,v 1.47 2000/02/03 19:05:37 grubba Exp $");
 
 #ifdef HAVE_SYS_TYPE_H
 #include <sys/types.h>
@@ -433,7 +433,7 @@ void port_setup_program(void)
 
 int fd_from_portobject( struct object *p )
 {
-  struct port *po = get_storage( p, port_program );
+  struct port *po = (struct port *)get_storage( p, port_program );
   if(!po) return -1;
   return po->fd;
 }
diff --git a/src/modules/spider/xml.c b/src/modules/spider/xml.c
index a3b73c13be..3625c0fac0 100644
--- a/src/modules/spider/xml.c
+++ b/src/modules/spider/xml.c
@@ -35,7 +35,7 @@ struct xmlinput
   struct pike_string *to_free;
 };
 
-BLOCK_ALLOC(xmlinput, 64);
+BLOCK_ALLOC(xmlinput, 64)
 
 struct xmldata
 {
diff --git a/src/operators.c b/src/operators.c
index 62b8837a54..7f67cee9d9 100644
--- a/src/operators.c
+++ b/src/operators.c
@@ -6,7 +6,7 @@
 /**/
 #include "global.h"
 #include <math.h>
-RCSID("$Id: operators.c,v 1.84 1999/12/29 17:55:05 grubba Exp $");
+RCSID("$Id: operators.c,v 1.85 2000/02/03 19:09:12 grubba Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "multiset.h"
@@ -254,11 +254,13 @@ void f_add(INT32 args)
 	    break;
 
 	  case 1:
-	    convert_0_to_1((p_wchar1 *)buf.ptr,buffer,strlen(buffer));
+	    convert_0_to_1((p_wchar1 *)buf.ptr,(p_wchar0 *)buffer,
+			   strlen(buffer));
 	    break;
 
 	  case 2:
-	    convert_0_to_2((p_wchar2 *)buf.ptr,buffer,strlen(buffer));
+	    convert_0_to_2((p_wchar2 *)buf.ptr,(p_wchar0 *)buffer,
+			   strlen(buffer));
 	    break;
 
 	}
diff --git a/src/pike_memory.c b/src/pike_memory.c
index 9a2e11b46f..52c930f671 100644
--- a/src/pike_memory.c
+++ b/src/pike_memory.c
@@ -10,7 +10,7 @@
 #include "pike_macros.h"
 #include "gc.h"
 
-RCSID("$Id: pike_memory.c,v 1.51 2000/01/30 08:25:20 hubbe Exp $");
+RCSID("$Id: pike_memory.c,v 1.52 2000/02/03 19:09:12 grubba Exp $");
 
 /* strdup() is used by several modules, so let's provide it */
 #ifndef HAVE_STRDUP
@@ -29,8 +29,8 @@ char *strdup(const char *str)
 
 int pcharp_memcmp(PCHARP a, PCHARP b, int sz)
 {
-  return generic_quick_binary_strcmp(a.ptr, sz, a.shift,
-				     b.ptr, sz, b.shift);
+  return generic_quick_binary_strcmp((char *)a.ptr, sz, a.shift,
+				     (char *)b.ptr, sz, b.shift);
 }
 
 long pcharp_strlen(PCHARP a)
@@ -520,7 +520,7 @@ void *generic_memory_search(struct generic_mem_searcher *s,
 	  end=hay + haystacklen - needlelen+1;				  \
 	  needle++;							  \
 	  needlelen--;							  \
-	  while((hay=PIKE_CONCAT(MEMCHR,X)(hay,				  \
+	  while((hay=(PIKE_CONCAT(p_wchar,X)*)PIKE_CONCAT(MEMCHR,X)(hay,  \
 					   s->data.other.first_char,	  \
 					   end-hay)))			  \
 	    if(!PIKE_CONCAT4(compare_,Y,_to_,X)(++hay,needle,needlelen)) \
diff --git a/src/pike_types.c b/src/pike_types.c
index 9658010afa..8f013dd708 100644
--- a/src/pike_types.c
+++ b/src/pike_types.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: pike_types.c,v 1.120 2000/01/27 23:18:25 hubbe Exp $");
+RCSID("$Id: pike_types.c,v 1.121 2000/02/03 19:09:13 grubba Exp $");
 #include <ctype.h>
 #include "svalue.h"
 #include "pike_types.h"
@@ -408,7 +408,7 @@ static void internal_parse_typeA(char **_s)
 	  INT32 min,max;
 	  ++*s;
 	  while(ISSPACE(**s)) ++*s;
-	  min=STRTOL(*s,(char **)s,0);
+	  min=STRTOL((char *)*s,(char **)s,0);
 	  while(ISSPACE(**s)) ++*s;
 	  if(s[0][0]=='.' && s[0][1]=='.')
 	    s[0]+=2;
@@ -416,7 +416,7 @@ static void internal_parse_typeA(char **_s)
 	    error("Missing .. in integer type.\n");
 	  
 	  while(ISSPACE(**s)) ++*s;
-	  max=STRTOL(*s,(char **)s,0);
+	  max=STRTOL((char *)*s,(char **)s,0);
 	  while(ISSPACE(**s)) ++*s;
 
 	  if(**s != ')') error("Missing ')' in integer range.\n");
diff --git a/src/preprocessor.h b/src/preprocessor.h
index 31affd52aa..e4b333eeb0 100644
--- a/src/preprocessor.h
+++ b/src/preprocessor.h
@@ -1,5 +1,5 @@
 /*
- * $Id: preprocessor.h,v 1.16 1999/12/28 02:21:54 grubba Exp $
+ * $Id: preprocessor.h,v 1.17 2000/02/03 19:09:13 grubba Exp $
  *
  * Preprocessor template.
  * Based on cpp.c 1.45
@@ -29,7 +29,7 @@
 #define lower_cpp		lower_cpp0
 #define find_end_parenthesis	find_end_parenthesis0
 #define PUSH_STRING		PUSH_STRING0
-#define WC_BINARY_FINDSTRING	binary_findstring
+#define WC_BINARY_FINDSTRING(X, Y)	binary_findstring((char *)X, Y)
 
 #define calc	calc_0
 #define calc1	calc1_0
@@ -1229,7 +1229,8 @@ static INT32 lower_cpp(struct cpp *this,
 		  pos++;
 		}
 #if (SHIFT == 0)
-		push_string(make_shared_binary_string(data+tmp, pos-tmp));
+		push_string(make_shared_binary_string((char *)data+tmp,
+						      pos-tmp));
 #else /* SHIFT != 0 */
 #if (SHIFT == 1)
 		push_string(make_shared_binary_string1(data+tmp, pos-tmp));
@@ -1547,7 +1548,7 @@ static INT32 lower_cpp(struct cpp *this,
 	  if(OUTP())
 	  {
 #if (SHIFT == 0)
-	    push_string(make_shared_binary_string(data+foo, pos-foo));
+	    push_string(make_shared_binary_string((char *)data+foo, pos-foo));
 #else /* SHIFT != 0 */
 #if (SHIFT == 1)
 	    push_string(make_shared_binary_string1(data+foo, pos-foo));
@@ -1615,7 +1616,8 @@ static INT32 lower_cpp(struct cpp *this,
 		  check_stack(1);
 
 #if (SHIFT == 0)
-		  push_string(make_shared_binary_string(data+tmp2, pos-tmp2));
+		  push_string(make_shared_binary_string((char *)data+tmp2,
+							pos-tmp2));
 #else /* SHIFT != 0 */
 #if (SHIFT == 1)
 		  push_string(make_shared_binary_string1(data+tmp2, pos-tmp2));
@@ -1766,7 +1768,7 @@ static INT32 lower_cpp(struct cpp *this,
 
 #if (SHIFT == 0)
 	    def=alloc_empty_define(
-		  make_shared_binary_string(data+namestart,
+		  make_shared_binary_string((char *)data+namestart,
 					    nameend-namestart),
 		  (sp-partbase)/2);
 #else /* SHIFT != 0 */
diff --git a/src/stralloc.c b/src/stralloc.c
index 5e80b92454..492979fdaf 100644
--- a/src/stralloc.c
+++ b/src/stralloc.c
@@ -25,7 +25,7 @@
 #define HUGE HUGE_VAL
 #endif /*!HUGE*/
 
-RCSID("$Id: stralloc.c,v 1.77 1999/11/24 13:53:44 noring Exp $");
+RCSID("$Id: stralloc.c,v 1.78 2000/02/03 19:09:13 grubba Exp $");
 
 #define BEGIN_HASH_SIZE 997
 #define MAX_AVG_LINK_LENGTH 3
@@ -588,7 +588,7 @@ struct pike_string * debug_make_shared_binary_pcharp(const PCHARP str,int len)
   switch(str.shift)
   {
     case 0:
-      return make_shared_binary_string((p_wchar0 *)(str.ptr),  len);
+      return make_shared_binary_string((char *)(str.ptr),  len);
     case 1:
       return make_shared_binary_string1((p_wchar1 *)(str.ptr),  len);
     case 2:
@@ -1188,14 +1188,14 @@ struct pike_string *modify_shared_string(struct pike_string *a,
     {
       case TWO_SIZES(1,0):
 	b=begin_wide_shared_string(a->len,1);
-	convert_0_to_1(STR1(b),a->str,a->len);
+	convert_0_to_1(STR1(b),(p_wchar0 *)a->str,a->len);
 	STR1(b)[index]=c;
 	free_string(a);
 	return end_shared_string(b);
 
       case TWO_SIZES(2,0):
 	b=begin_wide_shared_string(a->len,2);
-	convert_0_to_2(STR2(b),a->str,a->len);
+	convert_0_to_2(STR2(b),(p_wchar0 *)a->str,a->len);
 	STR2(b)[index]=c;
 	free_string(a);
 	return end_shared_string(b);
@@ -1237,7 +1237,7 @@ struct pike_string *modify_shared_string(struct pike_string *a,
 	  break;
 	
 	b=begin_shared_string(a->len);
-	convert_1_to_0(b->str,STR1(a),a->len);
+	convert_1_to_0((p_wchar0 *)b->str,STR1(a),a->len);
 	b->str[index]=c;
 	free_string(a);
 	return end_shared_string(b);
@@ -1254,14 +1254,14 @@ struct pike_string *modify_shared_string(struct pike_string *a,
 	{
 	  case 0:
 	    b=begin_shared_string(a->len);
-	    convert_2_to_0(b->str,STR2(a),a->len);
+	    convert_2_to_0((p_wchar0 *)b->str,STR2(a),a->len);
 	    b->str[index]=c;
 	    free_string(a);
 	    return end_shared_string(b);
 
 	  case 1:
 	    b=begin_wide_shared_string(a->len,1);
-	    convert_2_to_1((unsigned INT16 *)b->str,STR2(a),a->len);
+	    convert_2_to_1((p_wchar1 *)b->str,STR2(a),a->len);
 	    STR1(b)[index]=c;
 	    free_string(a);
 	    return end_shared_string(b);
@@ -1377,7 +1377,7 @@ struct pike_string *string_slice(struct pike_string *s,
   switch(s->size_shift)
   {
     case 0:
-      return make_shared_binary_string(STR0(s)+start,len);
+      return make_shared_binary_string((char *)STR0(s)+start,len);
 
     case 1:
       return make_shared_binary_string1(STR1(s)+start,len);
@@ -1636,9 +1636,9 @@ void string_builder_binary_strcat(struct string_builder *s, char *str, INT32 len
   string_build_mkspace(s,len,0);
   switch(s->s->size_shift)
   {
-    case 0: convert_0_to_0(STR0(s->s)+s->s->len,str,len); break;
-    case 1: convert_0_to_1(STR1(s->s)+s->s->len,str,len); break;
-    case 2: convert_0_to_2(STR2(s->s)+s->s->len,str,len); break;
+    case 0: convert_0_to_0(STR0(s->s)+s->s->len,(p_wchar0 *)str,len); break;
+    case 1: convert_0_to_1(STR1(s->s)+s->s->len,(p_wchar0 *)str,len); break;
+    case 2: convert_0_to_2(STR2(s->s)+s->s->len,(p_wchar0 *)str,len); break;
     default:
       fatal("Illegal magnitude!\n");
   }
diff --git a/src/svalue.c b/src/svalue.c
index df10aca10a..bf54573c5d 100644
--- a/src/svalue.c
+++ b/src/svalue.c
@@ -23,7 +23,7 @@
 #include "queue.h"
 #include "bignum.h"
 
-RCSID("$Id: svalue.c,v 1.61 2000/01/27 23:12:08 hubbe Exp $");
+RCSID("$Id: svalue.c,v 1.62 2000/02/03 19:09:13 grubba Exp $");
 
 struct svalue dest_ob_zero = { T_INT, 0 };
 
@@ -1003,7 +1003,7 @@ void describe_svalue(struct svalue *s,int indent,struct processing *p)
 	    switch(str->size_shift)
 	    {
 	      case 0:
-		my_binary_strcat(STR0(str), str->len);
+		my_binary_strcat((char *)STR0(str), str->len);
 		break;
 
 	      case 1:
-- 
GitLab