see plug-ins/perl/Changes
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
Revision history for Gimp-Perl extension.
|
||||
|
||||
1.18
|
||||
1.19 Thu Jan 6 00:21:58 CET 2000
|
||||
- used N_ to mark all the menu paths, since gimp now tries to
|
||||
do the translation.
|
||||
- patch by Frank Loemker <floemker@TechFak.Uni-Bielefeld.DE> to fix
|
||||
@ -41,6 +41,8 @@ Revision history for Gimp-Perl extension.
|
||||
- Net.xs didn't compile without PDL.
|
||||
- applied (but did not test) UI patch by Sven.
|
||||
- fixed stupid non-ansi errors in Gimp/Lib.xs.
|
||||
- make raw pixel data functions accessible over the network by
|
||||
fixing the remaining bugs in Gimp::Net. PDL's still don't work.
|
||||
|
||||
1.17 Wed Nov 24 21:25:19 CET 1999
|
||||
- re-fitted i18n translation for most plug-ins.
|
||||
|
@ -10,7 +10,7 @@ use vars qw($VERSION @ISA @EXPORT @EXPORT_OK $AUTOLOAD %EXPORT_TAGS @EXPORT_FAIL
|
||||
use subs qw(init end lock unlock canonicalize_color);
|
||||
|
||||
BEGIN {
|
||||
$VERSION = 1.18;
|
||||
$VERSION = 1.19;
|
||||
eval {
|
||||
require XSLoader;
|
||||
XSLoader::load Gimp $VERSION;
|
||||
|
@ -43,7 +43,7 @@ Gimp-Perl extension (contact him to include new functions) is Marc Lehmann
|
||||
|
||||
package Gimp::Compat;
|
||||
|
||||
$VERSION=1.18;
|
||||
$VERSION=1.19;
|
||||
|
||||
use Gimp ('croak', '__');
|
||||
|
||||
|
@ -4,7 +4,7 @@ use strict;
|
||||
use vars qw($VERSION @ISA);
|
||||
|
||||
BEGIN {
|
||||
$VERSION = 1.18;
|
||||
$VERSION = 1.19;
|
||||
eval {
|
||||
require XSLoader;
|
||||
XSLoader::load Gimp::Lib $VERSION;
|
||||
|
@ -19,7 +19,7 @@ package Gimp::Module;
|
||||
use base qw(DynaLoader);
|
||||
require DynaLoader;
|
||||
|
||||
$VERSION=1.18;
|
||||
$VERSION=1.19;
|
||||
|
||||
bootstrap Gimp::Module;
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
package Gimp::Pod;
|
||||
|
||||
$VERSION=1.18;
|
||||
$VERSION=1.19;
|
||||
|
||||
sub myqx(&) {
|
||||
local $/;
|
||||
|
@ -51,7 +51,7 @@ require Exporter;
|
||||
|
||||
use Gimp;
|
||||
|
||||
$VERSION=1.18;
|
||||
$VERSION=1.19;
|
||||
|
||||
##############################################################################
|
||||
=pod
|
||||
|
@ -14,8 +14,10 @@ $GIMP_INC_NOUI = "-I../../.. $GIMP_INC_NOUI" if $IN_GIMP;
|
||||
WriteMakefile(
|
||||
'NAME' => 'Gimp::Net',
|
||||
'VERSION_FROM' => '../Gimp.pm',
|
||||
'INC' => "$INC1 $CPPFLAGS $pdl_inc $cfg{GLIB_CFLAGS} $CFLAGS",
|
||||
#'INC' => "$INC1 $CPPFLAGS $pdl_inc $cfg{GLIB_CFLAGS} $CFLAGS",
|
||||
'INC' => "$INC1 $CPPFLAGS $pdl_inc $CFLAGS",
|
||||
'DEFINE' => "$DEFINE1 $DEFS",
|
||||
'TYPEMAPS' => ["$topdir/typemap",@pdl_typemaps],
|
||||
dynamic_lib => { OTHERLDFLAGS => "$LDFLAGS $LIBS $cfg{GLIB_LIBS}" },
|
||||
#dynamic_lib => { OTHERLDFLAGS => "$LDFLAGS $LIBS $cfg{GLIB_LIBS}" },
|
||||
dynamic_lib => { OTHERLDFLAGS => "$LDFLAGS $LIBS" },
|
||||
);
|
||||
|
@ -19,7 +19,7 @@ use Gimp ('croak','__');
|
||||
|
||||
require DynaLoader;
|
||||
|
||||
$VERSION = 1.18;
|
||||
$VERSION = 1.19;
|
||||
|
||||
bootstrap Gimp::Net $VERSION;
|
||||
|
||||
@ -45,6 +45,10 @@ sub import {
|
||||
*Gimp::GDrawable::DESTROY=sub {
|
||||
my $req="DTRY".args2net(0,@_);
|
||||
print $server_fh pack("N",length($req)).$req;
|
||||
|
||||
# make this synchronous to avoid deadlock due to using non sys*-type functions
|
||||
my $len;
|
||||
read($server_fh,$len,4) == 4 or die "protocol error (11)";
|
||||
};
|
||||
}
|
||||
|
||||
@ -71,9 +75,9 @@ sub command {
|
||||
print $server_fh pack("N",length($req)).$req;
|
||||
}
|
||||
|
||||
sub gimp_call_procedure {
|
||||
my($len,@args,$trace,$req);
|
||||
my($len,@args,$trace,$req); # small speedup, these are really local to gimp_call_procedure
|
||||
|
||||
sub gimp_call_procedure {
|
||||
if ($trace_level) {
|
||||
$req="TRCE".args2net(0,$trace_level,@_);
|
||||
print $server_fh pack("N",length($req)).$req;
|
||||
|
@ -13,7 +13,9 @@
|
||||
# undef printf
|
||||
#endif
|
||||
|
||||
#if 0 /* optimized away ;) */
|
||||
#include <glib.h>
|
||||
#endif
|
||||
|
||||
#if !defined(PERLIO_IS_STDIO) && defined(HASATTRIBUTE)
|
||||
# define printf PerlIO_stdoutf
|
||||
@ -54,10 +56,10 @@ static void need_pdl (void)
|
||||
|| strEQ ((sv), "Gimp::PixelRgn") \
|
||||
|| strEQ ((sv), "Gimp::GDrawable"))
|
||||
|
||||
static GHashTable *object_cache;
|
||||
static gint object_id = 1000;
|
||||
static HV *object_cache;
|
||||
static int object_id = 100;
|
||||
|
||||
#define init_object_cache if (!object_cache) object_cache = g_hash_table_new (g_int_hash, g_int_equal)
|
||||
#define init_object_cache if (!object_cache) object_cache = newHV()
|
||||
|
||||
static void destroy_object (SV *sv)
|
||||
{
|
||||
@ -65,13 +67,8 @@ static void destroy_object (SV *sv)
|
||||
{
|
||||
if (is_dynamic (HvNAME(SvSTASH(SvRV(sv)))))
|
||||
{
|
||||
gint id = SvIV(SvRV(sv));
|
||||
SV *cv = (SV*)g_hash_table_lookup (object_cache, &id);
|
||||
if (cv)
|
||||
{
|
||||
SvREFCNT_dec (cv);
|
||||
g_hash_table_remove (object_cache, &id);
|
||||
}
|
||||
int id = SvIV(SvRV(sv));
|
||||
hv_delete (object_cache, (char *)&id, sizeof(id), G_DISCARD);
|
||||
}
|
||||
else
|
||||
croak (__("Internal error: Gimp::Net #101, please report!"));
|
||||
@ -117,7 +114,7 @@ static void sv2net (int deobjectify, SV *s, SV *sv)
|
||||
object_id++;
|
||||
|
||||
SvREFCNT_inc(sv);
|
||||
g_hash_table_insert (object_cache, &object_id, (gpointer)sv);
|
||||
hv_store (object_cache, (char *)&object_id, sizeof(object_id), sv, 0);
|
||||
|
||||
sv_catpvf (s, "i%d:", object_id);
|
||||
return; /* well... */
|
||||
@ -200,18 +197,20 @@ static SV *net2sv (int objectify, char **_s)
|
||||
|
||||
if (objectify && is_dynamic (str))
|
||||
{
|
||||
gint id;
|
||||
SV **cv;
|
||||
int id;
|
||||
|
||||
sscanf (s, "i%ld:%n", &l, &n); s += n;
|
||||
|
||||
sv = (SV*)g_hash_table_lookup (object_cache, (id=l,&id));
|
||||
if (!sv)
|
||||
cv = hv_fetch (object_cache, (char *)(id=l,&id), sizeof(id), 0);
|
||||
if (!cv)
|
||||
croak (__("Internal error: asked to deobjectify an object not in the cache, please report!"));
|
||||
|
||||
sv = *cv;
|
||||
SvREFCNT_inc (sv);
|
||||
}
|
||||
else
|
||||
sv = net2sv (objectify, &s);
|
||||
|
||||
sv = sv_bless (newRV_noinc (sv), gv_stashpv (str, 1));
|
||||
sv = sv_bless (newRV_noinc (net2sv (objectify, &s)), gv_stashpv (str, 1));
|
||||
|
||||
break;
|
||||
|
||||
|
@ -70,15 +70,15 @@ sub handle_request($) {
|
||||
my($length,$req,$data,@args,$trace_level);
|
||||
|
||||
eval {
|
||||
local $SIG{ALRM}=sub { die "\n" };
|
||||
local $SIG{ALRM}=sub { die "1\n" };
|
||||
#alarm(6) unless $ps_flags & &Gimp::_PS_FLAG_BATCH;
|
||||
read($fh,$length,4) == 4 or die "\n";
|
||||
read($fh,$length,4) == 4 or die "2\n";
|
||||
$length=unpack("N",$length);
|
||||
$length>0 && $length<$max_pkt or die "\n";
|
||||
$length>0 && $length<$max_pkt or die "3\n";
|
||||
#alarm(6) unless $ps_flags & &Gimp::_PS_FLAG_BATCH;
|
||||
read($fh,$req,4) == 4 or die "\n";
|
||||
read($fh,$req,4) == 4 or die "4\n";
|
||||
#alarm(20) unless $ps_flags & &Gimp::_PS_FLAG_BATCH;
|
||||
read($fh,$data,$length-4) == $length-4 or die "\n";
|
||||
read($fh,$data,$length-4) == $length-4 or die "5\n";
|
||||
#alarm(0);
|
||||
};
|
||||
return 0 if $@;
|
||||
@ -95,6 +95,7 @@ sub handle_request($) {
|
||||
print $fh (defined(*{"Gimp::Lib::$data"}{CODE}) || Gimp::_gimp_procedure_available($data)) ? "1" : "0";
|
||||
} elsif ($req eq "DTRY") {
|
||||
Gimp::Net::destroy_objects Gimp::Net::net2args 0,$data;
|
||||
print $fh pack("N",0); # fix to work around using non-sysread/write functions
|
||||
} elsif($req eq "TRCE") {
|
||||
no strict 'refs';
|
||||
($trace_level,$req,@args)=Gimp::Net::net2args 1,$data;
|
||||
|
@ -6,7 +6,7 @@ use Gtk;
|
||||
use base 'DynaLoader';
|
||||
|
||||
BEGIN {
|
||||
$VERSION = 1.18;
|
||||
$VERSION = 1.19;
|
||||
eval {
|
||||
require XSLoader;
|
||||
XSLoader::load Gimp::UI $VERSION;
|
||||
|
@ -3,7 +3,7 @@ package Gimp::basewidget; # pragma
|
||||
use Gimp;
|
||||
use Gtk;
|
||||
|
||||
$VERSION = 1.18;
|
||||
$VERSION = 1.19;
|
||||
|
||||
=head1 NAME
|
||||
|
||||
|
@ -8,13 +8,13 @@ use Gimp::Util;
|
||||
# These are a couple of one-liners that you might find handy. Both should
|
||||
# be undoable w/o any special magick, and work with any gimp.
|
||||
|
||||
register "layer_to_image_size", "Layer2ImageSize", "Expands layer to image size",
|
||||
"Seth Burgess", "Seth Burgess <sjburges\@gimp.org>", "1.0",
|
||||
N_"<Image>/Layers/Layer to Image Size", "RGB*, GRAY*", [ ], sub {
|
||||
($img, $layer) = @_;
|
||||
$layer->resize($img->width, $img->height, $layer->offsets);
|
||||
return();
|
||||
};
|
||||
#register "layer_to_image_size", "Layer2ImageSize", "Expands layer to image size",
|
||||
# "Seth Burgess", "Seth Burgess <sjburges\@gimp.org>", "1.0",
|
||||
# N_"<Image>/Layers/Layer to Image Size", "RGB*, GRAY*", [ ], sub {
|
||||
# ($img, $layer) = @_;
|
||||
# $layer->resize($img->width, $img->height, $layer->offsets);
|
||||
# return();
|
||||
#};
|
||||
|
||||
register "center_layer", "Center Layer",
|
||||
"Centers the current layer on the image",
|
||||
|
@ -3,7 +3,7 @@
|
||||
# sent to me by Seth Burgess <sjburges@gimp.org>
|
||||
# small changes my Marc Lehmann <pcg@goof.com>
|
||||
|
||||
use Gimp qw(:auto __ N_);
|
||||
use Gimp qw(:auto N_ __);
|
||||
use Gimp::Fu;
|
||||
|
||||
#Gimp::set_trace(TRACE_CALL);
|
||||
@ -51,7 +51,7 @@ register
|
||||
"Seth Burgess",
|
||||
"Seth Burgess <sjburges\@gimp.org>",
|
||||
"1998-09-14",
|
||||
N_"<Image>/Filters/Distorts/Windify",
|
||||
N_"<Image>/Filters/Distorts/Windify...",
|
||||
"*",
|
||||
[
|
||||
[PF_INT32, "angle", "Wind Angle, 0 is left", 120],
|
||||
|
Reference in New Issue
Block a user