diff options
Diffstat (limited to 'gnuradio-runtime/lib')
-rw-r--r-- | gnuradio-runtime/lib/prefs.cc | 13 | ||||
-rw-r--r-- | gnuradio-runtime/lib/sys_paths.cc | 9 | ||||
-rw-r--r-- | gnuradio-runtime/lib/vmcircbuf_prefs.cc | 19 |
3 files changed, 24 insertions, 17 deletions
diff --git a/gnuradio-runtime/lib/prefs.cc b/gnuradio-runtime/lib/prefs.cc index b303ffdaf9..7fd38ef6d7 100644 --- a/gnuradio-runtime/lib/prefs.cc +++ b/gnuradio-runtime/lib/prefs.cc @@ -77,10 +77,9 @@ namespace gr { // Find if there is a ~/.gnuradio/config.conf file and add this to // the end of the file list to override any preferences in the // installed path config files. - fs::path homedir = fs::path(gr::appdata_path()); - homedir = homedir/".gnuradio/config.conf"; - if(fs::exists(homedir)) { - fnames.push_back(homedir.string()); + fs::path userconf = fs::path(gr::userconf_path()) / "config.conf"; + if(fs::exists(userconf)) { + fnames.push_back(userconf.string()); } return fnames; @@ -222,10 +221,8 @@ namespace gr { prefs::save() { std::string conf = to_string(); - - fs::path homedir = fs::path(gr::appdata_path()); - homedir = homedir/".gnuradio/config.conf"; - fs::ofstream fout(homedir); + fs::path userconf = fs::path(gr::userconf_path()) / "config.conf"; + fs::ofstream fout(userconf); fout << conf; fout.close(); } diff --git a/gnuradio-runtime/lib/sys_paths.cc b/gnuradio-runtime/lib/sys_paths.cc index 64853c68b2..3bf6697bac 100644 --- a/gnuradio-runtime/lib/sys_paths.cc +++ b/gnuradio-runtime/lib/sys_paths.cc @@ -23,6 +23,8 @@ #include <cstdlib> //getenv #include <cstdio> //P_tmpdir (maybe) +#include <boost/filesystem/path.hpp> + namespace gr { const char *tmp_path() @@ -62,4 +64,11 @@ namespace gr { return tmp_path(); } + const char *userconf_path() + { + boost::filesystem::path p(appdata_path()); + p = p / ".gnuradio"; + return p.c_str(); + } + } /* namespace gr */ diff --git a/gnuradio-runtime/lib/vmcircbuf_prefs.cc b/gnuradio-runtime/lib/vmcircbuf_prefs.cc index a786b8a881..4cb09f69f8 100644 --- a/gnuradio-runtime/lib/vmcircbuf_prefs.cc +++ b/gnuradio-runtime/lib/vmcircbuf_prefs.cc @@ -45,12 +45,13 @@ namespace gr { * The simplest thing that could possibly work: * the key is the filename; the value is the file contents. */ - static const char * + + static std::string pathname(const char *key) { static fs::path path; - path = fs::path(gr::appdata_path()) / ".gnuradio" / "prefs" / key; - return path.string().c_str(); + path = fs::path(gr::appdata_path()) / ".gnuradio" / "prefs" / key; + return path.string(); } static void @@ -70,9 +71,9 @@ namespace gr { { gr::thread::scoped_lock guard(s_vm_mutex); - FILE *fp = fopen(pathname (key), "r"); + FILE *fp = fopen(pathname (key).c_str(), "r"); if(fp == 0) { - perror(pathname (key)); + perror(pathname (key).c_str()); return 0; } @@ -80,7 +81,7 @@ namespace gr { value[ret] = '\0'; if(ret == 0 && !feof(fp)) { if(ferror(fp) != 0) { - perror(pathname (key)); + perror(pathname (key).c_str()); fclose(fp); return -1; } @@ -96,16 +97,16 @@ namespace gr { ensure_dir_path(); - FILE *fp = fopen(pathname(key), "w"); + FILE *fp = fopen(pathname(key).c_str(), "w"); if(fp == 0) { - perror(pathname (key)); + perror(pathname (key).c_str()); return; } size_t ret = fwrite(value, 1, strlen(value), fp); if(ret == 0) { if(ferror(fp) != 0) { - perror(pathname (key)); + perror(pathname (key).c_str()); fclose(fp); return; } |