prevent hop counts of -1 being generated.
authorDirk Koopman <djk@tobit.co.uk>
Fri, 20 Jul 2007 14:41:53 +0000 (15:41 +0100)
committerDirk Koopman <djk@tobit.co.uk>
Fri, 20 Jul 2007 14:41:53 +0000 (15:41 +0100)
perl/DXProt.pm
perl/Version.pm

index bc753c3d784e6b053a5d67d147a8807d7ef6f855..596f1f08d3a1256d1ddfab84a815b6be674feee3 100644 (file)
@@ -1008,7 +1008,7 @@ sub adjust_hops
        my $call = $self->{call};
        my $hops;
 
-       if (($hops) = $s =~ /\^H(\d+)\^?~?$/o) {
+       if (($hops) = $s =~ /\^H([-\d]+)\^?~?$/o) {
                my ($pcno) = $s =~ /^PC(\d\d)/o;
                confess "$call called adjust_hops with '$s'" unless $pcno;
                my $ref = $nodehops{$call} if %nodehops;
@@ -1017,8 +1017,11 @@ sub adjust_hops
                        return "" if defined $newhops && $newhops == 0;
                        $newhops = $ref->{default} unless $newhops;
                        return "" if defined $newhops && $newhops == 0;
-                       $newhops = $hops if !$newhops;
-                       $s =~ s/\^H(\d+)(\^~?)$/\^H$newhops$2/ if $newhops;
+                       $newhops = $hops unless $newhops;
+                       return "" unless $newhops > 0;
+                       $s =~ s/\^H(\d+)(\^~?)$/\^H$newhops$2/ if $newhops != $hops;
+               } else {
+                       return "" unless $hops > 0;
                }
        }
        return $s;
index 5b13b540872671748f58aa3bbfa7aa6e867c7d50..db524ea5e992917602fccacf66f504cb16965c49 100644 (file)
@@ -11,6 +11,6 @@ use vars qw($version $subversion $build);
 
 $version = '1.54';
 $subversion = '0';
-$build = '122';
+$build = '123';
 
 1;