Skip to content
Toggle navigation
Toggle navigation
This project
Loading...
Sign in
John McEleney
/
mailutils
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Issue Boards
Files
Commits
Network
Compare
Branches
Tags
Commit
33dff02c
...
33dff02c09308d64461dff673f92a9a0a6533bbb
authored
2017-06-20 00:52:53 +0300
by
Sergey Poznyakoff
Browse Files
Options
Browse Files
Tag
Download
Email Patches
Plain Diff
Commit missing file
1 parent
455554b8
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
58 additions
and
0 deletions
libmailutils/msgset/copy.c
libmailutils/msgset/copy.c
0 → 100644
View file @
33dff02
/* GNU Mailutils -- a suite of utilities for electronic mail
Copyright (C) 2017 Free Software Foundation, Inc.
GNU Mailutils is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3, or (at your option)
any later version.
GNU Mailutils is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <stdlib.h>
#include <mailutils/types.h>
#include <mailutils/errno.h>
#include <mailutils/list.h>
#include <mailutils/msgset.h>
#include <mailutils/sys/msgset.h>
static
int
copy_range
(
void
*
item
,
void
*
data
)
{
struct
mu_msgrange
const
*
range
=
item
;
mu_list_t
list
=
data
;
struct
mu_msgrange
*
copy
;
copy
=
malloc
(
sizeof
(
*
copy
));
if
(
!
copy
)
return
ENOMEM
;
*
copy
=
*
range
;
return
mu_list_append
(
list
,
copy
);
}
int
mu_msgset_copy
(
mu_msgset_t
src
,
mu_msgset_t
dst
)
{
mu_list_t
list
;
int
rc
;
if
(
!
src
||
!
dst
)
return
EINVAL
;
rc
=
mu_list_create
(
&
list
);
if
(
rc
)
return
rc
;
rc
=
mu_list_foreach
(
src
->
list
,
copy_range
,
list
);
if
(
rc
==
0
)
mu_list_append_list
(
dst
->
list
,
list
);
mu_list_destroy
(
&
list
);
return
rc
;
}
Please
register
or
sign in
to post a comment