/* --------------------
	macro.h -- assorted functions

	Copyright (C) J. Zobel, University of Melbourne, October 1987.
-------------------- */

#define beep()		printf("%c", 007)
#define NEWSTR(N)	(char *) malloc(N)
#define NEW(S)		(struct S *) malloc(sizeof(struct S))

/* --------------------
	Moving between pages of mail items.
-------------------- */
#define PREV_VALID(F)	for(; F != (folder) NULL && ! F->valid ; F=F->prev)
#define NEXT_VALID(F)	for(; F != (folder) NULL && ! F->valid ; F=F->next)
#define FRST_OF_NAME(F)	for(; F->prev != (folder) NULL && \
								F->name == F->prev->name ; F=F->prev)
#define LAST_OF_NAME(F)	for(; F->next != (folder) NULL && \
								F->name == F->next->name ; F=F->next)
#define GOTO_NAME(F,S)	for(F=folders ; F != (folder) NULL && \
								strcmp(S, F->name) != 0 ; F=F->next)
