diff --git a/aegisub/build/freetype2/freetype.vcxproj b/aegisub/build/freetype2/freetype.vcxproj
index 08e5a27b5..262bf2568 100644
--- a/aegisub/build/freetype2/freetype.vcxproj
+++ b/aegisub/build/freetype2/freetype.vcxproj
@@ -30,22 +30,18 @@
-
-
- freetype\
+
+
+ config\
-
- freetype\config\
+
+ internal\
-
- freetype\internal\
-
-
- freetype\internal\services\
+
+ internal\services\
-
diff --git a/aegisub/build/freetype2/freetype.vcxproj.filters b/aegisub/build/freetype2/freetype.vcxproj.filters
index 74967e6a0..011706d51 100644
--- a/aegisub/build/freetype2/freetype.vcxproj.filters
+++ b/aegisub/build/freetype2/freetype.vcxproj.filters
@@ -14,9 +14,6 @@
-
- Source Files
-
Source Files
diff --git a/aegisub/libaegisub/common/parser.cpp b/aegisub/libaegisub/common/parser.cpp
index b4b51b5f2..3d44a0d1a 100644
--- a/aegisub/libaegisub/common/parser.cpp
+++ b/aegisub/libaegisub/common/parser.cpp
@@ -27,7 +27,7 @@
#include
#include
#include
-#include
+#include
BOOST_FUSION_ADAPT_STRUCT(
agi::Color,
diff --git a/aegisub/src/audio_timing_dialogue.cpp b/aegisub/src/audio_timing_dialogue.cpp
index 748d1ac3b..123f711c4 100644
--- a/aegisub/src/audio_timing_dialogue.cpp
+++ b/aegisub/src/audio_timing_dialogue.cpp
@@ -751,7 +751,7 @@ void AudioTimingControllerDialogue::RegenerateInactiveLines()
if (mode == 2)
{
- auto next = find_if(++current_line, context->ass->Events.end(), predicate);
+ auto next = std::find_if(++current_line, context->ass->Events.end(), predicate);
if (next != context->ass->Events.end())
AddInactiveLine(sel, &*next);
}
diff --git a/aegisub/src/command/edit.cpp b/aegisub/src/command/edit.cpp
index ffb6663f5..49e586640 100644
--- a/aegisub/src/command/edit.cpp
+++ b/aegisub/src/command/edit.cpp
@@ -602,11 +602,11 @@ static void duplicate_lines(agi::Context *c, int shift) {
auto end = c->ass->Events.end();
while (start != end) {
// Find the first line in the selection
- start = find_if(start, end, in_selection);
+ start = std::find_if(start, end, in_selection);
if (start == end) break;
// And the last line in this contiguous selection
- auto insert_pos = find_if_not(start, end, in_selection);
+ auto insert_pos = std::find_if_not(start, end, in_selection);
auto last = std::prev(insert_pos);
// Duplicate each of the selected lines, inserting them in a block
diff --git a/aegisub/src/dialog_timing_processor.cpp b/aegisub/src/dialog_timing_processor.cpp
index be888e136..13c68ed81 100644
--- a/aegisub/src/dialog_timing_processor.cpp
+++ b/aegisub/src/dialog_timing_processor.cpp
@@ -315,7 +315,7 @@ std::vector DialogTimingProcessor::SortDialogues() {
// Check if rows are valid
for (auto diag : sorted) {
if (diag->Start > diag->End) {
- int line = distance(c->ass->Events.begin(), c->ass->Events.iterator_to(*diag));
+ int line = std::distance(c->ass->Events.begin(), c->ass->Events.iterator_to(*diag));
wxMessageBox(
wxString::Format(_("One of the lines in the file (%i) has negative duration. Aborting."), line),
_("Invalid script"),
diff --git a/aegisub/src/dialog_translation.cpp b/aegisub/src/dialog_translation.cpp
index 64652e54f..62920a24e 100644
--- a/aegisub/src/dialog_translation.cpp
+++ b/aegisub/src/dialog_translation.cpp
@@ -67,7 +67,7 @@ DialogTranslation::DialogTranslation(agi::Context *c)
, active_line_connection(c->selectionController->AddActiveLineListener(&DialogTranslation::OnActiveLineChanged, this))
, active_line(c->selectionController->GetActiveLine())
, line_count(c->ass->Events.size())
-, line_number(distance(c->ass->Events.begin(), c->ass->Events.iterator_to(*active_line)) + 1)
+, line_number(std::distance(c->ass->Events.begin(), c->ass->Events.iterator_to(*active_line)) + 1)
{
SetIcon(GETICON(translation_toolbutton_16));
@@ -175,7 +175,7 @@ void DialogTranslation::OnActiveLineChanged(AssDialogue *new_line) {
active_line = new_line;
blocks = active_line->ParseTags();
cur_block = 0;
- line_number = distance(c->ass->Events.begin(), c->ass->Events.iterator_to(*new_line)) + 1;
+ line_number = std::distance(c->ass->Events.begin(), c->ass->Events.iterator_to(*new_line)) + 1;
if (bad_block(blocks[cur_block]) && !NextBlock()) {
wxMessageBox(_("No more lines to translate."));
diff --git a/aegisub/src/threaded_frame_source.cpp b/aegisub/src/threaded_frame_source.cpp
index b1075a38c..1334edaae 100644
--- a/aegisub/src/threaded_frame_source.cpp
+++ b/aegisub/src/threaded_frame_source.cpp
@@ -149,7 +149,7 @@ void ThreadedFrameSource::UpdateSubtitles(const AssFile *new_subs, std::setEvents.begin();
for (auto& update : changed) {
- advance(it, update.first - i);
+ std::advance(it, update.first - i);
i = update.first;
subs->Events.insert(it, *update.second);
delete &*it--;
diff --git a/deps/boost b/deps/boost
index f866ff6fe..614aac8fe 160000
--- a/deps/boost
+++ b/deps/boost
@@ -1 +1 @@
-Subproject commit f866ff6fea187a5c9ad80895f078dec577cdc304
+Subproject commit 614aac8fef2a0551610f72e5c4a61085c8c06e35
diff --git a/deps/ffmpeg b/deps/ffmpeg
index f29cdbe1b..8dfd0e62f 160000
--- a/deps/ffmpeg
+++ b/deps/ffmpeg
@@ -1 +1 @@
-Subproject commit f29cdbe1b59a0d997733b507041e15ec68cef00c
+Subproject commit 8dfd0e62f5d32db66ebbe3e13144ee5720bad585
diff --git a/deps/freetype2 b/deps/freetype2
index 52381c14e..ed372b712 160000
--- a/deps/freetype2
+++ b/deps/freetype2
@@ -1 +1 @@
-Subproject commit 52381c14e3a30a5597060894d9f049420a2f3ac0
+Subproject commit ed372b712fa698da24c21746135f2c2c8d738c6e
diff --git a/deps/fribidi b/deps/fribidi
index c1d48ee98..77f7f6c0b 160000
--- a/deps/fribidi
+++ b/deps/fribidi
@@ -1 +1 @@
-Subproject commit c1d48ee98b3d254a6b943851665b83cdd76f6150
+Subproject commit 77f7f6c0bb16b89eac1e3b3d264f49b2ee02de3e
diff --git a/deps/libass b/deps/libass
index 14520fbc7..987076940 160000
--- a/deps/libass
+++ b/deps/libass
@@ -1 +1 @@
-Subproject commit 14520fbc70eb63a3ce826c4e985f4233fb657196
+Subproject commit 98707694069b6f1808eef5e1d23bc63fb575e067
diff --git a/deps/wxWidgets b/deps/wxWidgets
index f2bbf083c..96430b3f3 160000
--- a/deps/wxWidgets
+++ b/deps/wxWidgets
@@ -1 +1 @@
-Subproject commit f2bbf083c63bd10e08f35ffd21cfa2864028fae8
+Subproject commit 96430b3f3d40c483f49ae419babf6c2e5255ac0a