mirror of
https://github.com/tfussell/xlnt.git
synced 2024-03-22 13:11:17 +08:00
handle multiple consecutive character events arising from buffer boundaries, #83
This commit is contained in:
parent
2bfd909684
commit
123d3df982
|
@ -982,8 +982,7 @@ void xlsx_consumer::read_shared_string_table()
|
|||
|
||||
if (parser().name() == "t")
|
||||
{
|
||||
parser().next_expect(xml::parser::event_type::characters);
|
||||
t.plain_text(parser().value());
|
||||
t.plain_text(read_text());
|
||||
}
|
||||
else if (parser().name() == "r") // possible multiple text entities.
|
||||
{
|
||||
|
@ -992,9 +991,8 @@ void xlsx_consumer::read_shared_string_table()
|
|||
if (parser().peek() == xml::parser::event_type::end_element) break;
|
||||
|
||||
parser().next_expect(xml::parser::event_type::start_element, xmlns, "t");
|
||||
parser().next_expect(xml::parser::event_type::characters);
|
||||
text_run run;
|
||||
run.set_string(parser().value());
|
||||
run.set_string(read_text());
|
||||
|
||||
if (parser().peek() == xml::parser::event_type::start_element)
|
||||
{
|
||||
|
@ -1974,26 +1972,18 @@ void xlsx_consumer::read_worksheet(const std::string &rel_id)
|
|||
if (parser().qname() == xml::qname(xmlns, "v"))
|
||||
{
|
||||
has_value = true;
|
||||
|
||||
// <v> might be empty, check first
|
||||
if (parser().peek() == xml::parser::event_type::characters)
|
||||
{
|
||||
parser().next_expect(xml::parser::event_type::characters);
|
||||
value_string = parser().value();
|
||||
}
|
||||
value_string = read_text();
|
||||
}
|
||||
else if (parser().qname() == xml::qname(xmlns, "f"))
|
||||
{
|
||||
has_formula = true;
|
||||
has_shared_formula = parser().attribute_present("t") && parser().attribute("t") == "shared";
|
||||
parser().next_expect(xml::parser::event_type::characters);
|
||||
formula_value_string = parser().value();
|
||||
formula_value_string = read_text();
|
||||
}
|
||||
else if (parser().qname() == xml::qname(xmlns, "is"))
|
||||
{
|
||||
parser().next_expect(xml::parser::event_type::start_element, xmlns, "t");
|
||||
parser().next_expect(xml::parser::event_type::characters);
|
||||
value_string = parser().value();
|
||||
value_string = read_text();
|
||||
parser().next_expect(xml::parser::event_type::end_element, xmlns, "t");
|
||||
}
|
||||
|
||||
|
|
2
third-party/botan
vendored
2
third-party/botan
vendored
|
@ -1 +1 @@
|
|||
Subproject commit 523b2a4ca48fa5cf04ea371aabe7167ce2e5cd13
|
||||
Subproject commit 923a95d546df5b6d31f39b0af900d0361fb2e6a6
|
Loading…
Reference in New Issue
Block a user