projects
/
gnulib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
more lintian override tweaks
[gnulib.git]
/
lib
/
savedir.c
diff --git
a/lib/savedir.c
b/lib/savedir.c
index
455f320
..
6e9c66c
100644
(file)
--- a/
lib/savedir.c
+++ b/
lib/savedir.c
@@
-1,7
+1,7
@@
/* savedir.c -- save the list of files in a directory in a string
/* savedir.c -- save the list of files in a directory in a string
- Copyright (C) 1990, 1997
, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-
2006, 2009 Free Software
Foundation, Inc.
+ Copyright (C) 1990, 1997
-2001, 2003-2006, 2009-2014 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
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
@@
-44,11
+44,11
@@
/* Return a freshly allocated string containing the file names
in directory DIRP, separated by '\0' characters;
the end is marked by two '\0' characters in a row.
/* Return a freshly allocated string containing the file names
in directory DIRP, separated by '\0' characters;
the end is marked by two '\0' characters in a row.
- Return NULL (setting errno) if DIRP cannot be read
or closed
.
+ Return NULL (setting errno) if DIRP cannot be read.
If DIRP is NULL, return NULL without affecting errno. */
If DIRP is NULL, return NULL without affecting errno. */
-
static
char *
-s
avedirstream
(DIR *dirp)
+char *
+s
treamsavedir
(DIR *dirp)
{
char *name_space;
size_t allocated = NAME_SIZE_DEFAULT;
{
char *name_space;
size_t allocated = NAME_SIZE_DEFAULT;
@@
-96,8
+96,6
@@
savedirstream (DIR *dirp)
}
name_space[used] = '\0';
save_errno = errno;
}
name_space[used] = '\0';
save_errno = errno;
- if (closedir (dirp) != 0)
- save_errno = errno;
if (save_errno != 0)
{
free (name_space);
if (save_errno != 0)
{
free (name_space);
@@
-107,6
+105,22
@@
savedirstream (DIR *dirp)
return name_space;
}
return name_space;
}
+/* Like streamsavedir (DIRP), except also close DIRP. */
+
+static char *
+savedirstream (DIR *dirp)
+{
+ char *name_space = streamsavedir (dirp);
+ if (dirp && closedir (dirp) != 0)
+ {
+ int save_errno = errno;
+ free (name_space);
+ errno = save_errno;
+ return NULL;
+ }
+ return name_space;
+}
+
/* Return a freshly allocated string containing the file names
in directory DIR, separated by '\0' characters;
the end is marked by two '\0' characters in a row.
/* Return a freshly allocated string containing the file names
in directory DIR, separated by '\0' characters;
the end is marked by two '\0' characters in a row.
@@
-123,6
+137,7
@@
savedir (char const *dir)
the end is marked by two '\0' characters in a row.
Return NULL (setting errno) if FD cannot be read or closed. */
the end is marked by two '\0' characters in a row.
Return NULL (setting errno) if FD cannot be read or closed. */
+/* deprecated */
char *
fdsavedir (int fd)
{
char *
fdsavedir (int fd)
{