/* $Id: def_aliases.h,v 1.6 2006/04/09 07:37:30 hurtta Exp $ */ #include "headers.h" #include "mboxlib.h" #include "me.h" #include "ndbz.h" struct current_astorage { DBZ *hash; /* User or system hash */ char *filename; int is_system; time_t ctime; time_t mtime; int aliascount; int max_aliases; /* number of aliases allocated */ struct alias_rec **aliases; /* for the alias menu */ }; #if ANSI_C struct aliasclass; #endif #define ALIASVIEW_magic 0xF600 #define ALIASTYPE_magic 0xF601 typedef void at_init_aliasclass P_((struct aliasclass *c)); typedef void at_free_aliasclass P_((struct aliasclass *c)); typedef struct alias_rec * at_aliasclass_give_alias P_((struct aliasclass *c, int index)); typedef int at_update_aliasclass P_((struct aliasclass *c)); typedef int at_get_count_aliasclass P_((struct aliasclass *c)); extern struct alias_type { unsigned short magic; /* ALIASTYPE_magic */ at_init_aliasclass * at_init_it; at_free_aliasclass * at_free_it; at_aliasclass_give_alias * at_it_give_alias; at_update_aliasclass * at_update_it; at_get_count_aliasclass * at_get_count_it; } at_astorage; struct AliasView { unsigned short magic; /* ALIASVIEW_magic */ int aliasclasscount; struct aliasclass { struct alias_type *atype; union { void * dummy; struct current_astorage * astorage; } p; } *aliasclass; /* Array */ struct alias_view * view; int view_len; int normal_alias_len; /* Values set by caller */ int current; int selected; }; extern struct aliasclass * add_aliasclass P_((struct AliasView *x, struct alias_type *t)); extern int at_update_astorage P_((struct aliasclass *c)); extern void set_astorage_alias P_((struct current_astorage *astorage, int index, struct alias_rec * rec)); extern struct alias_rec * at_astorage_give_alias P_((struct aliasclass *c, int index)); /* src/aliases/ */ extern void reset_astorage P_((struct current_astorage *astorage)); extern void realloc_aliases P_((struct current_astorage *astorage, int current_count)); /* * Local Variables: * mode:c * c-basic-offset:4 * buffer-file-coding-system: iso-8859-1 * End: */