[libtk-pod-perl] 01/09: Imported Upstream version 0.9942
dod at debian.org
dod at debian.org
Fri Nov 29 17:31:03 UTC 2013
This is an automated email from the git hooks/post-receive script.
dod pushed a commit to branch master
in repository libtk-pod-perl.
commit 2570a5123e9b3e58ca2d44719bb4dcf7feac3039
Author: Dominique Dumont <dod at debian.org>
Date: Thu Nov 28 19:56:47 2013 +0100
Imported Upstream version 0.9942
---
Changes | 9 +++++
MANIFEST | 3 +-
META.json | 104 ------------------------------------------------------
META.yml | 94 ++++++++++++++++++++++++------------------------
Makefile.PL | 8 ++---
More.pm | 6 ++--
Pod.pm | 4 +--
Pod/WWWBrowser.pm | 83 +++++++++++++++++++++++++++++++------------
t/basic.t | 1 +
t/more.t | 17 +++++++--
t/optionalmods.t | 1 +
t/pods.t | 1 +
t/podtree.t | 1 +
t/subclass.t | 2 ++
tkpod | 41 +++++++++++++--------
15 files changed, 172 insertions(+), 203 deletions(-)
diff --git a/Changes b/Changes
index 003529c..fa76689 100644
--- a/Changes
+++ b/Changes
@@ -1,5 +1,14 @@
History for Tk::Pod
+version 0.9942
+ o stable release with all changes in 0.9941_50
+
+version 0.99941_50
+ o tkpod -geometry works now
+ o WWWBrowser update (avoid zombies, better debugging)
+ o avoid warnings in some Tk::More method calls with perl 5.18+
+ o test suite works with twm
+
version 0.9941
o stable release with all changes in 0.9940_50
o added menu item with link to metacpan.org
diff --git a/MANIFEST b/MANIFEST
index 8095f40..80cfbe0 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -30,5 +30,4 @@ t/TkTest.pm
tkmore
tkpod
TODO
-META.yml Module YAML meta-data (added by MakeMaker)
-META.json Module JSON meta-data (added by MakeMaker)
+META.yml Module meta-data (added by MakeMaker)
diff --git a/META.json b/META.json
deleted file mode 100644
index e32d3f6..0000000
--- a/META.json
+++ /dev/null
@@ -1,104 +0,0 @@
-{
- "abstract" : "Pod browser widget for Tk",
- "author" : [
- "Slaven Rezic <srezic at cpan.org>"
- ],
- "dynamic_config" : 1,
- "generated_by" : "ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630",
- "license" : [
- "perl_5"
- ],
- "meta-spec" : {
- "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
- "version" : "2"
- },
- "name" : "Tk-Pod",
- "no_index" : {
- "directory" : [
- "t",
- "inc"
- ]
- },
- "optional_features" : {
- "debugging" : {
- "description" : "Debugging and development helper",
- "prereqs" : {
- "runtime" : {
- "requires" : {
- "Devel::Hide" : "0",
- "Module::Refresh" : "0",
- "Tk::WidgetDump" : "0"
- }
- }
- }
- },
- "external_links" : {
- "description" : "support for links using an external browser",
- "prereqs" : {
- "runtime" : {
- "requires" : {
- "URI::Escape" : "0"
- }
- }
- }
- },
- "fulltext_search" : {
- "description" : "Enable the full-text search",
- "prereqs" : {
- "runtime" : {
- "requires" : {
- "Text::English" : "0"
- }
- }
- }
- },
- "gzip_support" : {
- "description" : "gzip support in tkmore",
- "prereqs" : {
- "runtime" : {
- "requires" : {
- "PerlIO::gzip" : "0"
- }
- }
- }
- },
- "nicer_gui" : {
- "description" : "Provide a nicer GUI",
- "prereqs" : {
- "runtime" : {
- "requires" : {
- "Tk::HistEntry" : "0.4",
- "Tk::ToolBar" : "0"
- }
- }
- }
- }
- },
- "prereqs" : {
- "build" : {
- "requires" : {
- "ExtUtils::MakeMaker" : "0"
- }
- },
- "configure" : {
- "requires" : {
- "ExtUtils::MakeMaker" : "0"
- }
- },
- "runtime" : {
- "requires" : {
- "File::Spec" : "0",
- "File::Temp" : "0",
- "Pod::Simple" : "2.05",
- "Tk" : "800.004"
- }
- }
- },
- "release_status" : "stable",
- "resources" : {
- "repository" : {
- "url" : "git://github.com/eserte/tk-pod.git"
- }
- },
- "version" : "0.9941"
-}
diff --git a/META.yml b/META.yml
index ea934f6..46f8ca0 100644
--- a/META.yml
+++ b/META.yml
@@ -1,51 +1,51 @@
----
-abstract: 'Pod browser widget for Tk'
+--- #YAML:1.0
+name: Tk-Pod
+version: 0.9942
+abstract: Pod browser widget for Tk
author:
- - 'Slaven Rezic <srezic at cpan.org>'
-build_requires:
- ExtUtils::MakeMaker: 0
+ - Slaven Rezic <srezic at cpan.org>
+license: perl
+distribution_type: module
configure_requires:
- ExtUtils::MakeMaker: 0
-dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 6.6302, CPAN::Meta::Converter version 2.120630'
-license: perl
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
-name: Tk-Pod
-no_index:
- directory:
- - t
- - inc
-optional_features:
- debugging:
- description: 'Debugging and development helper'
- requires:
- Devel::Hide: 0
- Module::Refresh: 0
- Tk::WidgetDump: 0
- external_links:
- description: 'support for links using an external browser'
- requires:
- URI::Escape: 0
- fulltext_search:
- description: 'Enable the full-text search'
- requires:
- Text::English: 0
- gzip_support:
- description: 'gzip support in tkmore'
- requires:
- PerlIO::gzip: 0
- nicer_gui:
- description: 'Provide a nicer GUI'
- requires:
- Tk::HistEntry: 0.4
- Tk::ToolBar: 0
+ ExtUtils::MakeMaker: 0
+build_requires:
+ ExtUtils::MakeMaker: 0
requires:
- File::Spec: 0
- File::Temp: 0
- Pod::Simple: 2.05
- Tk: 800.004
+ File::Spec: 0
+ File::Temp: 0
+ Pod::Simple: 2.05
+ Tk: 800.004
resources:
- repository: git://github.com/eserte/tk-pod.git
-version: 0.9941
+ repository: git://github.com/eserte/tk-pod.git
+no_index:
+ directory:
+ - t
+ - inc
+generated_by: ExtUtils::MakeMaker version 6.57_05
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+optional_features:
+ debugging:
+ description: Debugging and development helper
+ requires:
+ Devel::Hide: 0
+ Module::Refresh: 0
+ Tk::WidgetDump: 0
+ external_links:
+ description: support for links using an external browser
+ requires:
+ URI::Escape: 0
+ fulltext_search:
+ description: Enable the full-text search
+ requires:
+ Text::English: 0
+ gzip_support:
+ description: gzip support in tkmore
+ requires:
+ PerlIO::gzip: 0
+ nicer_gui:
+ description: Provide a nicer GUI
+ requires:
+ Tk::HistEntry: 0.4
+ Tk::ToolBar: 0
diff --git a/Makefile.PL b/Makefile.PL
index 9dce1b1..33f2ec1 100644
--- a/Makefile.PL
+++ b/Makefile.PL
@@ -2,16 +2,16 @@
use ExtUtils::MakeMaker;
-$DIST_VERSION = "0.9941";
+$DIST_VERSION = "0.9942";
$is_devel_host = defined $ENV{USER} && $ENV{USER} eq 'eserte' && $^O =~ /bsd/i && -f "../../perl.release.mk";
-$min_eumm_version = 6.58;
+$min_eumm_version = 6.54;
$eumm_recent_enough = $ExtUtils::MakeMaker::VERSION >= $min_eumm_version;
if (!$eumm_recent_enough) {
*MY::dist_core = sub {
- <<'EOF';
+ <<EOF;
dist :
- $(NOECHO) $(ECHO) "Sorry, use a newer EUMM, at least version $min_eumm_version!"
+ \$(NOECHO) \$(ECHO) "Sorry, use a newer EUMM, at least version $min_eumm_version!"
EOF
};
diff --git a/More.pm b/More.pm
index 918c5b6..edd282c 100644
--- a/More.pm
+++ b/More.pm
@@ -3,7 +3,7 @@ package Tk::More;
use strict;
use vars qw($VERSION @ISA);
-$VERSION = sprintf("%d.%02d", q$Revision: 5.8 $ =~ /(\d+)\.(\d+)/);
+$VERSION = '5.09';
use Tk qw(Ev);
use Tk::Derived;
@@ -219,11 +219,11 @@ sub LoadFH
binmode $fh, ":encoding($encoding)";
}
$text->MainWindow->Busy;
- $text->SUPER::delete('1.0','end');
+ $text->delete('1.0','end');
#yy delete $text->{UNDO};
while (<$fh>)
{
- $text->SUPER::insert('end',$_);
+ $text->insert('end',$_);
}
#yy $text->{FILE} = $file;
$text->markSet('insert', '@1,0');
diff --git a/Pod.pm b/Pod.pm
index 73efa57..e192422 100644
--- a/Pod.pm
+++ b/Pod.pm
@@ -4,8 +4,8 @@ use Tk ();
use Tk::Toplevel;
use vars qw($VERSION $DIST_VERSION @ISA);
-$VERSION = '5.39';
-$DIST_VERSION = '0.9941';
+$VERSION = '5.40';
+$DIST_VERSION = '0.9942';
@ISA = qw(Tk::Toplevel);
diff --git a/Pod/WWWBrowser.pm b/Pod/WWWBrowser.pm
index 873fb6b..22fba19 100644
--- a/Pod/WWWBrowser.pm
+++ b/Pod/WWWBrowser.pm
@@ -9,7 +9,7 @@
#
# Author: Slaven Rezic
#
-# Copyright (C) 1999,2000,2001,2003,2005,2006,2007,2008,2009,2012 Slaven Rezic.
+# Copyright (C) 1999,2000,2001,2003,2005,2006,2007,2008,2009,2012,2013 Slaven Rezic.
# All rights reserved.
# This package is free software; you can redistribute it and/or
# modify it under the same terms as Perl itself.
@@ -29,7 +29,7 @@ use vars qw(@unix_browsers @available_browsers
$VERSION $VERBOSE $initialized $os $fork
$ignore_config);
-$VERSION = 2.49;
+$VERSION = 2.51;
@available_browsers = qw(_debian_browser _internal_htmlview
_default_gnome _default_kde
@@ -136,9 +136,9 @@ sub start_browser {
# Check whether Netscape stills lives:
if (defined $pid && kill 0 => $pid) {
if ($args{-oldwindow}) {
- exec_bg("netscape", "-remote", "openURL($url)");
+ exec_bg("netscape", "-remote", _openurl_cmd($url));
} else {
- exec_bg("netscape", "-remote", "openURL($url,new)");
+ exec_bg("netscape", "-remote", _openurl_cmd($url,"new"));
}
# XXX further options: mailto(to-adresses)
# XXX check return code?
@@ -194,7 +194,7 @@ sub start_browser {
sub start_windows_browser_cygwin {
my($url, %args) = @_;
- system("cmd", "/c", "start", $url);
+ _system("cmd", "/c", "start", $url);
if ($? == 0) {
return 1;
} else {
@@ -213,19 +213,19 @@ sub start_browser_windows {
for my $method (@methods) {
if ($method eq 'rundll') {
- system("rundll32 url.dll,FileProtocolHandler \"$url\"");
+ _system("rundll32 url.dll,FileProtocolHandler \"$url\"");
if ($?/256 == 0) {
return 1;
}
} elsif ($method eq 'start') {
# XXX There are reports that "start" and Tk programms
# do not work well together (slow startup and such).
- system("start /b \"$url\"");
+ _system("start /b \"$url\"");
if ($?/256 == 0) {
return 1;
}
} elsif ($method eq 'explorer') {
- system("start explorer \"$url\"");
+ _system("start explorer \"$url\"");
# maybe: system("start", "explorer", $url);
# or: system("start explorer \"$url\"");
if ($?/256 == 0) {
@@ -259,13 +259,13 @@ sub open_in_konqueror {
}
if (defined $konq_name) {
- system(qw/dcop konqueror/, $konq_name, qw/openURL/, $url);
+ _system(qw/dcop konqueror/, $konq_name, qw/openURL/, $url);
return 1 if ($?/256 == 0);
}
}
# then try to send to running konqueror process:
- system(qw/dcop konqueror KonquerorIface openBrowserWindow/, $url);
+ _system(qw/dcop konqueror KonquerorIface openBrowserWindow/, $url);
return 1 if ($?/256 == 0);
# otherwise start a new konqueror
@@ -284,7 +284,7 @@ sub open_in_galeon {
# first try old window (if requested)
if ($args{-oldwindow}) {
- system("galeon", "-x", $url);
+ _system("galeon", "-x", $url);
return 1 if ($?/256 == 0);
}
@@ -299,10 +299,10 @@ sub _open_in_mozilloid {
my($cmd, $url, %args) = @_;
if (is_in_path($cmd)) {
if ($args{-oldwindow}) {
- system($cmd, "-remote", "openURL($url)");
+ _system($cmd, "-remote", _openurl_cmd($url));
} else {
# no new-tab support in older Mozillas (e.g. 1.0)!
- system($cmd, "-remote", "openURL($url,new-tab)");
+ _system($cmd, "-remote", _openurl_cmd($url,"new-tab"));
}
return 1 if ($?/256 == 0);
@@ -337,24 +337,54 @@ sub open_in_opera {
sub exec_bg {
my(@cmd) = @_;
+ warn "Execute: @cmd\n" if $VERBOSE && $VERBOSE >= 2;
if ($os eq 'unix' || $os eq 'macosx') {
eval {
- if (!$fork || fork == 0) {
- exec @cmd;
- warn "Can't exec @cmd: $!";
- if (eval { require POSIX; 1 }) {
- POSIX::_exit(1);
- } else {
- CORE::exit(1);
+ my $pid = fork;
+ if (!defined $pid) {
+ die "Fork failed: $!";
+ }
+ if ($pid == 0) {
+ my $pid2 = fork;
+ if (!defined $pid2) {
+ _hard_die("Inner fork failed: $!");
}
+ if ($pid2 == 0) {
+ exec(@cmd)
+ or _hard_die("Can't exec @cmd: $!");
+ }
+ _hard_exit(0);
}
+ waitpid $pid, 0;
};
+ warn "Forking/executing @cmd failed: $@" if $@;
} else {
# XXX use Spawn
- system(join(" ", @cmd) . ($fork ? "&" : ""));
+ _system(join(" ", @cmd) . ($fork ? "&" : ""));
+ }
+}
+
+sub _hard_die {
+ my $msg = shift;
+ warn $msg;
+ _hard_exit(1);
+}
+
+sub _hard_exit {
+ my $code = shift;
+ if (eval { require POSIX; 1 }) {
+ POSIX::_exit($code);
+ } else {
+ CORE::exit($code);
}
}
+sub _system {
+ my(@cmd) = @_;
+ warn "Execute: @cmd\n" if $VERBOSE && $VERBOSE >= 2;
+ system @cmd;
+}
+
sub _get_cmdline_for_url_from_Gnome {
my($url) = @_;
(my $url_scheme = $url) =~ s/^([^:]+).*/$1/; # use URI.pm?
@@ -504,7 +534,7 @@ sub htmlview {
if (!defined $ENV{DISPLAY} || $ENV{DISPLAY} eq "") {
for my $ttybrowser (@TTYBROWSERS) {
if (is_in_path($ttybrowser)) {
- system($ttybrowser, @args); # blocks in tty mode
+ _system($ttybrowser, @args); # blocks in tty mode
last TRY;
}
}
@@ -558,12 +588,19 @@ sub open_in_terminal {
}
} else {
# without X11: not in background!
- system($browser, $url);
+ _system($browser, $url);
return 1;
}
0;
}
+sub _openurl_cmd {
+ my($url, @args) = @_;
+ $url =~ s{,}{%2c}g; # collides with openURL argument separator
+ $url =~ s{\)}{%29}g; # collides with openURL function end token
+ "openURL($url" . (@args ? "," . join(",", @args) : "") . ")";
+}
+
# REPO BEGIN
# REPO NAME file_name_is_absolute /home/e/eserte/src/repository
# REPO MD5 89d0fdf16d11771f0f6e82c7d0ebf3a8
diff --git a/t/basic.t b/t/basic.t
index 1153a7e..ab560f6 100644
--- a/t/basic.t
+++ b/t/basic.t
@@ -59,6 +59,7 @@ if (!Tk::Exists($mw))
}
CORE::exit(0);
}
+$mw->geometry("+1+1"); # for twm
my $w;
foreach my $class (@class)
diff --git a/t/more.t b/t/more.t
index 4bb341c..e07389b 100755
--- a/t/more.t
+++ b/t/more.t
@@ -12,10 +12,10 @@ use Tk::More;
BEGIN {
if (!eval q{
- use Test;
+ use Test::More;
1;
}) {
- print "1..0 # skip tests only work with installed Test module\n";
+ print "1..0 # skip tests only work with installed Test::More module\n";
CORE::exit(0);
}
}
@@ -25,10 +25,14 @@ if (!$mw) {
print "1..0 # cannot create MainWindow\n";
CORE::exit(0);
}
+$mw->geometry("+1+1"); # for twm
-plan tests => 2;
+plan tests => 4;
{
+ my @warnings;
+ local $SIG{__WARN__} = sub { push @warnings, @_ };
+
my $more = $mw->Scrolled("More",
-font => "Courier 10",
-scrollbars => "osoe",
@@ -37,9 +41,14 @@ plan tests => 2;
$more->Load($INC{"Tk/More.pm"});
$more->update;
ok(Tk::Exists($more));
+ ok(!@warnings, "No warnings while loading")
+ or diag($warnings[0] . "...");
}
{
+ my @warnings;
+ local $SIG{__WARN__} = sub { push @warnings, @_ };
+
my $more = $mw->More
(# -font: use default
-width => 20,
@@ -48,6 +57,8 @@ plan tests => 2;
$more->Load($0);
$more->update;
ok(Tk::Exists($more));
+ ok(!@warnings, "No warnings while loading")
+ or diag($warnings[0] . "...");
}
if (!$ENV{PERL_INTERACTIVE_TEST}) {
diff --git a/t/optionalmods.t b/t/optionalmods.t
index 263a61f..0497e92 100755
--- a/t/optionalmods.t
+++ b/t/optionalmods.t
@@ -41,6 +41,7 @@ plan tests => 1;
$mw->geometry("+0+0");
my $pod = $mw->Pod;
+$pod->geometry('+10+10'); # for twm
$pod->idletasks;
ok(Tk::Exists($pod));
diff --git a/t/pods.t b/t/pods.t
index 2b64772..4e883a2 100755
--- a/t/pods.t
+++ b/t/pods.t
@@ -26,6 +26,7 @@ if (!$mw) {
print "1..0 # cannot create MainWindow\n";
CORE::exit(0);
}
+$mw->geometry("+1+1"); # for twm
plan tests => 4;
diff --git a/t/podtree.t b/t/podtree.t
index f54b6d2..f3aaa25 100755
--- a/t/podtree.t
+++ b/t/podtree.t
@@ -28,6 +28,7 @@ if (!$mw) {
print "1..0 # cannot create MainWindow\n";
CORE::exit(0);
}
+$mw->geometry("+1+1"); # for twm
plan tests => 5;
diff --git a/t/subclass.t b/t/subclass.t
index 9187cee..c372658 100755
--- a/t/subclass.t
+++ b/t/subclass.t
@@ -33,6 +33,7 @@ if (!$mw) {
print "1..0 # cannot create MainWindow\n";
CORE::exit(0);
}
+$mw->geometry("+1+1"); # for twm
plan tests => 1;
@@ -68,6 +69,7 @@ plan tests => 1;
$mw->withdraw;
my $pod = $mw->MyPod;
+$pod->geometry('+1+1'); # for twm
$pod->configure(-file => "perl.pod");
$mw->update;
ok(1);
diff --git a/tkpod b/tkpod
index 5533401..6c61b66 100755
--- a/tkpod
+++ b/tkpod
@@ -3,7 +3,7 @@
use strict;
use vars qw($VERSION $tk_opt $tree $server $portfile $Mblib @I $debug);
-$VERSION = sprintf("%d.%02d", q$Revision: 5.9 $ =~ /(\d+)\.(\d+)/);
+$VERSION = '5.10';
use IO::Socket;
@@ -87,6 +87,12 @@ use Tk::Pod::Text; # for findpod
use Getopt::Long;
#require Tk::ErrorDialog;
+my $geometry;
+# Do a pre-scan of cmdline to see if -geometry is used
+Getopt::Long::Configure('pass_through');
+GetOptions("geometry=s" => \$geometry);
+Getopt::Long::Configure('nopass_through');
+
my $mw = MainWindow->new();
my $orig_state = $mw->state; # may be iconic
$mw->withdraw;
@@ -205,8 +211,7 @@ foreach $file (@ARGV)
}
else
{
- $tl = $mw->Pod(-tree => $tree,
- -exitbutton => 1);
+ $tl = make_tk_pod_window();
# -file => ... should be called after creating the Pod window,
# because -title => ... is set implicitly by Pod's new
$tl->configure(-file => $file);
@@ -216,28 +221,22 @@ foreach $file (@ARGV)
if (defined $function)
{
- $tl = $mw->Pod(-tree => $tree,
- -exitbutton => 1);
+ $tl = make_tk_pod_window();
$tl->configure($tl->getpodargs(-f => $function));
$opened++;
}
if (defined $question)
{
- $tl = $mw->Pod(-tree => $tree,
- -exitbutton => 1);
+ $tl = make_tk_pod_window();
$tl->configure($tl->getpodargs(-q => $question));
$opened++;
}
if (!$opened) # This may happen if all arguments are directories
{
- if ($tree)
- {
- $tl = $mw->Pod(-tree => 1, -exitbutton => 1);
- }
- else
+ $tl = make_tk_pod_window();
+ if (!$tree)
{
- $tl = $mw->Pod(-tree => $tree, -exitbutton => 1);
$tl->configure(-file => "perl");
}
}
@@ -268,6 +267,19 @@ MainLoop;
unlink($portfile);
exit(0);
+sub make_tk_pod_window {
+ my $tl = $mw->Pod(
+ -exitbutton => 1,
+ );
+ if ($geometry) {
+ $tl->geometry($geometry);
+ }
+ if ($tree) {
+ $tl->tree($tree);
+ }
+ $tl;
+}
+
sub start_server {
my $sock = IO::Socket::INET->new(Listen => 5, Proto => 'tcp');
die "Cannot open listen socket: $!" unless defined $sock;
@@ -302,8 +314,7 @@ sub PodRequest {
while (<$client>) {
chomp($_);
print STDERR "'$_'\n";
- my $pod = $mw->Pod(-tree => $tree,
- -exitbutton => 1);
+ my $pod = make_tk_pod_window();
$pod->configure(-file => $_);
}
warn "Odd $!" unless eof($client);
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libtk-pod-perl.git
More information about the Pkg-perl-cvs-commits
mailing list