diff options
author | 0xd34df00d <[email protected]> | 2020-08-08 16:44:03 +0000 |
---|---|---|
committer | Jan Osusky <[email protected]> | 2020-08-21 11:22:08 +0000 |
commit | d14038dd669bd8b2bf68d5e6fa1b6f6c45e730ed (patch) | |
tree | 80559a0cb43ac714165a1c70f5403f9b30871e86 | |
parent | Fix #223 (diff) | |
download | vmime-d14038dd669bd8b2bf68d5e6fa1b6f6c45e730ed.tar.gz vmime-d14038dd669bd8b2bf68d5e6fa1b6f6c45e730ed.zip |
Refactor out getPartName()
-rw-r--r-- | src/vmime/net/imap/IMAPMessagePart.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/vmime/net/imap/IMAPMessagePart.cpp b/src/vmime/net/imap/IMAPMessagePart.cpp index 746fe9a4..ddb4dd47 100644 --- a/src/vmime/net/imap/IMAPMessagePart.cpp +++ b/src/vmime/net/imap/IMAPMessagePart.cpp @@ -52,6 +52,21 @@ IMAPMessagePart::IMAPMessagePart( ); } +namespace { + template<typename T> + vmime::string getPartName(const T& body_type) { + if (const auto* pparam = body_type->body_fields->body_fld_param.get()) { + for (const auto& param : pparam->items) { + if (param->string1->value == "NAME") { + return param->string2->value; + } + } + } + + return {}; + } +} + IMAPMessagePart::IMAPMessagePart( const shared_ptr <IMAPMessagePart>& parent, @@ -88,13 +103,7 @@ IMAPMessagePart::IMAPMessagePart( m_size = part->body_type_basic->body_fields->body_fld_octets->value; - if (const auto* pparam = part->body_type_basic->body_fields->body_fld_param.get()) { - for (const auto& param : pparam->items) { - if (param->string1->value == "NAME") { - m_name = param->string2->value; - } - } - } + m_name = getPartName(part->body_type_basic); if (part->body_ext_1part && part->body_ext_1part->body_fld_dsp) { auto *cdisp = part->body_ext_1part->body_fld_dsp->str(); |