#line 1 "/src.code/printer.dumper/util.c" #include #include #include #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; }