summaryrefslogtreecommitdiff
path: root/src/parsersettings.cc
diff options
context:
space:
mode:
authordon bright <hugh.m.bright@gmail.com>2013-02-24 03:54:53 (GMT)
committerdon bright <hugh.m.bright@gmail.com>2013-02-24 03:54:53 (GMT)
commitca41979ee514f642c506e4f4d81461f19b587bf2 (patch)
treef31feb004d0b724d5240c8a227c7f0c886939a1b /src/parsersettings.cc
parenteff16283358217b43b310269a72e0cb47357a8b3 (diff)
parentabc9da96c89b337377ee62ac29ee54e4e7b0a514 (diff)
Merge branch 'master' of github.com:openscad/openscad into issue11_2
Conflicts: RELEASE_NOTES openscad.pro src/mainwin.cc
Diffstat (limited to 'src/parsersettings.cc')
-rw-r--r--src/parsersettings.cc23
1 files changed, 17 insertions, 6 deletions
diff --git a/src/parsersettings.cc b/src/parsersettings.cc
index 3dda132..54f9713 100644
--- a/src/parsersettings.cc
+++ b/src/parsersettings.cc
@@ -2,7 +2,9 @@
#include <boost/filesystem.hpp>
#include <boost/foreach.hpp>
#include "boosty.h"
+#include <boost/algorithm/string.hpp>
#include <qglobal.h> // Needed for Q_ defines - move the offending code somewhere else
+#include "CocoaUtils.h"
namespace fs = boost::filesystem;
@@ -28,15 +30,24 @@ std::string locate_file(const std::string &filename)
void parser_init(const std::string &applicationpath)
{
- // Add path from OPENSCADPATH before adding built-in paths
- const char *openscadpath = getenv("OPENSCADPATH");
- if (openscadpath) {
- add_librarydir(boosty::absolute(fs::path(openscadpath)).string());
+ // Add paths from OPENSCADPATH before adding built-in paths
+ const char *openscadpaths = getenv("OPENSCADPATH");
+ if (openscadpaths) {
+ std::string paths(openscadpaths);
+ typedef boost::split_iterator<std::string::iterator> string_split_iterator;
+ for (string_split_iterator it =
+ make_split_iterator(paths, first_finder(":", boost::is_iequal()));
+ it != string_split_iterator();
+ ++it) {
+ add_librarydir(boosty::absolute(fs::path(boost::copy_range<std::string>(*it))).string());
+ }
}
- // FIXME: Support specifying more than one path in OPENSCADPATH
// FIXME: Add ~/.openscad/libraries
- // FIXME: Add ~/Documents/OpenSCAD/libraries on Mac?
+#ifdef __APPLE__
+ fs::path docdir(CocoaUtils::documentsPath());
+ add_librarydir(boosty::stringy(docdir / "OpenSCAD" / "libraries"));
+#endif
std::string librarydir;
fs::path libdir(applicationpath);
contact: Jan Huwald // Impressum