From 2e098756c1717e9e0e735ee7ea77cbaeba463550 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi <ebassi@gnome.org> Date: Mon, 14 May 2007 15:35:37 +0000 Subject: Add check for GNU extensions to ftw()/nftw(). 2007-05-14 Emmanuele Bassi <ebassi@gnome.org> * configure.in: Add check for GNU extensions to ftw()/nftw(). * gtk/gtksearchenginesimple.c: Fix compilation on systems with only POSIX-compliant ftw(). (#435797, based on a patch by Richard Hult) svn path=/trunk/; revision=17844 --- gtk/gtksearchenginesimple.c | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) (limited to 'gtk/gtksearchenginesimple.c') diff --git a/gtk/gtksearchenginesimple.c b/gtk/gtksearchenginesimple.c index 26768488ee..ede5e85214 100644 --- a/gtk/gtksearchenginesimple.c +++ b/gtk/gtksearchenginesimple.c @@ -20,10 +20,17 @@ * Based on nautilus-search-engine-simple.c */ +#include <config.h> + +#ifdef HAVE_GNU_FTW #define _XOPEN_SOURCE 500 #define _GNU_SOURCE +#endif + +#ifdef HAVE_FTW_H +#include <ftw.h> +#endif -#include <config.h> #include "gtksearchenginesimple.h" #define XDG_PREFIX _gtk_xdg @@ -31,10 +38,6 @@ #include <string.h> -#ifdef HAVE_FTW_H -#include <ftw.h> -#endif - #include <glib/gstrfuncs.h> #define BATCH_SIZE 500 @@ -205,9 +208,13 @@ search_visit_func (const char *fpath, gboolean is_hidden; data = (SearchThreadData*)g_static_private_get (&search_thread_data); - + if (data->cancelled) +#ifdef HAVE_GNU_FTW return FTW_STOP; +#else + return 1; +#endif /* HAVE_GNU_FTW */ name = strrchr (fpath, '/'); if (name) @@ -262,10 +269,14 @@ search_visit_func (const char *fpath, if (data->n_processed_files > BATCH_SIZE) send_batch (data); +#ifdef HAVE_GNU_FTW if (is_hidden) return FTW_SKIP_SUBTREE; else return FTW_CONTINUE; +#else + return 0; +#endif /* HAVE_GNU_FTW */ } #endif /* HAVE_FTW_H */ @@ -279,12 +290,16 @@ search_thread_func (gpointer user_data) g_static_private_set (&search_thread_data, data, NULL); - nftw (data->path, search_visit_func, 20, FTW_ACTIONRETVAL | FTW_PHYS); + nftw (data->path, search_visit_func, 20, +#ifdef HAVE_GNU_FTW + FTW_ACTIONRETVAL | +#endif + FTW_PHYS); send_batch (data); g_idle_add (search_thread_done_idle, data); -#endif +#endif /* HAVE_FTW_H */ return NULL; } -- cgit v1.2.1