aboutsummaryrefslogtreecommitdiffstats
path: root/src/mkheader.awk
diff options
context:
space:
mode:
Diffstat (limited to 'src/mkheader.awk')
-rw-r--r--src/mkheader.awk35
1 files changed, 31 insertions, 4 deletions
diff --git a/src/mkheader.awk b/src/mkheader.awk
index 67de05d..0d09a8c 100644
--- a/src/mkheader.awk
+++ b/src/mkheader.awk
@@ -58,6 +58,8 @@ BEGIN {
codes_nr = 0;
# errnos_nr holds the number of system errors.
errnos_nr = 0;
+# extra_nr holds the number of extra lines to be included.
+ extra_nr = 0
# These variables walk us through our input.
sources_header = 1;
@@ -66,6 +68,7 @@ BEGIN {
codes_body = 0;
between_codes_and_errnos = 0;
errnos_body = 0;
+ extra_body = 0;
gpg_error_h = 0;
print "/* Output of mkheader.awk. DO NOT EDIT. */";
@@ -148,9 +151,9 @@ errnos_body {
if ($1 !~ /^[0-9]/)
{
-# Note that this assumes that gpg-error.h.in doesn't start with a digit.
+# Note that this assumes that extra_body.in doesn't start with a digit.
errnos_body = 0;
- gpg_error_h = 1;
+ extra_body = 1;
}
else
{
@@ -160,6 +163,23 @@ errnos_body {
}
}
+extra_body {
+ if (/^##/)
+ next
+
+ if (/^EOF/)
+ {
+ extra_body = 0;
+ gpg_error_h = 1;
+ next;
+ }
+ else
+ {
+ extra_line[extra_nr] = $0;
+ extra_nr++;
+ }
+}
+
gpg_error_h {
if ($0 ~ /^@include err-sources/)
{
@@ -180,9 +200,16 @@ gpg_error_h {
else if ($0 ~ /^@include errnos/)
{
for (i = 0; i < errnos_nr; i++)
+ {
+ print " " errnos_sym[i] " = " errnos_idx[i] ",";
+# print "#define " errnos_sym[i] " (" errnos_idx[i] ")";
+ }
+ }
+ else if ($0 ~ /^@include extra-h.in/)
+ {
+ for (i = 0; i < extra_nr; i++)
{
- print " " errnos_sym[i] " = " errnos_idx[i] ",";
-# print "#define " errnos_sym[i] " (" errnos_idx[i] ")";
+ print extra_line[i];
}
}
else