* make MU_MSG_FIELD_ID_REFS a GSList* field

This commit is contained in:
Dirk-Jan C. Binnema
2011-06-15 23:51:49 +03:00
parent a98bff9493
commit dab245d010
2 changed files with 20 additions and 6 deletions

View File

@ -201,7 +201,7 @@ static const MuMsgField FIELD_DATA[] = {
{ {
MU_MSG_FIELD_ID_REFS, MU_MSG_FIELD_ID_REFS,
MU_MSG_FIELD_TYPE_STRING, MU_MSG_FIELD_TYPE_STRING_LIST,
"refs", 'r', 'R', "refs", 'r', 'R',
FLAG_GMIME | FLAG_XAPIAN_VALUE | FLAG_GMIME | FLAG_XAPIAN_VALUE |
FLAG_XAPIAN_PREFIX_ONLY FLAG_XAPIAN_PREFIX_ONLY

View File

@ -38,11 +38,13 @@ enum _MuMsgFieldId {
MU_MSG_FIELD_ID_MAILDIR, MU_MSG_FIELD_ID_MAILDIR,
MU_MSG_FIELD_ID_MSGID, MU_MSG_FIELD_ID_MSGID,
MU_MSG_FIELD_ID_PATH, MU_MSG_FIELD_ID_PATH,
MU_MSG_FIELD_ID_REFS,
MU_MSG_FIELD_ID_SUBJECT, MU_MSG_FIELD_ID_SUBJECT,
MU_MSG_FIELD_ID_TO, MU_MSG_FIELD_ID_TO,
/* MU_MSG_STRING_FIELD_ID_NUM, see below */ /* MU_MSG_STRING_FIELD_ID_NUM, see below */
/* string list items... */
MU_MSG_FIELD_ID_REFS,
/* then the numerical ones */ /* then the numerical ones */
MU_MSG_FIELD_ID_DATE, MU_MSG_FIELD_ID_DATE,
MU_MSG_FIELD_ID_FLAGS, MU_MSG_FIELD_ID_FLAGS,
@ -57,19 +59,19 @@ enum _MuMsgFieldId {
MU_MSG_FIELD_ID_NUM_WITH_PSEUDO /* number including these fake MU_MSG_FIELD_ID_NUM_WITH_PSEUDO /* number including these fake
* fields */ * fields */
}; };
typedef enum _MuMsgFieldId MuMsgFieldId; typedef guint8 MuMsgFieldId;
/* some specials... */ /* some specials... */
static const MuMsgFieldId MU_MSG_FIELD_ID_NONE = (MuMsgFieldId)-1; static const MuMsgFieldId MU_MSG_FIELD_ID_NONE = (MuMsgFieldId)-1;
#define MU_MSG_STRING_FIELD_ID_NUM (MU_MSG_FIELD_ID_TO + 1) #define MU_MSG_STRING_FIELD_ID_NUM (MU_MSG_FIELD_ID_TO + 1)
#define mu_msg_field_id_is_valid(MFID) \ #define mu_msg_field_id_is_valid(MFID) \
((MFID) < MU_MSG_FIELD_ID_NUM) ((MFID) < MU_MSG_FIELD_ID_NUM)
/* don't change the order, add new types at the end (before _NUM)*/ /* don't change the order, add new types at the end (before _NUM)*/
enum _MuMsgFieldType { enum _MuMsgFieldType {
MU_MSG_FIELD_TYPE_STRING, MU_MSG_FIELD_TYPE_STRING,
MU_MSG_FIELD_TYPE_STRING_LIST,
MU_MSG_FIELD_TYPE_BYTESIZE, MU_MSG_FIELD_TYPE_BYTESIZE,
MU_MSG_FIELD_TYPE_TIME_T, MU_MSG_FIELD_TYPE_TIME_T,
@ -77,7 +79,7 @@ enum _MuMsgFieldType {
MU_MSG_FIELD_TYPE_NUM MU_MSG_FIELD_TYPE_NUM
}; };
typedef enum _MuMsgFieldType MuMsgFieldType; typedef guint8 MuMsgFieldType;
static const MuMsgFieldType MU_MSG_FIELD_TYPE_NONE = (MuMsgFieldType)-1; static const MuMsgFieldType MU_MSG_FIELD_TYPE_NONE = (MuMsgFieldType)-1;
typedef void (*MuMsgFieldForEachFunc) (MuMsgFieldId id, typedef void (*MuMsgFieldForEachFunc) (MuMsgFieldId id,
@ -145,6 +147,18 @@ MuMsgFieldType mu_msg_field_type (MuMsgFieldId id) G_GNUC_PURE;
#define mu_msg_field_is_string(MFID)\ #define mu_msg_field_is_string(MFID)\
(mu_msg_field_type((MFID))==MU_MSG_FIELD_TYPE_STRING?TRUE:FALSE) (mu_msg_field_type((MFID))==MU_MSG_FIELD_TYPE_STRING?TRUE:FALSE)
/**
* is the field a string-list?
*
* @param id a MuMsgFieldId
*
* @return TRUE if the field a string-list, FALSE otherwise
*/
#define mu_msg_field_is_string_list(MFID)\
(mu_msg_field_type((MFID))==MU_MSG_FIELD_TYPE_STRING_LIST?TRUE:FALSE)
/** /**
* is the field numeric (has type MU_MSG_FIELD_TYPE_(BYTESIZE|TIME_T|INT))? * is the field numeric (has type MU_MSG_FIELD_TYPE_(BYTESIZE|TIME_T|INT))?
* *