X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=Debian%2FDgit.pm;h=f68ebd228366676e97e4921bcffd6446bf6345c9;hp=e09d12f6411978f75eeb2c81d5d7d70508e0baef;hb=f82da50bcda81c6b3751e172dc943d4c348f4f72;hpb=5805198637ef23ec8d8303f4b3b1b7a0df188309 diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index e09d12f6..f68ebd22 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -17,8 +17,9 @@ BEGIN { @EXPORT = qw(debiantag server_branch server_ref stat_exists git_for_each_ref $package_re $component_re $branchprefix - initdebug enabledebug printdebug debugcmd - $debugprefix $debuglevel + initdebug enabledebug enabledebuglevel + printdebug debugcmd + $debugprefix *debuglevel *DEBUG shellquote printcmd); %EXPORT_TAGS = ( policyflags => [qw(NOFFCHECK FRESHREPO)] ); @EXPORT_OK = @{ $EXPORT_TAGS{policyflags} }; @@ -82,17 +83,23 @@ our $debuglevel = 0; sub initdebug ($) { ($debugprefix) = @_; - open ::DEBUG, ">/dev/null" or die $!; + open DEBUG, ">/dev/null" or die $!; } sub enabledebug () { - open ::DEBUG, ">&STDERR" or die $!; - ::DEBUG->autoflush(1); + open DEBUG, ">&STDERR" or die $!; + DEBUG->autoflush(1); $debuglevel ||= 1; } +sub enabledebuglevel ($) { + die if $debuglevel; + $debuglevel = $_[0] + 0; + enabledebug(); +} + sub printdebug { - print ::DEBUG $debugprefix, @_ or die $! if $debuglevel>0; + print DEBUG $debugprefix, @_ or die $! if $debuglevel>0; } sub shellquote { @@ -100,7 +107,7 @@ sub shellquote { local $_; foreach my $a (@_) { $_ = $a; - if (m{[^-=_./0-9a-z]}i) { + if (!length || m{[^-=_./0-9a-z]}i) { s{['\\]}{'\\$&'}g; push @out, "'$_'"; } else { @@ -120,7 +127,7 @@ sub printcmd { sub debugcmd { my $extraprefix = shift @_; - printcmd(\*::DEBUG,$debugprefix.$extraprefix,@_) if $debuglevel>0; + printcmd(\*DEBUG,$debugprefix.$extraprefix,@_) if $debuglevel>0; } 1;