From 2cbcf3960422fb64eea6cc51bf6ae7be643bedd3 Mon Sep 17 00:00:00 2001 From: "zhimin.zeng" Date: Fri, 9 Jun 2023 11:44:16 +0800 Subject: [PATCH] FIX: .3mf corrupted when using "&" in text github-1903 Change-Id: I074d2e798232e4521f8f63aa32c6060a41805664 --- src/libslic3r/Format/bbs_3mf.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libslic3r/Format/bbs_3mf.cpp b/src/libslic3r/Format/bbs_3mf.cpp index d1d09bdbc..9dc1a50e5 100644 --- a/src/libslic3r/Format/bbs_3mf.cpp +++ b/src/libslic3r/Format/bbs_3mf.cpp @@ -4101,7 +4101,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) ObjectMetadata::VolumeMetadata &volume = object->second.volumes[m_curr_config.volume_id]; TextInfo text_info; - text_info.m_text = bbs_get_attribute_value_string(attributes, num_attributes, TEXT_ATTR); + text_info.m_text = xml_unescape(bbs_get_attribute_value_string(attributes, num_attributes, TEXT_ATTR)); text_info.m_font_name = bbs_get_attribute_value_string(attributes, num_attributes, FONT_NAME_ATTR); text_info.m_curr_font_idx = bbs_get_attribute_value_int(attributes, num_attributes, FONT_INDEX_ATTR); @@ -6826,7 +6826,7 @@ void PlateData::parse_filament_info(GCodeProcessorResult *result) void _add_text_info_to_archive(std::stringstream& stream, const TextInfo& text_info) { stream << " <" << TEXT_INFO_TAG << " "; - stream << TEXT_ATTR << "=\"" << text_info.m_text << "\" "; + stream << TEXT_ATTR << "=\"" << xml_escape(text_info.m_text) << "\" "; stream << FONT_NAME_ATTR << "=\"" << text_info.m_font_name << "\" "; stream << FONT_INDEX_ATTR << "=\"" << text_info.m_curr_font_idx << "\" ";