#! /usr/bin/perl

# Script to process include/geekos/errno.h to produce a table
# of error description strings that can be compiled and
# linked into libc.

use strict qw(refs vars);

my @errs = ();
my @syms = ();

$errs[0] = 'No error';

while (<>) {
	if (m,^#define\s*(\S+)\s*(-\d+)\s*/\*\s*(.*\S)\s*\*/\s*$,) {
		$errs[- $2] = $3;
		$syms[- $2] = $1;
	}
}

print "const char *__strerrTable[] = {\n";
for (my $i = 0; $i < scalar(@errs); $i++) {
	print "    \"", $errs[$i], "\", /* ", $syms[$i], " */\n";
}
print "};\n";
print "const int __strerrTableSize = sizeof(__strerrTable) / sizeof(const char *);\n";

# vim:ts=4
