Sisyphus repository
Last update: 1 october 2023 | SRPMs: 18631 | Visits: 37555661
en ru br
ALT Linux repos
S:1.9.4-alt3
5.0: 0.57-alt1.1
4.1: 0.57-alt0.M41.2
4.0: 0.57-alt0.M40.1
3.0: 0.38-alt1

Group :: Development/C
RPM: libetpan

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs and FR  Repocop 

Patch: Fix-mailmime_write-add-handler-for-MAILMIME_FIELD_LO.patch
Download


From b4088cb04f47178e8059cd4a0fb0aa66939ddc28 Mon Sep 17 00:00:00 2001
From: Bastian Kummer <basti@politbuero.org>
Date: Mon, 22 Apr 2019 19:29:18 +0200
Subject: [PATCH 2/3] Fix mailmime_write(): add handler for
 MAILMIME_FIELD_LOCATION (#329)
---
 src/low-level/mime/mailmime_write_generic.c | 34 +++++++++++++++++++++
 1 file changed, 34 insertions(+)
diff --git a/src/low-level/mime/mailmime_write_generic.c b/src/low-level/mime/mailmime_write_generic.c
index bb63ab0..ff44e0d 100644
--- a/src/low-level/mime/mailmime_write_generic.c
+++ b/src/low-level/mime/mailmime_write_generic.c
@@ -81,6 +81,9 @@ static int mailmime_version_write_driver(int (* do_write)(void *, const char *,
 static int mailmime_encoding_write_driver(int (* do_write)(void *, const char *, size_t), void * data, int * col,
 				   struct mailmime_mechanism * encoding);
 
+static int mailmime_location_write_driver(int (* do_write)(void *, const char *, size_t), void *data, int *col,
+                                   char *location);
+
 static int mailmime_language_write_driver(int (* do_write)(void *, const char *, size_t), void * data, int * col,
 				   struct mailmime_language * language);
 
@@ -169,6 +172,10 @@ static int mailmime_field_write_driver(int (* do_write)(void *, const char *, si
     r = mailmime_language_write_driver(do_write, data, col, field->fld_data.fld_language);
     break;
 
+  case MAILMIME_FIELD_LOCATION:
+    r = mailmime_location_write_driver(do_write, data, col, field->fld_data.fld_location);
+    break;
+
   default:
     r = MAILIMF_ERROR_INVAL;
     break;
@@ -310,6 +317,33 @@ static int mailmime_encoding_write_driver(int (* do_write)(void *, const char *,
   return MAILIMF_NO_ERROR;
 }
 
+static int mailmime_location_write_driver(int (* do_write)(void *, const char *, size_t), void *data, int *col,
+                                   char *location)
+{
+  int r;
+  int len = strlen(location);
+
+  r = mailimf_string_write_driver(do_write, data, col, "Content-Location: ", 18);
+  if (r != MAILIMF_NO_ERROR)
+    return r;
+
+  if (*col > 1 && *col + len > MAX_MAIL_COL) {
+    r = mailimf_string_write_driver(do_write, data, col, "\r\n ", 3);
+    if (r != MAILIMF_NO_ERROR)
+      return r;
+  }
+
+  r = mailimf_string_write_driver(do_write, data, col, location, len);
+  if (r != MAILIMF_NO_ERROR)
+    return r;
+
+  r = mailimf_string_write_driver(do_write, data, col, "\r\n", 2);
+  if (r != MAILIMF_NO_ERROR)
+    return r;
+
+  return MAILIMF_NO_ERROR;
+}
+
 static int mailmime_language_write_driver(int (* do_write)(void *, const char *, size_t), void * data, int * col,
 				   struct mailmime_language * language)
 {
-- 
2.21.0
 
design & coding: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
current maintainer: Michael Shigorin