Hi, Below is a patch that makes the plug-in compile against the GIMP 1.2 API. Forget the Makefile that is included with the tarball and instead use gimptool-1.2 to compile the plug-in. So in order to build it, change to the Stegano source tree, apply the patch:
patch -p0 < stegano.diff compile and install using gimptool-1.2: gimptool-1.2 --install stegano.c I haven't even tested if the plug-in works but at least you should get it compiled now. Sven --- stegano.c.orig 1998-12-01 20:15:53.000000000 +0100 +++ stegano.c 2003-06-14 11:37:29.000000000 +0200 @@ -7,6 +7,10 @@ ********************************************************************** */ +/* Applied some Search-and-Replace rules to make it compile + * against the GIMP-1.2 API. -- June 2003, Sven Neumann <[EMAIL PROTECTED]> + */ + /* The GIMP -- an image manipulation program * Copyright (C) 1995 Spencer Kimball and Peter Mattis @@ -28,6 +32,7 @@ #include <stdlib.h> #include <string.h> +#include <stdio.h> #include <math.h> #include <sys/stat.h> @@ -52,11 +57,11 @@ typedef struct { */ static void query(void); static void run(char *name, int nparams, - GParam *param, + GimpParam *param, int *nreturn_vals, - GParam **return_vals); -static void drawstegano(GDrawable *drawable); -static void readstegano(GDrawable *drawable); + GimpParam **return_vals); +static void drawstegano(GimpDrawable *drawable); +static void readstegano(GimpDrawable *drawable); static gint stegano_dialog(void); static gint stegano_save_dialog(void); static gint stegano_warning_dialog(void); @@ -78,14 +83,14 @@ GtkTooltips *tips; GdkColor tips_fg,tips_bg; gchar filename[128]; gint saverun; - static GParam values[1]; - GDrawable *drawable; - GRunModeType run_mode; - GStatusType status = STATUS_SUCCESS; + static GimpParam values[1]; + GimpDrawable *drawable; + GimpRunModeType run_mode; + GimpPDBStatusType status = GIMP_PDB_SUCCESS; -GPlugInInfo PLUG_IN_INFO = +GimpPlugInInfo PLUG_IN_INFO = { NULL, /* init_proc */ NULL, /* quit_proc */ @@ -108,16 +113,16 @@ MAIN() static void query(void) { - static GParamDef args[] = + static GimpParamDef args[] = { - { PARAM_INT32, "run_mode", "Interactive, non-interactive" }, - { PARAM_IMAGE, "image", "Input image (unused)" }, - { PARAM_DRAWABLE, "drawable", "Input drawable" }, - { PARAM_INT8, "mode", "FALSE: Hide file in image; TRUE: Get hidden file" }, - { PARAM_STRING, "filename[128]", "Name of the file to hide in an image (only of importance if mode=FALSE" }, + { GIMP_PDB_INT32, "run_mode", "Interactive, non-interactive" }, + { GIMP_PDB_IMAGE, "image", "Input image (unused)" }, + { GIMP_PDB_DRAWABLE, "drawable", "Input drawable" }, + { GIMP_PDB_INT8, "mode", "FALSE: Hide file in image; TRUE: Get hidden file" }, + { GIMP_PDB_STRING, "filename[128]", "Name of the file to hide in an image (only of importance if mode=FALSE" }, }; - static GParamDef *return_vals = NULL; + static GimpParamDef *return_vals = NULL; static int nargs = sizeof(args)/ sizeof(args[0]); static int nreturn_vals = 0; @@ -129,7 +134,7 @@ query(void) "December, 1998", "<Image>/Filters/Image/Stegano", "RGB*, GRAY*, INDEXED*", - PROC_PLUG_IN, + GIMP_PLUGIN, nargs, nreturn_vals, args, return_vals); } @@ -137,16 +142,16 @@ query(void) static void run(char *name, int nparams, - GParam *param, + GimpParam *param, int *nreturn_vals, - GParam **return_vals) + GimpParam **return_vals) { gchar **argv; gint argc; run_mode = param[0].data.d_int32; - values[0].type = PARAM_STATUS; + values[0].type = GIMP_PDB_STATUS; values[0].data.d_status = status; *nreturn_vals = 1; @@ -156,7 +161,7 @@ run(char *name, switch(run_mode) { - case RUN_INTERACTIVE: + case GIMP_RUN_INTERACTIVE: /* Possibly retrieve data */ gimp_get_data("plug_in_stegano", &wvals); /* Get information from the dialog */ @@ -169,11 +174,11 @@ run(char *name, stegano_dialog(); return; - case RUN_NONINTERACTIVE: + case GIMP_RUN_NONINTERACTIVE: /* Make sure all the arguments are present */ if (nparams != 5) - status = STATUS_CALLING_ERROR; - if (status == STATUS_SUCCESS) + status = GIMP_PDB_CALLING_ERROR; + if (status == GIMP_PDB_SUCCESS) wvals.mode = param[3].data.d_int8; strncpy (wvals.filename,param[4].data.d_string, 128); wvals.filename[127]='\0'; @@ -186,7 +191,7 @@ run(char *name, gtk_tooltips_set_delay(tips, 2500); break; - case RUN_WITH_LAST_VALS: + case GIMP_RUN_WITH_LAST_VALS: /* Possibly retrieve data */ argc = 1; argv = g_new(gchar *, 1); @@ -202,18 +207,18 @@ run(char *name, default: break; } - if (status == STATUS_SUCCESS) { + if (status == GIMP_PDB_SUCCESS) { if (!wvals.mode) { gimp_tile_cache_ntiles(2 *(drawable->width / gimp_tile_width() + 1)); /* gimp_progress_init("Stegano plug-in is working. Please wait..."); */ drawstegano(drawable); - if(run_mode != RUN_NONINTERACTIVE) + if(run_mode != GIMP_RUN_NONINTERACTIVE) gimp_displays_flush(); } else { readstegano(drawable); } } - if(run_mode == RUN_INTERACTIVE) + if(run_mode == GIMP_RUN_INTERACTIVE) gimp_set_data("plug_in_stegano", &wvals, sizeof(steganoValues)); values[0].data.d_status = status; gimp_drawable_detach(drawable); @@ -230,12 +235,12 @@ set_tooltip (GtkTooltips *tooltips, GtkW static void -drawstegano(GDrawable *drawable) +drawstegano(GimpDrawable *drawable) { FILE *In; - GPixelRgn srcPR, destPR; + GimpPixelRgn srcPR, destPR; gint width, height; gint bytes; gint row; @@ -387,10 +392,10 @@ drawstegano(GDrawable *drawable) } static void -readstegano(GDrawable *drawable) +readstegano(GimpDrawable *drawable) { FILE * Out = NULL; - GPixelRgn srcPR; + GimpPixelRgn srcPR; gint width, height; gint bytes; gint row, value; _______________________________________________ Gimp-user mailing list [EMAIL PROTECTED] http://lists.xcf.berkeley.edu/mailman/listinfo/gimp-user