*** empty log message ***
This commit is contained in:
@ -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);
|
use subs qw(init end lock unlock canonicalize_color);
|
||||||
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
$VERSION = 1.21;
|
$VERSION = 1.201;
|
||||||
eval {
|
eval {
|
||||||
require XSLoader;
|
require XSLoader;
|
||||||
XSLoader::load Gimp $VERSION;
|
XSLoader::load Gimp $VERSION;
|
||||||
@ -244,16 +244,14 @@ sub canonicalize_colour {
|
|||||||
[map {eval "0x$_"} ($1,$2,$3)];
|
[map {eval "0x$_"} ($1,$2,$3)];
|
||||||
} else {
|
} else {
|
||||||
unless (%rgb_db) {
|
unless (%rgb_db) {
|
||||||
local *RGB_TEXT;
|
|
||||||
if ($rgb_db_path) {
|
if ($rgb_db_path) {
|
||||||
open RGB_TEXT, "<$rgb_db_path" or croak __"unable to open $rgb_db_path";
|
open RGB_TEXT,"<$rgb_db_path" or croak __"unable to open $rgb_db_path";
|
||||||
} else {
|
} else {
|
||||||
*RGB_TEXT = *DATA;
|
*RGB_TEXT=*DATA;
|
||||||
seek RGB_TEXT, 0, 0;
|
|
||||||
}
|
}
|
||||||
while(<RGB_TEXT>) {
|
while(<RGB_TEXT>) {
|
||||||
next unless /^\s*(\d+)\s+(\d+)\s+(\d+)\s+(.+?)\s*$/;
|
next unless /^\s*(\d+)\s+(\d+)\s+(\d+)\s+(.+?)\s*$/;
|
||||||
$rgb_db{lc($4)} = [$1,$2,$3];
|
$rgb_db{lc($4)}=[$1,$2,$3];
|
||||||
}
|
}
|
||||||
close RGB_TEXT;
|
close RGB_TEXT;
|
||||||
}
|
}
|
||||||
@ -610,7 +608,6 @@ sub new($$$$) { shift; [@_] }
|
|||||||
package Gimp::run_mode;
|
package Gimp::run_mode;
|
||||||
|
|
||||||
# I guess I now use almost every perl feature available ;)
|
# I guess I now use almost every perl feature available ;)
|
||||||
# [except pseudo hashes. pseudo hashes must die!]
|
|
||||||
|
|
||||||
use overload fallback => 1,
|
use overload fallback => 1,
|
||||||
'0+' => sub { ${$_[0]} };
|
'0+' => sub { ${$_[0]} };
|
||||||
|
@ -2,18 +2,31 @@ package Gimp::Data;
|
|||||||
|
|
||||||
sub freeze($) {
|
sub freeze($) {
|
||||||
my $data = shift;
|
my $data = shift;
|
||||||
eval { require Data::Dumper } or return;
|
if (ref $data
|
||||||
$data = new Data::Dumper [$data];
|
or $data =~ /^\$VAR1 = \[/) {
|
||||||
$data->Purity(1)->Terse(0);
|
if ( eval { require Data::Dumper } ) {
|
||||||
$data = $data->Dump;
|
$data = new Data::Dumper [$data];
|
||||||
|
$data->Purity(1)->Terse(0);
|
||||||
|
return $data->Dump;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$data;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub thaw {
|
sub thaw {
|
||||||
my $data = shift;
|
my $data = shift;
|
||||||
eval { require Data::Dumper } or return;
|
if ($data =~ /^\$VAR1 = \[/) {
|
||||||
my $VAR1; # Data::Dumper is braindamaged
|
if (eval { require Data::Dumper }) {
|
||||||
local $^W=0; # perl -w is braindamaged
|
my $VAR1; # Data::Dumper is braindamaged
|
||||||
eval $data;
|
local $^W=0; # perl -w is braindamaged
|
||||||
|
return eval $data;
|
||||||
|
} else {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$data;
|
||||||
}
|
}
|
||||||
|
|
||||||
sub TIEHASH {
|
sub TIEHASH {
|
||||||
@ -24,20 +37,12 @@ sub TIEHASH {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub FETCH {
|
sub FETCH {
|
||||||
my $data = eval { Gimp->parasite_find ($_[1])->data }
|
thaw eval { Gimp->parasite_find ($_[1])->data }
|
||||||
|| ($@ ? Gimp->get_data ($_[1]) : ());
|
|| ($@ ? Gimp->get_data ($_[1]) : ());
|
||||||
if ($data =~ /^\$VAR1 = \[/) {
|
|
||||||
thaw $data;
|
|
||||||
} else {
|
|
||||||
$data;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub STORE {
|
sub STORE {
|
||||||
my $data = $_[2];
|
my $data = freeze $_[2];
|
||||||
if (ref $data) {
|
|
||||||
$data = freeze $data or return;
|
|
||||||
}
|
|
||||||
eval { Gimp->parasite_attach ([$_[1], Gimp::PARASITE_PERSISTENT, $data]) };
|
eval { Gimp->parasite_attach ([$_[1], Gimp::PARASITE_PERSISTENT, $data]) };
|
||||||
Gimp->set_data ($_[1], $data) if $@;
|
Gimp->set_data ($_[1], $data) if $@;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user