#line 1 "/src.code/printer.dumper/util.c"#include <types.h>#include <string.h>#include <stdlib.h>#pragma lint -1#pragma optimize -1#pragma noroot/* these are prototyped in the Orca/C manual, but not in any header */extern pascal void SystemQuitFlags (unsigned int);extern pascal void SystemQuitPath (GSString255Ptr);extern void exit(int);/* * rexit - from GNO/ME's libraries */void rexit (int code){	SystemQuitFlags (0x4000);	SystemQuitPath (NULL);	exit(code);}GSString255 * __P2GSMalloc(const char *cp){Word i;GSString255* tmp;	tmp = NULL;	i = cp ? *cp : 0;	// pstring	if (i)	{		tmp = (GSString255 *)malloc(i+2);		if (tmp)		{			tmp->length = i;			memcpy(tmp->text, cp + 1, i);		}	}	return tmp;}/* * like gno/me has * */GSString255* __C2GSMalloc(const char *cp){GSString255 * tmp;Word i;	i = cp ? strlen(cp) : 0;	tmp = i ? malloc(i+2) : NULL;	if (tmp)	{		tmp->length = i;		memcpy(tmp->text, cp, i);	}	return tmp;}char * Basename(const GSString255 *gstr){register Word i;Word disp = 0;char *ret;word len;	for (i = 0; i < gstr->length; i++)	{		if (gstr->text[i] == ':' || gstr->text[i] == '/')			disp = i + 1;	}	len = gstr->length - disp;		ret = (char *)malloc(len + 1);	memcpy(ret, gstr->text + disp, len);	ret[len] = (char)0;		return ret;}
