aboutsummaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorcomex2015-10-27 21:14:05 -0400
committercomex2015-10-27 21:14:05 -0400
commitb0a1b9863a7092b1d191d1523798ba78d5df3e4a (patch)
treed89974b2295bd9d35f7393599b5b938a0175e381 /script
parentavoid overflowing Version into debian_revision (diff)
downloadsubstitute-b0a1b9863a7092b1d191d1523798ba78d5df3e4a.tar.gz
lol, mach awk fail
Diffstat (limited to '')
-rwxr-xr-xscript/gen-manual-mach.sh20
-rw-r--r--script/mconfig.py5
2 files changed, 17 insertions, 8 deletions
diff --git a/script/gen-manual-mach.sh b/script/gen-manual-mach.sh
index b740af9..e973bce 100755
--- a/script/gen-manual-mach.sh
+++ b/script/gen-manual-mach.sh
@@ -1,13 +1,19 @@
#!/bin/bash
out=generated/manual-mach.inc.h
-(mig -user /dev/stdout -server /dev/null -header /dev/null /usr/include/mach/{thread_act,mach_vm}.defs |
- unifdef -U__MigTypeCheck |
- grep -v '#define USING_VOUCHERS' |
+(mig -user /dev/stdout -server /dev/null -header /dev/stdout /usr/include/mach/{thread_act,mach_vm}.defs |
+ egrep -v '^(#ifndef|#define|#endif).*_user_' |
+ egrep -v '#include "stdout"' |
+ unifdef -D__MigTypeCheck |
sed -E 's/(mach_msg|memcpy)\(/manual_\1(/g;
s/^\)/, mach_port_t reply_port)/;
- s/mig_external kern_return_t /static kern_return_t manual_/;
s/_kernelrpc_//;
+ s/^([a-z].*)?kern_return_t[[:blank:]]+([a-z])/\1kern_return_t manual_\2/;
+ s/mig_external/static/;
+ s/__defined/_manual__defined/g;
s/mig_get_reply_port\(\)/reply_port/g' |
- awk 'BEGIN { on = 1 }
- /^\/\* Routine / { on = /thread_[gs]et_state|vm_remap/; }
- on { print }' > $out) || rm -f $out
+ awk 'BEGIN { on = 1; }
+ /^\/\* Routine / ||
+ (/__MIG_check__Reply__/ && /^#[ie]/) { on = /thread_[gs]et_state|vm_remap/; }
+ on { print; }
+ /#endif.*__AfterMigUserHeader/ { on = 1; }
+ ' > $out) || rm -f $out
diff --git a/script/mconfig.py b/script/mconfig.py
index d025545..5b7aa74 100644
--- a/script/mconfig.py
+++ b/script/mconfig.py
@@ -548,8 +548,11 @@ class CLITool(object):
def __repr__(self):
return 'CLITool(name=%r, defaults=%r, env=%r)' % (self.name, self.defaults, self.env)
- def optional(self):
+ def optional_nocheck(self):
self.argv_opt.need()
+
+ def optional(self):
+ self.optional_nocheck()
def f():
try:
self.argv()