mirror of https://github.com/odrling/Aegisub
Preserve the filename header when reading attachments
This commit is contained in:
parent
23a21b33b1
commit
29eb7b5e9e
|
@ -25,8 +25,9 @@
|
||||||
#include <boost/range/iterator_range.hpp>
|
#include <boost/range/iterator_range.hpp>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
|
|
||||||
AssAttachment::AssAttachment(std::string const& name, AssEntryGroup group)
|
AssAttachment::AssAttachment(std::string const& header, AssEntryGroup group)
|
||||||
: filename(name)
|
: entry_data(header + "\r\n")
|
||||||
|
, filename(header.substr(10))
|
||||||
, group(group)
|
, group(group)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
@ -35,7 +36,7 @@ AssAttachment::AssAttachment(agi::fs::path const& name, AssEntryGroup group)
|
||||||
: filename(name.filename().string())
|
: filename(name.filename().string())
|
||||||
, group(group)
|
, group(group)
|
||||||
{
|
{
|
||||||
// SSA stuffs some information about the font in the embeded filename, but
|
// SSA stuffs some information about the font in the embedded filename, but
|
||||||
// nothing else uses it so just do the absolute minimum (0 is the encoding)
|
// nothing else uses it so just do the absolute minimum (0 is the encoding)
|
||||||
if (boost::iends_with(filename.get(), ".ttf"))
|
if (boost::iends_with(filename.get(), ".ttf"))
|
||||||
filename = filename.get().substr(0, filename.get().size() - 4) + "_0" + filename.get().substr(filename.get().size() - 4);
|
filename = filename.get().substr(0, filename.get().size() - 4) + "_0" + filename.get().substr(filename.get().size() - 4);
|
||||||
|
|
|
@ -50,6 +50,6 @@ public:
|
||||||
AssEntryGroup Group() const override { return group; }
|
AssEntryGroup Group() const override { return group; }
|
||||||
AssEntry *Clone() const override;
|
AssEntry *Clone() const override;
|
||||||
|
|
||||||
AssAttachment(std::string const& name, AssEntryGroup group);
|
AssAttachment(std::string const& header, AssEntryGroup group);
|
||||||
AssAttachment(agi::fs::path const& name, AssEntryGroup group);
|
AssAttachment(agi::fs::path const& name, AssEntryGroup group);
|
||||||
};
|
};
|
||||||
|
|
|
@ -107,12 +107,12 @@ void AssParser::ParseStyleLine(std::string const& data) {
|
||||||
|
|
||||||
void AssParser::ParseFontLine(std::string const& data) {
|
void AssParser::ParseFontLine(std::string const& data) {
|
||||||
if (boost::starts_with(data, "fontname: "))
|
if (boost::starts_with(data, "fontname: "))
|
||||||
attach.reset(new AssAttachment(data.substr(10), AssEntryGroup::FONT));
|
attach.reset(new AssAttachment(data, AssEntryGroup::FONT));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AssParser::ParseGraphicsLine(std::string const& data) {
|
void AssParser::ParseGraphicsLine(std::string const& data) {
|
||||||
if (boost::starts_with(data, "filename: "))
|
if (boost::starts_with(data, "filename: "))
|
||||||
attach.reset(new AssAttachment(data.substr(10), AssEntryGroup::GRAPHIC));
|
attach.reset(new AssAttachment(data, AssEntryGroup::GRAPHIC));
|
||||||
}
|
}
|
||||||
|
|
||||||
void AssParser::AddLine(std::string const& data) {
|
void AssParser::AddLine(std::string const& data) {
|
||||||
|
|
Loading…
Reference in New Issue