summaryrefslogtreecommitdiff
path: root/pith/copyaddr.c
diff options
context:
space:
mode:
authorEduardo Chappa <echappa@gmx.com>2013-02-03 00:59:38 -0700
committerEduardo Chappa <echappa@gmx.com>2013-02-03 00:59:38 -0700
commit094ca96844842928810f14844413109fc6cdd890 (patch)
treee60efbb980f38ba9308ccb4fb2b77b87bbc115f3 /pith/copyaddr.c
downloadalpine-094ca96844842928810f14844413109fc6cdd890.tar.xz
Initial Alpine Version
Diffstat (limited to 'pith/copyaddr.c')
-rw-r--r--pith/copyaddr.c70
1 files changed, 70 insertions, 0 deletions
diff --git a/pith/copyaddr.c b/pith/copyaddr.c
new file mode 100644
index 00000000..1c8a5565
--- /dev/null
+++ b/pith/copyaddr.c
@@ -0,0 +1,70 @@
+#if !defined(lint) && !defined(DOS)
+static char rcsid[] = "$Id: copyaddr.c 761 2007-10-23 22:35:18Z hubert@u.washington.edu $";
+#endif
+
+/*
+ * ========================================================================
+ * Copyright 2006 University of Washington
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * ========================================================================
+ */
+
+#include "../pith/headers.h"
+#include "../pith/copyaddr.h"
+
+
+/*
+ * Copy the first address in list a and return it in allocated memory.
+ */
+ADDRESS *
+copyaddr(struct mail_address *a)
+{
+ ADDRESS *new = NULL;
+
+ if(a){
+ new = mail_newaddr();
+ if(a->personal)
+ new->personal = cpystr(a->personal);
+
+ if(a->adl)
+ new->adl = cpystr(a->adl);
+
+ if(a->mailbox)
+ new->mailbox = cpystr(a->mailbox);
+
+ if(a->host)
+ new->host = cpystr(a->host);
+
+ new->next = NULL;
+ }
+
+ return(new);
+}
+
+
+/*
+ * Copy the whole list a.
+ */
+ADDRESS *
+copyaddrlist(struct mail_address *a)
+{
+ ADDRESS *new = NULL, *head = NULL, *current;
+
+ for(; a; a = a->next){
+ new = copyaddr(a);
+ if(!head)
+ head = current = new;
+ else{
+ current->next = new;
+ current = new;
+ }
+ }
+
+ return(head);
+}