about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--conform/conformtest.pl53
-rw-r--r--conform/data/netinet/in.h-data2
-rw-r--r--conform/data/sys/socket.h-data1
-rw-r--r--io/fts.c4
5 files changed, 51 insertions, 18 deletions
diff --git a/ChangeLog b/ChangeLog
index 1f9713971d..1f653b49db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2001-08-18  Ulrich Drepper  <drepper@redhat.com>
+
+	* conform/conformtest.pl: Change namespace test to take #undef
+	lines into account.
+
+	* conform/data/netinet/in.h-data: Fix typo in allow-header line.
+
+	* conform/data/sys/socket.h-data: Add sockatmark.
+
 2001-08-17  Ulrich Drepper  <drepper@redhat.com>
 
 	* io/fts.c: Update from recent BSD source.
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 5ae1cea45a..364e34d2a4 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -224,11 +224,19 @@ sub newtoken {
   if ($isknown{$token}) {
     ++$nknown;
   } else {
-    ++$nerrors;
-    if ($nerrors == 1) {
-      printf ("FAIL\n    " . "-" x 72 . "\n");
-    }
-    printf ("    Namespace violation: \"%s\"\n", $token);
+    $errors{$token} = 1;
+  }
+}
+
+
+sub removetoken {
+  my($token) = @_;
+  my($idx);
+
+  return if ($token =~ /^[0-9_]/ || $iskeyword{$token});
+
+  if (exists $errors{$token}) {
+    undef $errors{$token};
   }
 }
 
@@ -243,14 +251,15 @@ sub checknamespace {
   print TESTFILE "#include <$h>\n";
   close (TESTFILE);
 
-  $nerrors = 0;
+  undef %errors;
   $nknown = 0;
   open (CONTENT, "$CC $CFLAGS{$dialect} -E $fnamebase.c -P -Wp,-dN | sed -e '/^# [1-9]/d' -e '/^[[:space:]]*\$/d' |");
   loop: while (<CONTENT>) {
-    next loop if (/^#undef /);
     chop;
     if (/^#define (.*)/) {
       newtoken ($1, @allow);
+    } elsif (/^#undef (.*)/) {
+      removetoken ($1);
     } else {
       # We have to tokenize the line.
       my($str) = $_;
@@ -266,14 +275,28 @@ sub checknamespace {
   }
   close (CONTENT);
   unlink "$fnamebase.c";
-  if ($nerrors != 0) {
-    printf ("    " . "-" x 72 . "\n");
-    ++$errors;
-  } elsif ($nknown > 0) {
-    printf ("EXPECTED FAILURES\n");
-    ++$known;
-  } else {
-    printf ("OK\n");
+  $realerror = 0;
+  if ($#errors != 0) {
+    foreach $f (%errors) {
+      if ($errors{$f} == 1) {
+	if ($realerror == 0) {
+	  printf ("FAIL\n    " . "-" x 72 . "\n");
+	  $realerror = 1;
+	  ++$errors;
+	}
+	printf ("    Namespace violation: \"%s\"\n", $f);
+      }
+    }
+    printf ("    " . "-" x 72 . "\n") if ($realerror != 0);
+  }
+
+  if ($realerror == 0) {
+    if ($nknown > 0) {
+      printf ("EXPECTED FAILURES\n");
+      ++$known;
+    } else {
+      printf ("OK\n");
+    }
   }
 }
 
diff --git a/conform/data/netinet/in.h-data b/conform/data/netinet/in.h-data
index 9b7d05e821..1f1955d1a6 100644
--- a/conform/data/netinet/in.h-data
+++ b/conform/data/netinet/in.h-data
@@ -58,7 +58,7 @@ function uint16_t htons (uint16_t)
 function uint32_t ntohl (uint32_t)
 function uint16_t ntohs (uint16_t)
 
-allow-header intttypes.h
+allow-header inttypes.h
 allow-header arpa/inet.h
 
 constant INET6_ADDRSTRLEN 46
diff --git a/conform/data/sys/socket.h-data b/conform/data/sys/socket.h-data
index 151ade5b92..61f30abc82 100644
--- a/conform/data/sys/socket.h-data
+++ b/conform/data/sys/socket.h-data
@@ -103,6 +103,7 @@ function int setsockopt (int, int, int, const void*, socklen_t)
 function int shutdown (int, int)
 function int socket (int, int, int)
 function int socketpair (int, int, int, int[2])
+function int sockatmark (int)
 
 allow-header sys/uio.h
 
diff --git a/io/fts.c b/io/fts.c
index 44473a6bc2..bfe41d3f44 100644
--- a/io/fts.c
+++ b/io/fts.c
@@ -653,7 +653,7 @@ fts_build(sp, type)
 			cur->fts_flags |= FTS_DONTCHDIR;
 			descend = 0;
 			cderrno = errno;
-			(void)closedir(dirp);
+			(void)__closedir(dirp);
 			dirp = NULL;
 		} else
 			descend = 1;
@@ -685,7 +685,7 @@ fts_build(sp, type)
 
 	/* Read the directory, attaching each entry to the `link' pointer. */
 	doadjust = 0;
-	for (head = tail = NULL, nitems = 0; dirp && (dp = readdir(dirp));) {
+	for (head = tail = NULL, nitems = 0; dirp && (dp = __readdir(dirp));) {
 		if (!ISSET(FTS_SEEDOT) && ISDOT(dp->d_name))
 			continue;