From 62a7587586070bbb78ac09c72e10da76be897c11 Mon Sep 17 00:00:00 2001 From: glx Date: Sat, 15 Mar 2008 21:20:40 +0000 Subject: (svn r12373) -Fix [FS#1849]: win32 music driver fails if path is too long (128 chars is too much for mci it seems), so retry using the short path name (8.3 style) if available --- src/music/win32_m.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/music') diff --git a/src/music/win32_m.cpp b/src/music/win32_m.cpp index 8ec6756c4..8ad964977 100644 --- a/src/music/win32_m.cpp +++ b/src/music/win32_m.cpp @@ -61,7 +61,12 @@ static bool MidiIntPlaySong(const char *filename) { MidiSendCommand(_T("close all")); - if (MidiSendCommand(_T("open \"%s\" type sequencer alias song"), OTTD2FS(filename)) != 0) return false; + if (MidiSendCommand(_T("open \"%s\" type sequencer alias song"), OTTD2FS(filename)) != 0) { + /* Let's try the "short name" */ + TCHAR buf[MAX_PATH]; + if (GetShortPathName(OTTD2FS(filename), buf, MAX_PATH) == 0) return false; + if (MidiSendCommand(_T("open \"%s\" type sequencer alias song"), buf) != 0) return false; + } return MidiSendCommand(_T("play song from 0")) == 0; } -- cgit v1.2.3-70-g09d2