/*
- Copyright (C) 2012 Paul Davis
+ Copyright (C) 2012 Paul Davis
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
#include "pbd/openuri.h"
#ifdef __APPLE__
+#include <curl/curl.h>
extern bool cocoa_open_url (const char*);
#endif
global_epa->restore ();
}
+ std::string s(uri);
+ while (s.find("\\") != std::string::npos)
+ s.replace(s.find("\\"), 1, "\\\\");
+ while (s.find("\"") != std::string::npos)
+ s.replace(s.find("\\"), 1, "\\\"");
+
std::string command = "xdg-open ";
- command += uri;
+ command += '"' + s + '"';
command += " &";
(void) system (command.c_str());
}
bool
-PBD::open_uri (const std::string& uri)
+PBD::open_uri (const std::string& uri)
{
return open_uri (uri.c_str());
}
+
+bool
+PBD::open_folder (const std::string& d)
+{
+#ifdef __APPLE__
+ CURL *curl = curl_easy_init ();
+ bool rv = false;
+ if (curl) {
+ char * e = curl_easy_escape (curl, d.c_str(), d.size());
+ std::string url = "file:///" + std::string(e);
+ rv = PBD::open_uri (url);
+ curl_free (e);
+ }
+ return rv;
+#else
+ return PBD::open_uri (d);
+#endif
+}