Seems they kept changing it until the following would compile.This is one reason why I've never been a big fan of C. Just like in real life, if everything is legal, things can get unpredictable and dangerous. Instead of calling it "C" they should have called it "A" for anarchy.
Code:
main(int c,char**v){return!m(v[1],v[2]);}m(char*s,char*t){return*t-42?*s?63==*t|*s==*t&&m(s+1,t+1):!*t:m(s,t+1)||*s&&m(s+1,t);}
Mike.