#define NEW(T) (T *)malloc(sizeof(T)) #define COPY(S) strcpy((char *)malloc(strlen(S) + 1), S) #define NEWLINE(F) while(getc(F) != '\n') #define EQ(S,T) (strcasecmp(S,T) == 0) #define ABREV_EQ(S,T) (strncasecmp(S,T,strlen(T)) == 0) #define EMPTY(S) ((S == NULL) || (S[0] == '\0')) #define FREE(T) { free(T); T = NULL; }