From 4c0c267a0bfa0ee565a2867dc67dd947df316dc8 Mon Sep 17 00:00:00 2001
From: "Mirar (Pontus Hagland)" <pike@sort.mirar.org>
Date: Sat, 28 Sep 1996 17:56:01 +0200
Subject: [PATCH] =?UTF-8?q?create()=20med=20argument,=20g=C3=B6r=20en=20ny?=
 =?UTF-8?q?=20bild!?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Rev: src/modules/image/image.c:1.6
---
 src/modules/image/image.c | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/src/modules/image/image.c b/src/modules/image/image.c
index 8f0a88f8e9..dc3594444e 100644
--- a/src/modules/image/image.c
+++ b/src/modules/image/image.c
@@ -613,6 +613,33 @@ static void img_apply_matrix(struct image *dest,
 
 /***************** methods *************************************/
 
+void image_create(INT32 args)
+{
+   if (args<2) return;
+   if (sp[-args].type!=T_INT||
+       sp[1-args].type!=T_INT)
+      error("Illegal arguments to image->clone()\n");
+
+   getrgb(THIS,2,args,"image->create()"); 
+
+   if (THIS->img) free(THIS->img);
+	
+   THIS->xsize=sp[-args].u.integer;
+   THIS->ysize=sp[1-args].u.integer;
+   if (THIS->xsize<0) THIS->xsize=0;
+   if (THIS->ysize<0) THIS->ysize=0;
+
+   THIS->img=malloc(sizeof(rgb_group)*THIS->xsize*THIS->ysize +1);
+   if (!THIS->img)
+   {
+     free_object(o);
+     error("out of memory\n");
+   }
+
+   img_clear(THIS->img,THIS->rgb,THIS->xsize*THIS->ysize);
+   pop_n_elems(args);
+}
+
 void image_new(INT32 args)
 {
    struct object *o;
@@ -1697,6 +1724,8 @@ void init_image_programs()
    start_new_program();
    add_storage(sizeof(struct image));
 
+   add_function("create",image_create,
+		"function(int,int,"RGB_TYPE":void)",0);
    add_function("new",image_new,
 		"function(int,int,"RGB_TYPE":void)",0);
    add_function("toppm",image_toppm,
-- 
GitLab