Replace most remaining uses of boost::split with agi::Split

This commit is contained in:
Thomas Goyne 2015-01-07 08:11:14 -08:00
parent 01558bf10d
commit 5d8aeb8b40
5 changed files with 19 additions and 13 deletions

View file

@ -18,10 +18,10 @@
#include <libaegisub/ass/smpte.h> #include <libaegisub/ass/smpte.h>
#include <libaegisub/format.h> #include <libaegisub/format.h>
#include <libaegisub/split.h>
#include <libaegisub/util.h> #include <libaegisub/util.h>
#include <algorithm> #include <algorithm>
#include <boost/algorithm/string/split.hpp>
namespace agi { namespace agi {
Time::Time(int time) : time(util::mid(0, time, 10 * 60 * 60 * 1000 - 1)) { } Time::Time(int time) : time(util::mid(0, time, 10 * 60 * 60 * 1000 - 1)) { }
@ -94,7 +94,7 @@ std::string SmpteFormatter::ToSMPTE(Time time) const {
Time SmpteFormatter::FromSMPTE(std::string const& str) const { Time SmpteFormatter::FromSMPTE(std::string const& str) const {
std::vector<std::string> toks; std::vector<std::string> toks;
boost::split(toks, str, [=](char c) { return c == sep; }); Split(toks, str, sep);
if (toks.size() != 4) return 0; if (toks.size() != 4) return 0;
int h, m, s, f; int h, m, s, f;

View file

@ -22,8 +22,8 @@
#include "libaegisub/file_mapping.h" #include "libaegisub/file_mapping.h"
#include "libaegisub/line_iterator.h" #include "libaegisub/line_iterator.h"
#include "libaegisub/make_unique.h" #include "libaegisub/make_unique.h"
#include "libaegisub/split.h"
#include <boost/algorithm/string/split.hpp>
#include <boost/interprocess/streams/bufferstream.hpp> #include <boost/interprocess/streams/bufferstream.hpp>
namespace agi { namespace agi {
@ -76,15 +76,14 @@ std::vector<Thesaurus::Entry> Thesaurus::Lookup(std::string const& word) {
// First line is the word and meaning count // First line is the word and meaning count
std::vector<std::string> header; std::vector<std::string> header;
boost::split(header, *read_line(temp), [](char c) { return c == '|'; }); agi::Split(header, *read_line(temp), '|');
if (header.size() != 2) return out; if (header.size() != 2) return out;
int meanings = atoi(header[1].c_str()); int meanings = atoi(header[1].c_str());
out.reserve(meanings); out.reserve(meanings);
for (int i = 0; i < meanings; ++i) {
std::vector<std::string> line; std::vector<std::string> line;
boost::split(line, *read_line(temp), [](char c) { return c == '|'; }); for (int i = 0; i < meanings; ++i) {
agi::Split(line, *read_line(temp), '|');
if (line.size() < 2) if (line.size() < 2)
continue; continue;

View file

@ -91,12 +91,19 @@ namespace agi {
return split_iterator<Iterator>(); return split_iterator<Iterator>();
} }
static inline std::string str(StringRange const& r) {
return std::string(r.begin(), r.end());
}
template<typename Str, typename Char> template<typename Str, typename Char>
split_iterator<typename Str::const_iterator> Split(Str const& str, Char delim) { split_iterator<typename Str::const_iterator> Split(Str const& str, Char delim) {
return split_iterator<typename Str::const_iterator>(begin(str), end(str), delim); return split_iterator<typename Str::const_iterator>(begin(str), end(str), delim);
} }
static inline std::string str(StringRange const& r) { template<typename Cont, typename Str, typename Char>
return std::string(r.begin(), r.end()); void Split(Cont& out, Str const& str, Char delim) {
out.clear();
for (auto const& tok : Split(str, delim))
out.emplace_back(begin(tok), end(tok));
} }
} }

View file

@ -43,9 +43,9 @@
#include <libaegisub/exception.h> #include <libaegisub/exception.h>
#include <libaegisub/line_iterator.h> #include <libaegisub/line_iterator.h>
#include <libaegisub/scoped_ptr.h> #include <libaegisub/scoped_ptr.h>
#include <libaegisub/split.h>
#include <ctime> #include <ctime>
#include <boost/algorithm/string/split.hpp>
#include <boost/asio/ip/tcp.hpp> #include <boost/asio/ip/tcp.hpp>
#include <functional> #include <functional>
#include <mutex> #include <mutex>
@ -321,7 +321,7 @@ void DoCheck(bool interactive) {
if (line.empty()) continue; if (line.empty()) continue;
std::vector<std::string> parsed; std::vector<std::string> parsed;
boost::split(parsed, line, [](char c) { return c == '|'; }); agi::Split(parsed, line, '|');
if (parsed.size() != 6) continue; if (parsed.size() != 6) continue;
if (atoi(parsed[1].c_str()) <= GetSVNRevision()) if (atoi(parsed[1].c_str()) <= GetSVNRevision())

View file

@ -39,10 +39,10 @@
#include <libaegisub/color.h> #include <libaegisub/color.h>
#include <libaegisub/make_unique.h> #include <libaegisub/make_unique.h>
#include <libaegisub/split.h>
#include <libaegisub/util.h> #include <libaegisub/util.h>
#include <boost/algorithm/string/predicate.hpp> #include <boost/algorithm/string/predicate.hpp>
#include <boost/algorithm/string/split.hpp>
#include <boost/filesystem/path.hpp> #include <boost/filesystem/path.hpp>
#include <libaegisub/format.h> #include <libaegisub/format.h>
#include <boost/gil/gil_all.hpp> #include <boost/gil/gil_all.hpp>
@ -106,7 +106,7 @@ std::unique_ptr<VideoProvider> CreateDummyVideoProvider(agi::fs::path const& fil
std::vector<std::string> toks; std::vector<std::string> toks;
auto const& fields = filename.string().substr(7); auto const& fields = filename.string().substr(7);
boost::split(toks, fields, [](char c) { return c == ':'; }); agi::Split(toks, fields, ':');
if (toks.size() != 8) if (toks.size() != 8)
throw VideoOpenError("Too few fields in dummy video parameter list"); throw VideoOpenError("Too few fields in dummy video parameter list");