#include <glib.h>
#include <pangomm/init.h>
#include <boost/algorithm/string.hpp>
+#include <boost/range/algorithm/replace_if.hpp>
#include <boost/thread.hpp>
#include <boost/filesystem.hpp>
#ifdef DCPOMATIC_WINDOWS
string
tidy_for_filename (string f)
{
- string t;
- for (size_t i = 0; i < f.length(); ++i) {
- if (isalnum (f[i]) || f[i] == '_' || f[i] == '-') {
- t += f[i];
- } else {
- t += '_';
- }
- }
-
- return t;
+ boost::replace_if (f, boost::is_any_of ("\\/:"), '_');
+ return f;
}
dcp::Size
BOOST_CHECK_EQUAL (seconds_to_approximate_hms (3600 + 40 * 60), "1h 40m");
BOOST_CHECK_EQUAL (seconds_to_approximate_hms (13 * 3600 + 40 * 60), "14h");
}
+
+BOOST_AUTO_TEST_CASE (tidy_for_filename_test)
+{
+ BOOST_CHECK_EQUAL (tidy_for_filename ("fish\\chips"), "fish_chips");
+ BOOST_CHECK_EQUAL (tidy_for_filename ("fish:chips\\"), "fish_chips_");
+ BOOST_CHECK_EQUAL (tidy_for_filename ("fish/chips\\"), "fish_chips_");
+ BOOST_CHECK_EQUAL (tidy_for_filename ("abcdefghï"), "abcdefghï");
+}