change behavior of ifn, ifdef and #if