Menu

var not exist problem in logcanvas.tcl

Help
2002-12-13
2002-12-17
  • Shane K. Boyce

    Shane K. Boyce - 2002-12-13

    Hi,
    (CVS) 1.11.1p1
    wish 8.3
    Sun/Solaris and HPUX workstations

    I was getting an error that reported that $branchrevs($root) didn't exist ($root had value 3) within the code in logcanvas.tcl.

    I was able to "bandaid fix" the problem by changing the code from:

          set revbranches(current) {}
        } elseif {$revnum == [lindex $branchrevs($root) 0]} {
          # The revision we are working on is the latest on its
          # branch. Place the you-are-here box on the end of the
          # branch.
          set branchrevs($root) \
            [linsert $branchrevs($root) 0 {current}]
          set revbranches(current) {}
        } else {
          # Otherwise we will place it as a branch off the
          # revision.
          set revbranches($revnum) \
            [linsert $revbranches($revnum) 0 {current}]
        }
        foreach {revwho(current) revdate(current) revtime(current)
          revlines(current) revcomment(current)

    --------------------------
    to the code:
    --------------------------

          set revbranches(current) {}
        } else {
          if {[catch {info exists $branchrevs($root)}] == 0} {
            if {$revnum == [lindex $branchrevs($root) 0]} {
              # The revision we are working on is the latest on its
              # branch. Place the you-are-here box on the end of the
              # branch.
              set branchrevs($root) [linsert $branchrevs($root) 0 {current}]
              set revbranches(current) {}
            } else {
              # Otherwise we will place it as a branch off the
              # revision.
              set revbranches($revnum) [linsert $revbranches($revnum) 0 {current}]
            }
          } else {
            # Otherwise we will place it as a branch off the
            # revision.
            set revbranches($revnum) [linsert $revbranches($revnum) 0 {current}]
          }
        }
        foreach {revwho(current) revdate(current) revtime(current)
          revlines(current) revcomment(current)

    --------------------------

    Any ideas as to the real reason for this error? It seemed to happen if I was viewing a log that had recently branched.

    Thanks,
    Shane

     
    • DorothyR

      DorothyR - 2002-12-14

      I'm working on this problem right now.  The deeper reason for it is that the new exec routine isn't detecting errors correctly and so it's sometimes sending garbage to the log parser.  The new exec stuff got rid of an un-portable call to "cat" and it's also namespace-safe, but it needs to handle error conditions better.  I'm trying to figure out how to do it better.

      dorothy

       
    • DorothyR

      DorothyR - 2002-12-16

      I've got the exec problem sort of fixed, but what you're reporting seems a little different.  I can't seem to produce a *,v file that shows the problem, though.  Could you find one that doesn't contain confidential source code (wouldn't want that kind of trouble!) and send it to me (dorothyr@users.sourceforge.net)?  That would help a lot.

      thanks,
      dorothy

       
      • Shane K. Boyce

        Shane K. Boyce - 2002-12-17

        Hi Dorothy,

        I responded to the email you provided with the ,v file in question that was causing me pain.

        Shane

         

Log in to post a comment.