{"thread":{"id":"9762","subject":"[PATCH] gitk: fix in procedure drawcommits","startedAt":"2007-09-03T13:59:49Z","lastAt":"2007-09-03T13:59:49Z","messageCount":1,"participants":["Michele Ballabio"],"isPatch":true,"patchVersion":1,"patchTotal":null},"messages":[{"id":"52359","messageId":"200709031559.49143.barra_cuda@katamail.com","threadId":"9762","inReplyTo":null,"subject":"[PATCH] gitk: fix in procedure drawcommits","fromName":"Michele Ballabio","fromEmail":"barra_cuda@katamail.com","sentAt":"2007-09-03T13:59:49Z","receivedAt":"2007-09-03T13:59:49Z","isPatch":true,"sender":{"key":"barra_cuda@katamail.com","avatar":"https://avatars.githubusercontent.com/u/16371673?v=4"},"body":"This patch indroduces a check before unsetting an array element.\n\nWithout this, gitk may complain with\n\n\tcan't unset \"prevlines(...)\": no such element in array\n\nwhen scrolling the history view, bugging the user.\n\nSigned-off-by: Michele Ballabio <barra_cuda@katamail.com>\n---\n\nI don't really know if this is the right fix, but it seems to work.\n\nAn example of this error:\n\ncan't unset \"prevlines(a3b4383d69e0754346578c85ba8ff7c05bd88705)\": no such element in array\ncan't unset \"prevlines(a3b4383d69e0754346578c85ba8ff7c05bd88705)\": no such element in array\n    while executing\n\"unset prevlines($lid)\"\n    (procedure \"drawcommits\" line 39)\n    invoked from within\n\"drawcommits $row $endrow\"\n    (procedure \"drawfrac\" line 10)\n    invoked from within\n\"drawfrac $f0 $f1\"\n    (procedure \"scrollcanv\" line 3)\n    invoked from within\n\"scrollcanv .tf.histframe.csb 0.00672513 0.0087015\"\n\n\nThe first \"bad\" commit is 9f1afe05c3ab7228e21ba3666c6e35d693149b37\n(merged in 1.3.0-rc1):\n\n\tgitk: New improved gitk\n\n gitk |    4 +++-\n 1 files changed, 3 insertions(+), 1 deletions(-)\n\ndiff --git a/gitk b/gitk\nindex 300fdce..527b716 100755\n--- a/gitk\n+++ b/gitk\n@@ -3697,7 +3697,9 @@ proc drawcommits {row {endrow {}}} {\n \n \tif {[info exists lineends($r)]} {\n \t    foreach lid $lineends($r) {\n-\t\tunset prevlines($lid)\n+\t\tif {[info exists prevlines($lid)]} {\n+\t\t    unset prevlines($lid)\n+\t        }\n \t    }\n \t}\n \tset rowids [lindex $rowidlist $r]\n-- \n1.5.3\n"}]}