diff --git a/doc/Changelog.html b/doc/Changelog.html
index 8c05fdc3..493ae154 100644
--- a/doc/Changelog.html
+++ b/doc/Changelog.html
@@ -16,6 +16,11 @@ a:visited { color: #0000EE; }
LameXP - Version History
+Changes between v4.02 and v4.03:
+- Fixed Cue Sheet import for tracks with certain characters in the title
+
- Workaround for malicious "anti-virus" programs that prevent innocent applications from functioning
+
+
Changes between v4.01 and v4.02:
- Upgraded build environment to Microsoft Visual Studio 2010
- Dropping support for Windows 2000 and Windows XP RTM. Windows XP needs (at least) Service-Pack 2 now!
diff --git a/src/Config.h b/src/Config.h
index a8606c60..17fd9eb1 100644
--- a/src/Config.h
+++ b/src/Config.h
@@ -29,8 +29,8 @@
#define VER_LAMEXP_MINOR_HI 0
#define VER_LAMEXP_MINOR_LO 3
#define VER_LAMEXP_TYPE Alpha
-#define VER_LAMEXP_PATCH 1
-#define VER_LAMEXP_BUILD 589
+#define VER_LAMEXP_PATCH 2
+#define VER_LAMEXP_BUILD 592
///////////////////////////////////////////////////////////////////////////////
// Tools versions
diff --git a/src/Thread_CueSplitter.cpp b/src/Thread_CueSplitter.cpp
index 85ef3f60..0d2f7e51 100644
--- a/src/Thread_CueSplitter.cpp
+++ b/src/Thread_CueSplitter.cpp
@@ -39,6 +39,25 @@
#include
#include
+////////////////////////////////////////////////////////////
+// Helper function
+////////////////////////////////////////////////////////////
+
+static QString clean(const QString &str)
+{
+ QString fixedStr(str);
+ fixedStr.replace("\\", "-");
+ fixedStr.replace(" / ", ", ");
+ fixedStr.replace("/", ",");
+ fixedStr.replace(":", "-");
+ fixedStr.replace("*", "x");
+ fixedStr.replace("?", "");
+ fixedStr.replace("<", "[");
+ fixedStr.replace(">", "]");
+ fixedStr.replace("|", "!");
+ return fixedStr;
+}
+
////////////////////////////////////////////////////////////
// Constructor
////////////////////////////////////////////////////////////
@@ -191,10 +210,10 @@ void CueSplitter::run()
//Generate output file name
QString trackTitle = trackMetaInfo.fileName().isEmpty() ? QString().sprintf("Track %02d", trackNo) : trackMetaInfo.fileName();
- QString outputFile = QString("%1/[%2] %3 - %4.wav").arg(m_outputDir, QString().sprintf("%02d", trackNo), m_baseName, trackTitle);
+ QString outputFile = QString("%1/[%2] %3 - %4.wav").arg(m_outputDir, QString().sprintf("%02d", trackNo), clean(m_baseName), clean(trackTitle));
for(int n = 2; QFileInfo(outputFile).exists(); n++)
{
- outputFile = QString("%1/[%2] %3 - %4 (%5).wav").arg(m_outputDir, QString().sprintf("%02d", trackNo), m_baseName, trackTitle, QString::number(n));
+ outputFile = QString("%1/[%2] %3 - %4 (%5).wav").arg(m_outputDir, QString().sprintf("%02d", trackNo), clean(m_baseName), clean(trackTitle), QString::number(n));
}
//Call split function