Just curious, what is the red part for?
if (($fline(%win,$2,%i)) [color:red]|| ($line(%win,$v1) == $2)[/color]) { dline %win $fline(%win,$2,%i) }
- if ($fline()) is true, it means you found the item, so you can delete it right away.
- if ($fline()) is false, it means /break wasn't executed in the above line, so the item was either not found or it wasn't equal to $2 (it contained wildcards that fooled $fline).
So it seems this is enough:
if ($fline(%win,$2,%i)) { dline %win $v1 }
In fact, the red part may even error, if $2 happens to be the total number of lines in %win: $v1 will be 0, so $line(%win,$v1) will be $line(%win,0), therefore equal to $2, so the condition succeeds.
Unless you meant && instead of ||, which is just redundant (for the same reasons), or I'm just too tired to see it right.