/***********************************************************************   (C) Copyright, 1990 by Dean Rubine, Carnegie Mellon University    Permission to use this code for noncommercial purposes is hereby granted.    Permission to copy and distribute this code is hereby granted provided    this copyright notice is retained.  All other rights reserved. **********************************************************************//* * General utility functionss * * Mostly for dealing with mundane issues such as: *	Memory allocation *	Error handling */ #define MAC#ifdef MAC #define FLOAT extended#else#define FLOAT double#endif/* * General allocation macro * * Example: *	struct list *s; s = allocate(4, struct list) * returns space for an array of 4 list structures. * Allocate will die if there is no more memory */#define	allocate(n, type) ((type *) myalloc(n, sizeof(type), "type"))/* * Functions */#define	STREQ(a,b)	( ! strcmp(a,b) )char	*myalloc();	/* Do not call this function directly */char	*scopy();	/* allocates memory for a string */void	debug();	/* printf on stderr -			   setting DebugFlag = 0 turns off debugging */void	error();	/* printf on stderr, then dies */int	ucstrcmp();	/* strcmp, upper case = lower case */#ifndef MACchar	*tempstring();	/* returns a pointer to space that will reused soon */#endif
