1 /* GNU Mailutils -- a suite of utilities for electronic mail 2 Copyright (C) 2017-2021 Free Software Foundation, Inc. 3 4 GNU Mailutils is free software; you can redistribute it and/or modify 5 it under the terms of the GNU General Public License as published by 6 the Free Software Foundation; either version 3, or (at your option) 7 any later version. 8 9 GNU Mailutils is distributed in the hope that it will be useful, 10 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 GNU General Public License for more details. 13 14 You should have received a copy of the GNU General Public License 15 along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. */ 16 17 #include <config.h> 18 #include <mailutils/types.h> 19 #include <mailutils/errno.h> 20 #include <mailutils/list.h> 21 #include <mailutils/msgset.h> 22 #include <mailutils/sys/msgset.h> 23 24 int mu_msgset_first(mu_msgset_t msgset,size_t * ret)25mu_msgset_first (mu_msgset_t msgset, size_t *ret) 26 { 27 int rc; 28 struct mu_msgrange const *range; 29 30 if (mu_msgset_is_empty (msgset)) 31 return EINVAL; 32 if (!ret) 33 return MU_ERR_OUT_PTR_NULL; 34 rc = mu_msgset_aggregate (msgset); 35 if (rc) 36 return rc; 37 rc = mu_list_head (msgset->list, (void **) &range); 38 if (rc == 0) 39 *ret = range->msg_beg; 40 return rc; 41 } 42