NeoMutt  2024-11-14-34-g5aaf0d
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
maillist.c File Reference

Handle mailing lists. More...

#include "config.h"
#include <stdbool.h>
#include <stdio.h>
#include "mutt/lib.h"
#include "address/lib.h"
#include "email/lib.h"
#include "maillist.h"
#include "muttlib.h"
#include "sort.h"
+ Include dependency graph for maillist.c:

Go to the source code of this file.

Functions

bool mutt_is_mail_list (const struct Address *addr)
 Is this the email address of a mailing list? - Implements addr_predicate_t -.
 
bool mutt_is_subscribed_list (const struct Address *addr)
 Is this the email address of a user-subscribed mailing list? - Implements addr_predicate_t -.
 
bool check_for_mailing_list (struct AddressList *al, const char *pfx, char *buf, int buflen)
 Search list of addresses for a mailing list.
 
bool check_for_mailing_list_addr (struct AddressList *al, char *buf, int buflen)
 Check an address list for a mailing list.
 
bool first_mailing_list (char *buf, size_t buflen, struct AddressList *al)
 Get the first mailing list in the list of addresses.
 

Detailed Description

Handle mailing lists.

Authors
  • Richard Russon
  • Anna Figueiredo Gomes

This program 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 this program. If not, see http://www.gnu.org/licenses/.

Definition in file maillist.c.

Function Documentation

◆ check_for_mailing_list()

bool check_for_mailing_list ( struct AddressList *  al,
const char *  pfx,
char *  buf,
int  buflen 
)

Search list of addresses for a mailing list.

Parameters
alAddressList to search
pfxPrefix string
bufBuffer to store results
buflenBuffer length
Return values
1Mailing list found
0No list found

Search for a mailing list in the list of addresses pointed to by addr. If one is found, print pfx and the name of the list into buf.

Definition at line 79 of file maillist.c.

80{
81 struct Address *a = NULL;
82 TAILQ_FOREACH(a, al, entries)
83 {
85 {
86 if (pfx && buf && buflen)
87 snprintf(buf, buflen, "%s%s", pfx, mutt_get_name(a));
88 return true;
89 }
90 }
91 return false;
92}
bool mutt_is_subscribed_list(const struct Address *addr)
Is this the email address of a user-subscribed mailing list? - Implements addr_predicate_t -.
Definition: maillist.c:57
#define TAILQ_FOREACH(var, head, field)
Definition: queue.h:725
const char * mutt_get_name(const struct Address *a)
Pick the best name to display from an address.
Definition: sort.c:134
An email address.
Definition: address.h:36
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ check_for_mailing_list_addr()

bool check_for_mailing_list_addr ( struct AddressList *  al,
char *  buf,
int  buflen 
)

Check an address list for a mailing list.

Parameters
alAddressList
bufBuffer for the result
buflenLength of buffer
Return values
trueMailing list found

If one is found, print the address of the list into buf.

Definition at line 103 of file maillist.c.

104{
105 struct Address *a = NULL;
106 TAILQ_FOREACH(a, al, entries)
107 {
109 {
110 if (buf && buflen)
111 snprintf(buf, buflen, "%s", buf_string(a->mailbox));
112 return true;
113 }
114 }
115 return false;
116}
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
Definition: buffer.h:96
struct Buffer * mailbox
Mailbox and host address.
Definition: address.h:38
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ first_mailing_list()

bool first_mailing_list ( char *  buf,
size_t  buflen,
struct AddressList *  al 
)

Get the first mailing list in the list of addresses.

Parameters
bufBuffer for the result
buflenLength of buffer
alAddressList
Return values
trueA mailing list was found

Definition at line 125 of file maillist.c.

126{
127 struct Address *a = NULL;
128 TAILQ_FOREACH(a, al, entries)
129 {
131 {
132 mutt_save_path(buf, buflen, a);
133 return true;
134 }
135 }
136 return false;
137}
void mutt_save_path(char *buf, size_t buflen, const struct Address *addr)
Turn an email address into a filename (for saving)
Definition: muttlib.c:628
+ Here is the call graph for this function:
+ Here is the caller graph for this function: