summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--dirent/dirent.h4
-rw-r--r--sysdeps/generic/telldir.c8
-rw-r--r--sysdeps/mach/hurd/telldir.c4
-rw-r--r--sysdeps/unix/bsd/telldir.c10
-rw-r--r--sysdeps/unix/telldir.c4
6 files changed, 21 insertions, 15 deletions
diff --git a/ChangeLog b/ChangeLog
index 02085ad40c..02f2921abf 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 1999-08-17  Ulrich Drepper  <drepper@cygnus.com>
 
+	* dirent/dirent.h (telldir): Change return type to long int.
+	* sysdeps/generic/telldir.c: Likewise.
+	* sysdeps/mach/hurd/telldir.c: Likewise.
+	* sysdeps/unix/telldir.c: Likewise.
+	* sysdeps/unix/bsd/telldir.c: Likewise.  Fix locking problem.
+
 	* locale/weight.h: Set errno if an invalid character is found.
 
 1999-08-17  Andreas Jaeger  <aj@arthur.rhein-neckar.de>
diff --git a/dirent/dirent.h b/dirent/dirent.h
index 375d66ef30..472b4804af 100644
--- a/dirent/dirent.h
+++ b/dirent/dirent.h
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991,92,93,94,95,96,97,98 Free Software Foundation, Inc.
+/* Copyright (C) 1991,92,93,94,95,96,97,98,99 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
@@ -174,7 +174,7 @@ extern void rewinddir __P ((DIR *__dirp));
 extern void seekdir __P ((DIR *__dirp, __off_t __pos));
 
 /* Return the current position of DIRP.  */
-extern __off_t telldir __P ((DIR *__dirp));
+extern long int telldir __P ((DIR *__dirp));
 #endif
 
 #if defined __USE_BSD || defined __USE_MISC
diff --git a/sysdeps/generic/telldir.c b/sysdeps/generic/telldir.c
index 3400829cb7..3a00bd836b 100644
--- a/sysdeps/generic/telldir.c
+++ b/sysdeps/generic/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 1999 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
@@ -22,18 +22,18 @@
 #include <dirent.h>
 
 /* Return the current position of DIRP.  */
-off_t
+long int
 telldir (dirp)
      DIR *dirp;
 {
   if (dirp == NULL)
     {
       __set_errno (EINVAL);
-      return -1;
+      return -1l;
     }
 
   __set_errno (ENOSYS);
-  return (off_t) -1;
+  return -1l;
 }
 
 
diff --git a/sysdeps/mach/hurd/telldir.c b/sysdeps/mach/hurd/telldir.c
index 0063ddf688..d2ffe03650 100644
--- a/sysdeps/mach/hurd/telldir.c
+++ b/sysdeps/mach/hurd/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1993, 1994, 1995, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1993, 1994, 1995, 1997, 1999 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
@@ -25,7 +25,7 @@
 
 /* Return the current position of DIRP.  */
 /* XXX should be __telldir ? */
-off_t
+long int
 telldir (dirp)
      DIR *dirp;
 {
diff --git a/sysdeps/unix/bsd/telldir.c b/sysdeps/unix/bsd/telldir.c
index 29ef72c41e..4ce508c718 100644
--- a/sysdeps/unix/bsd/telldir.c
+++ b/sysdeps/unix/bsd/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1994, 1995, 1996, 1997, 1999 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
@@ -39,18 +39,18 @@ __libc_lock_define_initialized(static, lock) /* Locks above data.  */
 
 
 /* Return the current position of DIRP.  */
-off_t
+long int
 telldir (dirp)
      DIR *dirp;
 {
   struct record *new;
   off_t pos;
 
-  __libc_lock_lock (lock);
-
   new = malloc (sizeof *new);
   if (new == NULL)
-    return (off_t) -1;
+    return -1l;
+
+  __libc_lock_lock (lock);
 
   new->pos = dirp->filepos;
   new->offset = dirp->offset;
diff --git a/sysdeps/unix/telldir.c b/sysdeps/unix/telldir.c
index f0ad95fd7c..b1c7952c05 100644
--- a/sysdeps/unix/telldir.c
+++ b/sysdeps/unix/telldir.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1995, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 1995, 1996, 1997, 1999 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
@@ -21,7 +21,7 @@
 #include <dirstream.h>
 
 /* Return the current position of DIRP.  */
-off_t
+long int
 telldir (DIR *dirp)
 {
   return dirp->filepos;