Sun Jul 21 01:44:39 1996 Miles Bader <miles@gnu.ai.mit.edu> cvs/libc-960721
authorMiles Bader <miles@gnu.org>
Sun, 21 Jul 1996 06:52:29 +0000 (06:52 +0000)
committerMiles Bader <miles@gnu.org>
Sun, 21 Jul 1996 06:52:29 +0000 (06:52 +0000)
* locale/programs/locfile.c (write_locale_data): Deal with missing
UIO_MAXIOV.

* sysdeps/mach/hurd/socket.c (socket): Make TYPE an int.
* sysdeps/mach/hurd/socketpair.c (socketpair): Likewise.

ChangeLog
locale/programs/locfile.c
sysdeps/mach/hurd/socket.c
sysdeps/mach/hurd/socketpair.c

index 84b0863c371d53bf95ce3a5457d1722abed26dd1..2c9785c4fcec980af559312787d42f039ad0e22c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Sun Jul 21 01:44:39 1996  Miles Bader  <miles@gnu.ai.mit.edu>
+
+       * locale/programs/locfile.c (write_locale_data): Deal with missing
+       UIO_MAXIOV.
+
+       * sysdeps/mach/hurd/socket.c (socket): Make TYPE an int.
+       * sysdeps/mach/hurd/socketpair.c (socketpair): Likewise.
+
 Sat Jul 20 13:28:52 1996  Miles Bader  <miles@gnu.ai.mit.edu>
 
        * sysdeps/mach/hurd/select.c (__select): Don't poll on the last
index e225e577d6fab0f0291b7ff40a964fce446443b3..69d976160b1808a3f5e4d3712297941325778635 100644 (file)
@@ -931,7 +931,7 @@ void
 write_locale_data (const char *output_path, const char *category,
                   size_t n_elem, struct iovec *vec)
 {
-  size_t cnt, step;
+  size_t cnt, step, maxiov;
   int fd;
   char *fname;
 
@@ -959,11 +959,19 @@ write_locale_data (const char *output_path, const char *category,
     }
   free (fname);
 
+#ifdef UIO_MAXIOV
+  maxiov = UIO_MAXIOV;
+#else
+  maxiov = sysconf (_SC_UIO_MAXIOV);
+#endif
+
   /* Write the data using writev.  But we must take care for the
      limitation of the implementation.  */
   for (cnt = 0; cnt < n_elem; cnt += step)
     {
-      step = MIN (UIO_MAXIOV, n_elem - cnt);
+      step = n_elem - cnt;
+      if (maxiov > 0)
+       step = MIN (maxiov, step);
 
       if (writev (fd, &vec[cnt], step) < 0)
        {
index 282c24e36bdeabbb5594209df4aee0a8e7638f5a..423e8fe8b16aa8936e4742408cbcd7e097124745 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1993, 1994, 1995, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -29,7 +29,7 @@ Cambridge, MA 02139, USA.  */
    Returns a file descriptor for the new socket, or -1 for errors.  */
 int
 DEFUN(socket, (domain, type, protocol),
-      int domain AND enum __socket_type type AND int protocol)
+      int domain AND int type AND int protocol)
 {
   error_t err;
   socket_t sock, server;
index 951d53550412342146735a4a6b14de4c5652beb4..4e29ed81d1f3f054b110ddc770013298ca9eb1a1 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1992, 1994, 1995, 1996 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -31,7 +31,7 @@ Cambridge, MA 02139, USA.  */
    one will be chosen automatically.  Returns 0 on success, -1 for errors.  */
 int
 DEFUN(socketpair, (domain, type, protocol, fds),
-      int domain AND enum __socket_type type AND int protocol AND int fds[2])
+      int domain AND int type AND int protocol AND int fds[2])
 {
   error_t err;
   socket_t server, sock1, sock2;