Compare commits

..

29 Commits

Author SHA1 Message Date
45e0459434 OdfFormatWriter - .. 2018-07-13 15:26:51 +03:00
2f194ebd97 . 2018-07-13 13:24:56 +03:00
5e4ce83dc1 Ignore -no-warrowing warning while building PdfWriter
Errors looks like:
`../Src/ICCProfile.h:52: error: narrowing conversion of '-72' from 'int'
to 'unsigned char' inside { } [-Wnarrowing]`
2018-07-13 13:05:13 +03:00
50d4f451b9 . 2018-07-12 20:46:00 +03:00
d464aa659a OdfFormat - .. 2018-07-12 19:37:33 +03:00
db2d001110 Fix possible typo
`realink -n` return empty string
Introduced in
51569b626f
Seems have nothing to do with mac, since all other file has `readlink
-f`
2018-07-12 18:24:22 +03:00
b883cfcbd4 Add workaround for building icu on ArchLinux
See https://bugs.archlinux.org/task/55246
2018-07-12 16:51:17 +03:00
bb8add215a Fail on any error in subscripts
Without this command any errors are just ignored and script continues
2018-07-12 16:24:32 +03:00
ff7d7a908c [ios][pe] events 2018-07-12 11:15:40 +03:00
958e213f9b [x2t] Fix RemoveWhiteSpaces 2018-07-11 19:40:27 +03:00
3d3baa50b5 . 2018-07-11 18:15:28 +03:00
ee987f8713 OdfFormatWriter - add documentID, add table of content, table of indexes 2018-07-11 17:20:51 +03:00
e98f4ae7b4 PdfWriter - add documentID 2018-07-11 12:30:37 +03:00
6900c0a640 [x2t] Remove LvlRestart stubs 2018-07-10 20:28:09 +03:00
5f09bf7835 . 2018-07-10 19:06:46 +03:00
5a9a89979c Merge branch 'develop' of https://github.com/ONLYOFFICE/core into develop 2018-07-10 18:38:26 +03:00
6a052f68aa PdfWriter - fix encrypt 2018-07-10 18:37:50 +03:00
fc9b5e0613 [ios][x2t] fixed icu 2018-07-10 18:33:35 +03:00
f7d1009974 OdfFormatReader - styles template table of content 2018-07-09 19:27:30 +03:00
cb729d306b [ios][x2t] fixed build 2018-07-09 16:15:17 +03:00
ab449707f3 Merge remote-tracking branch 'origin/hotfix/v5.1.5' into develop 2018-07-09 14:47:31 +03:00
47f28ac212 RtfFormat - fix bug #34747 2018-07-09 14:43:46 +03:00
016b77f9ab Merge pull request #88 from ONLYOFFICE/feature/no-history-gsync
Add --no-historyt to `gclient-sync`
2018-07-05 17:23:32 +03:00
d81c895610 Add --no-historyt to gclient-sync
Greatly reduce time to fetch v8 sources.
Time to execute `gclient-sync`
Default varinant `real    21m2.279s`
With `--no-history` - `real    0m53.638s`
2018-07-05 17:21:57 +03:00
653a4e77c5 moved 'encrypt' data type 2018-07-04 18:11:43 +03:00
1c94b64399 added class for "encrypt" data event 2018-07-04 14:37:48 +03:00
2b2352fc74 Fix error build 2018-07-04 12:22:28 +03:00
06150358a9 Fix bug with calculating inverse matrix 2018-06-27 14:29:21 +03:00
945c04b294 Hatched brush support in builder mode 2018-06-26 17:57:25 +03:00
85 changed files with 1463 additions and 574 deletions

View File

@ -1417,7 +1417,7 @@ public:
oWriter.WriteString(L"<w:numFmt w:val=\"" + sFormat + L"\"/>");
}
}
if(bRestart && 0 == Restart)
if(bRestart)
{
oWriter.WriteString(L"<w:lvlRestart w:val=\"" + std::to_wstring(Restart) + L"\"/>");
}

View File

@ -2915,12 +2915,9 @@ namespace BinDocxRW
const ComplexTypes::Word::CDecimalNumber& oVal = lvl.m_oLvlRestart.get();
if(oVal.m_oVal.IsInit())
{
int nVal = oVal.m_oVal.get().GetValue();
if(0 != nVal)
nVal = -1;
m_oBcw.m_oStream.WriteBYTE(c_oSerNumTypes::lvl_Restart);
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Long);
m_oBcw.m_oStream.WriteLONG(nVal);
m_oBcw.m_oStream.WriteLONG(oVal.m_oVal.get().GetValue());
}
}
//Start

View File

@ -397,7 +397,7 @@
"$(PROJECT_DIR)/../../DesktopEditor/freetype-2.5.2/include",
"$(PROJECT_DIR)/../../Common/3dParty/boost/boost_1_58_0",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = ASCOfficeDocxFile2Lib_ios;
SDKROOT = iphoneos;
};
@ -436,7 +436,7 @@
"$(PROJECT_DIR)/../../DesktopEditor/freetype-2.5.2/include",
"$(PROJECT_DIR)/../../Common/3dParty/boost/boost_1_58_0",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = ASCOfficeDocxFile2Lib_ios;
SDKROOT = iphoneos;
};

View File

@ -379,16 +379,27 @@ void docx_conversion_context::start_index_content()
case 5: sInstrText += L" INDEX \\z"; break;
case 3: sInstrText += L" BIBLIOGRAPHY"; break;
}
if (table_content_context_.min_outline_level > 0)
{
if (table_content_context_.max_outline_level > 9)
table_content_context_.max_outline_level = 9;
sInstrText += L" \\o \"" + std::to_wstring(table_content_context_.min_outline_level) + L"-" +
std::to_wstring(table_content_context_.max_outline_level) + L"\" ";
std::to_wstring(table_content_context_.max_outline_level) + L"\"";
}
/*\\l 1-3*/
if (false == table_content_context_.outline_level_styles.empty())
{
sInstrText += L"\\t \"";
for (std::map<int, std::wstring>::iterator it = table_content_context_.outline_level_styles.begin();
it != table_content_context_.outline_level_styles.end(); ++it)
{
sInstrText += it->second + L";" + std::to_wstring(it->first) + L";";
}
sInstrText += L"\"";
}
if (!table_content_context_.caption_sequence_name.empty())
{
sInstrText += L" \\c \"" + table_content_context_.caption_sequence_name + L"\"";

View File

@ -668,7 +668,7 @@ public:
{
current_state.content.push_back(type);
}
void set_outline_level(int level)
void add_outline_level_style(int level, const std::wstring& style_name)
{
if (min_outline_level == -1 || min_outline_level > level)
min_outline_level = level;
@ -676,6 +676,9 @@ public:
if (max_outline_level == -1 || max_outline_level < level)
max_outline_level = level;
if (!style_name.empty())
outline_level_styles.insert(std::make_pair(level, style_name));
current_state.outline_level = level;
}
void end_level()
@ -690,7 +693,8 @@ public:
{
current_content_template_.clear();
}
current_content_template_ = pFind->second.content;
else
current_content_template_ = pFind->second.content;
current_content_template_index_ = 0;
}
@ -726,6 +730,7 @@ public:
caption_sequence_name.clear();
min_outline_level = -1;
max_outline_level = -1;
outline_level_styles.clear();
}
void add_sequence(const std::wstring & name, int outline_level)
{
@ -749,6 +754,7 @@ public:
int type_table_content;
int min_outline_level;
int max_outline_level;
std::map<int, std::wstring> outline_level_styles;
private:
std::vector<int> current_content_template_;

View File

@ -947,7 +947,7 @@ void common_entry_template::docx_convert(oox::docx_conversion_context & Context)
if (outline_level_)
{
Context.get_table_content_context().set_outline_level(*outline_level_);
Context.get_table_content_context().add_outline_level_style(*outline_level_, style_name_.get_value_or(L""));
}
for (size_t i = 0; i < content_.size(); i++)
{

View File

@ -96,10 +96,10 @@ HRESULT convert_single(std::wstring srcFileName)
Oox2Odf::Converter converter(srcTempPath, type, L"C:\\Windows\\Fonts", NULL);
std::wstring sPassword = L"password";
std::wstring sPassword = L"";//password";
converter.convert();
converter.write(dstTempPath, srcTempPath, sPassword);
converter.write(dstTempPath, srcTempPath, sPassword, L"hiuh56f56tfy7g");
NSDirectory::DeleteDirectory(srcTempPath);

View File

@ -124,6 +124,15 @@ namespace odf_writer
{
type_ = t;
}
documentID_file::documentID_file(std::wstring v)
{
value_ = v;
}
void documentID_file::write(const std::wstring & RootPath, bool add_padding)
{
simple_element elm(L"documentID", value_, false);
elm.write(RootPath, false);
}
mimetype_file::mimetype_file(std::wstring t)
{
type_ = t;
@ -291,6 +300,14 @@ namespace odf_writer
{
dynamic_cast<manifect_file*>(manifest_.get())->add_rels(r);
}
void odf_document::set_documentID(const std::wstring &value)
{
add_object(element_ptr(new documentID_file(value)));
rels rels_;
rels_.add(relationship(std::wstring(L"application/binary"), L"documentID"));
set_rels(rels_);
}
odf_document::odf_document(std::wstring type)
{

View File

@ -159,6 +159,17 @@ namespace odf_writer
rels rels_;
std::wstring type_;
};
class documentID_file : public element
{
public:
documentID_file(std::wstring value);
virtual void write(const std::wstring & RootPath, bool add_padding = false);
private:
std::wstring value_;
};
class mimetype_file : public element
{
@ -219,11 +230,12 @@ namespace odf_writer
void set_rels(rels & r);
virtual void write(const std::wstring & RootPath, bool add_padding = false);
void write_manifest(const std::wstring & RootPath);
manifect_file* get_manifest() {return dynamic_cast<manifect_file*>(manifest_.get());}
void set_documentID(const std::wstring &value);
private:
element_ptr base_;
std::vector<element_ptr> objects_;

View File

@ -284,8 +284,8 @@ private:
class Impl;
_CP_PTR(Impl) impl_;
};
typedef shared_ptr<odf_drawing_context>::Type odf_drawing_context_ptr;
}
}

View File

@ -462,13 +462,14 @@ void odf_text_context::end_list()
list_state_.levels.pop_back();
}
/////////////////////////////////////////////////////////////////////////////////////////// LIST
void odf_text_context::start_field(int type)
//------------------------------------------------------------------------------------------ LIST
bool odf_text_context::start_field(int type)
{
if (single_paragraph_ == true) return;
if (single_paragraph_ == true) return false;
office_element_ptr elm;
if (type == 2)
if (type == fieldPage)
{
create_element(L"text", L"page-number", elm, odf_context_);
text_page_number *page_numb = dynamic_cast<text_page_number*>(elm.get());
@ -485,19 +486,23 @@ void odf_text_context::start_field(int type)
}
}
}
if (type == 3)
if (type == fieldNumPages)
{
create_element(L"text", L"page-count", elm, odf_context_);
}
if (type == 4)
if (type == fieldTime)
{
create_element(L"text", L"date", elm, odf_context_);
}
if (elm)
{
in_field_ = true;
start_element(elm);
return true;
}
return false;
}
void odf_text_context::end_field()

View File

@ -43,7 +43,22 @@
namespace cpdoccore {
namespace odf_writer
{
enum _typeField
{
fieldUnknown = 0,
fieldHyperlink,
fieldPage,
fieldNumPages,
fieldTime,
fieldPageRef,
fieldSeq,
fieldBibliography = 0xff + 1,
fieldIndex,
fieldIllustration,
fieldTable,
fieldToc
};
class odf_conversion_context;
class odf_style_context;
class paragraph;
@ -80,7 +95,7 @@ public:
void start_element (office_element_ptr & elm, office_element_ptr style_elm = office_element_ptr(),std::wstring style_name = L"");
void end_element ();
void start_field (int type);
bool start_field (int type);
void end_field ();
void start_span (bool styled = false);
@ -139,6 +154,7 @@ private:
std::wstring parent_span_style_;
std::wstring parent_paragraph_style_;
};
typedef shared_ptr<odf_text_context>::Type odf_text_context_ptr;
}
}

View File

@ -32,11 +32,11 @@
#include <boost/regex.hpp>
#include <boost/algorithm/string.hpp>
#include "../utils.h"
#include "odt_conversion_context.h"
#include "odf_text_context.h"
#include "styles.h"
@ -78,10 +78,6 @@ odt_conversion_context::odt_conversion_context(package::odf_document * outputDoc
comment_context_(this), notes_context_(this), main_text_context_(NULL), table_context_(this)
{
current_field_.enabled = false;
current_field_.started = false;
current_field_.in_span = false;
is_hyperlink_ = false;
is_header_ = false;
@ -117,6 +113,27 @@ void odt_conversion_context::start_document()
void odt_conversion_context::end_document()
{
if (false == mapSequenceDecls.empty())
{
office_element_ptr seq_decls;
create_element(L"text", L"sequence-decls", seq_decls, this);
for (std::map<std::wstring, int>::iterator it = mapSequenceDecls.begin(); it != mapSequenceDecls.end(); ++it)
{
office_element_ptr elm;
create_element(L"text", L"sequence-decl", elm, this);
text_sequence_decl* decl = dynamic_cast<text_sequence_decl*>(elm.get());
if (decl)
{
decl->name_ = it->first;
decl->display_outline_level_ = 0;
}
seq_decls->add_child_element(elm);
}
root_document_->add_child_element(seq_decls);
}
//add sections to root
for (size_t i = 0; i < sections_.size(); i++)
{
@ -286,8 +303,19 @@ void odt_conversion_context::end_drawings()
}
void odt_conversion_context::start_paragraph(bool styled)
{
if (current_field_.enabled && !current_field_.result) return; //Стандартное_составное_письмо.docx
if (!current_fields.empty() && current_fields.back().status == 1 && !current_fields.back().in_span)
{
current_fields.back().status = 2;
//if (!current_fields.empty() && !current_fields.back().result) return; //Стандартное_составное_письмо.docx
switch (current_fields.back().type)
{
case fieldBibliography: start_bibliography(); break;
case fieldIndex: start_alphabetical_index(); break;
case fieldIllustration: start_illustration_index(); break;
case fieldTable: start_table_index(); break;
case fieldToc: start_table_of_content(); break;
}
}
if (is_paragraph_in_current_section_ && !styled)
{
styles_context()->create_style(L"", odf_types::style_family::Paragraph, true, false, -1);
@ -345,45 +373,266 @@ void odt_conversion_context::add_paragraph_break(int type)
//}
}
}
void odt_conversion_context::start_table_of_content()
{
office_element_ptr elm;
create_element(L"text", L"table-of-content", elm, this);
text_context()->start_element(elm);
add_to_root();
start_index_field();
}
void odt_conversion_context::end_table_of_content()
{
text_context()->end_element();
office_element_ptr elm;
create_element(L"text", L"table-of-content-source", elm, this);
text_table_of_content_source* source = dynamic_cast<text_table_of_content_source*>(elm.get());
if (source)
{
if (false == current_fields.back().arStyleLevels.empty())
{
source->outline_level_ = (int) current_fields.back().arStyleLevels.size();
source->use_index_source_styles_ = true;
}
else if (current_fields.back().outline_levels > 0)
{
source->outline_level_ = current_fields.back().outline_levels;
}
}
text_context()->start_element(elm);
//template
text_context()->end_element();
text_context()->end_element();
}
void odt_conversion_context::start_alphabetical_index()
{
office_element_ptr elm;
create_element(L"text", L"alphabetical-index", elm, this);
text_context()->start_element(elm);
add_to_root();
start_index_field();
}
void odt_conversion_context::end_alphabetical_index()
{
text_context()->end_element();
office_element_ptr elm;
create_element(L"text", L"alphabetical-index-source", elm, this);
text_context()->start_element(elm);
//tempalte
text_context()->end_element();
text_context()->end_element();
}
void odt_conversion_context::start_illustration_index()
{
office_element_ptr elm;
create_element(L"text", L"illustration-index", elm, this);
text_context()->start_element(elm);
add_to_root();
start_index_field();
}
void odt_conversion_context::end_illustration_index()
{
text_context()->end_element();
office_element_ptr elm;
create_element(L"text", L"illustration-index-source", elm, this);
text_illustration_index_source* index_source = dynamic_cast<text_illustration_index_source*>(elm.get());
if (index_source)
{
if (false == current_fields.back().captionSEQ.empty())
{
index_source->caption_sequence_name_ = current_fields.back().captionSEQ;
index_source->caption_sequence_format_ = L"text";
}
}
text_context()->start_element(elm);
//template
text_context()->end_element();
text_context()->end_element();
}
void odt_conversion_context::start_bibliography()
{
office_element_ptr elm;
create_element(L"text", L"bibliography", elm, this);
text_context()->start_element(elm);
add_to_root();
start_index_field();
}
void odt_conversion_context::end_bibliography()
{
text_context()->end_element();
office_element_ptr elm;
create_element(L"text", L"bibliography-source", elm, this);
text_context()->start_element(elm);
//template
text_context()->end_element();
text_context()->end_element();
}
void odt_conversion_context::start_table_index()
{
office_element_ptr elm;
create_element(L"text", L"table-index", elm, this);
text_context()->start_element(elm);
add_to_root();
start_index_field();
}
void odt_conversion_context::end_table_index()
{
text_context()->end_element();
office_element_ptr elm;
create_element(L"text", L"table-index-source", elm, this);
text_context()->start_element(elm);
//template
text_context()->end_element();
text_context()->end_element();
}
void odt_conversion_context::start_index_field()
{
if (current_fields.empty()) return;
office_element_ptr elm1, elm2;
create_element(L"text", L"index-body", elm1, this);
text_context()->start_element(elm1);
if (false == current_fields.back().title.empty())
{
create_element(L"text", L"index-title", elm2, this);
text_context()->start_element(elm2);
text_context()->end_element();
}
}
void odt_conversion_context::end_index_field()
{
text_context()->end_element();
text_context()->end_element();
}
void odt_conversion_context::start_hyperlink(std::wstring ref)
{
office_element_ptr hyperlink_elm;
create_element(L"text", L"a", hyperlink_elm, this);
text_a* hyperlink = dynamic_cast<text_a*>(hyperlink_elm.get());
if (!hyperlink)return;
if (hyperlink)
{
hyperlink->common_xlink_attlist_.href_ = ref;
hyperlink->common_xlink_attlist_.type_ = xlink_type::Simple;
text_context()->start_element(hyperlink_elm);
////////////////////////////
hyperlink->common_xlink_attlist_.href_ = ref;
hyperlink->common_xlink_attlist_.type_ = xlink_type::Simple;
//current_level_.back()->add_child_element(hyperlink_elm);
//current_level_.push_back(hyperlink_elm);
text_context()->start_element(hyperlink_elm);
is_hyperlink_ = true;
is_hyperlink_ = true;
}
}
void odt_conversion_context::end_hyperlink()
{
if (!is_hyperlink_) return;
//current_level_.pop_back();
text_context()->end_element();
is_hyperlink_ = false; //метка .. для гиперлинков в объектах - там не будет span
}
void odt_conversion_context::start_sequence()
{
std::map<std::wstring, int>::iterator pFind = mapSequenceDecls.find(current_fields.back().value);
int index = 0;
if (pFind == mapSequenceDecls.end())
{
mapSequenceDecls.insert(std::make_pair(current_fields.back().value, index));
}
else
{
index = ++pFind->second;
}
office_element_ptr seq_elm;
create_element(L"text", L"sequence", seq_elm, this);
text_sequence* sequence = dynamic_cast<text_sequence*>(seq_elm.get());
if (sequence)
{
sequence->name_ = current_fields.back().value;
sequence->ref_name_ = L"ref" + current_fields.back().value + std::to_wstring(index);
sequence->formula_ = L"ooow:" + current_fields.back().value + L"+1";
sequence->style_num_format_ = style_numformat(style_numformat::arabic);
text_context()->start_element(seq_elm);
}
}
void odt_conversion_context::end_sequence()
{
text_context()->end_element();
}
std::map<std::wstring, std::wstring> odt_conversion_context::parse_instr_options(const std::wstring& value)
{
std::map<std::wstring, std::wstring> result;
std::vector<std::wstring> arOptions;
boost::algorithm::split(arOptions, value, boost::algorithm::is_any_of(L"\\"), boost::algorithm::token_compress_on);
for (size_t i = 0; i < arOptions.size(); i++)
{
std::wstring key = arOptions[i].substr(0, 1);
std::wstring value;
if (arOptions[i].length() > 2)
{
size_t pos = arOptions[i].find(L"\"");
if (std::wstring::npos != pos)
{
value = arOptions[i].substr(pos + 1, arOptions[i].length() - pos - 1);
pos = value.rfind(L"\"");
if (std::wstring::npos != pos)
{
value = value.substr(0, pos);
}
}
else
{
value = arOptions[i].substr(1);
}
}
result.insert(std::make_pair(key, value));
}
return result;
}
void odt_conversion_context::set_field_instr(std::wstring instr)
{
if (current_field_.enabled == false) return;
if (current_fields.empty()) return;
current_fields.back().status = 1; //prepare
current_field_.type = 0; //users field
size_t res1 = instr.find(L"HYPERLINK");
if (std::wstring::npos != res1) //это не поле - это hyperlink
if (std::wstring::npos != res1)
{
current_field_.type = 1;
current_fields.back().type = fieldHyperlink;
current_fields.back().in_span = false;
std::wstring ref;
boost::match_results<std::wstring::const_iterator> res;
@ -391,66 +640,145 @@ void odt_conversion_context::set_field_instr(std::wstring instr)
if (boost::regex_search(instr, res, r2))
{
ref = res[1].str();
current_field_.value = ref.substr(1, ref.length()-2);
current_fields.back().value = ref.substr(1, ref.length() - 2);
}
}
res1 = instr.find(L"NUMPAGES");
if (std::wstring::npos != res1 && current_field_.type == 0)
if (std::wstring::npos != res1 && current_fields.back().type == 0)
{
current_field_.type = 3;
current_fields.back().type = fieldNumPages;
}
res1 = instr.find(L"PAGEREF");
if (std::wstring::npos != res1 && current_field_.type == 0 ) //это не поле - это bookmark
if (std::wstring::npos != res1 && current_fields.back().type == 0 )
{
current_field_.type = 5;
current_fields.back().type = fieldPageRef;
if (instr.length() > 9)
current_field_.value = instr.substr(9, instr.length()-5);
current_fields.back().value = instr.substr(9, instr.length() - 5);
}
res1 = instr.find(L"PAGE");
if (std::wstring::npos != res1 && current_field_.type == 0)
if (std::wstring::npos != res1 && current_fields.back().type == 0)
{
current_field_.type = 2;
current_fields.back().type = fieldPage;
}
res1 = instr.find(L"TIME");
if (std::wstring::npos != res1 && current_field_.type == 0)
if (std::wstring::npos != res1 && current_fields.back().type == 0)
{
current_field_.type = 4;
current_fields.back().type = fieldTime;
}
res1 = instr.find(L"SEQ");
if (std::wstring::npos != res1 && current_fields.back().type == 0)
{
current_fields.back().type = fieldSeq;
std::map<std::wstring, std::wstring> options = parse_instr_options(instr.substr(4));
for (std::map<std::wstring, std::wstring>::iterator it = options.begin(); it != options.end(); ++it)
{
if (it->first == L" ")
{
current_fields.back().value = it->second.substr(0, it->second.length() - 1);
}
else if (it->first == L"*")
{
current_fields.back().format = it->second.substr(0, it->second.length() - 1);
}
}
}
res1 = instr.find(L"BIBLIOGRAPHY");
if (std::wstring::npos != res1 && current_field_.type == 0)
if (std::wstring::npos != res1 && current_fields.back().type == 0)
{
current_field_.type = 6;
current_fields.back().type = fieldBibliography;
current_fields.back().in_span = false;
}
//////////////////////////////////////////
res1 = instr.find(L"INDEX");
if (std::wstring::npos != res1 && current_fields.back().type == 0)
{
current_fields.back().type = fieldIndex;
current_fields.back().in_span = false;
}
res1 = instr.find(L"TOC");
if (std::wstring::npos != res1 && current_fields.back().type == 0)
{
current_fields.back().type = fieldIllustration;
current_fields.back().in_span = false;
std::map<std::wstring, std::wstring> options = parse_instr_options(instr.substr(res1 + 3));
std::map<std::wstring, std::wstring>::iterator pFind = options.find(L"c");
if ( pFind != options.end())
{
current_fields.back().captionSEQ = pFind->second;
}
pFind = options.find(L"h");
if ( pFind != options.end())
{
current_fields.back().bHyperlinks = true;
}
pFind = options.find(L"u"); //paragraph outline level
if ( pFind != options.end())
{
current_fields.back().type = fieldToc; //table of content
}
pFind = options.find(L"o");
if ( pFind != options.end())//table of content outline levels style
{
std::vector<std::wstring> arLevels;
boost::algorithm::split(arLevels, pFind->second, boost::algorithm::is_any_of(L"-"), boost::algorithm::token_compress_on);
if (arLevels.size() > 1)
{
current_fields.back().type = fieldToc;
current_fields.back().outline_levels = XmlUtils::GetInteger(arLevels[1]);
}
}
pFind = options.find(L"t");
if ( pFind != options.end())//content styles name
{
std::vector<std::wstring> arStyles;
boost::algorithm::split(arStyles, pFind->second, boost::algorithm::is_any_of(L";"), boost::algorithm::token_compress_on);
for (size_t i = 0; i < arStyles.size() - 1; i += 2)
{
int level = XmlUtils::GetInteger(arStyles[i + 1]);
if (level < 1) continue;
while(current_fields.back().arStyleLevels.size() + 1 < level )
{
current_fields.back().arStyleLevels.push_back(L"");
}
current_fields.back().arStyleLevels.push_back(arStyles[i]);
}
}
pFind = options.find(L"z");
if ( pFind != options.end())//table of content outline levels style
{
current_fields.back().bHidePageNumbers = true;
}
}
//////////////////////////////////////////
res1 = instr.find(L"@");
if (std::wstring::npos != res1)
{
current_field_.format = instr.substr(res1 + 1, instr.length());
current_fields.back().format = instr.substr(res1 + 1, instr.length());
}
if (current_field_.type == 0)
if (current_fields.back().type == 0)
{
res1 = instr.find(L" ");
if (std::wstring::npos != res1)
{
current_field_.name = instr.substr(0, res1);
current_fields.back().name = instr.substr(0, res1);
}
}
}
void odt_conversion_context::start_field(bool in_span)
{
current_field_.enabled = true;
current_field_.result = false;
current_field_.in_span = in_span;
current_field_.value.clear();
current_field_.name.clear();
current_field_.type = 0; // users field
_field_state field;
current_fields.push_back(field);
}
void odt_conversion_context::separate_field()
{
current_field_.result = true;
if (current_fields.empty()) return;
current_fields.back().result = true;
}
void odt_conversion_context::set_master_page_name(std::wstring master_name)
{
@ -587,26 +915,40 @@ void odt_conversion_context::add_section_column(std::vector<std::pair<double, do
}
void odt_conversion_context::end_field()
{
if (current_field_.enabled && current_field_.started)
{
if (current_field_.type == 1) end_hyperlink();
else text_context()->end_field();
}
current_field_.value = L"";
current_field_.format = L"";
current_field_.name = L"";
if (current_fields.empty()) return;
current_field_.result = false;
current_field_.enabled = false;
current_field_.started = false;
current_field_.in_span = false;
if (current_fields.back().status == 2)
{
current_fields.back().status = 3;//prepare for delete
if (current_fields.back().type < 0xff)
{
if (current_fields.back().type == fieldHyperlink) end_hyperlink();
else if (current_fields.back().type == fieldSeq) end_sequence();
else text_context()->end_field();
current_fields.pop_back();
}
}
}
void odt_conversion_context::end_paragraph()
{
if (current_field_.enabled && !current_field_.result) return; //Стандартное_составное_письмо.docx
//if (!current_fields.empty() && !current_fields.back().result) return; //Стандартное_составное_письмо.docx
text_context()->end_paragraph();
if (false == current_fields.empty() && current_fields.back().status == 3) //prepare for delete
{
switch(current_fields.back().type)
{
case fieldBibliography: end_bibliography(); break;
case fieldIndex: end_alphabetical_index(); break;
case fieldIllustration: end_illustration_index(); break;
case fieldTable: end_table_index(); break;
case fieldToc: end_table_of_content(); break;
}
current_fields.pop_back();
}
flush_section();
}
@ -706,11 +1048,13 @@ void odt_conversion_context::start_run(bool styled)
{
if (is_hyperlink_ && text_context_.size() > 0) return;
if (current_field_.started == false && current_field_.type > 1 && current_field_.enabled == true && !current_field_.in_span)
if (!current_fields.empty() && current_fields.back().status == 1 && !current_fields.back().in_span && current_fields.back().type < 0xff)
{
text_context()->start_field(current_field_.type);
current_field_.started = true;
current_fields.back().status = 2;
if (current_fields.back().type == fieldHyperlink) start_hyperlink(current_fields.back().value);
else if (current_fields.back().type == fieldSeq) start_sequence();
else text_context()->start_field(current_fields.back().type);
}
text_context()->start_span(styled);
@ -722,25 +1066,28 @@ void odt_conversion_context::start_run(bool styled)
props->apply_from(dynamic_cast<style_text_properties*>(drop_cap_state_.text_properties.get()));
}
if (current_field_.started == false && current_field_.type > 1 && current_field_.enabled == true && current_field_.in_span)//поле стартуется в span - нужно для сохранения стиля
if (!current_fields.empty() && current_fields.back().status == 1 && current_fields.back().in_span)//поле стартуется в span - нужно для сохранения стиля
{
text_context()->start_field(current_field_.type);
current_field_.started = true;
current_fields.back().status = 2;
text_context()->start_field(current_fields.back().type);
}
}
void odt_conversion_context::end_run()
{
if (is_hyperlink_ && text_context_.size() > 0) return;
if (current_field_.in_span && current_field_.started== true && current_field_.enabled ==true) end_field();
if (!current_fields.empty() && current_fields.back().status == 1 && current_fields.back().in_span)
{
end_field();
}
text_context()->end_span();
if (current_field_.started== false && current_field_.type == 1 && current_field_.enabled ==true)
{
start_hyperlink(current_field_.value);
current_field_.started = true;
}
//if (current_field_.enabled == true && current_field_.started== false && current_field_.type == 1)
//{
// start_hyperlink(current_field_.value);
// current_field_.started = true;
//}
}
//--------------------------------------------------------------------------------------------------------
bool odt_conversion_context::start_comment(int oox_comm_id)

View File

@ -36,17 +36,14 @@
#include "odf_comment_context.h"
#include "odf_notes_context.h"
#include "odf_table_context.h"
#include "odf_text_context.h"
namespace cpdoccore {
namespace odf_writer {
namespace cpdoccore
{
namespace odf_writer
{
class office_text;
class odf_text_context;
typedef shared_ptr<odf_text_context>::Type odf_text_context_ptr;
typedef shared_ptr<odf_drawing_context>::Type odf_drawing_context_ptr;
struct odt_section_state
{
office_element_ptr elm;
@ -93,11 +90,33 @@ public:
void start_hyperlink (std::wstring ref);
void end_hyperlink ();
void start_sequence ();
void end_sequence ();
void start_table_of_content ();
void end_table_of_content ();
void start_bibliography ();
void end_bibliography ();
void start_alphabetical_index ();
void end_alphabetical_index ();
void start_illustration_index ();
void end_illustration_index ();
void start_table_index ();
void end_table_index ();
void start_index_field();
void end_index_field();
void start_field (bool in_span);
void end_field ();
void separate_field ();
void set_field_instr (std::wstring instr);
std::map<std::wstring, std::wstring> parse_instr_options(const std::wstring& value);
void start_run (bool styled = false);
void end_run ();
@ -182,19 +201,32 @@ private:
std::vector<odf_element_state> current_root_elements_; // for section, if needed
std::vector<odt_section_state> sections_;
std::map<std::wstring, int> mapSequenceDecls;
void add_to_root();
struct _field_state
{
_typeField type = fieldUnknown;
std::wstring name;
bool enabled;
int type;
std::wstring value;
std::wstring format;
bool started;
bool in_span;
bool result;
}current_field_;
short status = 0;//0, 1, 2, 3 - init, prapare, start, finish
bool in_span = false;
bool result = false; //after separate
bool bHyperlinks = false;
bool bHidePageNumbers = false;
std::wstring captionSEQ;
std::wstring title;
std::vector<std::wstring> arStyleLevels;
int outline_levels = 0;
std::vector<int> arTemplateTypes;//text, link, tab ....
int tabLeader = 0;//dot
};
std::vector<_field_state> current_fields;
struct _text_changes_state
{

View File

@ -89,14 +89,34 @@ void office_text_attlist::serialize(CP_ATTR_NODE)
}
void office_text::create_child_element( const std::wstring & Ns, const std::wstring & Name)
{
if (is_text_content(Ns, Name))
{
CP_CREATE_ELEMENT(content_);
}
if CP_CHECK_NAME(L"office", L"forms")
{
CP_CREATE_ELEMENT(forms_);
}
else if CP_CHECK_NAME(L"text", L"tracked-changes")
{
CP_CREATE_ELEMENT(tracked_changes_);
}
else if CP_CHECK_NAME(L"table", L"content-validations")
{
CP_CREATE_ELEMENT(table_content_validations_);
}
else if CP_CHECK_NAME(L"text", L"user-field-decls")
{
CP_CREATE_ELEMENT(user_fields_);
}
else if CP_CHECK_NAME(L"text", L"sequence-decls")
{
CP_CREATE_ELEMENT(sequences_);
}
else if CP_CHECK_NAME(L"text", L"variable-decls")
{
CP_CREATE_ELEMENT(variables_);
}
else if (is_text_content(Ns, Name))
{
CP_CREATE_ELEMENT(content_);
}
else
CP_NOT_APPLICABLE_ELM();
}
@ -107,6 +127,10 @@ void office_text::add_child_element( const office_element_ptr & child_element)
switch(child_element->get_type())
{
case typeTextSequenceDecls:
{
sequences_ = child_element;
}break;
case typeTextTrackedChanges:
{
tracked_changes_ = child_element;
@ -130,6 +154,9 @@ void office_text::serialize(std::wostream & _Wostream)
{
office_text_attlist_.serialize(CP_GET_XML_NODE());
if (sequences_)
sequences_->serialize(CP_XML_STREAM());
if (tracked_changes_)
tracked_changes_->serialize(CP_XML_STREAM());

View File

@ -71,7 +71,13 @@ public:
private:
office_element_ptr tracked_changes_;
office_element_ptr_array content_;
office_element_ptr table_content_validations_;
office_element_ptr user_fields_;
office_element_ptr variables_;
office_element_ptr sequences_;
office_element_ptr forms_;
office_element_ptr_array content_;
// TODO: office-text-content-prelude:
// TODO: office-forms

View File

@ -71,6 +71,13 @@ using xml::xml_char_wc;
const wchar_t * text_text::ns = L"";
const wchar_t * text_text::name = L"";
std::wostream & text_text::text_to_stream(std::wostream & _Wostream) const
{
_Wostream << xml::utils::replace_text_to_xml( text_ );
return _Wostream;
}
void text_text::serialize(std::wostream & _Wostream)
{
_Wostream << xml::utils::replace_text_to_xml( text_ );
@ -236,6 +243,14 @@ void text_reference_mark_end::serialize(std::wostream & _Wostream)
const wchar_t * text_span::ns = L"text";
const wchar_t * text_span::name = L"span";
std::wostream & text_span::text_to_stream(std::wostream & _Wostream) const
{
for (size_t i = 0; i < paragraph_content_.size(); i++)
{
paragraph_content_[i]->text_to_stream(_Wostream);
}
return _Wostream;
}
void text_span::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
@ -772,9 +787,15 @@ void text_sequence::serialize(std::wostream & _Wostream)
{
CP_XML_NODE_SIMPLE()
{
CP_XML_ATTR_OPT(L"text:name", name_);
CP_XML_ATTR_OPT(L"text:ref-name", ref_name_);
CP_XML_ATTR_OPT(L"style:num-format", style_num_format_);
CP_XML_ATTR_OPT(L"style:num-letter-syn", style_num_letter_sync_);
CP_XML_ATTR_OPT(L"text:formula", formula_);
for (size_t i = 0; i < text_.size(); i++)
{
text_[i]->serialize(CP_XML_STREAM());
text_[i]->text_to_stream(CP_XML_STREAM());
}
}
}

View File

@ -65,7 +65,8 @@ public:
virtual void create_child_element(const std::wstring & Ns, const std::wstring & Name){}
virtual void add_child_element( const office_element_ptr & child_element){}
virtual void serialize(std::wostream & _Wostream);
std::wostream & text_to_stream(std::wostream & _Wostream) const;
virtual void serialize(std::wostream & _Wostream);
text_text(const std::wstring & Text) : text_(Text) {}
text_text() {}
@ -316,6 +317,7 @@ public:
virtual void add_child_element( const office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
std::wostream & text_to_stream(std::wostream & _Wostream) const;
text_span() {}
@ -678,7 +680,14 @@ public:
virtual void serialize(std::wostream & _Wostream);
virtual void add_text(const std::wstring & Text);
office_element_ptr_array text_;
_CP_OPT(odf_types::style_numformat) style_num_format_;
_CP_OPT(std::wstring) style_num_letter_sync_;
_CP_OPT(std::wstring) formula_;
_CP_OPT(std::wstring) name_;
_CP_OPT(std::wstring) ref_name_;
_CP_OPT(std::wstring) template_;
office_element_ptr_array text_;
};
CP_REGISTER_OFFICE_ELEMENT2(text_sequence);

View File

@ -379,25 +379,30 @@ void text_table_of_content::serialize(std::wostream & _Wostream)
{
text_section_attr_.serialize(CP_GET_XML_NODE());
if (text_index_body_)
text_index_body_->serialize(CP_XML_STREAM());
if (table_of_content_source_)
table_of_content_source_->serialize(CP_XML_STREAM());
if (text_table_of_content_source_)
text_table_of_content_source_->serialize(CP_XML_STREAM());
if (index_body_)
index_body_->serialize(CP_XML_STREAM());
}
}
}
void text_table_of_content::create_child_element( const std::wstring & Ns, const std::wstring & Name)
{
if CP_CHECK_NAME(L"text", L"index-body")
{
CP_CREATE_ELEMENT(text_index_body_);
}
if (L"text" == Ns && L"table-of-content-source" == Name) CP_CREATE_ELEMENT(table_of_content_source_);
else if CP_CHECK_NAME(L"text", L"index-body") CP_CREATE_ELEMENT(index_body_);
}
void text_table_of_content::add_child_element( const office_element_ptr & child_element)
{
text_index_body_ = child_element;
if (!child_element) return;
ElementType type = child_element->get_type();
if (type == typeTextTableOfContentSource)
table_of_content_source_= child_element;
else if (type == typeTextIndexBody)
index_body_ = child_element;
}
//--------------------------------------------------------------------------------------------------------
@ -616,7 +621,7 @@ const wchar_t * text_table_index::name = L"table-index";
void text_table_index::create_child_element(const std::wstring & Ns, const std::wstring & Name)
{
if (L"text" == Ns && L"index-body_" == Name) CP_CREATE_ELEMENT(index_body_);
if (L"text" == Ns && L"index-body" == Name) CP_CREATE_ELEMENT(index_body_);
else if (L"text" == Ns && L"table-index-source" == Name)CP_CREATE_ELEMENT(table_index_source_);
}
@ -654,7 +659,7 @@ const wchar_t * text_illustration_index::name = L"illustration-index";
void text_illustration_index::create_child_element(const std::wstring & Ns, const std::wstring & Name)
{
if (L"text" == Ns && L"index-body_" == Name) CP_CREATE_ELEMENT(index_body_);
if (L"text" == Ns && L"index-body" == Name) CP_CREATE_ELEMENT(index_body_);
else if (L"text" == Ns && L"illustration-index-source" == Name) CP_CREATE_ELEMENT(illustration_index_source_);
}
@ -687,12 +692,50 @@ void text_illustration_index::serialize(std::wostream & _Wostream)
}
}
//------------------------------------------------------------
const wchar_t * text_user_index::ns = L"text";
const wchar_t * text_user_index::name = L"user-index";
void text_user_index::create_child_element(const std::wstring & Ns, const std::wstring & Name)
{
if (L"text" == Ns && L"index-body" == Name) CP_CREATE_ELEMENT(index_body_);
else if (L"text" == Ns && L"user-index-source" == Name) CP_CREATE_ELEMENT(user_index_source_);
}
void text_user_index::add_child_element( const office_element_ptr & child_element)
{
if (!child_element) return;
ElementType type = child_element->get_type();
if (type == typeTextUserIndexSource)
user_index_source_= child_element;
else if (type == typeTextIndexBody)
index_body_= child_element;
}
void text_user_index::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
section_attr_.serialize(CP_GET_XML_NODE());
if (user_index_source_)
user_index_source_->serialize(CP_XML_STREAM());
if (index_body_)
index_body_->serialize(CP_XML_STREAM());
}
}
}
//------------------------------------------------------------
const wchar_t * text_alphabetical_index::ns = L"text";
const wchar_t * text_alphabetical_index::name = L"alphabetical-index";
void text_alphabetical_index::create_child_element(const std::wstring & Ns, const std::wstring & Name)
{
if (L"text" == Ns && L"index-body_" == Name) CP_CREATE_ELEMENT(index_body_);
if (L"text" == Ns && L"index-body" == Name) CP_CREATE_ELEMENT(index_body_);
else if (L"text" == Ns && L"alphabetical-index-source" == Name) CP_CREATE_ELEMENT(alphabetical_index_source_);
}
@ -730,7 +773,7 @@ const wchar_t * text_bibliography::name = L"bibliography";
void text_bibliography::create_child_element(const std::wstring & Ns, const std::wstring & Name)
{
if (L"text" == Ns && L"index-body_" == Name) CP_CREATE_ELEMENT(index_body_);
if (L"text" == Ns && L"index-body" == Name) CP_CREATE_ELEMENT(index_body_);
else if (L"text" == Ns && L"bibliography-source" == Name) CP_CREATE_ELEMENT(bibliography_source_);
}
@ -898,6 +941,62 @@ void text_illustration_index_source::serialize(std::wostream & _Wostream)
}
}
//----------------------------------------------------------------------------------------------------------
const wchar_t * text_user_index_source::ns = L"text";
const wchar_t * text_user_index_source::name = L"user-index-source";
void text_user_index_source::create_child_element(const std::wstring & Ns, const std::wstring & Name)
{
if (L"text" == Ns && L"index-title-template" == Name) CP_CREATE_ELEMENT(index_title_template_);
else CP_CREATE_ELEMENT(entry_templates_);
}
void text_user_index_source::add_child_element( const office_element_ptr & child_element)
{
if (!child_element) return;
ElementType type = child_element->get_type();
if (type == typeTextIndexTitleTemplate)
index_title_template_ = child_element;
else
entry_templates_.push_back(child_element);
}
void text_user_index_source::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
CP_XML_ATTR_OPT(L"text:index-name", index_name_);
CP_XML_ATTR_OPT(L"text:copy-outline-levels", copy_outline_levels_);
CP_XML_ATTR_OPT(L"text:use-chart-objects", use_chart_objects_);
CP_XML_ATTR_OPT(L"text:use-draw-objects", use_draw_objects_);
CP_XML_ATTR_OPT(L"text:use-graphics", use_graphics_);
CP_XML_ATTR_OPT(L"text:use-floating-frames", use_floating_frames_);
CP_XML_ATTR_OPT(L"text:use-index-marks", use_index_marks_);
CP_XML_ATTR_OPT(L"text:use-index_source_styles", use_index_source_styles_);
CP_XML_ATTR_OPT(L"text:use-objects", use_objects_);
CP_XML_ATTR_OPT(L"text:use-tables", use_tables_);
CP_XML_ATTR_OPT(L"text:relative_tab-stop-position", relative_tab_stop_position_);
CP_XML_ATTR_OPT(L"text:index-scope", index_scope_); // chapter or document
if (index_title_template_)
index_title_template_->serialize(CP_XML_STREAM());
for (size_t i = 0 ; i < index_source_styles_.size(); i++)
{
index_source_styles_[i]->serialize(CP_XML_STREAM());
}
for (size_t i = 0 ; i < entry_templates_.size(); i++)
{
entry_templates_[i]->serialize(CP_XML_STREAM());
}
}
}
}
//----------------------------------------------------------------------------------------------------------
const wchar_t * alphabetical_index_source::ns = L"text";
const wchar_t * alphabetical_index_source::name = L"alphabetical-index-source";
@ -995,6 +1094,9 @@ const wchar_t * text_table_index_entry_template::name = L"table-index-entry-te
const wchar_t * text_table_of_content_entry_template::ns = L"text";
const wchar_t * text_table_of_content_entry_template::name = L"table-of-content-entry-template";
//----------------------------------------------------------------------------------------------------------
const wchar_t * text_user_index_entry_template::ns = L"text";
const wchar_t * text_user_index_entry_template::name = L"user-index-entry-template";
//----------------------------------------------------------------------------------------------------------
const wchar_t * text_bibliography_entry_template::ns = L"text";
const wchar_t * text_bibliography_entry_template::name = L"bibliography-entry-template";
@ -1153,5 +1255,46 @@ void text_index_entry_text::serialize(std::wostream & _Wostream)
CP_XML_NODE_SIMPLE();
}
}
//----------------------------------------------------------------------------------------------------------
const wchar_t * text_sequence_decl::ns = L"text";
const wchar_t * text_sequence_decl::name = L"sequence-decl";
void text_sequence_decl::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
CP_XML_ATTR_OPT(L"text:name", name_);
CP_XML_ATTR_OPT(L"text:separation-character", separation_character_);
CP_XML_ATTR_OPT(L"text:display-outline-level", display_outline_level_);
}
}
}
//----------------------------------------------------------------------------------------------------------
const wchar_t * text_sequence_decls::ns = L"text";
const wchar_t * text_sequence_decls::name = L"sequence-decls";
void text_sequence_decls::create_child_element(const std::wstring & Ns, const std::wstring & Name)
{
CP_CREATE_ELEMENT(content_);
}
void text_sequence_decls::add_child_element( const office_element_ptr & child_element)
{
content_.push_back(child_element);
}
void text_sequence_decls::serialize(std::wostream & _Wostream)
{
CP_XML_WRITER(_Wostream)
{
CP_XML_NODE_SIMPLE()
{
for (size_t i = 0 ; i < content_.size(); i++)
{
content_[i]->serialize(CP_XML_STREAM());
}
}
}
}
}
}

View File

@ -272,8 +272,8 @@ public:
text_section_attr text_section_attr_;
office_element_ptr text_table_of_content_source_;
office_element_ptr text_index_body_;
office_element_ptr table_of_content_source_;
office_element_ptr index_body_;
};
CP_REGISTER_OFFICE_ELEMENT2(text_table_of_content);
@ -555,6 +555,30 @@ public:
};
CP_REGISTER_OFFICE_ELEMENT2(text_alphabetical_index);
//---------------------------------------------------------------------------------------------------
// text:user-index
//---------------------------------------------------------------------------------------------------
class text_user_index : public office_element_impl<text_user_index>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeTextUserIndex;
CPDOCCORE_DEFINE_VISITABLE();
virtual void create_child_element (const std::wstring & Ns, const std::wstring & Name);
virtual void add_child_element ( const office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
odf_types::section_attlists section_attr_;
office_element_ptr user_index_source_;
office_element_ptr index_body_;
};
CP_REGISTER_OFFICE_ELEMENT2(text_user_index);
//------------------------------------------------------------------------------------------------------------
// text:bibliography
//------------------------------------------------------------------------------------------------------------
@ -654,48 +678,48 @@ public:
_CP_OPT(std::wstring) content_;
};
CP_REGISTER_OFFICE_ELEMENT2(text_index_title_template);
////---------------------------------------------------------------------------------------------------
////text:sequence-decl
////---------------------------------------------------------------------------------------------------
//class text_sequence_decl : public office_element_impl<text_sequence_decl>
//{
//public:
// static const wchar_t * ns;
// static const wchar_t * name;
// static const xml::NodeType xml_type = xml::typeElement;
// static const ElementType type = typeTextSequenceDecl;
// CPDOCCORE_DEFINE_VISITABLE()
//
// virtual void create_child_element (const std::wstring & Ns, const std::wstring & Name);
// virtual void add_child_element ( const office_element_ptr & child_element);
//
// virtual void serialize(std::wostream & _Wostream);
//
// _CP_OPT(std::wstring) separation_character_; //one char
// _CP_OPT(unsigned int) display_outline_level_;
// _CP_OPT(std::wstring) name_;
//};
//CP_REGISTER_OFFICE_ELEMENT2(text_sequence_decl);
////---------------------------------------------------------------------------------------------------
////text:sequence-decls
////---------------------------------------------------------------------------------------------------
//class text_sequence_decls : public office_element_impl<text_sequence_decls>
//{
//public:
// static const wchar_t * ns;
// static const wchar_t * name;
// static const xml::NodeType xml_type = xml::typeElement;
// static const ElementType type = typeTextSequenceDecls;
// CPDOCCORE_DEFINE_VISITABLE()
//
// virtual void create_child_element (const std::wstring & Ns, const std::wstring & Name);
// virtual void add_child_element ( const office_element_ptr & child_element);
//
// virtual void serialize(std::wostream & _Wostream);
//
// office_element_ptr_array content_;
//};
//CP_REGISTER_OFFICE_ELEMENT2(text_sequence_decls);
//---------------------------------------------------------------------------------------------------
//text:sequence-decl
//---------------------------------------------------------------------------------------------------
class text_sequence_decl : public office_element_impl<text_sequence_decl>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeTextSequenceDecl;
CPDOCCORE_DEFINE_VISITABLE()
virtual void create_child_element (const std::wstring & Ns, const std::wstring & Name){}
virtual void add_child_element ( const office_element_ptr & child_element){}
virtual void serialize(std::wostream & _Wostream);
_CP_OPT(std::wstring) separation_character_; //one char
_CP_OPT(unsigned int) display_outline_level_;
_CP_OPT(std::wstring) name_;
};
CP_REGISTER_OFFICE_ELEMENT2(text_sequence_decl);
//---------------------------------------------------------------------------------------------------
//text:sequence-decls
//---------------------------------------------------------------------------------------------------
class text_sequence_decls : public office_element_impl<text_sequence_decls>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeTextSequenceDecls;
CPDOCCORE_DEFINE_VISITABLE()
virtual void create_child_element (const std::wstring & Ns, const std::wstring & Name);
virtual void add_child_element ( const office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
office_element_ptr_array content_;
};
CP_REGISTER_OFFICE_ELEMENT2(text_sequence_decls);
//---------------------------------------------------------------------------------------------------
//text:table-of-content-source
//---------------------------------------------------------------------------------------------------
@ -928,6 +952,54 @@ public:
};
CP_REGISTER_OFFICE_ELEMENT2(text_illustration_index_entry_template);
//---------------------------------------------------------------------------------------------------
//text:user-index-source
//---------------------------------------------------------------------------------------------------
class text_user_index_source: public office_element_impl<text_user_index_source>
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeTextUserIndexSource;
CPDOCCORE_DEFINE_VISITABLE()
virtual void create_child_element (const std::wstring & Ns, const std::wstring & Name);
virtual void add_child_element ( const office_element_ptr & child_element);
virtual void serialize(std::wostream & _Wostream);
_CP_OPT(std::wstring) index_name_;
_CP_OPT(odf_types::Bool) copy_outline_levels_;
_CP_OPT(odf_types::Bool) relative_tab_stop_position_;
_CP_OPT(odf_types::Bool) use_chart_objects_;
_CP_OPT(odf_types::Bool) use_draw_objects_;
_CP_OPT(odf_types::Bool) use_graphics_;
_CP_OPT(odf_types::Bool) use_floating_frames_;
_CP_OPT(odf_types::Bool) use_index_marks_;
_CP_OPT(odf_types::Bool) use_index_source_styles_;
_CP_OPT(odf_types::Bool) use_objects_;
_CP_OPT(odf_types::Bool) use_tables_;
_CP_OPT(std::wstring) index_scope_; // chapter or document:
office_element_ptr index_title_template_;
office_element_ptr_array entry_templates_;
office_element_ptr_array index_source_styles_;
};
CP_REGISTER_OFFICE_ELEMENT2(text_user_index_source);
//---------------------------------------------------------------------------------------------------
//text:user-index-entry-template
//---------------------------------------------------------------------------------------------------
class text_user_index_entry_template : public common_entry_template
{
public:
static const wchar_t * ns;
static const wchar_t * name;
static const xml::NodeType xml_type = xml::typeElement;
static const ElementType type = typeTextUserIndexEntryTemplate;
CPDOCCORE_DEFINE_VISITABLE()
};
CP_REGISTER_OFFICE_ELEMENT2(text_user_index_entry_template);
//---------------------------------------------------------------------------------------------------
//text:alphabetical-index-source
//---------------------------------------------------------------------------------------------------
class alphabetical_index_source : public office_element_impl<alphabetical_index_source>

View File

@ -623,9 +623,9 @@ void OoxConverter::convert(PPTX::Logic::Shape *oox_shape)
//docx_converter->convert(oox_shape->oTextBoxShape.GetPointer());
for (std::vector<OOX::WritingElement*>::iterator it = oox_shape->oTextBoxShape->m_arrItems.begin(); it != oox_shape->oTextBoxShape->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_shape->oTextBoxShape->m_arrItems.size(); i++)
{
docx_converter->convert(*it);
docx_converter->convert(oox_shape->oTextBoxShape->m_arrItems[i]);
convert(oox_shape->oTextBoxBodyPr.GetPointer());

View File

@ -101,13 +101,13 @@ namespace Oox2Odf
impl_->convertDocument();
}
void Converter::write(const std::wstring & out_path, const std::wstring & temp_path, const std::wstring & password) const
void Converter::write(const std::wstring & out_path, const std::wstring & temp_path, const std::wstring & password, const std::wstring & documentID) const
{
if (!impl_)return;
if (impl_->bUserStopConvert) return;
return impl_->write(out_path, temp_path, password);
return impl_->write(out_path, temp_path, password, documentID);
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
@ -126,10 +126,15 @@ bool OoxConverter::UpdateProgress(long nComplete)
return FALSE;
}
void OoxConverter::write(const std::wstring & out_path, const std::wstring & temp_path, const std::wstring & password)
void OoxConverter::write(const std::wstring & out_path, const std::wstring & temp_path, const std::wstring & password, const std::wstring & documentID)
{
if (!output_document)return;
if (false == documentID.empty())
{
output_document->set_documentID(documentID);
}
if (password.empty())
{
output_document->write(out_path);

View File

@ -343,7 +343,7 @@ namespace Oox2Odf
public:
virtual void convertDocument() = 0;
void write(const std::wstring & out_path, const std::wstring & temp_path, const std::wstring & password);
void write(const std::wstring & out_path, const std::wstring & temp_path, const std::wstring & password, const std::wstring & documentID);
OoxConverter(const ProgressCallback* CallBack = NULL){
oox_current_child_document = NULL;

View File

@ -412,9 +412,9 @@ void DocxConverter::convert(OOX::Logic::CSdtContent *oox_sdt)
{
if (oox_sdt == NULL) return;
for (std::vector<OOX::WritingElement*>::iterator it = oox_sdt->m_arrItems.begin(); it != oox_sdt->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_sdt->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_sdt->m_arrItems[i]);
}
}
void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph)
@ -607,9 +607,9 @@ void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph)
{//rapcomnat12.docx - стр 185
bool empty_para = true;
for (std::vector<OOX::WritingElement*>::iterator it = oox_paragraph->m_arrItems.begin(); it != oox_paragraph->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_paragraph->m_arrItems.size(); ++i)
{
switch((*it)->getType())
switch(oox_paragraph->m_arrItems[i]->getType())
{
case OOX::et_w_pPr: break;
default:
@ -631,17 +631,17 @@ void DocxConverter::convert(OOX::Logic::CParagraph *oox_paragraph)
}
//---------------------------------------------------------------------------------------------------------------------
for (std::vector<OOX::WritingElement*>::iterator it = oox_paragraph->m_arrItems.begin(); it != oox_paragraph->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_paragraph->m_arrItems.size(); ++i)
{
//те элементы которые тока для Paragraph - здесь - остальные в общей куче
switch((*it)->getType())
switch(oox_paragraph->m_arrItems[i]->getType())
{
case OOX::et_w_pPr:
{
// пропускаем ..
}break;
default:
convert(*it);
convert(oox_paragraph->m_arrItems[i]);
break;
}
}
@ -691,24 +691,24 @@ void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87
odt_context->start_run(styled);
for (std::vector<OOX::WritingElement*>::iterator it = oox_run->m_arrItems.begin(); it != oox_run->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_run->m_arrItems.size(); ++i)
{
//те элементы которые тока для Run - здесь - остальные в общей куче
switch((*it)->getType())
switch(oox_run->m_arrItems[i]->getType())
{
case OOX::et_w_fldChar:
{
OOX::Logic::CFldChar* pFldChar= dynamic_cast<OOX::Logic::CFldChar*>(*it);
OOX::Logic::CFldChar* pFldChar= dynamic_cast<OOX::Logic::CFldChar*>(oox_run->m_arrItems[i]);
convert(pFldChar);
}break;
case OOX::et_w_instrText:
{
OOX::Logic::CInstrText* pInstrText= dynamic_cast<OOX::Logic::CInstrText*>(*it);
OOX::Logic::CInstrText* pInstrText= dynamic_cast<OOX::Logic::CInstrText*>(oox_run->m_arrItems[i]);
convert(pInstrText);
}break;
case OOX::et_w_delText:
{
OOX::Logic::CDelText* pDelText= dynamic_cast<OOX::Logic::CDelText*>(*it);
OOX::Logic::CDelText* pDelText= dynamic_cast<OOX::Logic::CDelText*>(oox_run->m_arrItems[i]);
convert(pDelText);
}break;
case OOX::et_w_rPr: // пропускаем ..
@ -719,7 +719,7 @@ void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87
}break;
case OOX::et_w_br:
{
OOX::Logic::CBr* pBr= dynamic_cast<OOX::Logic::CBr*>(*it);
OOX::Logic::CBr* pBr= dynamic_cast<OOX::Logic::CBr*>(oox_run->m_arrItems[i]);
if (pBr)
{
int type = pBr->m_oType.GetValue();
@ -732,17 +732,17 @@ void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87
}break;
case OOX::et_w_t:
{
OOX::Logic::CText* pText= dynamic_cast<OOX::Logic::CText*>(*it);
OOX::Logic::CText* pText= dynamic_cast<OOX::Logic::CText*>(oox_run->m_arrItems[i]);
convert(pText);
}break;
case OOX::et_w_sym:
{
OOX::Logic::CSym* pSym= dynamic_cast<OOX::Logic::CSym*>(*it);
OOX::Logic::CSym* pSym= dynamic_cast<OOX::Logic::CSym*>(oox_run->m_arrItems[i]);
convert(pSym);
}break;
case OOX::et_w_tab:
{
OOX::Logic::CTab* pTab= dynamic_cast<OOX::Logic::CTab*>(*it);
OOX::Logic::CTab* pTab= dynamic_cast<OOX::Logic::CTab*>(oox_run->m_arrItems[i]);
odt_context->text_context()->add_tab();
}break;
@ -759,7 +759,7 @@ void DocxConverter::convert(OOX::Logic::CRun *oox_run)//wordprocessing 22.1.2.87
//softHyphen
//delInstrText
default:
convert(*it);
convert(oox_run->m_arrItems[i]);
}
}
odt_context->end_run();
@ -861,9 +861,9 @@ void DocxConverter::convert(OOX::Logic::CFldSimple *oox_fld)
if (oox_fld->m_sInstr.IsInit())
odt_context->set_field_instr(oox_fld->m_sInstr.get2());
for (std::vector<OOX::WritingElement*>::iterator it = oox_fld->m_arrItems.begin(); it != oox_fld->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_fld->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_fld->m_arrItems[i]);
}
}
odt_context->end_field();
@ -898,9 +898,9 @@ void DocxConverter::convert(OOX::Logic::CIns *oox_ins)
bool start_change = odt_context->start_change(id, 1, author, userId, date);
for (std::vector<OOX::WritingElement*>::iterator it = oox_ins->m_arrItems.begin(); it != oox_ins->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_ins->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_ins->m_arrItems[i]);
}
if (start_change)
@ -1103,9 +1103,9 @@ void DocxConverter::convert(OOX::Logic::CDel *oox_del)
bool res_change = odt_context->start_change(id, 2, author, userId, date);
for (std::vector<OOX::WritingElement*>::iterator it = oox_del->m_arrItems.begin(); it != oox_del->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_del->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_del->m_arrItems[i]);
}
if (res_change)
odt_context->end_change(id, 2);
@ -1114,9 +1114,9 @@ void DocxConverter::convert(OOX::Logic::CSmartTag *oox_tag)
{
if (oox_tag == NULL) return;
for (std::vector<OOX::WritingElement*>::iterator it = oox_tag->m_arrItems.begin(); it != oox_tag->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_tag->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_tag->m_arrItems[i]);
}
}
void DocxConverter::convert(OOX::Logic::CParagraphProperty *oox_paragraph_pr, cpdoccore::odf_writer::style_paragraph_properties * paragraph_properties)
@ -3036,27 +3036,34 @@ void DocxConverter::convert_styles()
void DocxConverter::convert(OOX::Logic::CHyperlink *oox_hyperlink)
{
if (oox_hyperlink == NULL)return;
std::wstring ref;
if (oox_hyperlink->m_oId.IsInit()) //гиперлинк
{
std::wstring ref = find_link_by_id(oox_hyperlink->m_oId->GetValue(),2);
ref = find_link_by_id(oox_hyperlink->m_oId->GetValue(),2);
}
else if (oox_hyperlink->m_sAnchor.IsInit())
{
ref = L"#" + *oox_hyperlink->m_sAnchor;
}
if (false == ref.empty())
{
odt_context->start_hyperlink(ref);
for (std::vector<OOX::WritingElement*>::iterator it = oox_hyperlink->m_arrItems.begin(); it != oox_hyperlink->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_hyperlink->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_hyperlink->m_arrItems[i]);
}
odt_context->end_hyperlink();
}
else
{//ссылка внутри дока
//anchor todooo
for (std::vector<OOX::WritingElement*>::iterator it = oox_hyperlink->m_arrItems.begin(); it != oox_hyperlink->m_arrItems.end(); ++it)
{
for (size_t i = 0; i < oox_hyperlink->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_hyperlink->m_arrItems[i]);
}
}
//nullable<std::wstring > m_sAnchor;
//nullable<std::wstring > m_sDocLocation;
//nullable<SimpleTypes::COnOff<SimpleTypes::onoffFalse> > m_oHistory;
//nullable<std::wstring > m_sTgtFrame;
@ -3606,9 +3613,9 @@ void DocxConverter::convert_comment(int oox_comm_id)
if (oox_comment->m_oDate.IsInit()) odt_context->comment_context()->set_date (oox_comment->m_oDate->GetValue());
if (oox_comment->m_oInitials.IsInit()) {}
for (std::vector<OOX::WritingElement*>::iterator it = oox_comment->m_arrItems.begin(); it != oox_comment->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_comment->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_comment->m_arrItems[i]);
}
}
odt_context->end_comment_content();
@ -3631,9 +3638,9 @@ void DocxConverter::convert_footnote(int oox_ref_id)
{
odt_context->start_note_content();
{
for (std::vector<OOX::WritingElement*>::iterator it = oox_note->m_arrItems.begin(); it != oox_note->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_note->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_note->m_arrItems[i]);
}
}
odt_context->end_note_content();
@ -3658,9 +3665,9 @@ void DocxConverter::convert_endnote(int oox_ref_id)
{
odt_context->start_note_content();
{
for (std::vector<OOX::WritingElement*>::iterator it = oox_note->m_arrItems.begin(); it != oox_note->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_note->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_note->m_arrItems[i]);
}
}
odt_context->end_note_content();
@ -3675,9 +3682,9 @@ void DocxConverter::convert_hdr_ftr (std::wstring sId)
oox_current_child_document = dynamic_cast<OOX::IFileContainer*>(oox_hdr_ftr);
for (std::vector<OOX::WritingElement*>::iterator it = oox_hdr_ftr->m_arrItems.begin(); it != oox_hdr_ftr->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_hdr_ftr->m_arrItems.size(); ++i)
{
convert(*it);
convert(oox_hdr_ftr->m_arrItems[i]);
}
oox_current_child_document = NULL;
}
@ -3854,16 +3861,16 @@ void DocxConverter::convert(OOX::Logic::CTbl *oox_table)
convert(oox_table->m_oTblGrid.GetPointer());
//------ строки
for (std::vector<OOX::WritingElement*>::iterator it = oox_table->m_arrItems.begin(); it != oox_table->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_table->m_arrItems.size(); ++i)
{
switch((*it)->getType())
switch(oox_table->m_arrItems[i]->getType())
{
case OOX::et_w_tblPr:
{
//skip
}break;
default:
convert(*it);
convert(oox_table->m_arrItems[i]);
}
}
if (in_frame)
@ -3970,16 +3977,16 @@ void DocxConverter::convert(OOX::Logic::CTr *oox_table_row)
convert(oox_table_row->m_pTableRowProperties);
for (std::vector<OOX::WritingElement*>::iterator it = oox_table_row->m_arrItems.begin(); it != oox_table_row->m_arrItems.end(); ++it)
for (size_t i =0; i < oox_table_row->m_arrItems.size(); ++i)
{
switch((*it)->getType())
switch(oox_table_row->m_arrItems[i]->getType())
{
case OOX::et_w_trPr:
{
//skip
}break;
default:
convert(*it);
convert(oox_table_row->m_arrItems[i]);
}
}
odt_context->end_table_row();
@ -4030,16 +4037,16 @@ void DocxConverter::convert(OOX::Logic::CTc *oox_table_cell)
odt_context->table_context()->set_cell_column_span(oox_table_cell->m_pTableCellProperties->m_oGridSpan->m_oVal->GetValue());
}
for (std::vector<OOX::WritingElement*>::iterator it = oox_table_cell->m_arrItems.begin(); it != oox_table_cell->m_arrItems.end(); ++it)
for (size_t i = 0; i < oox_table_cell->m_arrItems.size(); ++i)
{
switch((*it)->getType())
switch(oox_table_cell->m_arrItems[i]->getType())
{
case OOX::et_w_tcPr:
{
//skip
}break;
default:
convert(*it);
convert(oox_table_cell->m_arrItems[i]);
}
}
odt_context->end_table_cell();

View File

@ -46,7 +46,7 @@ namespace Oox2Odf
void convert();
void write(const std::wstring & out_path, const std::wstring & temp_path, const std::wstring & password) const;
void write(const std::wstring & out_path, const std::wstring & temp_path, const std::wstring & password, const std::wstring & documentID) const;
OoxConverter * get_ooxConverter() { return impl_; }

View File

@ -3764,7 +3764,7 @@
"$(PROJECT_DIR)/../../../Common/ASCDocxFormat/Source",
"$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = PPTXFormatLib_ios;
SDKROOT = iphoneos;
};
@ -3806,7 +3806,7 @@
"$(PROJECT_DIR)/../../../Common/ASCDocxFormat/Source",
"$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = PPTXFormatLib_ios;
SDKROOT = iphoneos;
};

View File

@ -594,7 +594,7 @@
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/include",
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/devel",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@ -628,7 +628,7 @@
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/include",
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/devel",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;

View File

@ -1839,6 +1839,12 @@ bool RtfOleReader::ExecuteCommand(RtfDocument& oDocument, RtfReader& oReader, st
{
TextReader oTextReader( m_oOle.m_sOleClass, false );
StartSubReader( oTextReader, oDocument, oReader );
size_t pos = m_oOle.m_sOleClass.find(L"asc.");
if (std::wstring::npos != pos)
{
m_oOle.m_sOleClass = L"asc.{" + m_oOle.m_sOleClass.substr(pos + 4) + L"}";
}
}
else if ( "objdata" == sCommand )
{

View File

@ -34,7 +34,6 @@
#include "Writer/OOXRelsWriter.h"
#include "RtfDocument.h"
#include "../../../Common/OfficeFileFormatChecker.h"
std::wstring RtfOle::RenderToOOX(RenderParameter oRenderParameter)
{
@ -98,6 +97,7 @@ std::wstring RtfOle::RenderToOOX(RenderParameter oRenderParameter)
if (m_oResultShape)
{
m_oResultShape->m_bIsOle = true;
sResult += m_oResultShape->RenderToOOX(oNewRenderParameter);
oNewRenderParameter.nValue = m_oResultShape->m_nID;
@ -120,37 +120,6 @@ std::wstring RtfOle::RenderToOOXOnlyOle(RenderParameter oRenderParameter)
OOXRelsWriter * poRelsWriter = static_cast<OOXRelsWriter*> (oRenderParameter.poRels);
RtfDocument * poDocument = static_cast<RtfDocument*> (oRenderParameter.poDocument);
int ind_ole = poDocument->m_oIdGenerator.Generate_OleIndex();
std::wstring sName = L"oleObject" + std::to_wstring(ind_ole);
std::wstring sExtension = L"bin";
std::wstring sMime = L"application/vnd.openxmlformats-officedocument.oleObject";
std::wstring sRelsType = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject";
COfficeFileFormatChecker checker;
if (checker.isOfficeFile(m_sOleFilename))
{
switch(checker.nFileType)
{
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX:
{
sName = L"_____Microsoft_Excel" + ((ind_ole > 1) ? (L"_" + std::to_wstring(ind_ole - 1)) : L"");
sExtension = L"xlsx";
sMime = L"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
sRelsType = L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/package";
m_sOleClass = L"Excel.Sheet.12";
}break;
case AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS:
{
sName = L"_____Microsoft_Excel_97-2003" + ((ind_ole > 1) ? (L"_" + std::to_wstring(ind_ole - 1)) : L"");
sExtension = L"xls";
sMime = L"application/vnd.ms-excel";
m_sOleClass = L"Excel.Sheet.8";
}break;
}
}
sResult += L"<o:OLEObject";
switch ( m_eOleType )
{
@ -161,9 +130,13 @@ std::wstring RtfOle::RenderToOOXOnlyOle(RenderParameter oRenderParameter)
sResult += L" ShapeID=\"_x0000_s" + std::to_wstring(poDocument->GetShapeId( oRenderParameter.nValue )) + L"\"";
sResult += L" DrawAspect=\"Content\"";
sResult += L" ObjectID=\"" + poDocument->m_oIdGenerator.Generate_OleId() + L"\"";
std::wstring sExtension = L"bin";
std::wstring sMime = L"application/vnd.openxmlformats-officedocument.oleObject";
std::wstring sFilenameRels;
sFilenameRels += sName + L"." + sExtension;
sFilenameRels += L"oleObject" + std::to_wstring(poDocument->m_oIdGenerator.Generate_OleIndex()) + L".";
sFilenameRels += sExtension;
std::wstring sFilenameFull = poOOXWriter->m_sTargetFolder + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"embeddings";
@ -175,7 +148,7 @@ std::wstring RtfOle::RenderToOOXOnlyOle(RenderParameter oRenderParameter)
Utils::CopyDirOrFile( m_sOleFilename, sFilenameFull );
poOOXWriter->m_oContentTypes.AddExtension( sMime, sExtension);
std::wstring srId = poRelsWriter->AddRelationship( sRelsType, sFilenameRels);
std::wstring srId = poRelsWriter->AddRelationship( L"http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject", sFilenameRels);
sResult += L" r:id=\"" + srId + L"\"";
sResult += L"/>";

View File

@ -803,7 +803,8 @@ std::wstring RtfShape::RenderToOOX(RenderParameter oRenderParameter)
}
std::wstring RtfShape::GetShapeNodeName()
{
if (m_bBackground) return L"v:background";
if (m_bBackground) return L"v:background";
if (m_bIsOle) return L"v:rect";
switch(m_nShapeType)
{
@ -1386,7 +1387,7 @@ std::wstring RtfShape::RenderToOOXBegin(RenderParameter oRenderParameter)
{
sPicture = m_oPicture->RenderToOOX(oRenderParameter);
if (m_nShapeType == PROP_DEF || m_nShapeType == 75)
if (m_nShapeType == PROP_DEF || m_nShapeType == 75 || m_bIsOle)
{
if( sPicture.empty() )//если не сохранилась картинка, то весь shape-picture будет бесполезным
return L"";

View File

@ -1,6 +1,6 @@
#!/bin/bash
SCRIPT=$(readlink -n "$0" || grealpath "$0")
SCRIPT=$(readlink -f "$0" || grealpath "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
os=$(uname -s)

View File

@ -37,7 +37,7 @@ nmake /f Makefile.vc mode=static ENABLE_WINSSL=yes MACHINE=%MACHINE% VC=12
if not exist "%SCRIPTPATH%%OUTPUT%" (
md %SCRIPTPATH%%OUTPUT%\build
xcopy /Y /S ..\builds\libcurl-vc12-%MACHINE%-release-static-ipv6-sspi-winssl\lib\libcurl_a.lib %SCRIPTPATH%%OUTPUT%\build\
mv %SCRIPTPATH%%OUTPUT%\build\libcurl_a.lib %SCRIPTPATH%%OUTPUT%\build\curl.lib
move %SCRIPTPATH%%OUTPUT%\build\libcurl_a.lib %SCRIPTPATH%%OUTPUT%\build\curl.lib
)
cd ..\..
cd ..\..

View File

@ -59,6 +59,13 @@ else
svn export http://source.icu-project.org/repos/icu/tags/release-$ICU_MAJOR_VER-$ICU_MINOR_VER/icu4c ./icu
fi
# Workaround for building icu older than 60.0 on Archlinux
# See https://bugs.archlinux.org/task/55246
if [ -f "/etc/arch-release" ]; then
echo "Arch Linux detected. Applying 'xlocale.h' error patch"
sed -i 's/xlocale/locale/' ./icu/source/i18n/digitlst.cpp
fi
cd ./icu/source/
if [ ! -f "./Makefile" ]

View File

@ -0,0 +1,50 @@
#!/bin/bash
SCRIPT=$(readlink -f "$0" || grealpath "$0")
SCRIPTPATH=$(dirname "$SCRIPT")
ICU_MAJOR_VER=62
ICU_MINOR_VER=1
SHARED_LIB_VER=$ICU_MAJOR_VER.$ICU_MINOR_VER
os=$(uname -s)
platform=""
case "$os" in
Linux*)
platform="linux"
BUILD_PLATFORM=Linux
SHARED_LIB_EXT=.so.$SHARED_LIB_VER
SHARED_LIB_SHORT_EXT=.so.$ICU_MAJOR_VER
;;
Darwin*)
platform="mac"
BUILD_PLATFORM=MacOSX
SHARED_LIB_EXT=.$SHARED_LIB_VER.dylib
SHARED_LIB_SHORT_EXT=.$ICU_MAJOR_VER.dylib
;;
*) exit ;;
esac
architecture=$(uname -m)
arch=""
case "$architecture" in
x86_64*) arch="_64" ;;
*) arch="_32" ;;
esac
rm -rf "$SCRIPTPATH/$platform$arch"
if [[ -d "$SCRIPTPATH/$platform$arch" ]]
then
echo
else
mkdir "$SCRIPTPATH/$platform$arch"
fi
cd "$SCRIPTPATH/$platform$arch"
svn export http://source.icu-project.org/repos/icu/tags/release-$ICU_MAJOR_VER-$ICU_MINOR_VER/icu4c ./icu

View File

@ -1,4 +1,5 @@
#!/bin/bash
set -e
SCRIPT=$(readlink -f "$0" || grealpath "$0")
SCRIPTPATH=$(dirname "$SCRIPT")

View File

@ -23,4 +23,4 @@ cd v8
call git checkout -b 6.0 -t branch-heads/6.0
cd ../
call gclient sync
call gclient sync --no-history

View File

@ -22,7 +22,7 @@ else
cd v8
fi
gclient sync
gclient sync --no-history
os=$(uname -s)
platform=""

View File

@ -13,7 +13,7 @@ if [ -d "$SCRIPTPATH/v8/third_party/binutils/Linux_ia32/Release" ]; then
fi
cd "$SCRIPTPATH/v8"
gclient sync
gclient sync --no-history
if [ -d "$SCRIPTPATH/v8/third_party/binutils/Linux_x64/Release/bin" ]; then
cd "$SCRIPTPATH/v8/third_party/binutils/Linux_x64/Release/bin"

View File

@ -1246,7 +1246,7 @@
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/devel",
"$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = DocxFormatLib_ios;
SDKROOT = iphoneos;
};
@ -1288,7 +1288,7 @@
"$(PROJECT_DIR)/../../../DesktopEditor/freetype-2.5.2/devel",
"$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = DocxFormatLib_ios;
SDKROOT = iphoneos;
};

View File

@ -3403,9 +3403,10 @@ namespace SimpleTypes
std::wstring result;
for (size_t i = 0 ; i < sText.length(); i++)
{
if (XmlUtils::IsUnicodeSymbol(sText[i]) == true)
WCHAR wChar = sText[i];
if (XmlUtils::IsUnicodeSymbol(wChar) == true && wChar > 0x20)
{
result += sText[i];
result += wChar;
}
}
return result;

View File

@ -601,7 +601,9 @@ namespace OOX
if ( _T("v:path") == sName )
pItem = new OOX::Vml::CPath( oSubReader );
break;
case 'r':
if ( _T("v:rect") == sName )
m_oShape = oSubReader;
case 's':
if ( _T("v:shadow") == sName )
pItem = new OOX::Vml::CShadow( oSubReader );
@ -662,7 +664,7 @@ namespace OOX
{
WritingElement_ReadAttributes_Start( oReader )
WritingElement_ReadAttributes_Read_if ( oReader, _T("w:dxaOrig"), m_oDxaOrig )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("w:dxyOrig"), m_oDyaOrig )
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("w:dyaOrig"), m_oDyaOrig )
WritingElement_ReadAttributes_End( oReader )
}
};

View File

@ -65,7 +65,7 @@ public:
static int GetFormatByExtension(const std::wstring& ext);
bool isOOXFormatFile (const std::wstring & fileName);
bool isOpenOfficeFormatFile (const std::wstring & fileName);
bool isOpenOfficeFormatFile (const std::wstring & fileName, std::wstring & documentID);
bool isOnlyOfficeFormatFile (const std::wstring & fileName);
bool isDocFormatFile (POLE::Storage *storage);
@ -74,11 +74,13 @@ public:
bool isMS_OFFCRYPTOFormatFile (POLE::Storage * storage, std::wstring & documentID);
bool isMS_OFFCRYPTOFormatFile (const std::wstring & fileName, std::wstring & documentID);
bool isDocFlatFormatFile (unsigned char* pBuffer,int dwBytes);
std::wstring getDocumentID (const std::wstring & fileName);
bool isDocFlatFormatFile(unsigned char* pBuffer,int dwBytes);
bool isRtfFormatFile (unsigned char* pBuffer,int dwBytes);
bool isHtmlFormatFile (unsigned char* pBuffer,int dwBytes, bool testCloseTag);
bool isPdfFormatFile (unsigned char* pBuffer,int dwBytes);
bool isPdfFormatFile (unsigned char* pBuffer,int dwBytes, std::wstring & documentID);
bool isOpenOfficeFlatFormatFile(unsigned char* pBuffer,int dwBytes);
bool isBinaryDoctFormatFile (unsigned char* pBuffer,int dwBytes);

View File

@ -117,24 +117,34 @@ bool COfficeFileFormatChecker::isBinaryPpttFormatFile (unsigned char* pBuffer,in
return false;
}
bool COfficeFileFormatChecker::isPdfFormatFile (unsigned char* pBuffer,int dwBytes)
bool COfficeFileFormatChecker::isPdfFormatFile (unsigned char* pBuffer,int dwBytes, std::wstring & documentID)
{
if (pBuffer == NULL) return false;
int nTempBufferSize = dwBytes < 20 ? dwBytes : 20;
if (nTempBufferSize < 1)
documentID.clear();
if (dwBytes < 1)
return false;
char* pTempBuffer = new char[nTempBufferSize];
pBuffer[dwBytes - 1] = '\0';
memcpy ( pTempBuffer, pBuffer, nTempBufferSize );
pTempBuffer[nTempBufferSize - 1] = '\0';
char* pFirst = strstr( (char*)pTempBuffer, "%PDF-" );
delete [] pTempBuffer;
char* pFirst = strstr( (char*)pBuffer, "%PDF-" );
if( NULL != pFirst )
{
pFirst = strstr( (char*)pBuffer, "%DocumentID " );
if( NULL != pFirst )
{
pFirst += 12;
char* pLast = strstr( pFirst, " ");
if( NULL != pLast )
{
std::string s(pFirst, pLast - pFirst);
documentID = NSFile::CUtf8Converter::GetUnicodeStringFromUTF8((BYTE*)s.c_str(), s.length());
}
}
return true;
}
return false;
}
@ -232,6 +242,49 @@ bool COfficeFileFormatChecker::isPptFormatFile (POLE::Storage * storage)
return true;
}
std::wstring COfficeFileFormatChecker::getDocumentID (const std::wstring & _fileName )
{
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(_WIN64)
std::wstring fileName = CorrectPathW(_fileName);
#else
std::wstring fileName = _fileName;
#endif
std::wstring documentID;
POLE::Storage storage(fileName.c_str());
if (storage.open())
{
if ( isMS_OFFCRYPTOFormatFile(&storage, documentID) )
{
nFileType = AVS_OFFICESTUDIO_FILE_OTHER_MS_OFFCRYPTO;
}
}
else
{
if ( false == isOpenOfficeFormatFile(fileName, sDocumentID))
{
NSFile::CFileBinary file;
if (!file.OpenFile(fileName))
return documentID;
unsigned char* buffer = new unsigned char[4096]; //enaf !!
if (!buffer){file.CloseFile();return documentID;}
DWORD dwReadBytes = 0;
file.ReadFile(buffer, MIN_SIZE_BUFFER, dwReadBytes);
file.CloseFile();
if (isPdfFormatFile(buffer, (int)dwReadBytes, sDocumentID) )
{
nFileType = AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF;
}
}
}
return documentID;
}
bool COfficeFileFormatChecker::isMS_OFFCRYPTOFormatFile (const std::wstring & _fileName, std::wstring & documentID)
{
#if defined(_WIN32) || defined(_WIN32_WCE) || defined(_WIN64)
@ -256,6 +309,8 @@ bool COfficeFileFormatChecker::isMS_OFFCRYPTOFormatFile (POLE::Storage * storage
{
if (storage == NULL) return false;
documentID.clear();
bool result = false;
std::list<std::wstring> entries = storage->entries(L"DataSpaces");
if (entries.size() > 0)
@ -331,10 +386,10 @@ bool COfficeFileFormatChecker::isOfficeFile(const std::wstring & _fileName)
COfficeUtils OfficeUtils(NULL);
if (OfficeUtils.IsArchive(fileName) == S_OK)
{
if ( isOOXFormatFile(fileName) ) return true;
else if ( isOpenOfficeFormatFile(fileName) ) return true;
else if ( isOnlyOfficeFormatFile(fileName) ) return true;
else if ( isXpsFile(fileName) ) return true;
if ( isOOXFormatFile(fileName) ) return true;
else if ( isOpenOfficeFormatFile(fileName, sDocumentID) ) return true;
else if ( isOnlyOfficeFormatFile(fileName) ) return true;
else if ( isXpsFile(fileName) ) return true;
}
//-----------------------------------------------------------------------------------------------
// others
@ -366,7 +421,7 @@ bool COfficeFileFormatChecker::isOfficeFile(const std::wstring & _fileName)
{
nFileType = AVS_OFFICESTUDIO_FILE_CANVAS_PRESENTATION;
}
else if (isPdfFormatFile(buffer,sizeRead) )
else if (isPdfFormatFile(buffer,sizeRead, sDocumentID) )
{
nFileType = AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF;
}
@ -569,8 +624,10 @@ bool COfficeFileFormatChecker::isOnlyOfficeFormatFile(const std::wstring & fileN
}
return false;
}
bool COfficeFileFormatChecker::isOpenOfficeFormatFile(const std::wstring & fileName)
bool COfficeFileFormatChecker::isOpenOfficeFormatFile(const std::wstring & fileName, std::wstring & documentID)
{
documentID.clear();
const char *odtFormatLine = "application/vnd.oasis.opendocument.text";
const char *odsFormatLine = "application/vnd.oasis.opendocument.spreadsheet";
const char *odpFormatLine = "application/vnd.oasis.opendocument.presentation";
@ -584,7 +641,17 @@ bool COfficeFileFormatChecker::isOpenOfficeFormatFile(const std::wstring & fileN
ULONG nBufferSize = 0;
BYTE *pBuffer = NULL;
HRESULT hresult = OfficeUtils.LoadFileFromArchive(fileName, L"mimetype", &pBuffer, nBufferSize);
HRESULT hresult = OfficeUtils.LoadFileFromArchive(fileName, L"documentID", &pBuffer, nBufferSize);
if (hresult == S_OK && pBuffer != NULL)
{
documentID = NSFile::CUtf8Converter::GetUnicodeStringFromUTF8(pBuffer, nBufferSize);
delete []pBuffer;
pBuffer = NULL;
}
nBufferSize = 0;
hresult = OfficeUtils.LoadFileFromArchive(fileName, L"mimetype", &pBuffer, nBufferSize);
if (hresult == S_OK && pBuffer != NULL)
{
if ( NULL != strstr((char*)pBuffer, ottFormatLine) )
@ -620,10 +687,12 @@ bool COfficeFileFormatChecker::isOpenOfficeFormatFile(const std::wstring & fileN
pBuffer = NULL;
if (nFileType != AVS_OFFICESTUDIO_FILE_UNKNOWN) return true;
}else
}
else
{
//если не записан тип смотрим манифест
HRESULT hresult = OfficeUtils.LoadFileFromArchive(fileName, L"META-INF/manifest.xml", &pBuffer, nBufferSize);
nBufferSize = 0;
HRESULT hresult = OfficeUtils.LoadFileFromArchive(fileName, L"META-INF/manifest.xml", &pBuffer, nBufferSize);
if (hresult == S_OK && pBuffer != NULL)
{
std::string xml_string((char*)pBuffer, nBufferSize);

View File

@ -2,8 +2,8 @@
VERSION = $$cat(version.txt)
DEFINES += INTVER=$$VERSION
QMAKE_TARGET_COMPANY = Ascensio System SIA
QMAKE_TARGET_COPYRIGHT = Ascensio System SIA Copyright (c) 2018
QMAKE_TARGET_COMPANY = $$cat(copyright.txt)
QMAKE_TARGET_COPYRIGHT = $$cat(copyright.txt) (c) 2018
# CONFIGURATION
CONFIG(debug, debug|release) {

1
Common/copyright.txt Normal file
View File

@ -0,0 +1 @@
Ascensio System SIA

View File

@ -1,4 +1,4 @@
/*
/*
* (c) Copyright Ascensio System SIA 2010-2018
*
* This program is a free software product. You can redistribute it and/or
@ -981,6 +981,88 @@ namespace NSEditorApi
LINK_PROPERTY_INT_JS(InsertPageNum)
};
class CAscSlideTiming : public IMenuEventDataBase
{
private:
js_wrapper<int> m_nTransitionType;
js_wrapper<int> m_nTransitionOption;
js_wrapper<int> m_nTransitionDuration;
js_wrapper<bool> m_bSlideAdvanceOnMouseClick;
js_wrapper<bool> m_bSlideAdvanceAfter;
js_wrapper<bool> m_bSlideAdvanceDuration;
js_wrapper<bool> m_bShowLoop;
public:
CAscSlideTiming()
{
}
virtual ~CAscSlideTiming()
{
}
LINK_PROPERTY_INT_JS(TransitionType)
LINK_PROPERTY_INT_JS(TransitionOption)
LINK_PROPERTY_INT_JS(TransitionDuration)
LINK_PROPERTY_BOOL_JS(SlideAdvanceOnMouseClick)
LINK_PROPERTY_BOOL_JS(SlideAdvanceAfter)
LINK_PROPERTY_BOOL_JS(SlideAdvanceDuration)
LINK_PROPERTY_BOOL_JS(ShowLoop)
};
class CAscTransitions : public IMenuEventDataBase
{
public:
std::vector<CAscSlideTiming> m_arTransitions;
public:
CAscTransitions()
{}
virtual ~CAscTransitions()
{
}
};
class CAscSlideProp : public IMenuEventDataBase
{
js_wrapper<CAscFill> m_oBackground;
js_wrapper<CAscSlideTiming> m_oTiming;
js_wrapper<int> m_nLayoutIndex;
js_wrapper<bool> m_bIsHidden;
js_wrapper<bool> m_bLockBackground;
js_wrapper<bool> m_bLockDelete;
js_wrapper<bool> m_bLockLayout;
js_wrapper<bool> m_bLockRemove;
js_wrapper<bool> m_bLockTiming;
js_wrapper<bool> m_bLockTranzition;
public:
CAscSlideProp()
{
}
virtual ~CAscSlideProp()
{
}
LINK_PROPERTY_OBJECT_JS(CAscFill, Background)
LINK_PROPERTY_OBJECT_JS(CAscSlideTiming, Timing)
LINK_PROPERTY_INT_JS(LayoutIndex)
LINK_PROPERTY_BOOL_JS(IsHidden)
LINK_PROPERTY_BOOL_JS(LockBackground)
LINK_PROPERTY_BOOL_JS(LockDelete)
LINK_PROPERTY_BOOL_JS(LockLayout)
LINK_PROPERTY_BOOL_JS(LockRemove)
LINK_PROPERTY_BOOL_JS(LockTiming)
LINK_PROPERTY_BOOL_JS(LockTranzition)
};
class CAscImagePosition
{

View File

@ -688,6 +688,8 @@
#define ASC_MENU_EVENT_TYPE_TABLEMERGECELLS 15
#define ASC_MENU_EVENT_TYPE_TABLESPLITCELLS 16
#define ASC_MENU_EVENT_TYPE_SECTION 17
#define ASC_MENU_EVENT_TYPE_SHAPE 18
#define ASC_MENU_EVENT_TYPE_SLIDE 19
// insert commands
#define ASC_MENU_EVENT_TYPE_INSERT_IMAGE 50

View File

@ -488,7 +488,7 @@
../../../Common/DocxFormat/Source/XML/libxml2/XML/include/libxml,
../../../Common/DocxFormat/Source/XML/libxml2/XML/include,
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
@ -530,7 +530,7 @@
../../../Common/DocxFormat/Source/XML/libxml2/XML/include/libxml,
../../../Common/DocxFormat/Source/XML/libxml2/XML/include,
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";

View File

@ -812,7 +812,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../agg-2.4/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = agg_ios;
SDKROOT = iphoneos;
};
@ -838,7 +838,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../agg-2.4/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = agg_ios;
SDKROOT = iphoneos;
};
@ -889,7 +889,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -936,7 +936,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;

View File

@ -362,7 +362,7 @@
"$(PROJECT_DIR)/../../cximage/zlib",
"$(PROJECT_DIR)/../../cximage/jasper/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = cximage_ios;
SDKROOT = iphoneos;
};
@ -388,7 +388,7 @@
"$(PROJECT_DIR)/../../cximage/zlib",
"$(PROJECT_DIR)/../../cximage/jasper/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = cximage_ios;
SDKROOT = iphoneos;
};
@ -439,7 +439,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -486,7 +486,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;

View File

@ -584,7 +584,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -631,7 +631,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
@ -656,7 +656,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../../cximage/jasper/include/",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = jasper_ios;
SDKROOT = iphoneos;
};
@ -680,7 +680,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../../cximage/jasper/include/",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = jasper_ios;
SDKROOT = iphoneos;
};

View File

@ -171,7 +171,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -218,7 +218,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
@ -239,7 +239,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../../cximage/zlib/",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = jbig_ios;
SDKROOT = iphoneos;
};
@ -259,7 +259,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../../cximage/zlib/",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = jbig_ios;
SDKROOT = iphoneos;
};

View File

@ -479,7 +479,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -526,7 +526,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
@ -542,7 +542,7 @@
GCC_ENABLE_CPP_RTTI = YES;
GCC_PREPROCESSOR_DEFINITIONS = _IOS;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = jpeg_ios;
SDKROOT = iphoneos;
};
@ -557,7 +557,7 @@
GCC_ENABLE_CPP_RTTI = YES;
GCC_PREPROCESSOR_DEFINITIONS = _IOS;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = jpeg_ios;
SDKROOT = iphoneos;
};

View File

@ -407,7 +407,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -454,7 +454,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
@ -474,7 +474,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../../cximage/zlib/",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = libpsd_ios;
SDKROOT = iphoneos;
};
@ -493,7 +493,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../../cximage/zlib/",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = libpsd_ios;
SDKROOT = iphoneos;
};

View File

@ -398,7 +398,7 @@
/usr/include,
"$(PROJECT_DIR)/../../../cximage/zlib",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = mng_ios;
SDKROOT = iphoneos;
};
@ -425,7 +425,7 @@
/usr/include,
"$(PROJECT_DIR)/../../../cximage/zlib",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = mng_ios;
SDKROOT = iphoneos;
};

View File

@ -251,7 +251,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -298,7 +298,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
@ -318,7 +318,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../../cximage/zlib/",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = png_ios;
SDKROOT = iphoneos;
};
@ -337,7 +337,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../../cximage/zlib/",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = png_ios;
SDKROOT = iphoneos;
};

View File

@ -167,7 +167,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -214,7 +214,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
@ -229,7 +229,7 @@
GCC_ENABLE_CPP_EXCEPTIONS = YES;
GCC_ENABLE_CPP_RTTI = YES;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = raw_ios;
SDKROOT = iphoneos;
};
@ -243,7 +243,7 @@
GCC_ENABLE_CPP_EXCEPTIONS = YES;
GCC_ENABLE_CPP_RTTI = YES;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = raw_ios;
SDKROOT = iphoneos;
};

View File

@ -363,7 +363,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -410,7 +410,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;
@ -429,7 +429,7 @@
_LINUX,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = tiff_ios;
SDKROOT = iphoneos;
};
@ -447,7 +447,7 @@
_LINUX,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = tiff_ios;
SDKROOT = iphoneos;
};

View File

@ -262,7 +262,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../freetype-2.5.2/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = fontengine_ios;
SDKROOT = iphoneos;
};
@ -287,7 +287,7 @@
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include,
"$(PROJECT_DIR)/../../freetype-2.5.2/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = fontengine_ios;
SDKROOT = iphoneos;
};

View File

@ -600,7 +600,7 @@
"$(PROJECT_DIR)/../../freetype-2.5.2/include",
"$(PROJECT_DIR)/../../freetype-2.5.2/devel",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = freetype_ios;
SDKROOT = iphoneos;
};
@ -624,7 +624,7 @@
"$(PROJECT_DIR)/../../freetype-2.5.2/include",
"$(PROJECT_DIR)/../../freetype-2.5.2/devel",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = freetype_ios;
SDKROOT = iphoneos;
};
@ -675,7 +675,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -722,7 +722,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;

View File

@ -363,7 +363,7 @@
"$(PROJECT_DIR)/../../agg-2.4/include",
"$(PROJECT_DIR)/../../freetype-2.5.2/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = graphics_ios;
SDKROOT = iphoneos;
};
@ -392,7 +392,7 @@
"$(PROJECT_DIR)/../../agg-2.4/include",
"$(PROJECT_DIR)/../../freetype-2.5.2/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = graphics_ios;
SDKROOT = iphoneos;
};

View File

@ -1060,7 +1060,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@ -1107,7 +1107,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
@ -1125,7 +1125,7 @@
"$(PROJECT_DIR)/../../agg-2.4/include",
"$(PROJECT_DIR)/../../freetype-2.5.2/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = metafile_ios;
SKIP_INSTALL = YES;
@ -1143,7 +1143,7 @@
"$(PROJECT_DIR)/../../agg-2.4/include",
"$(PROJECT_DIR)/../../freetype-2.5.2/include",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = metafile_ios;
SKIP_INSTALL = YES;

View File

@ -144,7 +144,7 @@
_IOS,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = raster_ios;
SDKROOT = iphoneos;
};
@ -164,7 +164,7 @@
_IOS,
);
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
PRODUCT_NAME = raster_ios;
SDKROOT = iphoneos;
};
@ -215,7 +215,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
@ -262,7 +262,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MACOSX_DEPLOYMENT_TARGET = 10.10;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = macosx;

View File

@ -265,7 +265,7 @@
/usr/include/,
/usr/include/libxml2/,
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@ -296,7 +296,7 @@
/usr/include/,
/usr/include/libxml2/,
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;

View File

@ -4,6 +4,21 @@
#include "../source/ECMACryptFile.h"
#include "../../Common/OfficeFileFormatChecker.h"
#if defined(_WIN64)
#pragma comment(lib, "../../build/bin/icu/win_64/icuuc.lib")
#elif defined (_WIN32)
#if defined(_DEBUG)
//#pragma comment(lib, "../../build/lib/win_32/DEBUG/graphics.lib")
#pragma comment(lib, "../../build/lib/win_32/DEBUG/kernel.lib")
#pragma comment(lib, "../../build/lib/win_32/DEBUG/UnicodeConverter.lib")
#else
//#pragma comment(lib, "../../build/lib/win_32/graphics.lib")
#pragma comment(lib, "../../build/lib/win_32/kernel.lib")
#endif
#pragma comment(lib, "../../build/bin/icu/win_32/icuuc.lib")
#endif
int _tmain(int argc, _TCHAR* argv[])
{
std::wstring srcFileName = L"D:\\test\\_crypted\\test-111.docx";
@ -29,11 +44,8 @@ int _tmain(int argc, _TCHAR* argv[])
COfficeFileFormatChecker fileChecker;
std::wstring sDocumentID;
std::wstring sDocumentID = fileChecker.getDocumentID(L"d:/test/_pdf/Test3-pdfa-my.pdf");
if (fileChecker.isMS_OFFCRYPTOFormatFile(dstFileName, sDocumentID))
{
}
return 0;
}

View File

@ -3,22 +3,16 @@ Microsoft Visual Studio Solution File, Format Version 9.00
# Visual Studio 2005
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Test", "Test.vcproj", "{BE4AA52B-8AF0-48DD-8240-CCBA6F84D7A2}"
ProjectSection(ProjectDependencies) = postProject
{F8274B05-168E-4D6E-B843-AA7510725363} = {F8274B05-168E-4D6E-B843-AA7510725363}
{C27E9A9F-3A17-4482-9C5F-BF15C01E747C} = {C27E9A9F-3A17-4482-9C5F-BF15C01E747C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeFileCrypt", "..\win32\ECMACryptReader.vcproj", "{C27E9A9F-3A17-4482-9C5F-BF15C01E747C}"
ProjectSection(ProjectDependencies) = postProject
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF} = {3423EC9A-52E4-4A4D-9753-EDEBC38785EF}
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cryptlib", "..\..\Common\3dParty\cryptopp\cryptlib.vcproj", "{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\..\DesktopEditor\xml\build\vs2005\libxml2.vcproj", "{21663823-DE45-479B-91D0-B4FEF4916EF0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OfficeUtilsLib", "..\..\OfficeUtils\win32\OfficeUtilsLib.vcproj", "{F8274B05-168E-4D6E-B843-AA7510725363}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@ -75,38 +69,6 @@ Global
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|Win32.Build.0 = Release|Win32
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.ActiveCfg = Release|x64
{3423EC9A-52E4-4A4D-9753-EDEBC38785EF}.Release|x64.Build.0 = Release|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|Win32.ActiveCfg = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|Win32.Build.0 = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.ActiveCfg = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.Build.0 = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Debug|x64.Build.0 = Debug|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Release|Win32.Build.0 = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Release|x64.ActiveCfg = Release|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.DLL-Import Release|x64.Build.0 = Release|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|Win32.ActiveCfg = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|Win32.Build.0 = Release|Win32
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|x64.ActiveCfg = Release|x64
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|x64.Build.0 = Release|x64
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|Win32.ActiveCfg = Debug|Win32
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|Win32.Build.0 = Debug|Win32
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|x64.ActiveCfg = Debug|x64
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|x64.Build.0 = Debug|x64
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Debug|Win32.ActiveCfg = Debug|Win32
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Debug|Win32.Build.0 = Debug|Win32
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Debug|x64.ActiveCfg = Debug|x64
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Debug|x64.Build.0 = Debug|x64
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Release|Win32.ActiveCfg = Release|Win32
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Release|Win32.Build.0 = Release|Win32
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Release|x64.ActiveCfg = Release|x64
{F8274B05-168E-4D6E-B843-AA7510725363}.DLL-Import Release|x64.Build.0 = Release|x64
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|Win32.ActiveCfg = Release|Win32
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|Win32.Build.0 = Release|Win32
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|x64.ActiveCfg = Release|x64
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|x64.Build.0 = Release|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View File

@ -189,14 +189,6 @@
RelativePath="..\..\Common\DocxFormat\Source\Base\unicode_util.cpp"
>
</File>
<File
RelativePath="..\..\DesktopEditor\xml\src\xmldom.cpp"
>
</File>
<File
RelativePath="..\..\DesktopEditor\xml\src\xmllight.cpp"
>
</File>
</Filter>
<File
RelativePath=".\Test.cpp"

View File

@ -1090,7 +1090,7 @@
_IOS,
);
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0";
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@ -1110,7 +1110,7 @@
_IOS,
);
HEADER_SEARCH_PATHS = "$(PROJECT_DIR)/../../../Common/3dParty/boost/boost_1_58_0";
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;

View File

@ -244,7 +244,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
@ -292,7 +292,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = NO;
SDKROOT = iphoneos;
VALIDATE_PRODUCT = YES;
@ -310,7 +310,7 @@
_IOS,
_XCODE,
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;
@ -328,7 +328,7 @@
_IOS,
_XCODE,
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_LDFLAGS = "-ObjC";
PRODUCT_NAME = "$(TARGET_NAME)";
SKIP_INSTALL = YES;

View File

@ -37,6 +37,7 @@
#include "../DesktopEditor/common/String.h"
#include "../DesktopEditor/graphics/MetafileToRenderer.h"
#include "../DesktopEditor/raster/BgraFrame.h"
namespace NSOnlineOfficeBinToPdf
{
@ -60,6 +61,11 @@ namespace NSOnlineOfficeBinToPdf
try
{
int nFind = wsTempString.find(L",");
bool bIsOnlyOfficeHatch = false;
if (nFind > 0 && (std::wstring::npos != wsTempString.find(L"onlyoffice_hatch")))
bIsOnlyOfficeHatch = true;
wsTempString = wsTempString.substr(nFind + 1);
std::wstring wsBase64TempFile = ((CPdfRenderer*)m_pRenderer)->GetTempFile();
@ -70,11 +76,25 @@ namespace NSOnlineOfficeBinToPdf
if (NSBase64::Base64Decode(sBase64MultyByte.c_str(), sBase64MultyByte.length(), pImageBuffer, &nBufferLen))
{
NSFile::CFileBinary oFile;
if (oFile.CreateFileW(wsBase64TempFile))
if (!bIsOnlyOfficeHatch)
{
oFile.WriteFile(pImageBuffer, nBufferLen);
oFile.CloseFile();
NSFile::CFileBinary oFile;
if (oFile.CreateFileW(wsBase64TempFile))
{
oFile.WriteFile(pImageBuffer, nBufferLen);
oFile.CloseFile();
wsTempString = wsBase64TempFile;
}
}
else
{
int nSize = (int)sqrt(nBufferLen >> 2);
CBgraFrame oFrame;
oFrame.put_Data(pImageBuffer);
oFrame.put_Width(nSize);
oFrame.put_Height(nSize);
oFrame.put_Stride(4 * nSize);
oFrame.SaveFile(wsBase64TempFile, 4); // PNG
wsTempString = wsBase64TempFile;
}
}

View File

@ -536,6 +536,14 @@ void CPdfRenderer::SetPassword(const std::wstring& wsPassword)
m_pDocument->SetPasswords(wsPassword, wsPassword);
}
void CPdfRenderer::SetDocumentID(const std::wstring& wsDocumentID)
{
if (!IsValid())
return;
m_pDocument->SetDocumentID(wsDocumentID);
}
void CPdfRenderer::SaveToFile(const std::wstring& wsPath)
{
if (!IsValid())

View File

@ -73,6 +73,7 @@ public:
~CPdfRenderer();
void SaveToFile(const std::wstring& wsPath);
void SetPassword(const std::wstring& wsPassword);
void SetDocumentID(const std::wstring& wsDocumentID);
void SetTempFolder(const std::wstring& wsPath);
std::wstring GetTempFile();
void SetThemesPlace(const std::wstring& wsThemesPlace);

View File

@ -22,6 +22,10 @@ LIBS += -lCryptoPPLib
DEFINES += NOMINMAX
core_linux {
QMAKE_CXXFLAGS += -Wno-narrowing
}
core_windows {
DEFINES -= UNICODE
DEFINES -= _UNICODE

View File

@ -296,9 +296,11 @@ void TestDocument3()
pPage->ClosePath();
pPage->FillStroke();
oPdf.SetDocumentID(L"23193r09jscladjalj");
oPdf.SetPasswords(L"123", L"qwe");
oPdf.SetPDFAConformanceMode(true);
oPdf.SaveToFile(L"D:/test/_pdf/Test3.pdf");
oPdf.SaveToFile(L"D:/test/_pdf/Test3-pdfa-my.pdf");
oPdf.Close();
}
void TestDocument4()
@ -798,7 +800,7 @@ void ConvertFolder(std::wstring wsFolderPath)
int _tmain(int argc, _TCHAR* argv[])
{
TestDocument1();
TestDocument3();
return S_OK;

View File

@ -77,6 +77,8 @@ namespace PdfWriter
memset((void*)m_sTTFontTag, 0x00, 8);
m_pTransparencyGroup = NULL;
m_pFreeTypeLibrary = NULL;
m_bPDFAConformance = false;
}
CDocument::~CDocument()
{
@ -196,6 +198,12 @@ namespace PdfWriter
pStream->WriteStr(c_sPdfAHeader);
else
pStream->WriteStr(c_sPdfHeader);
if (false == m_wsDocumentID.empty())
{
std::string sDocumentID = "%DocumentID " + NSFile::CUtf8Converter::GetUtf8StringFromUnicode(m_wsDocumentID);
pStream->WriteStr(sDocumentID.c_str());
}
// Добавляем в Trailer необходимые элементы
m_pTrailer->Add("Root", m_pCatalog);
@ -263,6 +271,11 @@ namespace PdfWriter
m_nCurPageNum++;
return pPage;
}
void CDocument::SetDocumentID(const std::wstring & documentID)
{
m_wsDocumentID = documentID;
}
void CDocument::SetPermission(unsigned int unPermission)
{
if (!m_bEncrypt)

View File

@ -93,6 +93,7 @@ namespace PdfWriter
void SetPasswords(const std::wstring & wsOwnerPassword, const std::wstring & wsUserPassword);
void SetPermission(unsigned int unPermission);
void SetCompressionMode(unsigned int unMode);
void SetDocumentID(const std::wstring & wsDocumentID);
void SetPDFAConformanceMode(bool isPDFA);
bool IsPDFA() const;
@ -174,6 +175,7 @@ namespace PdfWriter
std::vector<CFontCidTrueType*> m_vFreeTypeFonts;
FT_Library m_pFreeTypeLibrary;
bool m_bPDFAConformance;
std::wstring m_wsDocumentID;
friend class CFontCidTrueType;
};

View File

@ -98,21 +98,28 @@ namespace PdfWriter
}
void Reset()
{
unsigned char empty[16] = {};
if (streamEncryption)
delete streamEncryption;
if (aesEncryption)
delete aesEncryption;
aesEncryption = new CryptoPP::AES::Encryption(m_anEncryptionKey, 32);
streamEncryption = new CryptoPP::CBC_Mode_ExternalCipher::Encryption( *aesEncryption, empty);
CryptoPP::RandomPool prng;
CryptoPP::SecByteBlock iv(16);
CryptoPP::OS_GenerateRandomBlock(false, iv, iv.size());
prng.IncorporateEntropy(iv, iv.size());
memcpy(streamInitialization, iv, iv.size());
aesEncryption = new CryptoPP::AES::Encryption(m_anEncryptionKey, 32);
streamEncryption = new CryptoPP::CBC_Mode_ExternalCipher::Encryption( *aesEncryption, streamInitialization);
}
std::string m_sOwnerPassword;
std::string m_sUserPassword;
BYTE m_anEncryptionKey[32];
CryptoPP::AES::Encryption *aesEncryption;
unsigned char streamInitialization[16];
CryptoPP::AES::Encryption *aesEncryption;
CryptoPP::StreamTransformation *streamEncryption;
};
CEncrypt::CEncrypt() : m_unKeyLen(32)
@ -312,12 +319,32 @@ namespace PdfWriter
{
impl->Reset();
}
void CEncrypt::CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bLast)
#define PADDING_SIZE 16
unsigned int CEncrypt::CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bLast)
{
CryptoPP::StreamTransformationFilter stfEncryption(*impl->streamEncryption, new CryptoPP::ArraySink( pDst, unLen), CryptoPP::StreamTransformationFilter::ZEROS_PADDING );
unsigned int unLenOut = unLen;
if (unLenOut % PADDING_SIZE != 0 && bLast)
unLenOut = (unLen / PADDING_SIZE + 1) * PADDING_SIZE;
stfEncryption.Put2(pSrc, unLen, bLast ? 1 : 0, true);
memcpy(pDst, impl->streamInitialization, 16);
CryptoPP::StreamTransformationFilter stfEncryption(*impl->streamEncryption, new CryptoPP::ArraySink( pDst + 16, unLenOut), CryptoPP::StreamTransformationFilter::NO_PADDING );
if (unLenOut != unLen)
{
stfEncryption.Put2(pSrc, unLen, 0, true);
unsigned char empty[16] = {};
stfEncryption.Put2(empty, unLenOut - unLen, 1, true);
}
else
{
stfEncryption.Put2(pSrc, unLen, bLast ? 1 : 0, true);
}
stfEncryption.MessageEnd();
return unLenOut + 16;
}
void CEncrypt::SetPermission(unsigned int unPermission)
{

View File

@ -51,7 +51,7 @@ namespace PdfWriter
void CreateEncryptionKey();
void InitKey(unsigned int unObjectId, unsigned short unGenNo);
void Reset();
void CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bLast);
unsigned int CryptBuf(const BYTE* pSrc, BYTE* pDst, unsigned int unLen, bool bLast);
void SetPermission(unsigned int unPermission);
void SetPasswords(const std::string &sUserPassword, const std::string &sOwnerPassword);
private:

View File

@ -147,8 +147,10 @@ namespace PdfWriter
pStdCF->Add("Length", m_pEncrypt->m_unKeyLen);
Add("CF", pCF);
Add("StmF", "StdCF");
Add("StrF", "StdCF");
CBinaryObject* pUserKey = new CBinaryObject(m_pEncrypt->m_anUserKey, 48);
CBinaryObject* pUserKey = new CBinaryObject(m_pEncrypt->m_anUserKey, 48);
if (!pUserKey)
return;

View File

@ -84,6 +84,7 @@ namespace PdfWriter
}
void CObjectBase::WriteValue(CStream* pStream, CEncrypt* pEncrypt)
{
switch (GetType())
{
case object_type_NAME: pStream->Write((CNameObject*)this); break;

View File

@ -336,9 +336,9 @@ namespace PdfWriter
const BYTE* pBuffer = NULL;
if (pEncrypt)
{
pBuf = new BYTE[unLen];
pBuf = new BYTE[unLen + 16 + 16]; // iv + padding
bDelete = true;
pEncrypt->CryptBuf(pData, pBuf, unLen, true);
unLen = pEncrypt->CryptBuf(pData, pBuf, unLen, true);
pBuffer = pBuf;
}
else
@ -423,7 +423,7 @@ namespace PdfWriter
unsigned int osize = DEFLATE_BUF_SIZ - ZStream.GetAvailOut();
if (pEncrypt)
{
pEncrypt->CryptBuf(otbuf, ebuf, osize, true);
osize = pEncrypt->CryptBuf(otbuf, ebuf, osize, true);
Write(ebuf, osize);
}
else
@ -464,7 +464,7 @@ namespace PdfWriter
if (pEncrypt)
{
pEncrypt->CryptBuf(pBuf, pEBuf, unSize, pStream->IsEof());
unSize = pEncrypt->CryptBuf(pBuf, pEBuf, unSize, pStream->IsEof());
Write(pEBuf, unSize);
}
else

View File

@ -1546,7 +1546,7 @@
"$(PROJECT_DIR)/../../../../DesktopEditor/agg-2.4/include",
"$(PROJECT_DIR)/../../../../Common/3dParty/boost/boost_1_58_0",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
ONLY_ACTIVE_ARCH = YES;
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
OTHER_LDFLAGS = (
@ -1595,7 +1595,7 @@
"$(PROJECT_DIR)/../../../../DesktopEditor/agg-2.4/include",
"$(PROJECT_DIR)/../../../../Common/3dParty/boost/boost_1_58_0",
);
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
OTHER_LDFLAGS = (
"-ObjC",

View File

@ -30,7 +30,6 @@
8AAB550F207766D100F149DA /* number_patternmodifier.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB539D2077668B00F149DA /* number_patternmodifier.cpp */; };
8AAB5510207766D100F149DA /* nfsubs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53A02077668C00F149DA /* nfsubs.cpp */; };
8AAB5511207766D100F149DA /* dangical.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53A32077668C00F149DA /* dangical.cpp */; };
8AAB5512207766D100F149DA /* digitgrouping.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53A42077668C00F149DA /* digitgrouping.cpp */; };
8AAB5513207766D100F149DA /* fpositer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53A52077668C00F149DA /* fpositer.cpp */; };
8AAB5514207766D100F149DA /* number_integerwidth.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53A62077668C00F149DA /* number_integerwidth.cpp */; };
8AAB5515207766D100F149DA /* translit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53A82077668D00F149DA /* translit.cpp */; };
@ -42,7 +41,6 @@
8AAB551B207766D100F149DA /* umsg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53B32077668E00F149DA /* umsg.cpp */; };
8AAB551C207766D100F149DA /* name2uni.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53B42077668E00F149DA /* name2uni.cpp */; };
8AAB551D207766D100F149DA /* uregion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53B52077668E00F149DA /* uregion.cpp */; };
8AAB551E207766D100F149DA /* affixpatternparser.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53B82077668E00F149DA /* affixpatternparser.cpp */; };
8AAB551F207766D100F149DA /* olsontz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53BC2077668F00F149DA /* olsontz.cpp */; };
8AAB5520207766D100F149DA /* collationiterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53BE2077668F00F149DA /* collationiterator.cpp */; };
8AAB5521207766D100F149DA /* decContext.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53BF2077668F00F149DA /* decContext.cpp */; };
@ -53,7 +51,6 @@
8AAB5526207766D100F149DA /* japancal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53CC2077669000F149DA /* japancal.cpp */; };
8AAB5527207766D100F149DA /* quantityformatter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53D02077669100F149DA /* quantityformatter.cpp */; };
8AAB5528207766D100F149DA /* funcrepl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53D12077669100F149DA /* funcrepl.cpp */; };
8AAB5529207766D100F149DA /* visibledigits.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53D42077669100F149DA /* visibledigits.cpp */; };
8AAB552A207766D100F149DA /* indiancal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53D82077669100F149DA /* indiancal.cpp */; };
8AAB552B207766D100F149DA /* tznames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53D92077669200F149DA /* tznames.cpp */; };
8AAB552C207766D100F149DA /* csrutf8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53DC2077669200F149DA /* csrutf8.cpp */; };
@ -65,7 +62,6 @@
8AAB5532207766D100F149DA /* collationdata.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53E22077669300F149DA /* collationdata.cpp */; };
8AAB5533207766D100F149DA /* ucln_in.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53E32077669300F149DA /* ucln_in.cpp */; };
8AAB5534207766D100F149DA /* dtitvfmt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53E62077669300F149DA /* dtitvfmt.cpp */; };
8AAB5535207766D100F149DA /* digitaffixesandpadding.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53E72077669300F149DA /* digitaffixesandpadding.cpp */; };
8AAB5536207766D100F149DA /* rbt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53E82077669300F149DA /* rbt.cpp */; };
8AAB5537207766D100F149DA /* uitercollationiterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53EA2077669400F149DA /* uitercollationiterator.cpp */; };
8AAB5538207766D100F149DA /* regexst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53EB2077669400F149DA /* regexst.cpp */; };
@ -79,14 +75,11 @@
8AAB5540207766D100F149DA /* taiwncal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53FB2077669700F149DA /* taiwncal.cpp */; };
8AAB5541207766D100F149DA /* basictz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53FC2077669800F149DA /* basictz.cpp */; };
8AAB5542207766D100F149DA /* standardplural.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53FD2077669800F149DA /* standardplural.cpp */; };
8AAB5543207766D100F149DA /* smallintformatter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53FE2077669800F149DA /* smallintformatter.cpp */; };
8AAB5544207766D100F149DA /* precision.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB53FF2077669800F149DA /* precision.cpp */; };
8AAB5545207766D100F149DA /* tzgnames.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54002077669800F149DA /* tzgnames.cpp */; };
8AAB5546207766D100F149DA /* csr2022.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54012077669800F149DA /* csr2022.cpp */; };
8AAB5547207766D100F149DA /* anytrans.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54032077669800F149DA /* anytrans.cpp */; };
8AAB5548207766D100F149DA /* collation.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54042077669900F149DA /* collation.cpp */; };
8AAB5549207766D100F149DA /* coleitr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54052077669900F149DA /* coleitr.cpp */; };
8AAB554A207766D100F149DA /* decimfmtimpl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54062077669900F149DA /* decimfmtimpl.cpp */; };
8AAB554B207766D100F149DA /* region.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54072077669900F149DA /* region.cpp */; };
8AAB554C207766D100F149DA /* ucol_sit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54082077669900F149DA /* ucol_sit.cpp */; };
8AAB554D207766D100F149DA /* decNumber.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB540A2077669900F149DA /* decNumber.cpp */; };
@ -126,9 +119,7 @@
8AAB556F207766D100F149DA /* simpletz.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5450207766A300F149DA /* simpletz.cpp */; };
8AAB5570207766D100F149DA /* uspoof.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5451207766A300F149DA /* uspoof.cpp */; };
8AAB5571207766D100F149DA /* csmatch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5452207766A400F149DA /* csmatch.cpp */; };
8AAB5572207766D100F149DA /* pluralaffix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5453207766A400F149DA /* pluralaffix.cpp */; };
8AAB5573207766D100F149DA /* nultrans.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5458207766A400F149DA /* nultrans.cpp */; };
8AAB5574207766D100F149DA /* digitinterval.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB545E207766A600F149DA /* digitinterval.cpp */; };
8AAB5575207766D100F149DA /* tridpars.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB545F207766A600F149DA /* tridpars.cpp */; };
8AAB5576207766D100F149DA /* dayperiodrules.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5460207766A700F149DA /* dayperiodrules.cpp */; };
8AAB5577207766D100F149DA /* nfrs.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5462207766A700F149DA /* nfrs.cpp */; };
@ -155,7 +146,6 @@
8AAB558C207766D100F149DA /* utf16collationiterator.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5486207766AF00F149DA /* utf16collationiterator.cpp */; };
8AAB558D207766D100F149DA /* decimfmt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB5487207766B000F149DA /* decimfmt.cpp */; };
8AAB558E207766D100F149DA /* ufieldpositer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB548A207766B000F149DA /* ufieldpositer.cpp */; };
8AAB558F207766D100F149DA /* digitlst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB548B207766B100F149DA /* digitlst.cpp */; };
8AAB5590207766D100F149DA /* collationdatabuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB548C207766B100F149DA /* collationdatabuilder.cpp */; };
8AAB5591207766D100F149DA /* dcfmtsym.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB548D207766B100F149DA /* dcfmtsym.cpp */; };
8AAB5592207766D100F149DA /* coll.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB548F207766B200F149DA /* coll.cpp */; };
@ -189,9 +179,7 @@
8AAB55AE207766D100F149DA /* number_affixutils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54C0207766C000F149DA /* number_affixutils.cpp */; };
8AAB55AF207766D100F149DA /* persncal.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54C1207766C000F149DA /* persncal.cpp */; };
8AAB55B0207766D100F149DA /* collationkeys.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54C3207766C000F149DA /* collationkeys.cpp */; };
8AAB55B1207766D100F149DA /* decfmtst.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54C4207766C100F149DA /* decfmtst.cpp */; };
8AAB55B2207766D100F149DA /* msgfmt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54C5207766C100F149DA /* msgfmt.cpp */; };
8AAB55B3207766D100F149DA /* decimalformatpattern.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54C7207766C100F149DA /* decimalformatpattern.cpp */; };
8AAB55B4207766D100F149DA /* rbt_set.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54C9207766C200F149DA /* rbt_set.cpp */; };
8AAB55B5207766D100F149DA /* regeximp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54CA207766C200F149DA /* regeximp.cpp */; };
8AAB55B6207766D100F149DA /* scriptset.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54CB207766C200F149DA /* scriptset.cpp */; };
@ -202,11 +190,9 @@
8AAB55BB207766D100F149DA /* udat.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54D4207766C500F149DA /* udat.cpp */; };
8AAB55BC207766D100F149DA /* timezone.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54D5207766C500F149DA /* timezone.cpp */; };
8AAB55BD207766D100F149DA /* search.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54D7207766C500F149DA /* search.cpp */; };
8AAB55BE207766D100F149DA /* digitaffix.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54D8207766C500F149DA /* digitaffix.cpp */; };
8AAB55BF207766D100F149DA /* selfmt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54D9207766C600F149DA /* selfmt.cpp */; };
8AAB55C0207766D100F149DA /* transreg.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54DA207766C600F149DA /* transreg.cpp */; };
8AAB55C1207766D100F149DA /* uspoof_impl.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54DB207766C600F149DA /* uspoof_impl.cpp */; };
8AAB55C2207766D100F149DA /* digitformatter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54DC207766C600F149DA /* digitformatter.cpp */; };
8AAB55C3207766D100F149DA /* number_decimalquantity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54DE207766C700F149DA /* number_decimalquantity.cpp */; };
8AAB55C4207766D100F149DA /* collationdatareader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54E0207766C700F149DA /* collationdatareader.cpp */; };
8AAB55C5207766D100F149DA /* nounit.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54E1207766C800F149DA /* nounit.cpp */; };
@ -225,7 +211,6 @@
8AAB55D2207766D100F149DA /* collationsettings.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54F3207766CC00F149DA /* collationsettings.cpp */; };
8AAB55D3207766D100F149DA /* collationfastlatinbuilder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54F4207766CC00F149DA /* collationfastlatinbuilder.cpp */; };
8AAB55D4207766D100F149DA /* utrans.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54F8207766CD00F149DA /* utrans.cpp */; };
8AAB55D5207766D100F149DA /* valueformatter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54FA207766CD00F149DA /* valueformatter.cpp */; };
8AAB55D6207766D100F149DA /* gender.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54FC207766CE00F149DA /* gender.cpp */; };
8AAB55D7207766D100F149DA /* quant.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54FD207766CE00F149DA /* quant.cpp */; };
8AAB55D8207766D100F149DA /* uregexc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8AAB54FF207766CF00F149DA /* uregexc.cpp */; };
@ -532,8 +517,6 @@
8A9FACA620777360007787F6 /* utypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = utypes.h; sourceTree = "<group>"; };
8A9FACA720777360007787F6 /* ulistformatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ulistformatter.h; sourceTree = "<group>"; };
8A9FACA820777360007787F6 /* unifilt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = unifilt.h; sourceTree = "<group>"; };
8AAB536D2077663000F149DA /* ustream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ustream.h; path = ../../../../../../../../Common/3dParty/icu/mac_64/icu/source/io/unicode/ustream.h; sourceTree = "<group>"; };
8AAB536E2077663000F149DA /* ustdio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ustdio.h; path = ../../../../../../../../Common/3dParty/icu/mac_64/icu/source/io/unicode/ustdio.h; sourceTree = "<group>"; };
8AAB536F2077664500F149DA /* uprntf_p.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = uprntf_p.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/io/uprntf_p.cpp; sourceTree = "<group>"; };
8AAB53702077664500F149DA /* ustdio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ustdio.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/io/ustdio.cpp; sourceTree = "<group>"; };
8AAB53712077664500F149DA /* ustream.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ustream.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/io/ustream.cpp; sourceTree = "<group>"; };
@ -567,13 +550,11 @@
8AAB539B2077668B00F149DA /* ulocdata.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ulocdata.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/ulocdata.cpp; sourceTree = "<group>"; };
8AAB539C2077668B00F149DA /* wintzimpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = wintzimpl.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/wintzimpl.cpp; sourceTree = "<group>"; };
8AAB539D2077668B00F149DA /* number_patternmodifier.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = number_patternmodifier.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_patternmodifier.cpp; sourceTree = "<group>"; };
8AAB539E2077668B00F149DA /* digitlst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = digitlst.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitlst.h; sourceTree = "<group>"; };
8AAB539F2077668C00F149DA /* number_modifiers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = number_modifiers.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_modifiers.h; sourceTree = "<group>"; };
8AAB53A02077668C00F149DA /* nfsubs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = nfsubs.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/nfsubs.cpp; sourceTree = "<group>"; };
8AAB53A12077668C00F149DA /* collationdatawriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationdatawriter.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationdatawriter.h; sourceTree = "<group>"; };
8AAB53A22077668C00F149DA /* collationdata.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationdata.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationdata.h; sourceTree = "<group>"; };
8AAB53A32077668C00F149DA /* dangical.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dangical.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/dangical.cpp; sourceTree = "<group>"; };
8AAB53A42077668C00F149DA /* digitgrouping.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digitgrouping.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitgrouping.cpp; sourceTree = "<group>"; };
8AAB53A52077668C00F149DA /* fpositer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fpositer.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/fpositer.cpp; sourceTree = "<group>"; };
8AAB53A62077668C00F149DA /* number_integerwidth.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = number_integerwidth.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_integerwidth.cpp; sourceTree = "<group>"; };
8AAB53A72077668C00F149DA /* rbt_set.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rbt_set.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/rbt_set.h; sourceTree = "<group>"; };
@ -593,12 +574,9 @@
8AAB53B52077668E00F149DA /* uregion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = uregion.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/uregion.cpp; sourceTree = "<group>"; };
8AAB53B62077668E00F149DA /* collationfastlatin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationfastlatin.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationfastlatin.h; sourceTree = "<group>"; };
8AAB53B72077668E00F149DA /* decContext.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = decContext.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decContext.h; sourceTree = "<group>"; };
8AAB53B82077668E00F149DA /* affixpatternparser.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = affixpatternparser.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/affixpatternparser.cpp; sourceTree = "<group>"; };
8AAB53B92077668E00F149DA /* casetrn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = casetrn.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/casetrn.h; sourceTree = "<group>"; };
8AAB53BA2077668E00F149DA /* precision.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = precision.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/precision.h; sourceTree = "<group>"; };
8AAB53BB2077668F00F149DA /* csrmbcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = csrmbcs.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/csrmbcs.h; sourceTree = "<group>"; };
8AAB53BC2077668F00F149DA /* olsontz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = olsontz.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/olsontz.cpp; sourceTree = "<group>"; };
8AAB53BD2077668F00F149DA /* digitaffix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = digitaffix.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitaffix.h; sourceTree = "<group>"; };
8AAB53BE2077668F00F149DA /* collationiterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = collationiterator.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationiterator.cpp; sourceTree = "<group>"; };
8AAB53BF2077668F00F149DA /* decContext.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = decContext.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decContext.cpp; sourceTree = "<group>"; };
8AAB53C02077668F00F149DA /* fmtable.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = fmtable.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/fmtable.cpp; sourceTree = "<group>"; };
@ -619,7 +597,6 @@
8AAB53D12077669100F149DA /* funcrepl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = funcrepl.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/funcrepl.cpp; sourceTree = "<group>"; };
8AAB53D22077669100F149DA /* umsg_imp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = umsg_imp.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/umsg_imp.h; sourceTree = "<group>"; };
8AAB53D32077669100F149DA /* unesctrn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = unesctrn.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/unesctrn.h; sourceTree = "<group>"; };
8AAB53D42077669100F149DA /* visibledigits.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = visibledigits.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/visibledigits.cpp; sourceTree = "<group>"; };
8AAB53D52077669100F149DA /* sharedpluralrules.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sharedpluralrules.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/sharedpluralrules.h; sourceTree = "<group>"; };
8AAB53D62077669100F149DA /* ztrans.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ztrans.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/ztrans.h; sourceTree = "<group>"; };
8AAB53D72077669100F149DA /* csrutf8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = csrutf8.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/csrutf8.h; sourceTree = "<group>"; };
@ -636,9 +613,7 @@
8AAB53E22077669300F149DA /* collationdata.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = collationdata.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationdata.cpp; sourceTree = "<group>"; };
8AAB53E32077669300F149DA /* ucln_in.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ucln_in.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/ucln_in.cpp; sourceTree = "<group>"; };
8AAB53E42077669300F149DA /* uspoof_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = uspoof_impl.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/uspoof_impl.h; sourceTree = "<group>"; };
8AAB53E52077669300F149DA /* visibledigits.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = visibledigits.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/visibledigits.h; sourceTree = "<group>"; };
8AAB53E62077669300F149DA /* dtitvfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dtitvfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/dtitvfmt.cpp; sourceTree = "<group>"; };
8AAB53E72077669300F149DA /* digitaffixesandpadding.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digitaffixesandpadding.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitaffixesandpadding.cpp; sourceTree = "<group>"; };
8AAB53E82077669300F149DA /* rbt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rbt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/rbt.cpp; sourceTree = "<group>"; };
8AAB53E92077669300F149DA /* regexst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = regexst.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/regexst.h; sourceTree = "<group>"; };
8AAB53EA2077669400F149DA /* uitercollationiterator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = uitercollationiterator.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/uitercollationiterator.cpp; sourceTree = "<group>"; };
@ -656,20 +631,15 @@
8AAB53F62077669700F149DA /* esctrn.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = esctrn.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/esctrn.cpp; sourceTree = "<group>"; };
8AAB53F72077669700F149DA /* dt_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dt_impl.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/dt_impl.h; sourceTree = "<group>"; };
8AAB53F82077669700F149DA /* tznames_impl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tznames_impl.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/tznames_impl.cpp; sourceTree = "<group>"; };
8AAB53F92077669700F149DA /* valueformatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = valueformatter.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/valueformatter.h; sourceTree = "<group>"; };
8AAB53FA2077669700F149DA /* windtfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = windtfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/windtfmt.cpp; sourceTree = "<group>"; };
8AAB53FB2077669700F149DA /* taiwncal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = taiwncal.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/taiwncal.cpp; sourceTree = "<group>"; };
8AAB53FC2077669800F149DA /* basictz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = basictz.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/basictz.cpp; sourceTree = "<group>"; };
8AAB53FD2077669800F149DA /* standardplural.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = standardplural.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/standardplural.cpp; sourceTree = "<group>"; };
8AAB53FE2077669800F149DA /* smallintformatter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = smallintformatter.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/smallintformatter.cpp; sourceTree = "<group>"; };
8AAB53FF2077669800F149DA /* precision.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = precision.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/precision.cpp; sourceTree = "<group>"; };
8AAB54002077669800F149DA /* tzgnames.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tzgnames.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/tzgnames.cpp; sourceTree = "<group>"; };
8AAB54012077669800F149DA /* csr2022.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = csr2022.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/csr2022.cpp; sourceTree = "<group>"; };
8AAB54022077669800F149DA /* dcfmtimp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dcfmtimp.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/dcfmtimp.h; sourceTree = "<group>"; };
8AAB54032077669800F149DA /* anytrans.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = anytrans.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/anytrans.cpp; sourceTree = "<group>"; };
8AAB54042077669900F149DA /* collation.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = collation.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collation.cpp; sourceTree = "<group>"; };
8AAB54052077669900F149DA /* coleitr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = coleitr.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/coleitr.cpp; sourceTree = "<group>"; };
8AAB54062077669900F149DA /* decimfmtimpl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = decimfmtimpl.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decimfmtimpl.cpp; sourceTree = "<group>"; };
8AAB54072077669900F149DA /* region.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = region.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/region.cpp; sourceTree = "<group>"; };
8AAB54082077669900F149DA /* ucol_sit.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ucol_sit.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/ucol_sit.cpp; sourceTree = "<group>"; };
8AAB54092077669900F149DA /* cecal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = cecal.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/cecal.h; sourceTree = "<group>"; };
@ -744,7 +714,6 @@
8AAB5450207766A300F149DA /* simpletz.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = simpletz.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/simpletz.cpp; sourceTree = "<group>"; };
8AAB5451207766A300F149DA /* uspoof.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = uspoof.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/uspoof.cpp; sourceTree = "<group>"; };
8AAB5452207766A400F149DA /* csmatch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = csmatch.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/csmatch.cpp; sourceTree = "<group>"; };
8AAB5453207766A400F149DA /* pluralaffix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pluralaffix.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/pluralaffix.cpp; sourceTree = "<group>"; };
8AAB5454207766A400F149DA /* remtrans.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = remtrans.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/remtrans.h; sourceTree = "<group>"; };
8AAB5455207766A400F149DA /* taiwncal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = taiwncal.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/taiwncal.h; sourceTree = "<group>"; };
8AAB5456207766A400F149DA /* titletrn.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = titletrn.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/titletrn.h; sourceTree = "<group>"; };
@ -755,10 +724,8 @@
8AAB545B207766A500F149DA /* bocsu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bocsu.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/bocsu.h; sourceTree = "<group>"; };
8AAB545C207766A600F149DA /* ethpccal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ethpccal.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/ethpccal.h; sourceTree = "<group>"; };
8AAB545D207766A600F149DA /* brktrans.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = brktrans.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/brktrans.h; sourceTree = "<group>"; };
8AAB545E207766A600F149DA /* digitinterval.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digitinterval.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitinterval.cpp; sourceTree = "<group>"; };
8AAB545F207766A600F149DA /* tridpars.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tridpars.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/tridpars.cpp; sourceTree = "<group>"; };
8AAB5460207766A700F149DA /* dayperiodrules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dayperiodrules.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/dayperiodrules.cpp; sourceTree = "<group>"; };
8AAB5461207766A700F149DA /* affixpatternparser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = affixpatternparser.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/affixpatternparser.h; sourceTree = "<group>"; };
8AAB5462207766A700F149DA /* nfrs.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = nfrs.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/nfrs.cpp; sourceTree = "<group>"; };
8AAB5463207766A700F149DA /* number_decimfmtprops.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = number_decimfmtprops.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_decimfmtprops.cpp; sourceTree = "<group>"; };
8AAB5464207766A700F149DA /* measfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = measfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/measfmt.cpp; sourceTree = "<group>"; };
@ -771,8 +738,6 @@
8AAB546C207766A900F149DA /* astro.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = astro.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/astro.h; sourceTree = "<group>"; };
8AAB546D207766AA00F149DA /* unumsys.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = unumsys.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/unumsys.cpp; sourceTree = "<group>"; };
8AAB546E207766AA00F149DA /* nfrule.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = nfrule.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/nfrule.cpp; sourceTree = "<group>"; };
8AAB546F207766AA00F149DA /* digitformatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = digitformatter.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitformatter.h; sourceTree = "<group>"; };
8AAB5470207766AA00F149DA /* decimfmtimpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = decimfmtimpl.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decimfmtimpl.h; sourceTree = "<group>"; };
8AAB5471207766AB00F149DA /* casetrn.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = casetrn.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/casetrn.cpp; sourceTree = "<group>"; };
8AAB5472207766AB00F149DA /* number_fluent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = number_fluent.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_fluent.cpp; sourceTree = "<group>"; };
8AAB5473207766AB00F149DA /* tznames_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = tznames_impl.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/tznames_impl.h; sourceTree = "<group>"; };
@ -780,7 +745,6 @@
8AAB5475207766AC00F149DA /* uspoof_conf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = uspoof_conf.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/uspoof_conf.h; sourceTree = "<group>"; };
8AAB5476207766AC00F149DA /* choicfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = choicfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/choicfmt.cpp; sourceTree = "<group>"; };
8AAB5477207766AC00F149DA /* collationbuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationbuilder.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationbuilder.h; sourceTree = "<group>"; };
8AAB5478207766AC00F149DA /* decfmtst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = decfmtst.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decfmtst.h; sourceTree = "<group>"; };
8AAB5479207766AC00F149DA /* anytrans.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = anytrans.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/anytrans.h; sourceTree = "<group>"; };
8AAB547A207766AD00F149DA /* vtzone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vtzone.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/vtzone.cpp; sourceTree = "<group>"; };
8AAB547B207766AD00F149DA /* bocsu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bocsu.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/bocsu.cpp; sourceTree = "<group>"; };
@ -799,7 +763,6 @@
8AAB5488207766B000F149DA /* winnmfmt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = winnmfmt.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/winnmfmt.h; sourceTree = "<group>"; };
8AAB5489207766B000F149DA /* zonemeta.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = zonemeta.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/zonemeta.h; sourceTree = "<group>"; };
8AAB548A207766B000F149DA /* ufieldpositer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ufieldpositer.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/ufieldpositer.cpp; sourceTree = "<group>"; };
8AAB548B207766B100F149DA /* digitlst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digitlst.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitlst.cpp; sourceTree = "<group>"; };
8AAB548C207766B100F149DA /* collationdatabuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = collationdatabuilder.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationdatabuilder.cpp; sourceTree = "<group>"; };
8AAB548D207766B100F149DA /* dcfmtsym.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dcfmtsym.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/dcfmtsym.cpp; sourceTree = "<group>"; };
8AAB548E207766B100F149DA /* collationcompare.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationcompare.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationcompare.h; sourceTree = "<group>"; };
@ -809,7 +772,6 @@
8AAB5492207766B200F149DA /* tmutamt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tmutamt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/tmutamt.cpp; sourceTree = "<group>"; };
8AAB5493207766B300F149DA /* dtitv_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = dtitv_impl.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/dtitv_impl.h; sourceTree = "<group>"; };
8AAB5494207766B300F149DA /* number_scientific.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = number_scientific.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_scientific.cpp; sourceTree = "<group>"; };
8AAB5495207766B300F149DA /* digitaffixesandpadding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = digitaffixesandpadding.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitaffixesandpadding.h; sourceTree = "<group>"; };
8AAB5496207766B300F149DA /* number_scientific.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = number_scientific.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_scientific.h; sourceTree = "<group>"; };
8AAB5497207766B400F149DA /* calendar.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = calendar.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/calendar.cpp; sourceTree = "<group>"; };
8AAB5498207766B400F149DA /* regextxt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = regextxt.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/regextxt.h; sourceTree = "<group>"; };
@ -831,7 +793,6 @@
8AAB54A8207766B900F149DA /* collationdatareader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationdatareader.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationdatareader.h; sourceTree = "<group>"; };
8AAB54A9207766B900F149DA /* shareddateformatsymbols.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = shareddateformatsymbols.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/shareddateformatsymbols.h; sourceTree = "<group>"; };
8AAB54AA207766B900F149DA /* tzfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = tzfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/tzfmt.cpp; sourceTree = "<group>"; };
8AAB54AB207766BA00F149DA /* digitinterval.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = digitinterval.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitinterval.h; sourceTree = "<group>"; };
8AAB54AC207766BA00F149DA /* number_longnames.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = number_longnames.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_longnames.h; sourceTree = "<group>"; };
8AAB54AD207766BA00F149DA /* number_stringbuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = number_stringbuilder.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_stringbuilder.h; sourceTree = "<group>"; };
8AAB54AE207766BA00F149DA /* plurfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = plurfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/plurfmt.cpp; sourceTree = "<group>"; };
@ -843,24 +804,18 @@
8AAB54B4207766BD00F149DA /* number_decimfmtprops.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = number_decimfmtprops.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_decimfmtprops.h; sourceTree = "<group>"; };
8AAB54B5207766BD00F149DA /* reldtfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = reldtfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/reldtfmt.cpp; sourceTree = "<group>"; };
8AAB54B6207766BD00F149DA /* ucol_imp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ucol_imp.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/ucol_imp.h; sourceTree = "<group>"; };
8AAB54B7207766BD00F149DA /* regexcst.pl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.perl; name = regexcst.pl; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/regexcst.pl; sourceTree = "<group>"; };
8AAB54B8207766BD00F149DA /* coptccal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = coptccal.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/coptccal.h; sourceTree = "<group>"; };
8AAB54B9207766BE00F149DA /* number_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = number_types.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_types.h; sourceTree = "<group>"; };
8AAB54BA207766BE00F149DA /* upluralrules.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = upluralrules.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/upluralrules.cpp; sourceTree = "<group>"; };
8AAB54BB207766BE00F149DA /* uspoof_build.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = uspoof_build.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/uspoof_build.cpp; sourceTree = "<group>"; };
8AAB54BC207766BE00F149DA /* collationkeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationkeys.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationkeys.h; sourceTree = "<group>"; };
8AAB54BD207766BF00F149DA /* significantdigitinterval.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = significantdigitinterval.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/significantdigitinterval.h; sourceTree = "<group>"; };
8AAB54BE207766BF00F149DA /* dtitvinf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = dtitvinf.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/dtitvinf.cpp; sourceTree = "<group>"; };
8AAB54BF207766BF00F149DA /* csrucode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = csrucode.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/csrucode.cpp; sourceTree = "<group>"; };
8AAB54C0207766C000F149DA /* number_affixutils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = number_affixutils.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_affixutils.cpp; sourceTree = "<group>"; };
8AAB54C1207766C000F149DA /* persncal.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = persncal.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/persncal.cpp; sourceTree = "<group>"; };
8AAB54C2207766C000F149DA /* pluralaffix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pluralaffix.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/pluralaffix.h; sourceTree = "<group>"; };
8AAB54C3207766C000F149DA /* collationkeys.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = collationkeys.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationkeys.cpp; sourceTree = "<group>"; };
8AAB54C4207766C100F149DA /* decfmtst.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = decfmtst.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decfmtst.cpp; sourceTree = "<group>"; };
8AAB54C5207766C100F149DA /* msgfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = msgfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/msgfmt.cpp; sourceTree = "<group>"; };
8AAB54C6207766C100F149DA /* plurrule_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = plurrule_impl.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/plurrule_impl.h; sourceTree = "<group>"; };
8AAB54C7207766C100F149DA /* decimalformatpattern.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = decimalformatpattern.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decimalformatpattern.cpp; sourceTree = "<group>"; };
8AAB54C8207766C200F149DA /* decimalformatpatternimpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = decimalformatpatternimpl.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decimalformatpatternimpl.h; sourceTree = "<group>"; };
8AAB54C9207766C200F149DA /* rbt_set.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rbt_set.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/rbt_set.cpp; sourceTree = "<group>"; };
8AAB54CA207766C200F149DA /* regeximp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = regeximp.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/regeximp.cpp; sourceTree = "<group>"; };
8AAB54CB207766C200F149DA /* scriptset.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = scriptset.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/scriptset.cpp; sourceTree = "<group>"; };
@ -876,11 +831,9 @@
8AAB54D5207766C500F149DA /* timezone.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = timezone.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/timezone.cpp; sourceTree = "<group>"; };
8AAB54D6207766C500F149DA /* collationsettings.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationsettings.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationsettings.h; sourceTree = "<group>"; };
8AAB54D7207766C500F149DA /* search.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = search.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/search.cpp; sourceTree = "<group>"; };
8AAB54D8207766C500F149DA /* digitaffix.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digitaffix.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitaffix.cpp; sourceTree = "<group>"; };
8AAB54D9207766C600F149DA /* selfmt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = selfmt.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/selfmt.cpp; sourceTree = "<group>"; };
8AAB54DA207766C600F149DA /* transreg.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = transreg.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/transreg.cpp; sourceTree = "<group>"; };
8AAB54DB207766C600F149DA /* uspoof_impl.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = uspoof_impl.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/uspoof_impl.cpp; sourceTree = "<group>"; };
8AAB54DC207766C600F149DA /* digitformatter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = digitformatter.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/digitformatter.cpp; sourceTree = "<group>"; };
8AAB54DD207766C700F149DA /* regeximp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = regeximp.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/regeximp.h; sourceTree = "<group>"; };
8AAB54DE207766C700F149DA /* number_decimalquantity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = number_decimalquantity.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/number_decimalquantity.cpp; sourceTree = "<group>"; };
8AAB54DF207766C700F149DA /* csrsbcs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = csrsbcs.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/csrsbcs.h; sourceTree = "<group>"; };
@ -904,16 +857,12 @@
8AAB54F2207766CC00F149DA /* utmscale.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = utmscale.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/utmscale.cpp; sourceTree = "<group>"; };
8AAB54F3207766CC00F149DA /* collationsettings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = collationsettings.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationsettings.cpp; sourceTree = "<group>"; };
8AAB54F4207766CC00F149DA /* collationfastlatinbuilder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = collationfastlatinbuilder.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationfastlatinbuilder.cpp; sourceTree = "<group>"; };
8AAB54F5207766CC00F149DA /* decimalformatpattern.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = decimalformatpattern.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/decimalformatpattern.h; sourceTree = "<group>"; };
8AAB54F6207766CC00F149DA /* chnsecal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = chnsecal.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/chnsecal.h; sourceTree = "<group>"; };
8AAB54F7207766CD00F149DA /* regexcst.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = regexcst.txt; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/regexcst.txt; sourceTree = "<group>"; };
8AAB54F8207766CD00F149DA /* utrans.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = utrans.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/utrans.cpp; sourceTree = "<group>"; };
8AAB54F9207766CD00F149DA /* name2uni.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = name2uni.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/name2uni.h; sourceTree = "<group>"; };
8AAB54FA207766CD00F149DA /* valueformatter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = valueformatter.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/valueformatter.cpp; sourceTree = "<group>"; };
8AAB54FB207766CE00F149DA /* rbt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rbt.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/rbt.h; sourceTree = "<group>"; };
8AAB54FC207766CE00F149DA /* gender.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gender.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/gender.cpp; sourceTree = "<group>"; };
8AAB54FD207766CE00F149DA /* quant.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = quant.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/quant.cpp; sourceTree = "<group>"; };
8AAB54FE207766CE00F149DA /* smallintformatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = smallintformatter.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/smallintformatter.h; sourceTree = "<group>"; };
8AAB54FF207766CF00F149DA /* uregexc.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = uregexc.cpp; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/uregexc.cpp; sourceTree = "<group>"; };
8AAB5500207766CF00F149DA /* wintzimpl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wintzimpl.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/wintzimpl.h; sourceTree = "<group>"; };
8AAB5501207766CF00F149DA /* collationfastlatinbuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = collationfastlatinbuilder.h; path = ../../../../../../../Common/3dParty/icu/mac_64/icu/source/i18n/collationfastlatinbuilder.h; sourceTree = "<group>"; };
@ -1551,8 +1500,6 @@
698AEE5B1C07269A0080D889 /* i18n */ = {
isa = PBXGroup;
children = (
8AAB53B82077668E00F149DA /* affixpatternparser.cpp */,
8AAB5461207766A700F149DA /* affixpatternparser.h */,
8AAB549A207766B400F149DA /* alphaindex.cpp */,
8AAB54032077669800F149DA /* anytrans.cpp */,
8AAB5479207766AC00F149DA /* anytrans.h */,
@ -1645,32 +1592,13 @@
8AAB54A2207766B600F149DA /* datefmt.cpp */,
8AAB5460207766A700F149DA /* dayperiodrules.cpp */,
8AAB543C207766A100F149DA /* dayperiodrules.h */,
8AAB54022077669800F149DA /* dcfmtimp.h */,
8AAB548D207766B100F149DA /* dcfmtsym.cpp */,
8AAB53BF2077668F00F149DA /* decContext.cpp */,
8AAB53B72077668E00F149DA /* decContext.h */,
8AAB54C4207766C100F149DA /* decfmtst.cpp */,
8AAB5478207766AC00F149DA /* decfmtst.h */,
8AAB54C7207766C100F149DA /* decimalformatpattern.cpp */,
8AAB54F5207766CC00F149DA /* decimalformatpattern.h */,
8AAB54C8207766C200F149DA /* decimalformatpatternimpl.h */,
8AAB5487207766B000F149DA /* decimfmt.cpp */,
8AAB54062077669900F149DA /* decimfmtimpl.cpp */,
8AAB5470207766AA00F149DA /* decimfmtimpl.h */,
8AAB540A2077669900F149DA /* decNumber.cpp */,
8AAB5441207766A100F149DA /* decNumber.h */,
8AAB546B207766A900F149DA /* decNumberLocal.h */,
8AAB54D8207766C500F149DA /* digitaffix.cpp */,
8AAB53BD2077668F00F149DA /* digitaffix.h */,
8AAB53E72077669300F149DA /* digitaffixesandpadding.cpp */,
8AAB5495207766B300F149DA /* digitaffixesandpadding.h */,
8AAB54DC207766C600F149DA /* digitformatter.cpp */,
8AAB546F207766AA00F149DA /* digitformatter.h */,
8AAB53A42077668C00F149DA /* digitgrouping.cpp */,
8AAB545E207766A600F149DA /* digitinterval.cpp */,
8AAB54AB207766BA00F149DA /* digitinterval.h */,
8AAB548B207766B100F149DA /* digitlst.cpp */,
8AAB539E2077668B00F149DA /* digitlst.h */,
8AAB53F72077669700F149DA /* dt_impl.h */,
8AAB54CE207766C300F149DA /* dtfmtsym.cpp */,
8AAB5493207766B300F149DA /* dtitv_impl.h */,
@ -1763,13 +1691,9 @@
8AAB5442207766A200F149DA /* olsontz.h */,
8AAB54C1207766C000F149DA /* persncal.cpp */,
8AAB5444207766A200F149DA /* persncal.h */,
8AAB5453207766A400F149DA /* pluralaffix.cpp */,
8AAB54C2207766C000F149DA /* pluralaffix.h */,
8AAB54AE207766BA00F149DA /* plurfmt.cpp */,
8AAB54C6207766C100F149DA /* plurrule_impl.h */,
8AAB54AF207766BB00F149DA /* plurrule.cpp */,
8AAB53FF2077669800F149DA /* precision.cpp */,
8AAB53BA2077668E00F149DA /* precision.h */,
8AAB54FD207766CE00F149DA /* quant.cpp */,
8AAB54E5207766C900F149DA /* quant.h */,
8AAB53D02077669100F149DA /* quantityformatter.cpp */,
@ -1789,8 +1713,6 @@
8AAB549B207766B500F149DA /* regexcmp.cpp */,
8AAB5482207766AF00F149DA /* regexcmp.h */,
8AAB54E3207766C800F149DA /* regexcst.h */,
8AAB54B7207766BD00F149DA /* regexcst.pl */,
8AAB54F7207766CD00F149DA /* regexcst.txt */,
8AAB54CA207766C200F149DA /* regeximp.cpp */,
8AAB54DD207766C700F149DA /* regeximp.h */,
8AAB53EB2077669400F149DA /* regexst.cpp */,
@ -1819,10 +1741,7 @@
8AAB54A9207766B900F149DA /* shareddateformatsymbols.h */,
8AAB54CD207766C300F149DA /* sharednumberformat.h */,
8AAB53D52077669100F149DA /* sharedpluralrules.h */,
8AAB54BD207766BF00F149DA /* significantdigitinterval.h */,
8AAB5450207766A300F149DA /* simpletz.cpp */,
8AAB53FE2077669800F149DA /* smallintformatter.cpp */,
8AAB54FE207766CE00F149DA /* smallintformatter.h */,
8AAB5466207766A800F149DA /* smpdtfmt.cpp */,
8AAB54B0207766BB00F149DA /* smpdtfst.cpp */,
8AAB53F32077669500F149DA /* smpdtfst.h */,
@ -1901,10 +1820,6 @@
8AAB545A207766A500F149DA /* utf16collationiterator.h */,
8AAB54F2207766CC00F149DA /* utmscale.cpp */,
8AAB54F8207766CD00F149DA /* utrans.cpp */,
8AAB54FA207766CD00F149DA /* valueformatter.cpp */,
8AAB53F92077669700F149DA /* valueformatter.h */,
8AAB53D42077669100F149DA /* visibledigits.cpp */,
8AAB53E52077669300F149DA /* visibledigits.h */,
8AAB547A207766AD00F149DA /* vtzone.cpp */,
8AAB544C207766A300F149DA /* vzone.cpp */,
8AAB543E207766A100F149DA /* vzone.h */,
@ -1945,20 +1860,10 @@
8AAB53732077664600F149DA /* uscanf.h */,
8AAB53702077664500F149DA /* ustdio.cpp */,
8AAB53712077664500F149DA /* ustream.cpp */,
698AF0151C07269B0080D889 /* unicode */,
);
path = io;
sourceTree = "<group>";
};
698AF0151C07269B0080D889 /* unicode */ = {
isa = PBXGroup;
children = (
8AAB536E2077663000F149DA /* ustdio.h */,
8AAB536D2077663000F149DA /* ustream.h */,
);
path = unicode;
sourceTree = "<group>";
};
698AF4C41C0750CE0080D889 /* stubdata */ = {
isa = PBXGroup;
children = (
@ -2132,7 +2037,6 @@
8AAB55BC207766D100F149DA /* timezone.cpp in Sources */,
8AAB57C3207767DD00F149DA /* unames.cpp in Sources */,
8AAB57C5207767DD00F149DA /* messagepattern.cpp in Sources */,
8AAB5512207766D100F149DA /* digitgrouping.cpp in Sources */,
8AAB538D2077664E00F149DA /* ufile.cpp in Sources */,
8AAB575E207767DD00F149DA /* ucurr.cpp in Sources */,
8AAB57BE207767DD00F149DA /* usprep.cpp in Sources */,
@ -2161,11 +2065,9 @@
8AAB552E207766D100F149DA /* gregocal.cpp in Sources */,
8AAB57E9207767DD00F149DA /* unistr_case_locale.cpp in Sources */,
8AAB5804207767DD00F149DA /* umutex.cpp in Sources */,
8AAB5572207766D100F149DA /* pluralaffix.cpp in Sources */,
8AAB576E207767DD00F149DA /* ucnvisci.cpp in Sources */,
8AAB5787207767DD00F149DA /* locdspnm.cpp in Sources */,
8AAB55C6207766D100F149DA /* number_compact.cpp in Sources */,
8AAB55D5207766D100F149DA /* valueformatter.cpp in Sources */,
8AAB553F207766D100F149DA /* windtfmt.cpp in Sources */,
8AAB55A4207766D100F149DA /* tzfmt.cpp in Sources */,
8AAB5549207766D100F149DA /* coleitr.cpp in Sources */,
@ -2179,7 +2081,6 @@
8AAB580F207767DD00F149DA /* simpleformatter.cpp in Sources */,
8AAB5557207766D100F149DA /* collationfastlatin.cpp in Sources */,
8AAB57CD207767DD00F149DA /* ucnv2022.cpp in Sources */,
8AAB55C2207766D100F149DA /* digitformatter.cpp in Sources */,
8AAB55D2207766D100F149DA /* collationsettings.cpp in Sources */,
8AAB5809207767DD00F149DA /* ucnvhz.cpp in Sources */,
8AAB556A207766D100F149DA /* number_modifiers.cpp in Sources */,
@ -2209,9 +2110,7 @@
8AAB576C207767DD00F149DA /* ucmndata.cpp in Sources */,
8AAB5540207766D100F149DA /* taiwncal.cpp in Sources */,
8AAB5556207766D100F149DA /* toupptrn.cpp in Sources */,
8AAB55B3207766D100F149DA /* decimalformatpattern.cpp in Sources */,
8AAB5802207767DD00F149DA /* util_props.cpp in Sources */,
8AAB5544207766D100F149DA /* precision.cpp in Sources */,
8AAB57FA207767DD00F149DA /* utrace.cpp in Sources */,
8AAB5784207767DD00F149DA /* rbbitblb.cpp in Sources */,
8AAB57D0207767DD00F149DA /* uchriter.cpp in Sources */,
@ -2321,7 +2220,6 @@
8AAB57B0207767DD00F149DA /* ustrcase.cpp in Sources */,
8AAB57FB207767DD00F149DA /* ucnvdisp.cpp in Sources */,
8AAB57C4207767DD00F149DA /* rbbidata.cpp in Sources */,
8AAB55B1207766D100F149DA /* decfmtst.cpp in Sources */,
8AAB5563207766D100F149DA /* numsys.cpp in Sources */,
8AAB552A207766D100F149DA /* indiancal.cpp in Sources */,
8AAB5569207766D100F149DA /* ucol.cpp in Sources */,
@ -2344,7 +2242,6 @@
8AAB5513207766D100F149DA /* fpositer.cpp in Sources */,
8AAB57ED207767DD00F149DA /* unistr_titlecase_brkiter.cpp in Sources */,
8AAB5791207767DD00F149DA /* servnotf.cpp in Sources */,
8AAB558F207766D100F149DA /* digitlst.cpp in Sources */,
8AAB5785207767DD00F149DA /* normalizer2impl.cpp in Sources */,
8AAB5807207767DD00F149DA /* utrie2_builder.cpp in Sources */,
8AAB559C207766D100F149DA /* tmutfmt.cpp in Sources */,
@ -2367,7 +2264,6 @@
8AAB5521207766D100F149DA /* decContext.cpp in Sources */,
8AAB5801207767DD00F149DA /* ubidiwrt.cpp in Sources */,
8AAB556E207766D100F149DA /* brktrans.cpp in Sources */,
8AAB55BE207766D100F149DA /* digitaffix.cpp in Sources */,
8AAB5786207767DD00F149DA /* filteredbrk.cpp in Sources */,
8AAB5584207766D100F149DA /* vtzone.cpp in Sources */,
8AAB55C4207766D100F149DA /* collationdatareader.cpp in Sources */,
@ -2376,7 +2272,6 @@
8AAB5509207766D100F149DA /* rbnf.cpp in Sources */,
8AAB5596207766D100F149DA /* calendar.cpp in Sources */,
8AAB558E207766D100F149DA /* ufieldpositer.cpp in Sources */,
8AAB554A207766D100F149DA /* decimfmtimpl.cpp in Sources */,
8AAB57DD207767DD00F149DA /* resbund.cpp in Sources */,
8AAB559A207766D100F149DA /* udateintervalformat.cpp in Sources */,
8AAB5524207766D100F149DA /* nortrans.cpp in Sources */,
@ -2436,9 +2331,7 @@
8AAB5763207767DD00F149DA /* udata.cpp in Sources */,
8AAB5534207766D100F149DA /* dtitvfmt.cpp in Sources */,
8AAB57B8207767DD00F149DA /* rbbinode.cpp in Sources */,
8AAB5574207766D100F149DA /* digitinterval.cpp in Sources */,
8AAB553E207766D100F149DA /* tznames_impl.cpp in Sources */,
8AAB5529207766D100F149DA /* visibledigits.cpp in Sources */,
8AAB5757207767DD00F149DA /* ucol_swp.cpp in Sources */,
8AAB5598207766D100F149DA /* alphaindex.cpp in Sources */,
8AAB5562207766D100F149DA /* zrule.cpp in Sources */,
@ -2465,7 +2358,6 @@
8AAB5774207767DD00F149DA /* punycode.cpp in Sources */,
8AAB5792207767DD00F149DA /* udatamem.cpp in Sources */,
8AAB55D6207766D100F149DA /* gender.cpp in Sources */,
8AAB551E207766D100F149DA /* affixpatternparser.cpp in Sources */,
8AAB57B9207767DD00F149DA /* ucase.cpp in Sources */,
8AAB5583207766D100F149DA /* choicfmt.cpp in Sources */,
8AAB55B8207766D100F149DA /* dtfmtsym.cpp in Sources */,
@ -2502,7 +2394,6 @@
8AAB5568207766D100F149DA /* tzrule.cpp in Sources */,
8AAB554F207766D100F149DA /* curramt.cpp in Sources */,
8AAB5799207767DD00F149DA /* listformatter.cpp in Sources */,
8AAB5535207766D100F149DA /* digitaffixesandpadding.cpp in Sources */,
8AAB575F207767DD00F149DA /* ucasemap_titlecase_brkiter.cpp in Sources */,
8AAB5768207767DD00F149DA /* parsepos.cpp in Sources */,
8AAB55C1207766D100F149DA /* uspoof_impl.cpp in Sources */,
@ -2511,7 +2402,6 @@
8AAB57D6207767DD00F149DA /* rbbi.cpp in Sources */,
8AAB550C207766D100F149DA /* sortkey.cpp in Sources */,
8AAB576D207767DD00F149DA /* utext.cpp in Sources */,
8AAB5543207766D100F149DA /* smallintformatter.cpp in Sources */,
8AAB552D207766D100F149DA /* collationruleparser.cpp in Sources */,
8AAB55B0207766D100F149DA /* collationkeys.cpp in Sources */,
8AAB57CB207767DD00F149DA /* uinit.cpp in Sources */,

View File

@ -1133,6 +1133,10 @@ namespace NExtractTools
pdfWriter.SetTempFolder(sTemp);
pdfWriter.SetThemesPlace(sThemeDir);
std::wstring documentID = params.getDocumentID();
if (false == documentID.empty())
pdfWriter.SetDocumentID(documentID);
std::wstring password = params.getSavePassword();
if (false == password.empty())
pdfWriter.SetPassword(password);
@ -1273,6 +1277,10 @@ namespace NExtractTools
pdfWriter.SetTempFolder(sTemp);
pdfWriter.SetThemesPlace(sThemeDir);
std::wstring documentID = params.getDocumentID();
if (false == documentID.empty())
pdfWriter.SetDocumentID(documentID);
std::wstring password = params.getSavePassword();
if (false == password.empty())
pdfWriter.SetPassword(password);
@ -1882,18 +1890,19 @@ namespace NExtractTools
std::wstring sTempUnpackedODP = sTemp + FILE_SEPARATOR_STR + _T("odp_unpacked");
NSDirectory::CreateDirectory(sTempUnpackedODP);
std::wstring password = params.getSavePassword();
Oox2Odf::Converter converter(sPptxDir, _T("presentation"), params.getFontPath(), NULL);
int nRes = 0;
try
{
converter.convert();
converter.write(sTempUnpackedODP, sTemp, password);
std::wstring password = params.getSavePassword();
std::wstring documentID = params.getDocumentID();
converter.convert();
converter.write(sTempUnpackedODP, sTemp, password, documentID);
COfficeUtils oCOfficeUtils(NULL);
nRes = (S_OK == oCOfficeUtils.CompressFileOrDirectory(sTempUnpackedODP, sTo, false, password.empty() ? Z_DEFLATED : 0)) ? 0 : AVS_FILEUTILS_ERROR_CONVERT;
COfficeUtils oCOfficeUtils(NULL);
nRes = (S_OK == oCOfficeUtils.CompressFileOrDirectory(sTempUnpackedODP, sTo, false, password.empty() ? Z_DEFLATED : 0)) ? 0 : AVS_FILEUTILS_ERROR_CONVERT;
}catch(...)
{
nRes = AVS_FILEUTILS_ERROR_CONVERT;
@ -2457,10 +2466,11 @@ namespace NExtractTools
int nRes = 0;
try
{
std::wstring password = params.getSavePassword();
std::wstring password = params.getSavePassword();
std::wstring documentID = params.getDocumentID();
converter.convert();
converter.write(sTempUnpackedODT, sTemp, password);
converter.write(sTempUnpackedODT, sTemp, password, documentID);
COfficeUtils oCOfficeUtils(NULL);
nRes = (S_OK == oCOfficeUtils.CompressFileOrDirectory(sTempUnpackedODT, sTo, false, password.empty() ? Z_DEFLATED : 0)) ? 0 : AVS_FILEUTILS_ERROR_CONVERT;
@ -2494,10 +2504,11 @@ namespace NExtractTools
{
Oox2Odf::Converter converter(sXlsxDir, L"spreadsheet", params.getFontPath(), NULL);
std::wstring password = params.getSavePassword();
std::wstring password = params.getSavePassword();
std::wstring documentID = params.getDocumentID();
converter.convert();
converter.write(sTempUnpackedODS, sTemp, password);
converter.write(sTempUnpackedODS, sTemp, password, documentID);
COfficeUtils oCOfficeUtils(NULL);
int nRes = (S_OK == oCOfficeUtils.CompressFileOrDirectory(sTempUnpackedODS, sTo, false, password.empty() ? Z_DEFLATED : 0)) ? 0 : AVS_FILEUTILS_ERROR_CONVERT;

View File

@ -66,8 +66,14 @@
69920A3A1E016F9700E7E6EE /* X2tConverter.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = X2tConverter.xcodeproj; path = ../../build/Mac/X2tConverter/X2tConverter.xcodeproj; sourceTree = "<group>"; };
699690721E2F925200B620CD /* libc++abi.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++abi.tbd"; path = "usr/lib/libc++abi.tbd"; sourceTree = SDKROOT; };
69BE370B1F60129600CBA47B /* crypted.xlsx */ = {isa = PBXFileReference; lastKnownFileType = file; path = crypted.xlsx; sourceTree = "<group>"; };
8A1045C420F4B55E005A0F61 /* libicudata.58.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicudata.58.dylib; path = ../../../Common/3dParty/icu/mac_64/build/libicudata.58.dylib; sourceTree = "<group>"; };
8A1045C520F4B55F005A0F61 /* libicuuc.58.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libicuuc.58.dylib; path = ../../../Common/3dParty/icu/mac_64/build/libicuuc.58.dylib; sourceTree = "<group>"; };
8A94F3C9207CE7D600EC05D2 /* test.csv */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = test.csv; sourceTree = "<group>"; };
8A9FAD36207781C5007787F6 /* OfficeFileErrorDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OfficeFileErrorDescription.h; path = ../../../../Common/OfficeFileErrorDescription.h; sourceTree = "<group>"; };
8AED79AA20F50164008BB78E /* libicui18n.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libicui18n.a; path = "../../../../../Downloads/icu-ios-master/build-universal/libicui18n.a"; sourceTree = "<group>"; };
8AED79AC20F50164008BB78E /* libicuio.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libicuio.a; path = "../../../../../Downloads/icu-ios-master/build-universal/libicuio.a"; sourceTree = "<group>"; };
8AED79AD20F50164008BB78E /* libicutu.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libicutu.a; path = "../../../../../Downloads/icu-ios-master/build-universal/libicutu.a"; sourceTree = "<group>"; };
8AED79AE20F50164008BB78E /* libicuuc.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libicuuc.a; path = "../../../../../Downloads/icu-ios-master/build-universal/libicuuc.a"; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@ -156,6 +162,12 @@
6967BEB11E27D5BE00A129E2 /* Frameworks */ = {
isa = PBXGroup;
children = (
8AED79AA20F50164008BB78E /* libicui18n.a */,
8AED79AC20F50164008BB78E /* libicuio.a */,
8AED79AD20F50164008BB78E /* libicutu.a */,
8AED79AE20F50164008BB78E /* libicuuc.a */,
8A1045C420F4B55E005A0F61 /* libicudata.58.dylib */,
8A1045C520F4B55F005A0F61 /* libicuuc.58.dylib */,
698810C41F4DA87A00E4C541 /* libcryptopp.a */,
699690721E2F925200B620CD /* libc++abi.tbd */,
6967BEB21E27D5BE00A129E2 /* libiconv.tbd */,
@ -350,7 +362,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = (
@ -402,7 +414,7 @@
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
MTL_ENABLE_DEBUG_INFO = NO;
OTHER_LDFLAGS = (
"-ObjC",
@ -425,7 +437,7 @@
DEVELOPMENT_TEAM = 2WH24U26GJ;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = TestIOSX2tConverter/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_CFLAGS = "";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";
@ -450,7 +462,7 @@
DEVELOPMENT_TEAM = 2WH24U26GJ;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = TestIOSX2tConverter/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 8.2;
IPHONEOS_DEPLOYMENT_TARGET = 10.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
OTHER_CFLAGS = "";
OTHER_CPLUSPLUSFLAGS = "$(OTHER_CFLAGS)";