Quote:
What's wrong with just this code?


Everything is if you bothered to read what i wrote. "(although im sure it could be worked around another way)" and "OK OK you could write it with out it, but hey theres a possable use"
The code i displayed is complety fictional I mad it up on the spot to display a usage of the theroretical $v0, The intent was to rather than just have $v0 being used to see how many sides tot he condition there were, it could also be used to define what PART of the whole IF was validated and made the IF true, as im sure you know if the %all.options.on is evaluated as true the following OR ($hfind(hashtable,$+(*@,$nick),0,n) > 1) is never preformed. While in this case that means nothing, it can be relevent if one or more of the sides of the OR condition was a custom identifier and left things in a different status.


Quote:
I even left the unneeded orange code in to show where it should be, but the next while loop will give correct output even when this condition is false.


Indeed its not needed where you put it, but then again your code fails to take into account that I NEVER closed the initial IF
Your code results in ONE code path remaining after its completion, mine has TWO, the two i speak of are...
(1) IF [ %all.options.on set OR $hfind(hashtable,$+(*@,$nick),0,n) > 1] was true I now have a correct %active.options, for later code of the inital {
(2) IF [ %all.options.on set OR $hfind(hashtable,$+(*@,$nick),0,n) > 1] was false no code inside the initial { well be performed

There is no easy way for your code to come together while excluding if nethier condition was true.

Quote:
So, I don't really think rewriting decent code into worse code just to be able to use an unexistent identifier is a good reason to ask for that identifier smile


I wrote that code from scratch to illustrate a possable use of a $v0, the code doesnt exist anywhere beyond here (it couldnt since $v0 doesnt exist)

Quote:
As for the rest of the thread:
var %a,%b | if (%a == %b) echo so $v0 is supposed to be 0?
var %a = 0 ,%b = 0 | if (%a == %b) echo so $v0 is supposed to be 2?
var %a | if (%a == 5) { } | else echo and $v0 is what now? 2? 1?


2, 2 & 2, The understanding as i saw it of what was the suggestion was that $v0 returns with the number of sides of the condition, not the status of if they were zero/$null/$false etc or not

ex: //if ($null == 1) { }
$v1 = nothing & $v2 = "1"
$v0 would need to return 2, even tho $v1 had no value

Quote:
IMO there's only a *very* limited class of situations where you don't know if a test contains a 2 sided operand or not, and that's where you change the evaluation order to have a %var/$n/$identifier produce the test. In all other cases, you should know what you scripted, because, well, you just scripted it!


Sometimes the conditions your testing in the IF themselfs alter the state of later conditions in the same IF, while I aggree with you I dont see a significant use of the value, i can see potential uses of it, in complexer IF and WHILE statments.