From f3428bccbd8b80598e8b49d88dee49e42d985a2c Mon Sep 17 00:00:00 2001
From: Thomas Goyne <plorkyeran@aegisub.org>
Date: Sun, 5 Jan 2014 08:10:08 -0800
Subject: [PATCH] Fix compilation with wx built with --enable-stl

--enable-stl replaces the implicit conversion to char/wchar_t* with one
to std::[w]string. This breaks conversions to boost::filesytem::path and
makes some ternaries ambiguous (which GCC helpfully reports as no
conversion existing rather than an ambiguous conversion).
---
 aegisub/src/base_grid.cpp          | 6 +++---
 aegisub/src/command/video.cpp      | 2 +-
 aegisub/src/dialog_attachments.cpp | 2 +-
 3 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/aegisub/src/base_grid.cpp b/aegisub/src/base_grid.cpp
index 9422bf962..4675ad585 100644
--- a/aegisub/src/base_grid.cpp
+++ b/aegisub/src/base_grid.cpp
@@ -570,9 +570,9 @@ void BaseGrid::GetRowStrings(int row, AssDialogue *line, bool *paint_columns, wx
 	if (paint_columns[4]) strings[4] = to_wx(line->Style);
 	if (paint_columns[5]) strings[5] = to_wx(line->Actor);
 	if (paint_columns[6]) strings[6] = to_wx(line->Effect);
-	if (paint_columns[7]) strings[7] = line->Margin[0] ? std::to_wstring(line->Margin[0]) : wxString();
-	if (paint_columns[8]) strings[8] = line->Margin[1] ? std::to_wstring(line->Margin[1]) : wxString();
-	if (paint_columns[9]) strings[9] = line->Margin[2] ? std::to_wstring(line->Margin[2]) : wxString();
+	if (paint_columns[7]) strings[7] = line->Margin[0] ? wxString(std::to_wstring(line->Margin[0])) : wxString();
+	if (paint_columns[8]) strings[8] = line->Margin[1] ? wxString(std::to_wstring(line->Margin[1])) : wxString();
+	if (paint_columns[9]) strings[9] = line->Margin[2] ? wxString(std::to_wstring(line->Margin[2])) : wxString();
 
 	if (paint_columns[10]) {
 		strings[10].clear();
diff --git a/aegisub/src/command/video.cpp b/aegisub/src/command/video.cpp
index 07715f5c9..0e4692ec2 100644
--- a/aegisub/src/command/video.cpp
+++ b/aegisub/src/command/video.cpp
@@ -472,7 +472,7 @@ static void save_snapshot(agi::Context *c, bool raw) {
 		// If where ever that is isn't defined, we can't save there
 		if ((basepath == "\\") || (basepath == "/")) {
 			// So save to the current user's home dir instead
-			basepath = wxGetHomeDir();
+			basepath = wxGetHomeDir().c_str();
 		}
 	}
 	// Actual fixed (possibly relative) path, decode it
diff --git a/aegisub/src/dialog_attachments.cpp b/aegisub/src/dialog_attachments.cpp
index 5465b39a3..2ff696e47 100644
--- a/aegisub/src/dialog_attachments.cpp
+++ b/aegisub/src/dialog_attachments.cpp
@@ -150,7 +150,7 @@ void DialogAttachments::OnExtract(wxCommandEvent &) {
 
 	// Multiple or single?
 	if (listView->GetNextSelected(i) != -1)
-		path = wxDirSelector(_("Select the path to save the files to:"), to_wx(OPT_GET("Path/Fonts Collector Destination")->GetString()));
+		path = wxDirSelector(_("Select the path to save the files to:"), to_wx(OPT_GET("Path/Fonts Collector Destination")->GetString())).c_str();
 	else {
 		path = SaveFileSelector(
 			_("Select the path to save the file to:"),
-- 
GitLab