From owner-svn-ports-all@FreeBSD.ORG Sat Jul 5 17:46:42 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [8.8.178.115]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 3435795B; Sat, 5 Jul 2014 17:46:42 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 1F9DE2D5C; Sat, 5 Jul 2014 17:46:42 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.8/8.14.8) with ESMTP id s65HkgH8071815; Sat, 5 Jul 2014 17:46:42 GMT (envelope-from riggs@svn.freebsd.org) Received: (from riggs@localhost) by svn.freebsd.org (8.14.8/8.14.8/Submit) id s65HkaIC071763; Sat, 5 Jul 2014 17:46:36 GMT (envelope-from riggs@svn.freebsd.org) Message-Id: <201407051746.s65HkaIC071763@svn.freebsd.org> From: Thomas Zander Date: Sat, 5 Jul 2014 17:46:36 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r360785 - in head/multimedia/aegisub: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jul 2014 17:46:42 -0000 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@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 +.include -.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|||' ${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 +.include 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 ++ + #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 ++#include + #include + #include + +@@ -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 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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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 new_value) { +- Set(std::to_string(new_value)); ++ Set(TO_STRING(new_value)); + } + + template<> void AssOverrideParameter::Set(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#define TO_WSTRING(x) std::to_wstring(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(x) ++#define TO_WSTRING(x) boost::lexical_cast(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 + #include + #include ++#include ++#include + #include + + #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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_WSTRING(x) std::to_wstring(x) ++#else ++#include ++#define TO_WSTRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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 ++#define TO_STRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#define TO_WSTRING(x) std::to_wstring(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(x) ++#define TO_WSTRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_WSTRING(x) std::to_wstring(x) ++#else ++#include ++#define TO_WSTRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_WSTRING(x) std::to_wstring(x) ++#else ++#include ++#define TO_WSTRING(x) boost::lexical_cast(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 + #include // Keep this last so wxUSE_CHOICEDLG is set. + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(x) ++#endif ++ + #ifdef _WIN32 + #include + +@@ -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 ++#include + + #include + 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 + #include + #include ++#include + + 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 + #include + ++#include + #include + #include + #include 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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_WSTRING(x) std::to_wstring(x) ++#else ++#include ++#define TO_WSTRING(x) boost::lexical_cast(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 + #include +-#include + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_WSTRING(x) std::to_wstring(x) ++#else ++#include ++#define TO_WSTRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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 + #include + ++#ifdef _LIBCPP_VERSION ++#define TO_STRING(x) std::to_string(x) ++#else ++#include ++#define TO_STRING(x) boost::lexical_cast(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()) { +- 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 ++#define TO_WSTRING(x) boost::lexical_cast(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 ***