ref: 56ac6ea29e1b9dfdad8c7b1875f81c242362da2a
dir: /sys/src/9/xen/cppx/
#!/bin/rc awk ' function qq(s) { gsub("\"", "£", s) return "\"@" s "\"" } /^#include/ { next } /^#define.*\\$/ { save[n++] = $0 print qq($0 "\\") next } (n > 0) && /\\$/ { save[n++] = $0 print qq($0 "\\") next } (n > 0) { save[n++] = $0 print qq($0) for (i = 0; i < n; i++) print save[i] n = 0 next } /^# *((define)|(error)).*[^\\]*$/ { print qq($0) print next } /^# *undef.*[^\\]*$/ { print print qq($0) next } { print } ' $* | cpp -P | sed -e 's/£/"/g' -e 's/^"@(.*\\)\\"$/\1/' -e 's/^"@(.*)"$/\1/'