#
/*
* pxp - Pascal execution profiler
*
* Bill Joy UCB
* Version 1.0 August 1977
*/
#include "0.h"
/*
* STRING SPACE DECLARATIONS
*
* Strng is the base of the current
* string space and strngp the
* base of the free area therein.
* No array of descriptors is needed
* as string space is never freed.
*/
STATIC char strings[STRINC];
STATIC char *strng strings;
STATIC char *strngp strings;
/*
initstring()
{
}
*/
/*
* Copy a string into the string area.
*/
savestr(cp)
register char *cp;
{
register int i;
i = strlen(cp) + 1;
if (strngp + i >= strng + STRINC) {
strngp = alloc(STRINC);
if (strngp == -1) {
yerror("Ran out of memory (string)");
pexit(DIED);
}
strng = strngp;
}
strcpy(strngp, cp);
cp = strngp;
strngp = cp + i;
return (cp);
}
esavestr(cp)
char *cp;
{
strngp = (strngp + 1) &~ 1;
return (savestr(cp));
}