-
- q . ch = t -> sp [ts] . ch; /* { */
- s . ch = r -> sp [rs] . ch; /* { */
- t -> sp [ts] . ch = s . ch; /* { */
- r -> sp [rs] . ch = q . ch; /* { change code when Cory gets v. 7 */
- /* { */
- exch (t, ts, q . ch, r, rs); /* { */
- exch (r, rs, s . ch, t, ts); /* { */
-
- qs = (rs ? RLEAF : LLEAF);
- ss = (ts ? RLEAF : LLEAF);
- if (((r -> fath . flags & qs) << rs) ^ ((t -> fath . flags & ss) << ts)) {
- r -> fath . flags ^= qs;
- t -> fath . flags ^= ss;
+ q.ch = tson->sp.ch;
+ s.ch = rson->sp.ch;
+ tson->sp.ch = s.ch;
+ rson->sp.ch = q.ch;
+ exch(t, ts, q.ch, r, rs);
+ exch(r, rs, s.ch, t, ts);
+
+ rflags = (rs ? RLEAF : LLEAF);
+ tflags = (ts ? RLEAF : LLEAF);
+ if (((r->fath.flags & rflags) << rs) ^ ((t->fath.flags & tflags) << ts)) {
+ r->fath.flags ^= rflags;
+ t->fath.flags ^= tflags;