
char *save(ptr) char *ptr;
{
register char *p, *q;
char *s;
register int c;


for (p = q = s = strsave(ptr); *p = *q++; ++p)
	{
	if (*p == '\\')
		{
		switch(c = *q++)
			{
		case 'r':
			c = '\r';
			break;
		case 'n':
			c = '\n';
			break;
		case 't':
			c = '\t';
			break;
		case 'b':
			c = '\b';
			break;
		default:
			if (isdigit(c))
				{
				c -= '0';
				while (isdigit(*q))
					c = c * 8 + *q++ - '0';
				}
			TRACEF(("got octal value %o\n",c));
			}
		*p = c;
		}
	}
return(s);
}
