mirror of
https://github.com/jart/cosmopolitan.git
synced 2025-02-07 15:03:34 +00:00
74 lines
1.5 KiB
Python
74 lines
1.5 KiB
Python
import sys
|
|
|
|
H = '/home/jart/vendor/netbsd/sys/sys/spawn.h'
|
|
G = 'errno'
|
|
|
|
MAGNUMS = {}
|
|
|
|
def ParseInt(x):
|
|
s = 1
|
|
if x.startswith('-'):
|
|
x = x[1:]
|
|
s = -1
|
|
if x.startswith('0x'):
|
|
x = int(x[2:], 16)
|
|
elif x.startswith('0b'):
|
|
x = int(x[2:], 2)
|
|
elif x.startswith('0'):
|
|
x = int(x, 8)
|
|
else:
|
|
x = int(x, 10)
|
|
return x * s
|
|
|
|
def FormatInt(x):
|
|
if x == -1:
|
|
return "-1"
|
|
if -128 <= x < 128:
|
|
return "%d" % (x)
|
|
else:
|
|
return "%#x" % (x)
|
|
|
|
for line in open(H):
|
|
if line.startswith('#define'):
|
|
a = line.split()
|
|
if len(a) >= 3:
|
|
try:
|
|
MAGNUMS[a[1]] = ParseInt(a[2])
|
|
except ValueError:
|
|
pass
|
|
|
|
GROUP_COLUMN = 2
|
|
NAME_COLUMN = 4
|
|
SYSTEMD_COLUMN = 6
|
|
XNU_COLUMN = 8
|
|
FREEBSD_COLUMN = 10
|
|
OPENBSD_COLUMN = 12
|
|
NETBSD_COLUMN = 14
|
|
|
|
print """\
|
|
# The Fifth Bell System, Community Edition
|
|
# > catalogue of carnage
|
|
#
|
|
# group name GNU/Systemd XNU's Not UNIX FreeBSD OpenBSD NetBSD XENIX Commentary"""
|
|
|
|
for line in open('libc/sysv/consts.sh'):
|
|
if not line.startswith('syscon'): continue
|
|
fields = [""]
|
|
i = 0
|
|
t = 0
|
|
for i in range(len(line)):
|
|
if t == 0:
|
|
if line[i] == '\t':
|
|
fields.append("")
|
|
t = 1
|
|
elif t == 1:
|
|
if line[i] != '\t':
|
|
fields.append("")
|
|
t = 0
|
|
fields[-1] = fields[-1] + line[i]
|
|
k = fields[NAME_COLUMN]
|
|
v = ParseInt(fields[NETBSD_COLUMN])
|
|
if k in MAGNUMS and MAGNUMS[k] != v:
|
|
fields[NETBSD_COLUMN] = FormatInt(MAGNUMS[k])
|
|
# if fields[GROUP_COLUMN] == G:
|
|
sys.stdout.write("".join(fields))
|