summaryrefslogtreecommitdiffstats
path: root/kioslave/file
diff options
context:
space:
mode:
Diffstat (limited to 'kioslave/file')
-rw-r--r--kioslave/file/Makefile.am2
-rw-r--r--kioslave/file/file.cc8
2 files changed, 9 insertions, 1 deletions
diff --git a/kioslave/file/Makefile.am b/kioslave/file/Makefile.am
index 0dd7a760f..7cafcb339 100644
--- a/kioslave/file/Makefile.am
+++ b/kioslave/file/Makefile.am
@@ -9,7 +9,7 @@ INCLUDES = $(all_includes)
kde_module_LTLIBRARIES = kio_file.la
kio_file_la_SOURCES = file.cc
-kio_file_la_LIBADD = $(LIB_KIO)
+kio_file_la_LIBADD = $(LIB_KIO) $(LIB_QT) $(LIB_KDECORE) $(ACL_LIBS)
kio_file_la_LDFLAGS = $(all_libraries) -module $(KDE_PLUGIN)
noinst_HEADERS = file.h
diff --git a/kioslave/file/file.cc b/kioslave/file/file.cc
index 718d42125..c24413cc7 100644
--- a/kioslave/file/file.cc
+++ b/kioslave/file/file.cc
@@ -1234,8 +1234,13 @@ void FileProtocol::listDir( const KURL& url)
directories we keep as active directory. And
as the slave runs in the background, it's hard
to see for the user what the problem would be */
+#if !defined(PATH_MAX) && defined(__GLIBC__)
+ char *path_buffer;
+ path_buffer = getcwd(NULL, 0);
+#else
char path_buffer[PATH_MAX];
(void) getcwd(path_buffer, PATH_MAX - 1);
+#endif
if ( chdir( _path.data() ) ) {
if (errno == EACCES)
error(ERR_ACCESS_DENIED, _path);
@@ -1261,6 +1266,9 @@ void FileProtocol::listDir( const KURL& url)
kdDebug(7101) << "============= COMPLETED LIST ============" << endl;
chdir(path_buffer);
+#if !defined(PATH_MAX) && defined(__GLIBC__)
+ free(path_buffer);
+#endif
finished();
}