svn commit: r360785 - in head/multimedia/aegisub: . files
Thomas Zander
riggs at FreeBSD.org
Sat Jul 5 17:46:42 UTC 2014
Author: riggs
Date: Sat Jul 5 17:46:36 2014
New Revision: 360785
URL: http://svnweb.freebsd.org/changeset/ports/360785
QAT: https://qat.redports.org/buildarchive/r360785/
Log:
- Update to upstream release 3.1.3
- Makefile cleanup / pet portlint
- Reduce available set of OPTIONS
- DEBUG, GCOV, EFENCE not supported anymore
- ASS and LUA now required by port
PR: 191375
Submitted by: tkato432 at yahoo.com
Approved by: mentors (implicit)
Added:
head/multimedia/aegisub/files/patch-libaegisub__ass__uuencode.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-libaegisub__cajun__reader.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__ass_file.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__ass_override.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__auto4_lua_dialog.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__base_grid.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__base_grid.h (contents, props changed)
head/multimedia/aegisub/files/patch-src__command__edit.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__command__recent.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__command__video.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__dialog_jumpto.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__dialog_kara_timing_copy.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__dialog_properties.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__dialog_shift_times.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__dialog_style_editor.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__ffmpegsource_common.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__ffmpegsource_common.h (contents, props changed)
head/multimedia/aegisub/files/patch-src__frame_main.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__main.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__preferences_base.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__resolution_resampler.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__subs_edit_box.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__subs_preview.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__subtitle_format_srt.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__timeedit_ctrl.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__validators.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__video_context.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__video_display.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__video_frame.h (contents, props changed)
head/multimedia/aegisub/files/patch-src__video_out_gl.h (contents, props changed)
head/multimedia/aegisub/files/patch-src__video_provider_ffmpegsource.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__video_provider_yuv4mpeg.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__visual_tool_rotatexy.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__visual_tool_scale.cpp (contents, props changed)
head/multimedia/aegisub/files/patch-src__visual_tool_vector_clip.cpp (contents, props changed)
Deleted:
head/multimedia/aegisub/files/patch-src__audio_player_alsa.cpp
head/multimedia/aegisub/files/patch-src__audio_player_pulse.cpp
head/multimedia/aegisub/files/patch-src__audio_provider_ffmpegsource.cpp
Modified:
head/multimedia/aegisub/Makefile
head/multimedia/aegisub/distinfo
head/multimedia/aegisub/pkg-plist
Modified: head/multimedia/aegisub/Makefile
==============================================================================
--- head/multimedia/aegisub/Makefile Sat Jul 5 17:44:19 2014 (r360784)
+++ head/multimedia/aegisub/Makefile Sat Jul 5 17:46:36 2014 (r360785)
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME= aegisub
-PORTVERSION= 2.1.9
-PORTREVISION= 2
+PORTVERSION= 3.1.3
CATEGORIES= multimedia
MASTER_SITES= http://ftp.aegisub.org/pub/archives/releases/source/:aegisub \
ftp://ftp.aegisub.org/pub/archives/releases/source/:aegisub \
@@ -16,44 +15,70 @@ COMMENT= Cross-platform subtitle editor
LICENSE= BSD3CLAUSE
-LIB_DEPENDS= libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig
-
-OPTIONS_DEFINE= DEBUG PROFILE GCOV EFENCE ASS ALSA OPENAL PORTAUDIO PULSEAUDIO \
- FFMPEG HUNSPELL LUA DOCS
-OPTIONS_DEFAULT= ASS PULSEAUDIO FFMPEG HUNSPELL LUA
-GCOV_DESC= GCOV (require profiling)
-EFENCE_DESC= Electric Fence (require profiling)
-ASS_DESC= libASS subtitle provider
-HUNSPELL_DESC= Spell checking via Hunspell
+LIB_DEPENDS= libboost_thread.so:${PORTSDIR}/devel/boost-libs \
+ libicui18n.so:${PORTSDIR}/devel/icu \
+ libfontconfig.so:${PORTSDIR}/x11-fonts/fontconfig \
+ libass.so:${PORTSDIR}/multimedia/libass
USE_GITHUB= yes
GH_ACCOUNT= FFMS
GH_PROJECT= ffms2
GH_TAGNAME= ${FFMS_VERSION}
-GH_COMMIT= ec0ef9c
+GH_COMMIT= 6b0e4a2
WRKSRC= ${WRKDIR}/${DISTNAME}
-USES= desktop-file-utils gettext gmake pkgconfig
+USES= compiler:c++11-lib desktop-file-utils gmake gettext iconv \
+ pkgconfig tar:xz
USE_GNOME= intltool
-USE_WX= 2.8
-WX_COMPS= wx contrib
+USE_WX= 3.0
WX_UNICODE= yes
WX_CONF_ARGS= absolute
USE_GL= glu
-USE_GCC= any
+USE_CSTD= c99
+USE_LUA= 5.1+
GNU_CONFIGURE= yes
-CONFIGURE_ARGS= --disable-gcc-prec --without-lua50
+CONFIGURE_ARGS= --disable-compiler-flags \
+ --disable-update-checker \
+ --without-libc++ \
+ --disable-gcc-prec
INSTALLS_ICONS= yes
PLIST_SUB= VERSION="${PORTVERSION:R}"
-CFLAGS+= -I${LOCALBASE}/include
CPPFLAGS+= -I${LOCALBASE}/include
-LDFLAGS+= -L${LOCALBASE}/lib -lz
+LDFLAGS+= -L${LOCALBASE}/lib ${ICONV_LIB}
+
+OPTIONS_DEFINE= ALSA DOCS FFMPEG FFTW HUNSPELL OPENAL \
+ PORTAUDIO PULSEAUDIO
+OPTIONS_DEFAULT= FFMPEG FFTW HUNSPELL PULSEAUDIO
+
+ALSA_LIB_DEPENDS= libasound.so:${PORTSDIR}/audio/alsa-lib
+ALSA_CONFIGURE_OFF= --without-alsa
+FFMPEG_LIB_DEPENDS= libavcodec.so:${PORTSDIR}/multimedia/ffmpeg
+FFMPEG_CONFIGURE_ENV= FFMS2_CFLAGS="${FFMS_CFLAGS}" \
+ FFMS2_LIBS="${FFMS_LIBS}"
+FFMPEG_CONFIGURE_OFF= --without-ffms2
+FFMPEG_CPPFLAGS= ${FFMS_CFLAGS}
+FFTW_LIB_DEPENDS= libfftw3.so:${PORTSDIR}/math/fftw3
+FFTW_CONFIGURE_OFF= --without-fftw3
+HUNSPELL_LIB_DEPENDS= libhunspell-1.3.so:${PORTSDIR}/textproc/hunspell
+HUNSPELL_CONFIGURE_OFF= --without-hunspell
+OPENAL_USES= openal
+OPENAL_CONFIGURE_OFF= --without-openal
+PORTAUDIO_BUILD_DEPENDS=\
+ portaudio2>0:${PORTSDIR}/audio/portaudio2
+PORTAUDIO_RUN_DEPENDS= portaudio2>0:${PORTSDIR}/audio/portaudio2
+PORTAUDIO_CFLAGS= -isystem ${LOCALBASE}/include/portaudio2
+PORTAUDIO_LDFLAGS= -L${LOCALBASE}/lib/portaudio2
+PORTAUDIO_CONFIGURE_OFF=\
+ --without-portaudio
+PULSEAUDIO_LIB_DEPENDS= libpulse.so:${PORTSDIR}/audio/pulseaudio
+PULSEAUDIO_CONFIGURE_OFF=\
+ --without-libpulse
FFMS_NAME= ffms2
-FFMS_VERSION= 2.19
+FFMS_VERSION= 2.19.1
FFMS_DISTNAME= ${FFMS_NAME}-${FFMS_VERSION}
FFMS_DISTFILE= ${FFMS_DISTNAME}.tar.gz
FFMS_WRKSRC= ${WRKDIR}/${GH_ACCOUNT}-${GH_PROJECT}-${GH_COMMIT}
@@ -61,116 +86,29 @@ FFMS_CFLAGS= -I${FFMS_WRKSRC}/include
FFMS_LIBS= ${FFMS_WRKSRC}/src/core/.libs/libffms2.a \
$$(pkg-config --libs libavcodec libavformat libswscale libavutil libavresample)
-.include <bsd.port.options.mk>
+.include <bsd.port.pre.mk>
-.if ${PORT_OPTIONS:MDEBUG}
-CONFIGURE_ARGS+= --enable-debug --enable-debug-exceptions
-.endif
-
-.if ${PORT_OPTIONS:MGCOV}
-CONFIGURE_ARGS+= --enable-gcov
-LDFLAGS+= -fprofile-arcs
-WITH_PROFILE= yes
-.endif
-
-.if ${PORT_OPTIONS:MEFENCE}
-LIB_DEPENDS+= libefence.so:${PORTSDIR}/devel/ElectricFence
-CONFIGURE_ARGS+= --enable-efence
-WITH_PROFILE= yes
-.endif
-
-.if ${PORT_OPTIONS:MPROFILE}
-CONFIGURE_ARGS+= --enable-profile
-.endif
-
-.if ${PORT_OPTIONS:MASS}
-LIB_DEPENDS+= libass.so:${PORTSDIR}/multimedia/libass
-.else
-CONFIGURE_ARGS+= --without-libass
-.endif
-
-.if ${PORT_OPTIONS:MALSA}
-LIB_DEPENDS+= libasound.so:${PORTSDIR}/audio/alsa-lib
+.if ${COMPILER_TYPE} == "gcc"
+USE_CXXSTD= gnu++11
.else
-CONFIGURE_ARGS+= --without-alsa
-.endif
-
-.if ${PORT_OPTIONS:MOPENAL}
-USES+= openal
-.else
-CONFIGURE_ARGS+= --without-openal
-.endif
-
-.if ${PORT_OPTIONS:MPORTAUDIO}
-BUILD_DEPENDS+= portaudio>=19:${PORTSDIR}/audio/portaudio2
-RUN_DEPENDS+= portaudio>=19:${PORTSDIR}/audio/portaudio2
-CONFIGURE_ENV+= PORTAUDIO_LIBS="${LOCALBASE}/lib/portaudio2/libportaudio.so"
-.else
-CONFIGURE_ARGS+= --without-portaudio
-.endif
-
-.if ${PORT_OPTIONS:MPULSEAUDIO}
-LIB_DEPENDS+= libpulse.so:${PORTSDIR}/audio/pulseaudio
-.else
-CONFIGURE_ARGS+= --without-pulseaudio
-.endif
-
-.if ${PORT_OPTIONS:MFFMPEG}
-LIB_DEPENDS+= libavcodec.so:${PORTSDIR}/multimedia/ffmpeg
-CONFIGURE_ENV+= FFMS_CFLAGS="${FFMS_CFLAGS}" FFMS_LIBS="${FFMS_LIBS}"
-CONFIGURE_ARGS+= --with-provider-video=ffmpegsource \
- --with-provider-audio=ffmpegsource
-CPPFLAGS+= ${FFMS_CFLAGS}
-.else
-CONFIGURE_ARGS+= --without-ffms
-.endif
-
-.if ${PORT_OPTIONS:MHUNSPELL}
-LIB_DEPENDS+= libhunspell-1.3.so:${PORTSDIR}/textproc/hunspell
-.else
-CONFIGURE_ARGS+= --without-hunspell
-.endif
-
-.if ${PORT_OPTIONS:MLUA}
-USES+= lua:51
-CONFIGURE_ENV+= LUA_CFLAGS="-I${LUA_INCDIR}" \
- LUA_LDFLAGS="-L${LUA_LIBDIR} -llua-${LUA_VER}"
-CPPFLAGS+= -I${LUA_INCDIR}
-.else
-CONFIGURE_ARGS+= --without-lua
+USE_CXXSTD= c++11
+CXXFLAGS+= -Wno-c++11-narrowing
.endif
post-patch:
-.for i in configure
- @${REINPLACE_CMD} -e \
- '/opt_flag/s|-O2|| ; \
- /ICONV_LIBS/s|-liconv||' ${WRKSRC}/${i}
-.endfor
-.for i in automation/Makefile.in
@${REINPLACE_CMD} -e \
- 's|@HAVE_AUTOMATION_TRUE@|| ; \
- s|@HAVE_AUTOMATION_FALSE@|#| ; \
- s|@HAVE_AUTO4_LUA_TRUE@|| ; \
- s|@HAVE_AUTO4_LUA_FALSE@|#| ; \
- s|@HAVE_AUTO3_LUA_TRUE@|#| ; \
- s|@HAVE_AUTO3_LUA_FALSE|| ; \
- /^install-data-am/s|: install|: # install|' ${WRKSRC}/${i}
-.endfor
-.for i in src/Makefile.in src/libauto3/Makefile.in
+ 's| -O3||' ${WRKSRC}/configure
@${REINPLACE_CMD} -e \
- 's|@HAVE_AUTO3_LUA_TRUE@|#| ; \
- s|@HAVE_AUTO3_LUA_FALSE@||' ${WRKSRC}/${i}
-.endfor
-.for i in src/audio_player_portaudio.h
+ 's|".*build/|"./build/|' ${WRKSRC}/build/version.sh
@${REINPLACE_CMD} -e \
- 's|<portaudio\.h>|<portaudio2/portaudio.h>|' ${WRKSRC}/${i}
-.endfor
+ '/iconv_t/s|^|//|' \
+ ${WRKSRC}/libaegisub/include/libaegisub/charset_conv.h
pre-configure:
.if ${PORT_OPTIONS:MFFMPEG}
@(cd ${FFMS_WRKSRC} && ${SETENV} ${CONFIGURE_ENV} ./configure \
- --disable-shared --disable-silent-rules CC="${CC}" \
- CXX="${CXX}" CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}")
+ --disable-shared CC="${CC}" CXX="${CXX}" CFLAGS="${CFLAGS}" \
+ CXXFLAGS="${CXXFLAGS}")
.endif
pre-build:
@@ -181,8 +119,9 @@ pre-build:
.endif
post-install:
- @(cd ${WRKSRC}/automation && ${SETENV} ${MAKE_ENV} ${MAKE_CMD} \
- ${MAKE_FLAGS} ${MAKEFILE} ${MAKE_ARGS} \
- install-nobase_automationDATA install-nobase_share_docDATA)
+ @${MKDIR} ${STAGEDIR}${DOCSDIR}/automation/v4-docs
+ (cd ${WRKSRC}/automation/v4-docs && ${INSTALL_DATA} * \
+ ${STAGEDIR}${DOCSDIR}/automation/v4-docs)
+ @${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/aegisub-*
-.include <bsd.port.mk>
+.include <bsd.port.post.mk>
Modified: head/multimedia/aegisub/distinfo
==============================================================================
--- head/multimedia/aegisub/distinfo Sat Jul 5 17:44:19 2014 (r360784)
+++ head/multimedia/aegisub/distinfo Sat Jul 5 17:46:36 2014 (r360785)
@@ -1,4 +1,4 @@
-SHA256 (aegisub-2.1.9.tar.gz) = ac1f20751f3d2732d7e11627ea4cc30b53cb905d11422925b7f881785d373706
-SIZE (aegisub-2.1.9.tar.gz) = 2538256
-SHA256 (ffms2-2.19.tar.gz) = 12611778f9f0083af5627067db0b163c48a0c32a43a0b4145da612f43afa69f2
-SIZE (ffms2-2.19.tar.gz) = 512114
+SHA256 (aegisub-3.1.3.tar.xz) = efea5bc2bc5e0651ada4f65cfdd8af1b422a15f87933710d11287bf51e2b5e58
+SIZE (aegisub-3.1.3.tar.xz) = 4215196
+SHA256 (ffms2-2.19.1.tar.gz) = 8516af3f71531746e7e3e4b16eb30dade5df5edfc0782e7b69f965310ea66640
+SIZE (ffms2-2.19.1.tar.gz) = 512444
Added: head/multimedia/aegisub/files/patch-libaegisub__ass__uuencode.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-libaegisub__ass__uuencode.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,11 @@
+--- libaegisub/ass/uuencode.cpp.orig
++++ libaegisub/ass/uuencode.cpp
+@@ -16,6 +16,8 @@
+
+ #include "../config.h"
+
++#include <cstring>
++
+ #include "libaegisub/ass/uuencode.h"
+
+ // Despite being called uuencoding by ass_specs.doc, the format is actually
Added: head/multimedia/aegisub/files/patch-libaegisub__cajun__reader.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-libaegisub__cajun__reader.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,27 @@
+--- libaegisub/common/cajun/reader.cpp.orig
++++ libaegisub/common/cajun/reader.cpp
+@@ -9,6 +9,7 @@
+ #include "libaegisub/cajun/reader.h"
+
+ #include <cassert>
++#include <cstdio>
+ #include <set>
+ #include <sstream>
+
+@@ -243,8 +244,16 @@
+ }
+
+ void Reader::MatchNumber(std::string& sNumber, InputStream& inputStream) {
++#if defined(_LIBCPP_VERSION)
+ const char numericChars[] = "0123456789.eE-+";
+ while (!inputStream.EOS() && std::find(numericChars, std::end(numericChars), inputStream.Peek()) != std::end(numericChars))
++#else
++ const char sNumericChars[] = "0123456789.eE-+";
++ std::set<char> numericChars;
++ numericChars.insert(sNumericChars, sNumericChars + sizeof(sNumericChars));
++
++ while (!inputStream.EOS()&& numericChars.count(inputStream.Peek()))
++#endif
+ sNumber.push_back(inputStream.Get());
+ }
+
Added: head/multimedia/aegisub/files/patch-src__ass_file.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__ass_file.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,27 @@
+--- src/ass_file.cpp.orig
++++ src/ass_file.cpp
+@@ -49,6 +49,13 @@
+ #include <boost/algorithm/string/case_conv.hpp>
+ #include <boost/filesystem/path.hpp>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ namespace std {
+ template<>
+ void swap(AssFile &lft, AssFile &rgt) {
+@@ -71,8 +78,8 @@
+ Line.push_back(*new AssInfo("WrapStyle", "0"));
+ Line.push_back(*new AssInfo("ScaledBorderAndShadow", "yes"));
+ if (!OPT_GET("Subtitle/Default Resolution/Auto")->GetBool()) {
+- Line.push_back(*new AssInfo("PlayResX", std::to_string(OPT_GET("Subtitle/Default Resolution/Width")->GetInt())));
+- Line.push_back(*new AssInfo("PlayResY", std::to_string(OPT_GET("Subtitle/Default Resolution/Height")->GetInt())));
++ Line.push_back(*new AssInfo("PlayResX", TO_STRING(OPT_GET("Subtitle/Default Resolution/Width")->GetInt())));
++ Line.push_back(*new AssInfo("PlayResY", TO_STRING(OPT_GET("Subtitle/Default Resolution/Height")->GetInt())));
+ }
+ Line.push_back(*new AssInfo("YCbCr Matrix", "None"));
+
Added: head/multimedia/aegisub/files/patch-src__ass_override.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__ass_override.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,30 @@
+--- src/ass_override.cpp.orig
++++ src/ass_override.cpp
+@@ -49,6 +49,13 @@
+ #include <boost/range/adaptor/transformed.hpp>
+ #include <functional>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ using namespace boost::adaptors;
+
+ AssOverrideParameter::AssOverrideParameter(VariableDataType type, AssParameterClass classification)
+@@ -129,11 +136,11 @@
+ if (classification == AssParameterClass::ALPHA)
+ Set(str(boost::format("&H%02X&") % mid(0, new_value, 255)));
+ else
+- Set(std::to_string(new_value));
++ Set(TO_STRING(new_value));
+ }
+
+ template<> void AssOverrideParameter::Set<double>(double new_value) {
+- Set(std::to_string(new_value));
++ Set(TO_STRING(new_value));
+ }
+
+ template<> void AssOverrideParameter::Set<bool>(bool new_value) {
Added: head/multimedia/aegisub/files/patch-src__auto4_lua_dialog.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__auto4_lua_dialog.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,34 @@
+--- src/auto4_lua_dialog.cpp.orig
++++ src/auto4_lua_dialog.cpp
+@@ -66,6 +66,13 @@
+ #include <wx/valnum.h>
+ #include <wx/window.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ namespace {
+ inline void get_if_right_type(lua_State *L, std::string &def) {
+ if (lua_isstring(L, -1))
+@@ -256,7 +263,7 @@
+ }
+
+ bool CanSerialiseValue() const override { return true; }
+- std::string SerialiseValue() const override { return std::to_string(value); }
++ std::string SerialiseValue() const override { return TO_STRING(value); }
+ void UnserialiseValue(const std::string &serialised) override { value = atoi(serialised.c_str()); }
+
+ wxControl *Create(wxWindow *parent) override {
+@@ -317,7 +324,7 @@
+ }
+
+ bool CanSerialiseValue() const override { return true; }
+- std::string SerialiseValue() const override { return std::to_string(value); }
++ std::string SerialiseValue() const override { return TO_STRING(value); }
+ void UnserialiseValue(const std::string &serialised) override { value = atof(serialised.c_str()); }
+
+ wxControl *Create(wxWindow *parent) override {
Added: head/multimedia/aegisub/files/patch-src__base_grid.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__base_grid.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,83 @@
+--- src/base_grid.cpp.orig
++++ src/base_grid.cpp
+@@ -67,6 +67,15 @@
+ #include <wx/scrolbar.h>
+ #include <wx/sizer.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#define TO_WSTRING(x) std::to_wstring(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#define TO_WSTRING(x) boost::lexical_cast<std::wstring>(x)
++#endif
++
+ enum {
+ GRID_SCROLLBAR = 1730,
+ MENU_SHOW_COL = 1250 // Needs 15 IDs after this
+@@ -194,8 +203,8 @@
+ }
+
+ void BaseGrid::OnSubtitlesSave() {
+- context->ass->SaveUIState("Scroll Position", std::to_string(yPos));
+- context->ass->SaveUIState("Active Line", std::to_string(GetDialogueIndex(active_line)));
++ context->ass->SaveUIState("Scroll Position", TO_STRING(yPos));
++ context->ass->SaveUIState("Active Line", TO_STRING(GetDialogueIndex(active_line)));
+ }
+
+ void BaseGrid::OnShowColMenu(wxCommandEvent &event) {
+@@ -557,11 +566,11 @@
+ }
+
+ void BaseGrid::GetRowStrings(int row, AssDialogue *line, bool *paint_columns, wxString *strings, bool replace, wxString const& rep_char) const {
+- if (paint_columns[0]) strings[0] = std::to_wstring(row + 1);
+- if (paint_columns[1]) strings[1] = std::to_wstring(line->Layer);
++ if (paint_columns[0]) strings[0] = TO_WSTRING(row + 1);
++ if (paint_columns[1]) strings[1] = TO_WSTRING(line->Layer);
+ if (byFrame) {
+- if (paint_columns[2]) strings[2] = std::to_wstring(context->videoController->FrameAtTime(line->Start, agi::vfr::START));
+- if (paint_columns[3]) strings[3] = std::to_wstring(context->videoController->FrameAtTime(line->End, agi::vfr::END));
++ if (paint_columns[2]) strings[2] = TO_WSTRING(context->videoController->FrameAtTime(line->Start, agi::vfr::START));
++ if (paint_columns[3]) strings[3] = TO_WSTRING(context->videoController->FrameAtTime(line->End, agi::vfr::END));
+ }
+ else {
+ if (paint_columns[2]) strings[2] = to_wx(line->Start.GetAssFormated());
+@@ -570,9 +579,9 @@
+ 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] ? 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[7]) strings[7] = line->Margin[0] ? wxString(TO_WSTRING(line->Margin[0])) : wxString();
++ if (paint_columns[8]) strings[8] = line->Margin[1] ? wxString(TO_WSTRING(line->Margin[1])) : wxString();
++ if (paint_columns[9]) strings[9] = line->Margin[2] ? wxString(TO_WSTRING(line->Margin[2])) : wxString();
+
+ if (paint_columns[10]) {
+ strings[10].clear();
+@@ -799,7 +808,7 @@
+ // O(1) widths
+ int marginLen = dc.GetTextExtent("0000").GetWidth();
+
+- int labelLen = dc.GetTextExtent(std::to_wstring(GetRows())).GetWidth();
++ int labelLen = dc.GetTextExtent(TO_WSTRING(GetRows())).GetWidth();
+ int startLen = 0;
+ int endLen = 0;
+ if (!byFrame)
+@@ -844,12 +853,12 @@
+ }
+
+ // Finish layer
+- int layerLen = maxLayer ? dc.GetTextExtent(std::to_wstring(maxLayer)).GetWidth() : 0;
++ int layerLen = maxLayer ? dc.GetTextExtent(TO_WSTRING(maxLayer)).GetWidth() : 0;
+
+ // Finish times
+ if (byFrame) {
+- startLen = dc.GetTextExtent(std::to_wstring(maxStart)).GetWidth();
+- endLen = dc.GetTextExtent(std::to_wstring(maxEnd)).GetWidth();
++ startLen = dc.GetTextExtent(TO_WSTRING(maxStart)).GetWidth();
++ endLen = dc.GetTextExtent(TO_WSTRING(maxEnd)).GetWidth();
+ }
+
+ // Set column widths
Added: head/multimedia/aegisub/files/patch-src__base_grid.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__base_grid.h Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,11 @@
+--- src/base_grid.h.orig
++++ src/base_grid.h
+@@ -39,6 +39,8 @@
+ #include <map>
+ #include <memory>
+ #include <vector>
++#include <wx/brush.h>
++#include <wx/scrolbar.h>
+ #include <wx/window.h>
+
+ #include "selection_controller.h"
Added: head/multimedia/aegisub/files/patch-src__command__edit.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__command__edit.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,43 @@
+--- src/command/edit.cpp.orig
++++ src/command/edit.cpp
+@@ -68,6 +68,13 @@
+ #include <wx/clipbrd.h>
+ #include <wx/fontdlg.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ namespace {
+ using namespace boost::adaptors;
+ using cmd::Command;
+@@ -450,13 +457,13 @@
+ if (font.GetFaceName() != startfont.GetFaceName())
+ set_tag(line, blocks, "\\fn", from_wx(font.GetFaceName()), sel_start, sel_end);
+ if (font.GetPointSize() != startfont.GetPointSize())
+- set_tag(line, blocks, "\\fs", std::to_string(font.GetPointSize()), sel_start, sel_end);
++ set_tag(line, blocks, "\\fs", TO_STRING(font.GetPointSize()), sel_start, sel_end);
+ if (font.GetWeight() != startfont.GetWeight())
+- set_tag(line, blocks, "\\b", std::to_string(font.GetWeight() == wxFONTWEIGHT_BOLD), sel_start, sel_end);
++ set_tag(line, blocks, "\\b", TO_STRING(font.GetWeight() == wxFONTWEIGHT_BOLD), sel_start, sel_end);
+ if (font.GetStyle() != startfont.GetStyle())
+- set_tag(line, blocks, "\\i", std::to_string(font.GetStyle() == wxFONTSTYLE_ITALIC), sel_start, sel_end);
++ set_tag(line, blocks, "\\i", TO_STRING(font.GetStyle() == wxFONTSTYLE_ITALIC), sel_start, sel_end);
+ if (font.GetUnderlined() != startfont.GetUnderlined())
+- set_tag(line, blocks, "\\i", std::to_string(font.GetUnderlined()), sel_start, sel_end);
++ set_tag(line, blocks, "\\i", TO_STRING(font.GetUnderlined()), sel_start, sel_end);
+
+ commit_text(c, _("set font"), sel_start, sel_end);
+ }
+@@ -711,7 +718,7 @@
+ }
+
+ static void combine_karaoke(AssDialogue *first, AssDialogue *second) {
+- first->Text = first->Text.get() + "{\\k" + std::to_string((second->Start - first->End) / 10) + "}" + second->Text.get();
++ first->Text = first->Text.get() + "{\\k" + TO_STRING((second->Start - first->End) / 10) + "}" + second->Text.get();
+ }
+
+ static void combine_concat(AssDialogue *first, AssDialogue *second) {
Added: head/multimedia/aegisub/files/patch-src__command__recent.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__command__recent.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/command/recent.cpp.orig
++++ src/command/recent.cpp
+@@ -44,6 +44,13 @@
+ #include <wx/event.h>
+ #include <wx/msgdlg.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ namespace {
+ using cmd::Command;
+
+@@ -124,7 +131,7 @@
+ void operator()(agi::Context *c) {
+ T::operator()(c, id);
+ }
+- mru_wrapper(int id) : id(id) , full_name(T::name() + std::to_string(id)) { }
++ mru_wrapper(int id) : id(id) , full_name(T::name() + TO_STRING(id)) { }
+ };
+ }
+
Added: head/multimedia/aegisub/files/patch-src__command__video.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__command__video.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/command/video.cpp.orig
++++ src/command/video.cpp
+@@ -67,6 +67,13 @@
+ #include <wx/msgdlg.h>
+ #include <wx/textdlg.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_WSTRING(x) std::to_wstring(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_WSTRING(x) boost::lexical_cast<std::wstring>(x)
++#endif
++
+ namespace {
+ using cmd::Command;
+
+@@ -119,7 +126,7 @@
+ std::string value = from_wx(wxGetTextFromUser(
+ _("Enter aspect ratio in either:\n decimal (e.g. 2.35)\n fractional (e.g. 16:9)\n specific resolution (e.g. 853x480)"),
+ _("Enter aspect ratio"),
+- std::to_wstring(c->videoController->GetAspectRatioValue())));
++ TO_WSTRING(c->videoController->GetAspectRatioValue())));
+ if (value.empty()) return;
+
+ double numval = 0;
Added: head/multimedia/aegisub/files/patch-src__dialog_jumpto.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__dialog_jumpto.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/dialog_jumpto.cpp.orig
++++ src/dialog_jumpto.cpp
+@@ -48,6 +48,13 @@
+ #include <wx/stattext.h>
+ #include <wx/textctrl.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ DialogJumpTo::DialogJumpTo(agi::Context *c)
+ : wxDialog(c->parent, -1, _("Jump to"), wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE | wxWANTS_CHARS)
+ , c(c)
+@@ -59,7 +66,7 @@
+ auto LabelTime = new wxStaticText(this, -1, _("Time: "));
+
+ JumpFrame = new wxTextCtrl(this,-1,"",wxDefaultPosition,wxSize(-1,-1),wxTE_PROCESS_ENTER, IntValidator((int)jumpframe));
+- JumpFrame->SetMaxLength(std::to_string(c->videoController->GetLength() - 1).size());
++ JumpFrame->SetMaxLength(TO_STRING(c->videoController->GetLength() - 1).size());
+ JumpTime = new TimeEdit(this, -1, c, AssTime(c->videoController->TimeAtFrame(jumpframe)).GetAssFormated(), wxSize(-1,-1));
+
+ auto TimesSizer = new wxGridSizer(2, 5, 5);
Added: head/multimedia/aegisub/files/patch-src__dialog_kara_timing_copy.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__dialog_kara_timing_copy.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/dialog_kara_timing_copy.cpp.orig
++++ src/dialog_kara_timing_copy.cpp
+@@ -69,6 +69,13 @@
+ #define TEXT_LABEL_SOURCE _("Source: ")
+ #define TEXT_LABEL_DEST _("Dest: ")
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ class KaraokeLineMatchDisplay : public wxControl {
+ typedef AssKaraoke::Syllable MatchSyllable;
+
+@@ -358,7 +365,7 @@
+ int duration = 0;
+ for (auto const& syl : match.src)
+ duration += syl.duration;
+- res += "{\\k" + std::to_string(duration / 10) + "}" + match.dst;
++ res += "{\\k" + TO_STRING(duration / 10) + "}" + match.dst;
+ }
+
+ return res;
Added: head/multimedia/aegisub/files/patch-src__dialog_properties.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__dialog_properties.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,36 @@
+--- src/dialog_properties.cpp.orig
++++ src/dialog_properties.cpp
+@@ -54,6 +54,15 @@
+ #include <wx/stattext.h>
+ #include <wx/textctrl.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#define TO_WSTRING(x) std::to_wstring(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#define TO_WSTRING(x) boost::lexical_cast<std::wstring>(x)
++#endif
++
+ DialogProperties::DialogProperties(agi::Context *c)
+ : wxDialog(c->parent, -1, _("Script Properties"))
+ , c(c)
+@@ -145,7 +154,7 @@
+
+ count += SetInfoIfDifferent("PlayResX", from_wx(ResX->GetValue()));
+ count += SetInfoIfDifferent("PlayResY", from_wx(ResY->GetValue()));
+- count += SetInfoIfDifferent("WrapStyle", std::to_string(WrapStyle->GetSelection()));
++ count += SetInfoIfDifferent("WrapStyle", TO_STRING(WrapStyle->GetSelection()));
+ count += SetInfoIfDifferent("ScaledBorderAndShadow", ScaleBorder->GetValue() ? "yes" : "no");
+
+ if (count) c->ass->Commit(_("property changes"), AssFile::COMMIT_SCRIPTINFO);
+@@ -162,6 +171,6 @@
+ }
+
+ void DialogProperties::OnSetFromVideo(wxCommandEvent &) {
+- ResX->SetValue(std::to_wstring(c->videoController->GetWidth()));
+- ResY->SetValue(std::to_wstring(c->videoController->GetHeight()));
++ ResX->SetValue(TO_WSTRING(c->videoController->GetWidth()));
++ ResY->SetValue(TO_WSTRING(c->videoController->GetHeight()));
+ }
Added: head/multimedia/aegisub/files/patch-src__dialog_shift_times.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__dialog_shift_times.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/dialog_shift_times.cpp.orig
++++ src/dialog_shift_times.cpp
+@@ -56,6 +56,13 @@
+ #include <wx/sizer.h>
+ #include <wx/textctrl.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_WSTRING(x) std::to_wstring(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_WSTRING(x) boost::lexical_cast<std::wstring>(x)
++#endif
++
+ static wxString get_history_string(json::Object &obj) {
+ wxString filename = to_wx(obj["filename"]);
+ if (filename.empty())
+@@ -87,7 +94,7 @@
+ int beg = (int64_t)(*it)["start"];
+ int end = (int64_t)(*it)["end"];
+ if (beg == end)
+- lines += std::to_wstring(beg);
++ lines += TO_WSTRING(beg);
+ else
+ lines += wxString::Format("%d-%d", beg, end);
+ if (it + 1 != sel.end())
Added: head/multimedia/aegisub/files/patch-src__dialog_style_editor.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__dialog_style_editor.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/dialog_style_editor.cpp.orig
++++ src/dialog_style_editor.cpp
+@@ -62,6 +62,13 @@
+ #include <wx/sizer.h>
+ #include <wx/stattext.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_WSTRING(x) std::to_wstring(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_WSTRING(x) boost::lexical_cast<std::wstring>(x)
++#endif
++
+ /// Style rename helper that walks a file searching for a style and optionally
+ /// updating references to it
+ class StyleRenamer {
+@@ -160,7 +167,7 @@
+ SetIcon(GETICON(style_toolbutton_16));
+
+ // Prepare control values
+- wxString EncodingValue = std::to_wstring(style->encoding);
++ wxString EncodingValue = TO_WSTRING(style->encoding);
+ wxString alignValues[9] = { "7", "8", "9", "4", "5", "6", "1", "2", "3" };
+
+ // Encoding options
Added: head/multimedia/aegisub/files/patch-src__ffmpegsource_common.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__ffmpegsource_common.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/ffmpegsource_common.cpp.orig
++++ src/ffmpegsource_common.cpp
+@@ -56,6 +56,13 @@
+ #include <wx/config.h>
+ #include <wx/choicdlg.h> // Keep this last so wxUSE_CHOICEDLG is set.
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ #ifdef _WIN32
+ #include <objbase.h>
+
+@@ -221,7 +228,7 @@
+ hash.process_bytes(filename.string().c_str(), filename.string().size());
+
+ // Generate the filename
+- auto result = config::path->Decode("?local/ffms2cache/" + std::to_string(hash.checksum()) + "_" + std::to_string(len) + "_" + std::to_string(agi::fs::ModifiedTime(filename)) + ".ffindex");
++ auto result = config::path->Decode("?local/ffms2cache/" + TO_STRING(hash.checksum()) + "_" + TO_STRING(len) + "_" + TO_STRING(agi::fs::ModifiedTime(filename)) + ".ffindex");
+
+ // Ensure that folder exists
+ agi::fs::CreateDirectory(result.parent_path());
Added: head/multimedia/aegisub/files/patch-src__ffmpegsource_common.h
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__ffmpegsource_common.h Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,10 @@
+--- src/ffmpegsource_common.h.orig
++++ src/ffmpegsource_common.h
+@@ -34,6 +34,7 @@
+
+ #ifdef WITH_FFMS2
+ #include <map>
++#include <string>
+
+ #include <ffms.h>
+
Added: head/multimedia/aegisub/files/patch-src__frame_main.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__frame_main.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,10 @@
+--- src/frame_main.cpp.orig
++++ src/frame_main.cpp
+@@ -80,6 +80,7 @@
+ #include <wx/msgdlg.h>
+ #include <wx/statline.h>
+ #include <wx/sysopt.h>
++#include <wx/toolbar.h>
+
+ enum {
+ ID_APP_TIMER_STATUSCLEAR = 12002
Added: head/multimedia/aegisub/files/patch-src__main.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__main.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,10 @@
+--- src/main.cpp.orig
++++ src/main.cpp
+@@ -69,6 +69,7 @@
+ #include <boost/locale.hpp>
+ #include <sstream>
+
++#include <wx/clipbrd.h>
+ #include <wx/config.h>
+ #include <wx/msgdlg.h>
+ #include <wx/stackwalk.h>
Added: head/multimedia/aegisub/files/patch-src__preferences_base.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__preferences_base.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,34 @@
+--- src/preferences_base.cpp.orig
++++ src/preferences_base.cpp
+@@ -42,6 +42,13 @@
+ #include <wx/stattext.h>
+ #include <wx/treebook.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_WSTRING(x) std::to_wstring(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_WSTRING(x) boost::lexical_cast<std::wstring>(x)
++#endif
++
+ #define OPTION_UPDATER(type, evttype, opt, body) \
+ class type { \
+ std::string name; \
+@@ -126,7 +133,7 @@
+ }
+
+ case agi::OptionValue::Type_Int: {
+- wxSpinCtrl *sc = new wxSpinCtrl(this, -1, std::to_wstring((int)opt->GetInt()), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, min, max, opt->GetInt());
++ wxSpinCtrl *sc = new wxSpinCtrl(this, -1, TO_WSTRING((int)opt->GetInt()), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, min, max, opt->GetInt());
+ sc->Bind(wxEVT_SPINCTRL, IntUpdater(opt_name, parent));
+ Add(flex, name, sc);
+ return sc;
+@@ -240,7 +247,7 @@
+ font_name->SetMinSize(wxSize(160, -1));
+ font_name->Bind(wxEVT_TEXT, StringUpdater(face_opt->GetName().c_str(), parent));
+
+- wxSpinCtrl *font_size = new wxSpinCtrl(this, -1, std::to_wstring((int)size_opt->GetInt()), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 3, 42, size_opt->GetInt());
++ wxSpinCtrl *font_size = new wxSpinCtrl(this, -1, TO_WSTRING((int)size_opt->GetInt()), wxDefaultPosition, wxDefaultSize, wxSP_ARROW_KEYS, 3, 42, size_opt->GetInt());
+ font_size->Bind(wxEVT_SPINCTRL, IntUpdater(size_opt->GetName().c_str(), parent));
+
+ wxButton *pick_btn = new wxButton(this, -1, _("Choose..."));
Added: head/multimedia/aegisub/files/patch-src__resolution_resampler.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__resolution_resampler.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,30 @@
+--- src/resolution_resampler.cpp.orig
++++ src/resolution_resampler.cpp
+@@ -29,9 +29,15 @@
+
+ #include <algorithm>
+ #include <boost/algorithm/string/predicate.hpp>
+-#include <boost/lexical_cast.hpp>
+ #include <functional>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ enum {
+ LEFT = 0,
+ RIGHT = 1,
+@@ -175,8 +181,8 @@
+ for (auto& line : ass->Line)
+ resample_line(&state, line);
+
+- ass->SetScriptInfo("PlayResX", std::to_string(settings.script_x));
+- ass->SetScriptInfo("PlayResY", std::to_string(settings.script_y));
++ ass->SetScriptInfo("PlayResX", TO_STRING(settings.script_x));
++ ass->SetScriptInfo("PlayResY", TO_STRING(settings.script_y));
+
+ ass->Commit(_("resolution resampling"), AssFile::COMMIT_SCRIPTINFO | AssFile::COMMIT_DIAG_FULL);
+ }
Added: head/multimedia/aegisub/files/patch-src__subs_edit_box.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__subs_edit_box.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/subs_edit_box.cpp.orig
++++ src/subs_edit_box.cpp
+@@ -71,6 +71,13 @@
+ #include <wx/sizer.h>
+ #include <wx/spinctrl.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_WSTRING(x) std::to_wstring(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_WSTRING(x) boost::lexical_cast<std::wstring>(x)
++#endif
++
+ namespace {
+
+ /// Work around wxGTK's fondness for generating events from ChangeValue
+@@ -324,7 +331,7 @@
+ if (type & AssFile::COMMIT_DIAG_META) {
+ layer->SetValue(line->Layer);
+ for (size_t i = 0; i < margin.size(); ++i)
+- change_value(margin[i], std::to_wstring(line->Margin[i]));
++ change_value(margin[i], TO_WSTRING(line->Margin[i]));
+ comment_box->SetValue(line->Comment);
+ style_box->Select(style_box->FindString(to_wx(line->Style)));
+
Added: head/multimedia/aegisub/files/patch-src__subs_preview.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__subs_preview.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,27 @@
+--- src/subs_preview.cpp.orig
++++ src/subs_preview.cpp
+@@ -48,6 +48,13 @@
+ #include <wx/dcclient.h>
+ #include <wx/msgdlg.h>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ SubtitlesPreview::SubtitlesPreview(wxWindow *parent, wxSize size, int winStyle, agi::Color col)
+ : wxWindow(parent, -1, wxDefaultPosition, size, winStyle)
+ , style(new AssStyle)
+@@ -141,8 +148,8 @@
+ "No subtitles provider", wxOK | wxICON_ERROR | wxCENTER);
+ }
+
+- sub_file->SetScriptInfo("PlayResX", std::to_string(w));
+- sub_file->SetScriptInfo("PlayResY", std::to_string(h));
++ sub_file->SetScriptInfo("PlayResX", TO_STRING(w));
++ sub_file->SetScriptInfo("PlayResY", TO_STRING(h));
+
+ UpdateBitmap();
+ }
Added: head/multimedia/aegisub/files/patch-src__subtitle_format_srt.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__subtitle_format_srt.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/subtitle_format_srt.cpp.orig
++++ src/subtitle_format_srt.cpp
+@@ -54,6 +54,13 @@
+ #include <boost/regex.hpp>
+ #include <map>
+
++#ifdef _LIBCPP_VERSION
++#define TO_STRING(x) std::to_string(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_STRING(x) boost::lexical_cast<std::string>(x)
++#endif
++
+ DEFINE_SIMPLE_EXCEPTION(SRTParseError, SubtitleFormatParseError, "subtitle_io/parse/srt")
+
+ namespace {
+@@ -481,7 +488,7 @@
+ // Write lines
+ int i=0;
+ for (auto current : copy.Line | agi::of_type<AssDialogue>()) {
+- file.WriteLineToFile(std::to_string(++i));
++ file.WriteLineToFile(TO_STRING(++i));
+ file.WriteLineToFile(WriteSRTTime(current->Start) + " --> " + WriteSRTTime(current->End));
+ file.WriteLineToFile(ConvertTags(current));
+ file.WriteLineToFile("");
Added: head/multimedia/aegisub/files/patch-src__timeedit_ctrl.cpp
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/multimedia/aegisub/files/patch-src__timeedit_ctrl.cpp Sat Jul 5 17:46:36 2014 (r360785)
@@ -0,0 +1,25 @@
+--- src/timeedit_ctrl.cpp.orig
++++ src/timeedit_ctrl.cpp
+@@ -52,6 +52,13 @@
+
+ #define TimeEditWindowStyle
+
++#ifdef _LIBCPP_VERSION
++#define TO_WSTRING(x) std::to_wstring(x)
++#else
++#include <boost/lexical_cast.hpp>
++#define TO_WSTRING(x) boost::lexical_cast<std::wstring>(x)
++#endif
++
+ enum {
+ Time_Edit_Copy = 1320,
+ Time_Edit_Paste
+@@ -117,7 +124,7 @@
+
+ void TimeEdit::UpdateText() {
+ if (byFrame)
+- ChangeValue(std::to_wstring(c->videoController->FrameAtTime(time, isEnd ? agi::vfr::END : agi::vfr::START)));
++ ChangeValue(TO_WSTRING(c->videoController->FrameAtTime(time, isEnd ? agi::vfr::END : agi::vfr::START)));
+ else
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-ports-head
mailing list