Hello, > Well... in every devel release, with gimp perl, I've been getting messages > like these below: > "xachshadow.pl: Unable to grok '0' as colour specifier at > /usr/local/lib/gimp/1.1/xachshadow.pl line 76 (ERROR)" > > "script.pl, argument type Gimp::Drawable, Gimp::Layer or Gimp::Channel > expected (not Gimp::Image) at /usr/local/lib/gimp/1.1/script.pl line X > (ERROR)" The patch below, which I send some days ago, should fix this bugs (at least I hope so). In detail, the patch addresses the following things in Gimp V1.1.13: - In the gif-plugin the Cancel-Button only deletes the button and does not abort the dialog. - In different plugins written in Perl the auto import tag was missing. - In the blowinout and the windify plugins different plugins were called with 1 for RUN_NONINTERACTIVE. If I recall correctly, the result of this was the "argument type Gimp::Drawable ...". - In the guidegrid plugin an update of the image was missing. I inserted a call to gimp_drawable_update. - In the logulator plugin the scripts were registered under <Toolbox>/Xtns/... . - Scripts in the logulator plugin which only had the arguments text_string, font_size_pixels, and font did not get defaults for this arguments. - In different Perl-plugins the plugins sparkle, nova, and grid were called with a wrong amount of arguments. The result of this bug in xachshadow.pl was the "Unable to grok '0'". Regards, Frank diff -ru orig/gimp-1.1.13/plug-ins/common/gif.c gimp-1.1.13/plug-ins/common/gif.c --- orig/gimp-1.1.13/plug-ins/common/gif.c Sat Nov 27 06:44:25 1999 +++ gimp-1.1.13/plug-ins/common/gif.c Sat Nov 27 05:10:30 1999 @@ -1301,9 +1301,9 @@ button = gtk_button_new_with_label (_("Cancel")); GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); - gtk_signal_connect_object (GTK_OBJECT (button), "clicked", - (GtkSignalFunc) save_cancel_callback, - dlg); + gtk_signal_connect (GTK_OBJECT (button), "clicked", + (GtkSignalFunc) save_cancel_callback, + dlg); gtk_box_pack_start (GTK_BOX (hbbox), button, FALSE, FALSE, 0); gtk_widget_show (button); diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/blowinout.pl gimp-1.1.13/plug-ins/perl/examples/blowinout.pl --- orig/gimp-1.1.13/plug-ins/perl/examples/blowinout.pl Mon Sep 13 17:05:10 1999 +++ gimp-1.1.13/plug-ins/perl/examples/blowinout.pl Sat Nov 27 09:22:27 1999 @@ -3,7 +3,7 @@ # Blow In/Out # John Pitney -use Gimp 1.06; +use Gimp qw(:auto __); use Gimp::Fu; # print "hello there\n"; @@ -44,11 +44,11 @@ $i * $distance / $nsteps * sin($angle * 3.14159 / 180) : $distance ** ($i/$nsteps) * sin($angle * 3.14159 / 180); gimp_edit_clear($dmlayer); - plug_in_noisify(1, $dm, $dmlayer, 0, 255, 255, 255, 0); + plug_in_noisify($dm, $dmlayer, 0, 255, 255, 255, 0); gimp_levels($dmlayer, 0, 0, 255, 1.0, 128, 255); $drawable = gimp_layer_copy($drawable, 0); gimp_image_add_layer($img, $drawable, -1); - plug_in_displace(1, $img, $drawable, $xdist, $ydist, 1, 1, $dmlayer, + plug_in_displace($img, $drawable, $xdist, $ydist, 1, 1, $dmlayer, $dmlayer, 1); if ( $inmode == 1 ) { @@ -62,11 +62,11 @@ $i * $distance / $nsteps * sin($angle * 3.14159 / 180) : $distance ** ($i/$nsteps) * sin($angle * 3.14159 / 180); gimp_edit_clear($dmlayer); - plug_in_noisify(1, $dm, $dmlayer, 0, 255, 255, 255, 0); + plug_in_noisify($dm, $dmlayer, 0, 255, 255, 255, 0); gimp_levels($dmlayer, 0, 0, 255, 1.0, 128, 255); $drawable = gimp_layer_copy($drawable, 0); gimp_image_add_layer($img, $drawable, -1); - plug_in_displace(1, $img, $drawable, $xdist, $ydist, 1, 1, $dmlayer, + plug_in_displace($img, $drawable, $xdist, $ydist, 1, 1, $dmlayer, $dmlayer, 1); if ( $inmode == 1 ) { diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/fit-text gimp-1.1.13/plug-ins/perl/examples/fit-text --- orig/gimp-1.1.13/plug-ins/perl/examples/fit-text Sat Nov 27 06:44:30 1999 +++ gimp-1.1.13/plug-ins/perl/examples/fit-text Sat Nov 27 09:53:05 1999 @@ -13,7 +13,7 @@ # 7/15/99: added support if the user selects in pixels (assumes 72 dpi - deal) # and tuned it a bit more <sjburges@xxxxxxxx> -use Gimp; +use Gimp qw(:auto __); use Gimp::Fu; use Gimp::Util; diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/guidegrid gimp-1.1.13/plug-ins/perl/examples/guidegrid --- orig/gimp-1.1.13/plug-ins/perl/examples/guidegrid Mon Sep 13 17:05:10 1999 +++ gimp-1.1.13/plug-ins/perl/examples/guidegrid Sat Nov 27 18:29:17 1999 @@ -12,7 +12,7 @@ # 12/7/99 <sjburges@xxxxxxxx> # Changed the display code in C and got rid of ugly hack in perl. # -use Gimp; +use Gimp qw(:auto __); use Gimp::Fu; use Gimp::Util; @@ -78,7 +78,8 @@ ## #$img->selection_all(); #$img->selection_none(); - + gimp_drawable_update($layer, 0, 0, $img->height, $img->width); + return(); }; exit main; diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/innerbevel gimp-1.1.13/plug-ins/perl/examples/innerbevel --- orig/gimp-1.1.13/plug-ins/perl/examples/innerbevel Sat Nov 27 06:44:30 1999 +++ gimp-1.1.13/plug-ins/perl/examples/innerbevel Sat Nov 27 19:42:43 1999 @@ -7,7 +7,7 @@ # working btw). You can follow step by step with the website at # http://tigert.gimp.org/gimp/tutorials/beveled_text/ -use Gimp; +use Gimp qw(:auto __); use Gimp::Fu; use Gimp::Util; diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/logulator gimp-1.1.13/plug-ins/perl/examples/logulator --- orig/gimp-1.1.13/plug-ins/perl/examples/logulator Sat Nov 27 06:44:30 1999 +++ gimp-1.1.13/plug-ins/perl/examples/logulator Sun Nov 28 19:30:58 1999 @@ -14,7 +14,7 @@ $menupath,$imagetypes,$params,$code)=@_; $function =~ s%^perl_fu_%logulator_% or die; my $mp = __"<Image>/Filters/Logulator"; - $menupath =~ s%([^/]+)$%$mp/$1% or die; + $menupath =~ s%^.*/(.+$)%$mp/$1% or die; my($i,$j)=0; my($ti,$fsi,$fi); $i=@$params; @@ -56,7 +56,7 @@ my($image,$drawable)=(shift,shift); $drawable->has_alpha or die "It makes no sense to call $menupath with a drawable lacking alpha!\n"; $i=0; - while($i<@_) { + while($i<=@_) { if($i==$ti) { splice @_,$i,0,"-- Text --"; } elsif ($i==$fsi) { @@ -1234,7 +1234,9 @@ plug_in_noisify ($img, $sparkle_layer, 0, 0.2, 0.2, 0.2, 0.0); plug_in_c_astretch ($img, $sparkle_layer); gimp_selection_none ($img); - plug_in_sparkle ($img, $sparkle_layer, 0.03, 0.45, min ($width, $height) / 2, 6, 15); + plug_in_sparkle ($img, $sparkle_layer, 0.03, 0.45, min ($width, $height) / 2, 6, 15, + 1.0, 1.0, 0.0, 0.0, 0, 0, 0, 0); + gimp_levels ($sparkle_layer, 1, 0, 255, 0.2, 0, 255); gimp_levels ($sparkle_layer, 2, 0, 255, 0.7, 0, 255); gimp_selection_layer_alpha ($sparkle_layer); @@ -2193,7 +2195,7 @@ gimp_palette_set_background ([255, 255, 255]); gimp_edit_fill ($layer_mask); gimp_selection_none ($img); - plug_in_nova ($img, $burst_layer, @{$burst_coords}[0], cdr ($burst_coords), $burst_color, $burstradius, 100); + plug_in_nova ($img, $burst_layer, @{$burst_coords}[0], cdr ($burst_coords), $burst_color, $burstradius, 100, 0); gimp_selection_layer_alpha ($text_layer); gimp_palette_set_background ([0, 0, 0]); gimp_selection_feather ($img, $feather); @@ -2329,7 +2331,7 @@ gimp_palette_set_background ([31, 31, 31]); gimp_palette_set_foreground ([255, 255, 255]); gimp_blend ($text_layer, FG_BG_RGB, NORMAL_MODE, BILINEAR, 100, 0, REPEAT_NONE, 0, 0, 0, $cx, $cy, $bx, $by); - plug_in_nova ($img, $glow_layer, $novax, $novay, $glow_color, $novaradius, 100); + plug_in_nova ($img, $glow_layer, $novax, $novay, $glow_color, $novaradius, 100, 0); gimp_selection_all ($img); gimp_patterns_set_pattern ("Stone"); gimp_bucket_fill ($bump_channel, PATTERN_BUCKET_FILL, NORMAL_MODE, 100, 0, 0, 0, 0); @@ -2398,7 +2400,8 @@ gimp_selection_border ($img, $edge_size); plug_in_noisify ($img, $sparkle_layer, 0, $hit_rate, $hit_rate, $hit_rate, 0.0); gimp_selection_none ($img); - plug_in_sparkle ($img, $sparkle_layer, 0.03, 0.45, $width, 6, 15); + plug_in_sparkle ($img, $sparkle_layer, 0.03, 0.45, $width, 6, 15, + 1.0, 1.0, 0.0, 0.0, 0, 0, 0, 0); gimp_selection_load ($selection); gimp_selection_shrink ($img, $edge_size); gimp_levels ($sparkle_layer, 0, 0, 255, 1.2, 0, 255); diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/perlotine gimp-1.1.13/plug-ins/perl/examples/perlotine --- orig/gimp-1.1.13/plug-ins/perl/examples/perlotine Sat Nov 27 06:44:30 1999 +++ gimp-1.1.13/plug-ins/perl/examples/perlotine Sat Nov 27 19:18:09 1999 @@ -21,7 +21,7 @@ # If you have more additions, etc please don't hesitate to send them in! -use Gimp; +use Gimp qw(:auto __); use Gimp::Fu; use Gimp::Util; @@ -86,7 +86,7 @@ # do this: fs/low-bleed dither, make palette, 256 colors, # dont dither alpha, do remove unused (is 1 "true" here?), # custom palette is ignored (we create our own, thus "duck" works). - $tmpimg->convert_indexed (2,0,256,0,1,duck) + $tmpimg->convert_indexed (2,0,255,0,1,duck) } $tmpimg->gimp_file_save(-1,"$savepath$imgpath$imgname","$savepath$imgpath$imgname"); $tmpimg->delete; diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/randomblends gimp-1.1.13/plug-ins/perl/examples/randomblends --- orig/gimp-1.1.13/plug-ins/perl/examples/randomblends Sat Nov 27 06:44:30 1999 +++ gimp-1.1.13/plug-ins/perl/examples/randomblends Sat Nov 27 15:09:35 1999 @@ -3,7 +3,7 @@ # This is adrian's idea - take random blends and difference them. You're # bound to come up w/ something cool eventually. -use Gimp; +use Gimp qw(:auto __); use Gimp::Fu; use Gimp::Util; diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/windify.pl gimp-1.1.13/plug-ins/perl/examples/windify.pl --- orig/gimp-1.1.13/plug-ins/perl/examples/windify.pl Sat Nov 27 06:44:30 1999 +++ gimp-1.1.13/plug-ins/perl/examples/windify.pl Sat Nov 27 09:27:42 1999 @@ -3,7 +3,7 @@ # sent to me by Seth Burgess <sjburges@xxxxxxxx> # small changes my Marc Lehmann <pcg@xxxxxxxx> -use Gimp; +use Gimp qw(:auto __); use Gimp::Fu; #Gimp::set_trace(TRACE_CALL); @@ -21,11 +21,11 @@ gimp_image_add_layer($out,$windlayer,0); my $windlayercopy = gimp_layer_copy($windlayer, 1); gimp_image_add_layer($out,$windlayercopy,0); - plug_in_noisify(1,$out,$windlayercopy,0,$density/255, + plug_in_noisify($out,$windlayercopy,0,$density/255, $density/255, $density/255,1); - plug_in_mblur(1,$out,$windlayercopy,0,15,$angle); + plug_in_mblur($out,$windlayercopy,0,15,$angle); gimp_layer_set_mode($windlayercopy, 10); # Lighten Only gimp_image_merge_visible_layers($out,0); @@ -33,7 +33,7 @@ # gimp_image_merge_visible_layers bug my $newlay = gimp_image_get_active_layer ($out); - plug_in_displace(1,$img,$drawable,-$distance*cos($angle*180/3.14159), + plug_in_displace($img,$drawable,-$distance*cos($angle*180/3.14159), $distance*sin($angle*180/3.14159), 1,1, $newlay,$newlay, $wrap); gimp_image_remove_layer($out,$newlay); diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/xachlego.pl gimp-1.1.13/plug-ins/perl/examples/xachlego.pl --- orig/gimp-1.1.13/plug-ins/perl/examples/xachlego.pl Sat Nov 27 06:44:30 1999 +++ gimp-1.1.13/plug-ins/perl/examples/xachlego.pl Sat Nov 27 09:39:51 1999 @@ -29,7 +29,7 @@ # in a directory more suitable than the lame "Misc" # Here's the boring start of every script... -use Gimp; +use Gimp qw(:auto __); use Gimp::Fu; register "xach_blocks", @@ -71,7 +71,8 @@ gimp_edit_clear($gridlayer); gimp_palette_set_background([255,255,255]); gimp_edit_fill($gridlayer); - $gridlayer->plug_in_grid($blocksize, $blocksize, 0, 0); + $gridlayer->plug_in_grid(1,$blocksize,0,[0,0,0],255, 1,$blocksize,0,[0,0,0],255, + 0,0,0,[0,0,0],255); $gridlayer->plug_in_gauss_iir(0.7*$blocksize, 1, 1); # threshold the @@ -93,7 +94,8 @@ RGBA_IMAGE, "Grid 2", 100, 0); $img->add_layer($cleangrid,0); gimp_edit_fill($cleangrid); - $cleangrid->plug_in_grid($blocksize, $blocksize, 0, 0); + $cleangrid->plug_in_grid(1,$blocksize,0,[0,0,0],255, 1,$blocksize,0,[0,0,0],255, + 0,0,0,[0,0,0],255); gimp_selection_load($selection); $drawable->plug_in_bump_map($cleangrid, 135, 45, 3, 0, 0, 0, 0, 1, 0, 0); $img->selection_all; diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/xachshadow.pl gimp-1.1.13/plug-ins/perl/examples/xachshadow.pl --- orig/gimp-1.1.13/plug-ins/perl/examples/xachshadow.pl Sat Nov 27 06:44:30 1999 +++ gimp-1.1.13/plug-ins/perl/examples/xachshadow.pl Sat Nov 27 09:43:08 1999 @@ -22,7 +22,7 @@ # # Here's the boring start of every script... -use Gimp; +use Gimp qw(:auto __); use Gimp::Fu; register "xach_shadows", @@ -70,7 +70,8 @@ gimp_edit_clear($gridlayer); gimp_palette_set_background([255,255,255]); gimp_edit_fill($gridlayer); - $gridlayer->plug_in_grid($blocksize, $blocksize, 0, 0); + $gridlayer->plug_in_grid(1,$blocksize,0,[0,0,0],255, 1,$blocksize,0,[0,0,0],255, + 0,0,0,[0,0,0],255); gimp_layer_set_mode($gridlayer, 3); # Clean up stuff diff -ru orig/gimp-1.1.13/plug-ins/perl/examples/xachvision.pl gimp-1.1.13/plug-ins/perl/examples/xachvision.pl --- orig/gimp-1.1.13/plug-ins/perl/examples/xachvision.pl Mon Sep 13 17:05:10 1999 +++ gimp-1.1.13/plug-ins/perl/examples/xachvision.pl Sat Nov 27 06:56:32 1999 @@ -3,7 +3,7 @@ # Once again, an effect of Xach's # Created by Seth Burgess <sjburges@xxxxxxxx> -use Gimp; +use Gimp ':auto'; use Gimp::Fu; register "xachvision", @@ -41,7 +41,8 @@ $midlayer->plug_in_noisify(1,$amt, $amt, $amt, $amt); $midmask = $midlayer->create_mask(0); $img->add_layer_mask($midlayer, $midmask); - $midmask->plug_in_grid($img->height * 3, 3, 0, 0); + $midmask->plug_in_grid(1,$img->height * 3,0,[0,0,0],255, 1,3,0,[0,0,0],255, + 0,0,0,[0,0,0],255 ); $midmask->plug_in_gauss_iir(1.01, 1, 1); gimp_palette_set_background($oldbackground);