I have a quick Q.
if ((q = p->from1) && (!p->from1->fq)) {
in this statement is q being set to p->from1 or is it checking if q is equal to p->from1.
I know == is checking to see if they are equal, im just not sure about this one.
q is being set to p->from1