fix def/c macro to use pub again