#ifndef __Desk_Core_h
#include "Desk.Core.h"
#endif


typedef struct Desk_msg_def *msgdefptr;

typedef struct Desk_msg_def
{
  msgdefptr   next;
  union
  {
    char        *text;
    msgdefptr   taglist;
  } data;
  char        tag[10];
} Desk_msg_def;

extern msgdefptr Desk_msgs_grouplist;
extern Desk_bool Desk_Msgs__MatchToken(const char *tag1, const char *tag2, Desk_bool wcallowed);

extern msgdefptr Desk_Msgs__Find(msgdefptr *liststart, char *tag,
                            Desk_bool create, Desk_bool wcallowed);

#define MatchTokenI(t1, t2) ((((int*)t1)[0]==((int*)t2)[0] && ((int*)t1)[1]==((int*)t2)[1]) ? Desk_bool_TRUE : Desk_bool_FALSE)
