diff options
Diffstat (limited to 'include/mailutils/attribute.h')
-rw-r--r-- | include/mailutils/attribute.h | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/include/mailutils/attribute.h b/include/mailutils/attribute.h index e0f4e94e4..ab9eb24c6 100644 --- a/include/mailutils/attribute.h +++ b/include/mailutils/attribute.h @@ -1,5 +1,5 @@ /* GNU Mailutils -- a suite of utilities for electronic mail - Copyright (C) 1999-2019 Free Software Foundation, Inc. + Copyright (C) 1999-2024 Free Software Foundation, Inc. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public @@ -24,14 +24,39 @@ extern "C" { #endif +/* + * Message attributes: + */ + +/* The message has been replied to: */ #define MU_ATTRIBUTE_ANSWERED 0x01 + +/* The message is explicitly flagged for some purpose: */ #define MU_ATTRIBUTE_FLAGGED 0x02 + +/* The message is deleted. It will remain in this state until it + is expunged (and, consequently, physically removed from the + mailbox, or the attribute is removed. */ #define MU_ATTRIBUTE_DELETED 0x04 + +/* This is a draft message */ #define MU_ATTRIBUTE_DRAFT 0x08 + +/* The user has seen the message. Notice, that it does not mean that + they have read it, all it implies is that the user is aware about + existence of this message in the mailbox (e.g. it was displayed in + some kind of mailbox listing, as the mail "h" command). */ #define MU_ATTRIBUTE_SEEN 0x10 + +/* The user has read the message at least partially. */ #define MU_ATTRIBUTE_READ 0x20 + +/* The message was modified, but not yet saved to the mailbox. */ #define MU_ATTRIBUTE_MODIFIED 0x40 +/* The message has been forwarded to someone else */ +#define MU_ATTRIBUTE_FORWARDED 0x80 + /* A message is recent if the current session is the first session to have been notified about it. Practically, a message is considered "recent" if it does not have MU_ATTRIBUTE_SEEN set. For consistency @@ -46,7 +71,7 @@ extern "C" { extern int mu_attribute_create (mu_attribute_t *, void *); extern void mu_attribute_destroy (mu_attribute_t *, void *); -extern void * mu_attribute_get_owner (mu_attribute_t); +extern void *mu_attribute_get_owner (mu_attribute_t); extern int mu_attribute_is_modified (mu_attribute_t); extern int mu_attribute_clear_modified (mu_attribute_t); extern int mu_attribute_set_modified (mu_attribute_t attr); @@ -59,6 +84,7 @@ extern int mu_attribute_is_deleted (mu_attribute_t); extern int mu_attribute_is_draft (mu_attribute_t); extern int mu_attribute_is_recent (mu_attribute_t); extern int mu_attribute_is_read (mu_attribute_t); +extern int mu_attribute_is_forwarded (mu_attribute_t); extern int mu_attribute_set_userflag (mu_attribute_t, int); extern int mu_attribute_set_seen (mu_attribute_t); @@ -68,6 +94,7 @@ extern int mu_attribute_set_deleted (mu_attribute_t); extern int mu_attribute_set_draft (mu_attribute_t); extern int mu_attribute_set_recent (mu_attribute_t); extern int mu_attribute_set_read (mu_attribute_t); +extern int mu_attribute_set_forwarded (mu_attribute_t); extern int mu_attribute_unset_userflag (mu_attribute_t, int); extern int mu_attribute_unset_seen (mu_attribute_t); @@ -77,6 +104,7 @@ extern int mu_attribute_unset_deleted (mu_attribute_t); extern int mu_attribute_unset_draft (mu_attribute_t); extern int mu_attribute_unset_recent (mu_attribute_t); extern int mu_attribute_unset_read (mu_attribute_t); +extern int mu_attribute_unset_forwarded (mu_attribute_t); extern int mu_attribute_get_flags (mu_attribute_t, int *); extern int mu_attribute_set_flags (mu_attribute_t, int); @@ -96,11 +124,16 @@ extern int mu_attribute_is_equal (mu_attribute_t, mu_attribute_t att2); extern int mu_attribute_copy (mu_attribute_t, mu_attribute_t); /* Maximum size of buffer for mu_attribute_to_string call, including nul */ -#define MU_STATUS_BUF_SIZE sizeof("AFDdOR") - -extern int mu_attribute_to_string (mu_attribute_t, char *, size_t, size_t *); -extern int mu_string_to_flags (const char *, int *); +#define MU_STATUS_BUF_SIZE sizeof("AFDdOPR") +extern int mu_attribute_to_string (mu_attribute_t, char *, size_t, size_t *); +extern int mu_attribute_flags_to_string (int flags, char *buffer, size_t len, size_t *pn); +extern int mu_attribute_string_to_flags (const char *, int *); +static int mu_string_to_flags (const char *, int *) MU_DEPRECATED; +static inline int mu_string_to_flags (const char *b, int *f) +{ + return mu_attribute_string_to_flags (b, f); +} #ifdef __cplusplus } #endif |