NeoMutt  2024-03-23-142-g2b2e76
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
alternates.c File Reference

Alternate address handling. More...

#include "config.h"
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include "mutt/lib.h"
#include "address/lib.h"
#include "email/lib.h"
#include "core/lib.h"
#include "alternates.h"
#include "parse/lib.h"
#include "commands.h"
#include "mview.h"
+ Include dependency graph for alternates.c:

Go to the source code of this file.

Functions

void alternates_cleanup (void)
 Free the alternates lists.
 
void alternates_init (void)
 Set up the alternates lists.
 
void mutt_alternates_reset (struct MailboxView *mv)
 Clear the recipient valid flag of all emails.
 
enum CommandResult parse_alternates (struct Buffer *buf, struct Buffer *s, intptr_t data, struct Buffer *err)
 Parse the 'alternates' command - Implements Command::parse() -.
 
enum CommandResult parse_unalternates (struct Buffer *buf, struct Buffer *s, intptr_t data, struct Buffer *err)
 Parse the 'unalternates' command - Implements Command::parse() -.
 
bool mutt_alternates_match (const char *addr)
 Compare an Address to the Un/Alternates lists.
 

Variables

static struct RegexList Alternates = STAILQ_HEAD_INITIALIZER(Alternates)
 List of regexes to match the user's alternate email addresses.
 
static struct RegexList UnAlternates = STAILQ_HEAD_INITIALIZER(UnAlternates)
 List of regexes to exclude false matches in Alternates.
 
static struct NotifyAlternatesNotify = NULL
 Notifications: NotifyAlternates.
 

Detailed Description

Alternate address handling.

Authors
  • Richard Russon

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 alternates.c.

Function Documentation

◆ alternates_cleanup()

void alternates_cleanup ( void  )

Free the alternates lists.

Definition at line 49 of file alternates.c.

50{
52
55}
static struct RegexList Alternates
List of regexes to match the user's alternate email addresses.
Definition: alternates.c:42
static struct Notify * AlternatesNotify
Notifications: NotifyAlternates.
Definition: alternates.c:44
static struct RegexList UnAlternates
List of regexes to exclude false matches in Alternates.
Definition: alternates.c:43
void notify_free(struct Notify **ptr)
Free a notification handler.
Definition: notify.c:75
void mutt_regexlist_free(struct RegexList *rl)
Free a RegexList object.
Definition: regex.c:179
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ alternates_init()

void alternates_init ( void  )

Set up the alternates lists.

Definition at line 60 of file alternates.c.

61{
63 return;
64
67}
struct Notify * notify_new(void)
Create a new notifications handler.
Definition: notify.c:62
void notify_set_parent(struct Notify *notify, struct Notify *parent)
Set the parent notification handler.
Definition: notify.c:95
Container for Accounts, Notifications.
Definition: neomutt.h:41
struct Notify * notify
Notifications handler.
Definition: neomutt.h:42
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ mutt_alternates_reset()

void mutt_alternates_reset ( struct MailboxView mv)

Clear the recipient valid flag of all emails.

Parameters
mvMailbox view

Definition at line 73 of file alternates.c.

74{
75 if (!mv || !mv->mailbox)
76 return;
77
78 struct Mailbox *m = mv->mailbox;
79
80 for (int i = 0; i < m->msg_count; i++)
81 {
82 struct Email *e = m->emails[i];
83 if (!e)
84 break;
85 e->recip_valid = false;
86 }
87}
The envelope/body of an email.
Definition: email.h:39
bool recip_valid
Is_recipient is valid.
Definition: email.h:107
struct Mailbox * mailbox
Current Mailbox.
Definition: mview.h:51
A mailbox.
Definition: mailbox.h:79
int msg_count
Total number of messages.
Definition: mailbox.h:88
struct Email ** emails
Array of Emails.
Definition: mailbox.h:96
+ Here is the caller graph for this function:

◆ mutt_alternates_match()

bool mutt_alternates_match ( const char *  addr)

Compare an Address to the Un/Alternates lists.

Parameters
addrAddress to check
Return values
trueAddress matches

Definition at line 155 of file alternates.c.

156{
157 if (!addr)
158 return false;
159
161 {
162 mutt_debug(LL_DEBUG5, "yes, %s matched by alternates\n", addr);
164 mutt_debug(LL_DEBUG5, "but, %s matched by unalternates\n", addr);
165 else
166 return true;
167 }
168
169 return false;
170}
#define mutt_debug(LEVEL,...)
Definition: logging2.h:89
@ LL_DEBUG5
Log at debug level 5.
Definition: logging2.h:47
bool mutt_regexlist_match(struct RegexList *rl, const char *str)
Does a string match any Regex in the list?
Definition: regex.c:200
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ Alternates

struct RegexList Alternates = STAILQ_HEAD_INITIALIZER(Alternates)
static

List of regexes to match the user's alternate email addresses.

Definition at line 42 of file alternates.c.

◆ UnAlternates

struct RegexList UnAlternates = STAILQ_HEAD_INITIALIZER(UnAlternates)
static

List of regexes to exclude false matches in Alternates.

Definition at line 43 of file alternates.c.

◆ AlternatesNotify

struct Notify* AlternatesNotify = NULL
static

Notifications: NotifyAlternates.

Definition at line 44 of file alternates.c.