--- toast	2010/01/08 04:37:48	1.471
+++ toast	2010/01/10 02:14:39	1.472
@@ -20,7 +20,8 @@
 ##############################################################################
 
 #!perl
-&the_correct_line_number_for_this_line_is(23); # perl thinks this is line 2...
+#line 24
+# the #line directive above tells perl that this is line 24, not line 3
 
 use 5; # oldest version that actually works might be 5.003; not sure....
 
@@ -49,31 +50,16 @@
 
 ##############################################################################
 
-BEGIN
+sub trace(;$)
 {
-  my($linedelta, $filedelta);
-
-  sub the_correct_line_number_for_this_line_is($)
+  my($i, $out, $prev) = (shift || 1, "", "");
+  while(my($package, $file, $line) = caller($i++))
   {
-    my($realline) = @_;
-    my($package, $file, $line) = caller(0);
-    $linedelta = $realline - $line;
-    $filedelta = $file;
+    $out .= ($prev eq $file ? "/" : $out ? "; $file: " : "$file: ") . $line;
+    $prev = $file;
   }
-
-  sub trace(;$)
-  {
-    my($i, $out, $prev) = (shift || 1, "", "");
-    while(my($package, $file, $line) = caller($i++))
-    {
-      $line += $linedelta if defined($linedelta) && $file eq $filedelta;
-      $out .= ($prev eq $file ? "/" : $out ? "; $file: " : "$file: ") . $line;
-      $prev = $file;
-    }
-    $out .= " (from #!perl line)" unless defined($linedelta);
-    $out .= " v$myversion";
-    return $out;
-  }
+  $out .= " v$myversion";
+  return $out;
 }
 
 sub msg($@)