remove hard-coded use of '/' in pathscanner code as dir separator (use glib instead)
authorPaul Davis <paul@linuxaudiosystems.com>
Mon, 28 Feb 2011 16:35:43 +0000 (16:35 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Mon, 28 Feb 2011 16:35:43 +0000 (16:35 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8990 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/pbd/pathscanner.cc

index 35182042d32aa53e01ee0f31de420c41b5ec1f66..8f57726c7f65206b42ea3bbd65507a59a0496c04 100644 (file)
@@ -26,6 +26,8 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 
+#include <glibmm/miscutils.h>
+
 #include "pbd/error.h"
 #include "pbd/pathscanner.h"
 #include "pbd/stl_delete.h"
@@ -90,7 +92,7 @@ PathScanner::run_scan_internal (vector<string *> *result,
        struct dirent *finfo;
        char *pathcopy = strdup (dirpath.c_str());
        char *thisdir;
-       char fullpath[PATH_MAX+1];
+       string fullpath;
        string search_str;
        string *newstr;
        long nfound = 0;
@@ -117,12 +119,11 @@ PathScanner::run_scan_internal (vector<string *> *result,
                            (finfo->d_name[0] == '.' && finfo->d_name[1] == '.' && finfo->d_name[2] == '\0')) {
                                continue;
                        }
-
-                       snprintf (fullpath, sizeof(fullpath), "%s/%s",
-                                 thisdir, finfo->d_name);
+                        
+                        fullpath = Glib::build_filename (thisdir, finfo->d_name);
 
                        struct stat statbuf;
-                       if (stat (fullpath, &statbuf) < 0) {
+                       if (stat (fullpath.c_str(), &statbuf) < 0) {
                                continue;
                        }
 
@@ -147,7 +148,7 @@ PathScanner::run_scan_internal (vector<string *> *result,
                                                continue;
                                        }
                                }
-                               
+
                                if (return_fullpath) {
                                        newstr = new string (fullpath);
                                } else {