This is mailtoc.h in view mode; [Download] [Up]
/* -*-C-*-
*******************************************************************************
*
* File: mailtoc.h
* RCS: /usr/local/sources/CVS/EnhanceMail/mailtoc.h,v 1.9 1998/05/31 00:39:43 tom Exp
* Description: Structure and access routine declarations for Mail.app mailboxes
* Author: Carl Edman
* Created: Sun Apr 25 10:25:29 1993
* Modified: Sat Apr 19 14:38:11 1997 Tom Hageman <tom@basil.icce.rug.nl>
* Language: C
* Package: N/A
* Status: Experimental (Do Not Distribute)
*
* (C) Copyright 1993, but otherwise this file is perfect freeware.
*
*******************************************************************************
*/
#if (NS_TARGET_MAJOR < 4 && !defined(__APPLE_CC__)) /* NEXTSTEP */
# import <appkit/graphics.h>
#else /* OPENSTEP/Rhapsody(DR1/DR2) */
# import <Foundation/NSGeometry.h>
# define NXCoord float
# define NXRect NSRect
#endif
#import <stdio.h>
#import <time.h>
/* The following two structures have been stolen from Chris Paris excellent
exposition of the NeXT mailbox format */
struct table_of_contents_header
{
int magic; /* magic number: 890712 */
int num_msgs; /* number of messages in mbox */
time_t mbox_time; /* the m_time of mbox */
NXCoord list; /* height of upper section of split view containing list */
NXRect window; /* Mail window */
};
struct message_index
{
int record_length; /* the length of this record, including this word */
int mes_offset; /* offset in mbox where this message begins */
int mes_length; /* length in bytes of this message in mbox */
int mes_date; /* the date of this message */
char status; /* read ' ' or '>', unread '*', deleted 'd' or 'D', flagged '+' */
char msgtype; /* regular ' ', NeXT mail 'r'/'n' or Mime Mail 'm' */
char encrypted; /* Is this message encrypted 'e' or not ' '? */
char sync; /* always ' ' */
char data[0];
};
struct table_of_contents_header *get_table_of_contents_header(FILE *f,int createflag);
struct message_index *get_message_index(FILE *f);
char *message_from(const struct message_index *mi);
char *message_subject(const struct message_index *mi);
char *message_reference(const struct message_index *mi);
int message_attachsize(const struct message_index *mi);
time_t message_attachtime(const struct message_index *mi);
int message_priority(const struct message_index *mi);
int message_set_attachsize(struct message_index *mi,int size);
time_t message_set_attachtime(struct message_index *mi,time_t time);
int message_set_priority(struct message_index *mi,int priority);
long message_current_date(void);
long message_date(int year, const char *month, int day);
void message_get_date(const struct message_index *mi, int *year, int *month, int *day);
int message_age(const struct message_index *mi);
/* age in days. */
int put_message_index(FILE *f,struct message_index *mi);
int put_table_of_contents_header(FILE *f,struct table_of_contents_header *toc);
#if _MAILTOC_DEFINES
# define MT_UNSET ' '
# define MT_STATUS_READ_1 MT_UNSET
# define MT_STATUS_READ_2 '>'
# define MT_STATUS_READ MT_STATUS_READ_1
# define MT_STATUS_NEW '*'
# define MT_STATUS_DELETED_1 'd'
# define MT_STATUS_DELETED_2 'D'
# define MT_STATUS_DELETED MT_STATUS_DELETED_1
# define MT_STATUS_UNREAD_1 'u'
# define MT_STATUS_UNREAD_2 'U'
# define MT_STATUS_UNREAD MT_STATUS_UNREAD_1
# define MT_STATUS_FLAGGED '+'
# define MT_TYPE_ASCII MT_UNSET
# define MT_TYPE_NEXT_1 'r' /* NEXTSTEP/OPENSTEP */
# define MT_TYPE_NEXT_2 'n' /* (alleged) Rhapsody */
# define MT_TYPE_NEXT MT_TYPE_NEXT_1
# define MT_TYPE_MIME 'm'
# define MT_ENCRYPTED 'e'
#endif
#define MBOX_CONTENTS_FILE "mbox"
#define MBOX_TOC_FILE "table_of_contents"
#define MBOX_INDEX_FILE "content.store" /* EnhanceMail extension. */
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.