From 10579dcf486292c3def2cc19cbcde8f8dac53107 Mon Sep 17 00:00:00 2001
From: Thomas Goyne <plorkyeran@aegisub.org>
Date: Wed, 21 Nov 2012 06:26:23 -0800
Subject: [PATCH] Read strings from Matroska as UTF-8

Strings in Matroska files are all either UTF-8 or a UTF-8 subset, not
whatever the current locale happens to be.
---
 aegisub/src/mkv_wrap.cpp | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/aegisub/src/mkv_wrap.cpp b/aegisub/src/mkv_wrap.cpp
index c9200775f..da10f23cc 100644
--- a/aegisub/src/mkv_wrap.cpp
+++ b/aegisub/src/mkv_wrap.cpp
@@ -161,9 +161,9 @@ void MatroskaWrapper::GetSubtitles(wxString const& filename, AssFile *target) {
 
 			// Subtitle track
 			if (trackInfo->Type == 0x11) {
-				wxString CodecID = wxString(trackInfo->CodecID,*wxConvCurrent);
-				wxString TrackName = wxString(trackInfo->Name,*wxConvCurrent);
-				wxString TrackLanguage = wxString(trackInfo->Language,*wxConvCurrent);
+				wxString CodecID = wxString::FromUTF8(trackInfo->CodecID);
+				wxString TrackName = wxString::FromUTF8(trackInfo->Name);
+				wxString TrackLanguage = wxString::FromUTF8(trackInfo->Language);
 
 				// Known subtitle format
 				if (CodecID == "S_TEXT/SSA" || CodecID == "S_TEXT/ASS" || CodecID == "S_TEXT/UTF8") {
@@ -185,7 +185,7 @@ void MatroskaWrapper::GetSubtitles(wxString const& filename, AssFile *target) {
 		else {
 			int choice = wxGetSingleChoiceIndex(_("Choose which track to read:"), _("Multiple subtitle tracks found"), tracksNames);
 			if (choice == -1)
-				throw agi::UserCancelException("cancelled");
+				throw agi::UserCancelException("canceled");
 
 			trackToRead = tracksFound[choice];
 		}
@@ -193,7 +193,7 @@ void MatroskaWrapper::GetSubtitles(wxString const& filename, AssFile *target) {
 		// Picked track
 		mkv_SetTrackMask(file, ~(1 << trackToRead));
 		trackInfo = mkv_GetTrackInfo(file,trackToRead);
-		wxString CodecID = wxString(trackInfo->CodecID,*wxConvCurrent);
+		wxString CodecID = wxString::FromUTF8(trackInfo->CodecID);
 		bool srt = CodecID == "S_TEXT/UTF8";
 		bool ssa = CodecID == "S_TEXT/SSA";
 
@@ -243,7 +243,7 @@ bool MatroskaWrapper::HasSubtitles(wxString const& filename) {
 			TrackInfo *trackInfo = mkv_GetTrackInfo(file, track);
 
 			if (trackInfo->Type == 0x11) {
-				wxString CodecID = wxString(trackInfo->CodecID, *wxConvCurrent);
+				wxString CodecID = wxString::FromUTF8(trackInfo->CodecID);
 				if (CodecID == "S_TEXT/SSA" || CodecID == "S_TEXT/ASS" || CodecID == "S_TEXT/UTF8") {
 					mkv_Close(file);
 					return true;
-- 
GitLab