From 9898746ef3732979bf30e9048021b6232ddf15ac Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 19 Nov 2003 17:27:16 +0000 Subject: * nix-env: a tool to manage user environments. * Replace all directory reading code by a generic readDirectory() function. --- src/libutil/archive.cc | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) (limited to 'src/libutil/archive.cc') diff --git a/src/libutil/archive.cc b/src/libutil/archive.cc index ed57df4c9f7b..f605e8b61954 100644 --- a/src/libutil/archive.cc +++ b/src/libutil/archive.cc @@ -51,23 +51,12 @@ static void dump(const string & path, DumpSink & sink); static void dumpEntries(const Path & path, DumpSink & sink) { - AutoCloseDir dir = opendir(path.c_str()); - if (!dir) throw SysError("opening directory " + path); + Strings names = readDirectory(path); + vector names2(names.begin(), names.end()); + sort(names2.begin(), names2.end()); - vector names; - - struct dirent * dirent; - while (errno = 0, dirent = readdir(dir)) { - string name = dirent->d_name; - if (name == "." || name == "..") continue; - names.push_back(name); - } - if (errno) throw SysError("reading directory " + path); - - sort(names.begin(), names.end()); - - for (vector::iterator it = names.begin(); - it != names.end(); it++) + for (vector::iterator it = names2.begin(); + it != names2.end(); it++) { writeString("entry", sink); writeString("(", sink); -- cgit 1.4.1