while (s2 = *s1) { s1 = something(s2); }
and
while (1) { if(!s1) break; s1 = something(s2); }
is not the same. In the latter case s2 isn't initialized. Don't know if this is of any significance.
oops, it was too early in the morning ... i wanted to write:
while(1) { s2 = *s1; if (!s2) break; s1 = something(s2); }
thanks for correcting me ... tim