diff options
Diffstat (limited to 'pango/querymodules.c')
-rw-r--r-- | pango/querymodules.c | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/pango/querymodules.c b/pango/querymodules.c index 5b86d53a..c8a8b4e9 100644 --- a/pango/querymodules.c +++ b/pango/querymodules.c @@ -22,9 +22,6 @@ #include "config.h" #include <glib.h> -#ifdef HAVE_DIRENT_H -#include <dirent.h> -#endif #include <gmodule.h> #include "pango-break.h" #include "pango-context.h" @@ -40,13 +37,6 @@ #ifdef G_OS_WIN32 #define SOEXT ".dll" -#ifndef PATH_MAX -#include <stdlib.h> -#define PATH_MAX _MAX_PATH -#endif /* PATH_MAX */ -#include <direct.h> /* for getcwd() with MSVC */ -#include <io.h> /* for getcwd() with mingw */ -#define getcwd _getcwd #else #define SOEXT ".so" #endif @@ -126,7 +116,7 @@ query_module (const char *dir, const char *name) int main (int argc, char **argv) { - char cwd[PATH_MAX]; + char *cwd; int i; char *path; @@ -151,28 +141,30 @@ int main (int argc, char **argv) for (i=0; dirs[i]; i++) { - DIR *dir = opendir (dirs[i]); + GDir *dir = g_dir_open (dirs[i], 0, NULL); if (dir) { - struct dirent *dent; + char *dent; - while ((dent = readdir (dir))) + while ((dent = g_dir_read_name (dir))) { - int len = strlen (dent->d_name); - if (len > 3 && strcmp (dent->d_name + len - strlen (SOEXT), SOEXT) == 0) - query_module (dirs[i], dent->d_name); + int len = strlen (dent); + if (len > 3 && strcmp (dent + len - strlen (SOEXT), SOEXT) == 0) + query_module (dirs[i], dent); } - closedir (dir); + g_dir_close (dir); } } } else { - getcwd (cwd, PATH_MAX); + cwd = g_get_current_dir (); for (i=1; i<argc; i++) query_module (cwd, argv[i]); + + g_free (cwd); } return 0; |