As an experiment, use PBD::ScopedFileDescriptor in preference to 'ofstream' which doesn't support UTF8 (on Windows at least)
This change should ensure that our "been_here_before" file ('.a3' or whatever) will get created successfully - even for user paths with non-English characters in them. If this experiment works on all platforms, there are several other areas where we'll probably need something similar.
This commit is contained in:
parent
0b2af5b9b8
commit
03163154a2
|
@ -24,11 +24,15 @@
|
||||||
|
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
#include <fcntl.h>
|
||||||
|
|
||||||
|
#include <glib/gstdio.h>
|
||||||
|
|
||||||
#include <gtkmm/main.h>
|
#include <gtkmm/main.h>
|
||||||
#include <gtkmm/filechooser.h>
|
#include <gtkmm/filechooser.h>
|
||||||
|
|
||||||
#include "pbd/failed_constructor.h"
|
#include "pbd/failed_constructor.h"
|
||||||
|
#include "pbd/scoped_file_descriptor.h"
|
||||||
#include "pbd/file_utils.h"
|
#include "pbd/file_utils.h"
|
||||||
#include "pbd/replace_all.h"
|
#include "pbd/replace_all.h"
|
||||||
#include "pbd/whitespace.h"
|
#include "pbd/whitespace.h"
|
||||||
|
@ -126,7 +130,7 @@ ArdourStartup::required ()
|
||||||
if (Glib::file_test (ARDOUR::been_here_before_path (v), Glib::FILE_TEST_EXISTS)) {
|
if (Glib::file_test (ARDOUR::been_here_before_path (v), Glib::FILE_TEST_EXISTS)) {
|
||||||
if (v != current_version) {
|
if (v != current_version) {
|
||||||
/* older version exists, create the current one */
|
/* older version exists, create the current one */
|
||||||
ofstream fout (been_here_before_path (current_version).c_str());
|
PBD::ScopedFileDescriptor fout (g_open (been_here_before_path (current_version).c_str(), O_CREAT|O_TRUNC|O_RDWR, 0666));
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -418,7 +422,7 @@ ArdourStartup::on_apply ()
|
||||||
/* "touch" the been-here-before path now we've successfully
|
/* "touch" the been-here-before path now we've successfully
|
||||||
made it through the first time setup (at least)
|
made it through the first time setup (at least)
|
||||||
*/
|
*/
|
||||||
ofstream fout (been_here_before_path().c_str());
|
PBD::ScopedFileDescriptor fout (g_open (been_here_before_path ().c_str(), O_CREAT|O_TRUNC|O_RDWR, 0666));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user