diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2004-09-06 06:47:23 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2004-09-06 06:47:23 +0000 |
commit | f3f2db4239f6839fddc1a056dabbc8899ebcc2b9 (patch) | |
tree | 426c8c58e336ad546c6ef0da0a331fd4edd82d88 | |
parent | 7312e36856bb7bf9c3261f3791bfe1b24885c639 (diff) | |
download | perl-MDK-Common-f3f2db4239f6839fddc1a056dabbc8899ebcc2b9.tar perl-MDK-Common-f3f2db4239f6839fddc1a056dabbc8899ebcc2b9.tar.gz perl-MDK-Common-f3f2db4239f6839fddc1a056dabbc8899ebcc2b9.tar.bz2 perl-MDK-Common-f3f2db4239f6839fddc1a056dabbc8899ebcc2b9.tar.xz perl-MDK-Common-f3f2db4239f6839fddc1a056dabbc8899ebcc2b9.zip |
more flexible typeFromMagic
-rw-r--r-- | MDK/Common.pm.pl | 2 | ||||
-rw-r--r-- | MDK/Common/System.pm | 21 | ||||
-rw-r--r-- | perl-MDK-Common.spec | 5 |
3 files changed, 18 insertions, 10 deletions
diff --git a/MDK/Common.pm.pl b/MDK/Common.pm.pl index 62dcb51..019a7c9 100644 --- a/MDK/Common.pm.pl +++ b/MDK/Common.pm.pl @@ -74,7 +74,7 @@ use vars qw(@ISA @EXPORT $VERSION); #); # perl_checker: RE-EXPORT-ALL @EXPORT = map { @$_ } map { values %{'MDK::Common::' . $_ . 'EXPORT_TAGS'} } grep { /::$/ } keys %MDK::Common::; -$VERSION = "1.1.17"; +$VERSION = "1.1.18"; 1; EOF diff --git a/MDK/Common/System.pm b/MDK/Common/System.pm index 427a9e5..7a6d194 100644 --- a/MDK/Common/System.pm +++ b/MDK/Common/System.pm @@ -226,18 +226,23 @@ sub compat_arch { better_arch(arch(), $_[0]) } sub typeFromMagic { my $f = shift; - local *F; sysopen F, $f, 0 or return; + sysopen(my $F, $f, 0) or return; my $tmp; M: foreach (@_) { - my ($name, @l) = @$_; - while (@l) { - my ($offset, $signature) = splice(@l, 0, 2); - sysseek(F, $offset, 0) or next M; - sysread(F, $tmp, length $signature); - $tmp eq $signature or next M; + if (ref($_) eq 'CODE') { + my $name = $_->($F) or next M; + return $name; + } else { + my ($name, @l) = @$_; + while (@l) { + my ($offset, $signature) = splice(@l, 0, 2); + sysseek($F, $offset, 0) or next M; + sysread($F, $tmp, length $signature); + $tmp eq $signature or next M; + } + return $name; } - return $name; } undef; } diff --git a/perl-MDK-Common.spec b/perl-MDK-Common.spec index c6f96a4..adb6a66 100644 --- a/perl-MDK-Common.spec +++ b/perl-MDK-Common.spec @@ -2,7 +2,7 @@ # do not change the version here, change in MDK/Common.pm.pl %define version THEVERSION -%define release 3mdk +%define release 1mdk %ifarch x86_64 %define build_option PERL_CHECKER_TARGET='debug-code BCSUFFIX=""' @@ -64,6 +64,9 @@ rm -rf $RPM_BUILD_ROOT # MODIFY IN THE CVS: cvs.mandrakesoft.com:/cooker soft/perl-MDK-Common %changelog +* Mon Sep 6 2004 Pixel <pixel@mandrakesoft.com> 1.1.18-1mdk +- more flexible typeFromMagic + * Wed Aug 18 2004 Pixel <pixel@mandrakesoft.com> 1.1.17-3mdk - use DESTDIR - add perl_checker-vim |