$v1 works fine that way, but you're correct in thinking that his logic is incorrect. After the first loop, $v1 will be $gettok($v1,%£,44) from the first loop.
--
OP, try this:
alias list {
var %ß = 1, %£, %v1
while ($readini(%file,$ini(%file,%ß),chan)) {
%£ = 1
%v1 = $v1
while ($gettok(%v1,%£,44)) {
echo -a $v1
inc %£
}
inc %ß
}
}
Btw, out of curiosity, why do you use such undescriptive variable names? It's only going to cause you some confusion if you go and look at a script after some time of not modifying it.