summaryrefslogtreecommitdiff
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
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.
-rw-r--r--atari/settings.c2
-rw-r--r--content/fetchers/about.c2
-rw-r--r--content/fetchers/file.c2
-rw-r--r--content/fetchers/resource.c3
-rw-r--r--javascript/fetcher.c1
-rw-r--r--utils/config.h5
-rw-r--r--utils/dirent.h45
-rw-r--r--utils/filename.c3
-rw-r--r--utils/utils.c5
-rw-r--r--windows/main.c1
10 files changed, 56 insertions, 13 deletions
diff --git a/atari/settings.c b/atari/settings.c
index e921da247..0b4c5f747 100644
--- a/atari/settings.c
+++ b/atari/settings.c
@@ -19,7 +19,6 @@
#include <sys/types.h>
#include <sys/stat.h>
-#include <dirent.h>
#include <fcntl.h>
#include <time.h>
#include <limits.h>
@@ -29,6 +28,7 @@
#include <cflib.h>
#include <gem.h>
+#include "utils/dirent.h"
#include "utils/nsoption.h"
#include "utils/log.h"
#include "desktop/plot_style.h"
diff --git a/content/fetchers/about.c b/content/fetchers/about.c
index eeea3d992..cf66a622b 100644
--- a/content/fetchers/about.c
+++ b/content/fetchers/about.c
@@ -37,7 +37,6 @@
#include <strings.h>
#include <time.h>
#include <stdio.h>
-#include <dirent.h>
#include <limits.h>
#include <stdarg.h>
@@ -46,6 +45,7 @@
#include "testament.h"
#include "utils/config.h"
+#include "utils/dirent.h"
#include "content/fetch.h"
#include "content/fetchers.h"
#include "content/fetchers/about.h"
diff --git a/content/fetchers/file.c b/content/fetchers/file.c
index c2f8bed2f..ff40386fe 100644
--- a/content/fetchers/file.c
+++ b/content/fetchers/file.c
@@ -36,7 +36,6 @@
#include <strings.h>
#include <time.h>
#include <stdio.h>
-#include <dirent.h>
#include <limits.h>
#include <stdarg.h>
@@ -46,6 +45,7 @@
#include <libwapcaplet/libwapcaplet.h>
+#include "utils/dirent.h"
#include "utils/corestrings.h"
#include "utils/nsoption.h"
#include "utils/errors.h"
diff --git a/content/fetchers/resource.c b/content/fetchers/resource.c
index 7a55b54ed..2db414d68 100644
--- a/content/fetchers/resource.c
+++ b/content/fetchers/resource.c
@@ -33,13 +33,12 @@
#include <strings.h>
#include <time.h>
#include <stdio.h>
-#include <dirent.h>
#include <limits.h>
#include <stdarg.h>
#include <libwapcaplet/libwapcaplet.h>
-#include "utils/config.h"
+#include "utils/dirent.h"
#include "utils/errors.h"
#include "utils/corestrings.h"
#include "utils/nsoption.h"
diff --git a/javascript/fetcher.c b/javascript/fetcher.c
index de1ce66db..5bbe3dd9f 100644
--- a/javascript/fetcher.c
+++ b/javascript/fetcher.c
@@ -34,7 +34,6 @@
#include <strings.h>
#include <time.h>
#include <stdio.h>
-#include <dirent.h>
#include <limits.h>
#include <stdarg.h>
diff --git a/utils/config.h b/utils/config.h
index 8f05b23dc..ddd1c6e8e 100644
--- a/utils/config.h
+++ b/utils/config.h
@@ -20,7 +20,6 @@
#define _NETSURF_UTILS_CONFIG_H_
#include <stddef.h>
-#include <dirent.h>
/* Try to detect which features the target OS supports */
@@ -107,10 +106,6 @@ char *realpath(const char *path, char *resolved_path);
#define HAVE_SCANDIR
#if (defined(_WIN32))
#undef 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
/* This section toggles build options on and off.
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
diff --git a/utils/filename.c b/utils/filename.c
index 19ee03968..9c95901a1 100644
--- a/utils/filename.c
+++ b/utils/filename.c
@@ -24,7 +24,6 @@
#include <assert.h>
#include <sys/types.h>
-#include <dirent.h>
#include <stdbool.h>
#include <string.h>
#include <stdio.h>
@@ -33,7 +32,7 @@
#include <sys/stat.h>
#include <unistd.h>
-#include "utils/config.h"
+#include "utils/dirent.h"
#include "utils/filename.h"
#include "utils/log.h"
#include "utils/utils.h"
diff --git a/utils/utils.c b/utils/utils.c
index 53c0fbe38..a332f88f7 100644
--- a/utils/utils.c
+++ b/utils/utils.c
@@ -38,7 +38,9 @@
#include "utils/messages.h"
#include "utils/utf8.h"
#include "utils/time.h"
+#include "utils/sys_time.h"
#include "utils/inet.h"
+#include "utils/dirent.h"
#include "utils/utils.h"
/* exported interface documented in utils/utils.h */
@@ -399,11 +401,14 @@ int dir_sort_alpha(const struct dirent **d1, const struct dirent **d2)
#ifndef HAVE_SCANDIR
+
+/* exported function documented in utils/dirent.h */
int alphasort(const struct dirent **d1, const struct dirent **d2)
{
return strcasecmp((*d1)->d_name, (*d2)->d_name);
}
+/* exported function documented in utils/dirent.h */
int scandir(const char *dir, struct dirent ***namelist,
int (*sel)(const struct dirent *),
int (*compar)(const struct dirent **, const struct dirent **))
diff --git a/windows/main.c b/windows/main.c
index 736199cd9..dfb3ad107 100644
--- a/windows/main.c
+++ b/windows/main.c
@@ -21,6 +21,7 @@
#include <limits.h>
#include <stdbool.h>
#include <windows.h>
+#include <io.h>
#include "utils/utils.h"
#include "utils/log.h"