Bug: Out of range errorsEdit
Hanoi gives out of range errors (list element -1) after moving the cursor to an empty pole, and stops. --June 20, 2011
I've also found the bug "Out of range errors" just like what's described in that bug report, read as "Hanoi gives out of range errors (list element -1) after moving the cursor to an empty pole, and stops."
To fix this bug, I've read the script and found a leak when process
PoleMoveDisk. It forgot to determine the condition that the target pole to select (i.e. to move to) should have disks when selecting a pole!
So to fix it, I make up the condition determination in
function! s:play() at row 266/271 in script file
autoload/hanoi.vim by adding statement:
if s:curpole.next.NOD() > 0 and adding
endif after statement
call s:PoleSelectPole(s:curpole.next/prev) to close
To be more robust, I add another condition determination statement in
function! s:PoleSelectPole(newPole) at row 508 in script file
autoload/hanoi.vim by adding
&& a:newPole.NOD() > 0 in the if statement
if s:curpole != a:newPole . Of course, this supplement is optional if the above leak has been fixed.
Hope the author fix the bug and offer the latest copy for downloading. --188.8.131.52 05:39, November 23, 2011 (UTC)