diff --git a/src/modules/Image/blit.c b/src/modules/Image/blit.c index 4531f0195ef29e8e509e0ee2f8a1c5c3881d19a1..dca2787f4f2230f9942f535a656500b7dad52ca9 100644 --- a/src/modules/Image/blit.c +++ b/src/modules/Image/blit.c @@ -1,10 +1,10 @@ -/* $Id: blit.c,v 1.32 1999/05/20 17:34:34 mirar Exp $ */ +/* $Id: blit.c,v 1.33 1999/05/24 12:22:51 mirar Exp $ */ #include "global.h" /* **! module Image **! note -**! $Id: blit.c,v 1.32 1999/05/20 17:34:34 mirar Exp $ +**! $Id: blit.c,v 1.33 1999/05/24 12:22:51 mirar Exp $ **! class Image */ @@ -97,6 +97,9 @@ static INLINE int getrgb(struct image *img, img->rgb.r=(unsigned char)sp[-args+args_start].u.integer; img->rgb.g=(unsigned char)sp[1-args+args_start].u.integer; img->rgb.b=(unsigned char)sp[2-args+args_start].u.integer; + +fprintf(stderr,"args=%d args_start=%d diff=%d\n", + args,args_start,args-args_start); if (args-args_start>=4) if (sp[3-args+args_start].type!=T_INT) error("Illegal alpha argument to %s\n",name); @@ -562,14 +565,14 @@ void image_paste_alpha_color(INT32 args) if (!mask->img) return; if (args==6 || args==4 || args==2 || args==3) /* color at arg 2.. */ - arg=1+getrgb(THIS,1,args,"image->paste_alpha_color()\n"); + arg=1+getrgb(THIS,1,MINIMUM(args,4),"image->paste_alpha_color()\n"); if (args>arg+1) { if (sp[arg-args].type!=T_INT - || sp[arg-args].type!=T_INT) + || sp[1+arg-args].type!=T_INT) error("illegal coordinate arguments to image->paste_alpha_color()\n"); x1=sp[arg-args].u.integer; - y1=sp[arg-args].u.integer; + y1=sp[1+arg-args].u.integer; } else x1=y1=0; diff --git a/src/modules/Image/image.c b/src/modules/Image/image.c index c8ad66128379f8f7585e07dcb1a76eaad6ee1cda..805ebc6b1526cce387bf6c283dedbf096bb399fc 100644 --- a/src/modules/Image/image.c +++ b/src/modules/Image/image.c @@ -1,9 +1,9 @@ -/* $Id: image.c,v 1.136 1999/05/23 17:46:41 mirar Exp $ */ +/* $Id: image.c,v 1.137 1999/05/24 12:22:49 mirar Exp $ */ /* **! module Image **! note -**! $Id: image.c,v 1.136 1999/05/23 17:46:41 mirar Exp $ +**! $Id: image.c,v 1.137 1999/05/24 12:22:49 mirar 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.136 1999/05/23 17:46:41 mirar Exp $"); +RCSID("$Id: image.c,v 1.137 1999/05/24 12:22:49 mirar Exp $"); #include "pike_macros.h" #include "object.h" #include "constants.h" @@ -796,7 +796,7 @@ static void image_change_color(INT32 args) if (!THIS->img) error("no image\n"); to=THIS->rgb; - if (!(arg=getrgb(THIS,0,MAXIMUM(args,3),"Image.Image->change_color()"))) + if (!(arg=getrgb(THIS,0,MINIMUM(args,3),"Image.Image->change_color()"))) error("too few arguments to Image.Image->change_color()\n"); from=THIS->rgb; if (getrgb(THIS,arg,args,"Image.Image->change_color()"))