|
|
The MESSAGECACHE structure (commonly called an ``elt'' as a nickname for cache ELemenT) contains information about messages. Applications may use the following:
unsigned long msgno;
Message number. If the elt is locked (by elt->lockcount++
),
then its pointer can be stored (for example, with the data for a
window which draws this message) and elt->msgno
will change
automatically whenever expunges are done so the window will always
view the correct message. If elt->msgno
becomes 0, then the
message has been expunged, but the elt will not be freed until the
elt lock count is decremented (by mail_free_elt).
unsigned long uid;
Message unique ID.
unsigned int hours: 5;
Internal date hours (0-23).
unsigned int minutes: 6;
Internal date minutes (0-59).
unsigned int seconds: 6;
Internal date seconds (0-59).
unsigned int zoccident : 1;
Non-zero if internal date time zone is west of UTC.
unsigned int zhours : 4;
Internal date time zone hours from UTC (0-12).
unsigned int zminutes: 6;
Internal date time zone minutes (0-59).
unsigned int seen : 1;
Message seen flag.
unsigned int deleted : 1;
Message deleted flag.
unsigned int flagged : 1;
Message flagged flag.
unsigned int answered : 1;
Message answered flag.
unsigned int draft : 1;
Message draft flag.
unsigned int valid : 1;
Flags are valid in this elt; an elt that was newly created but never loaded with flags will not have this set.
unsigned int recent : 1;
Message recent flag.
unsigned int searched : 1;
Message matches search criteria in most recent mail_search_full call.
unsigned int spare : 1;
Reserved for application use.
unsigned int spare2 : 1;
Reserved for application use.
unsigned int spare3 : 1;
Reserved for application use.
unsigned int lockcount : 8;
Non-zero if multiple references to this elt. Refer to the
msgno
member for more information.
unsigned int day : 5;
Internal date day of month (1-31).
unsigned int month : 4;
Internal date month of year (1-12).
unsigned int year : 7;
Internal date year since BASEYEAR (currently 1970; was 1969 in older versions so use BASEYEAR instead of having the base year wired in).
unsigned long user_flags;
Message user flags. This is a bit mask which matches the entries in
stream->user_flags[]
.
unsigned long rfc822_size;
Size of message in octets.
unsigned int sequence : 1;
Message is in sequence from either mail_sequence or mail_uid_sequence.
unsigned long data1;
First data item.
unsigned long data2;
Second data item.
unsigned long data3;
Third data item.
unsigned long data4;
Fourth data item.