Modified directiveDefine(), replaceMacroInString()