summaryrefslogtreecommitdiff
path: root/sys/src/9/xen/cppx
diff options
context:
space:
mode:
authormischief <mischief@offblast.org>2014-06-24 18:02:25 -0700
committermischief <mischief@offblast.org>2014-06-24 18:02:25 -0700
commit5ba95fdb07ddc2c32111a1b2f57f17aa27fcbbf5 (patch)
treec1ec54cb9ecff85b0b820a26d26a10a32a118d0c /sys/src/9/xen/cppx
parentfa03455b5057675b18d1c87aef2d1071b2088de0 (diff)
import xen 32 bit paravirtual kernel from /n/sources/xen.
Diffstat (limited to 'sys/src/9/xen/cppx')
-rwxr-xr-xsys/src/9/xen/cppx41
1 files changed, 41 insertions, 0 deletions
diff --git a/sys/src/9/xen/cppx b/sys/src/9/xen/cppx
new file mode 100755
index 000000000..77370d014
--- /dev/null
+++ b/sys/src/9/xen/cppx
@@ -0,0 +1,41 @@
+#!/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/'