preproc.c: merge from preproc-rewrite branch