From 7db88470d931657bfb50e0bf42489b7dfc60fefd Mon Sep 17 00:00:00 2001
From: Alberto Bertogli <albertito@blitiri.com.ar>
Date: Thu, 2 Jul 2009 23:07:54 -0300
Subject: [PATCH 10/25] preload/posix: Avoid using undefined errno values

Signed-off-by: Alberto Bertogli <albertito@blitiri.com.ar>
---
 preload/posix/generate |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/preload/posix/generate b/preload/posix/generate
index dd42e0b..b5a3989 100755
--- a/preload/posix/generate
+++ b/preload/posix/generate
@@ -107,9 +107,7 @@ class Function:
 
 			# We can't put this as a macro parameter, so it has to
 			# be explicit 
-			valid_errnos = '{ ' + ', '.join(self.valid_errnos) \
-				+ ' }'
-			f.write("\tint valid_errnos[] = %s;\n" % valid_errnos)
+			self.write_valid_errnos(f)
 
 			f.write('mkwrap_body_errno("%s", %s, %d)\n' % \
 					(self.fiu_name, self.on_error,
@@ -124,6 +122,15 @@ class Function:
 		f.write('mkwrap_bottom(%s, (%s))\n' % (self.name, paramsn))
 		f.write('\n\n')
 
+	def write_valid_errnos(self, f):
+		"Generates the code for the static list of valid errnos."
+		f.write("\tint valid_errnos[] = {\n")
+		for e in self.valid_errnos:
+			f.write("\t  #ifdef %s\n" % e)
+			f.write("\t\t%s,\n" % e)
+			f.write("\t  #endif\n")
+		f.write("\t};\n");
+
 
 class Include:
 	"Represents an include directive"
-- 
1.6.2.2.646.gb214

