summaryrefslogtreecommitdiff
path: root/utils/dirent.h
diff options
context:
space:
mode:
authorVincent Sanders <vince@kyllikki.org>2016-04-19 11:21:06 +0100
committerVincent Sanders <vince@kyllikki.org>2016-04-19 11:21:06 +0100
commit1bc010665e53bdf226370ab12a7ae3f87250df4d (patch)
tree66bfbef6f89d97613bf9e32e1617d11fb1bff4b3 /utils/dirent.h
parent4f38963337cfa6170249898d11d45b329b2c186d (diff)
downloadnetsurf-1bc010665e53bdf226370ab12a7ae3f87250df4d.tar.gz
netsurf-1bc010665e53bdf226370ab12a7ae3f87250df4d.tar.bz2
Reduce unecessary use of directory entry headers
The config header was causing many source files to unecessarily include the dirent headers causing extra dependancies. This has been fixed by providing a utility dirent header that provides a common API across all platforms while removing the unecessary dirent header usage.
Diffstat (limited to 'utils/dirent.h')
-rw-r--r--utils/dirent.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/utils/dirent.h b/utils/dirent.h
new file mode 100644
index 000000000..a22e21ac3
--- /dev/null
+++ b/utils/dirent.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2016 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file directory traversal and entry
+ *
+ * This allows the obtaining of standard directory entry routines
+ * functions in a uniform way despite any oddities in headers and
+ * supported API between OS.
+ *
+ * \note This functionality was previously provided as a side effect of the
+ * utils config header include.
+ */
+
+#ifndef _NETSURF_UTILS_DIRENT_H_
+#define _NETSURF_UTILS_DIRENT_H_
+
+#include "utils/config.h"
+
+#include <dirent.h>
+
+#ifndef HAVE_SCANDIR
+
+int alphasort(const struct dirent **d1, const struct dirent **d2);
+int scandir(const char *dir, struct dirent ***namelist,
+ int (*sel)(const struct dirent *),
+ int (*compar)(const struct dirent **, const struct dirent **));
+#endif
+
+#endif