*** empty log message ***
[gnulib.git] / lib / savedir.c
index 4c07bff..5987319 100644 (file)
@@ -1,5 +1,5 @@
 /* savedir.c -- save the list of files in a directory in a string
-   Copyright (C) 1990, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1990, 1997, 1998, 1999 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
 /* Written by David MacKenzie <djm@gnu.ai.mit.edu>. */
 
-#ifdef HAVE_CONFIG_H
+#if HAVE_CONFIG_H
 # include <config.h>
 #endif
 
 #include <sys/types.h>
 
-#ifdef HAVE_UNISTD_H
+#if HAVE_UNISTD_H
 # include <unistd.h>
 #endif
 
@@ -62,7 +62,9 @@ char *realloc ();
 # define NULL 0
 #endif
 
+#ifndef stpcpy
 char *stpcpy ();
+#endif
 
 #include "savedir.h"
 
@@ -74,9 +76,7 @@ char *stpcpy ();
    Return NULL if DIR cannot be opened or if out of memory. */
 
 char *
-savedir (dir, name_size)
-     const char *dir;
-     unsigned int name_size;
+savedir (const char *dir, off_t name_size)
 {
   DIR *dirp;
   struct dirent *dp;
@@ -87,7 +87,7 @@ savedir (dir, name_size)
   if (dirp == NULL)
     return NULL;
 
-  name_space = (char *) malloc (name_size ? name_size : 1);
+  name_space = (char *) malloc (name_size);
   if (name_space == NULL)
     {
       closedir (dirp);
@@ -102,7 +102,7 @@ savedir (dir, name_size)
          || (dp->d_name[1] != '\0'
              && (dp->d_name[1] != '.' || dp->d_name[2] != '\0')))
        {
-         unsigned size_needed = (namep - name_space) + NAMLEN (dp) + 2;
+         off_t size_needed = (namep - name_space) + NAMLEN (dp) + 2;
 
          if (size_needed > name_size)
            {