USG_PG3/usr/source/tbl/tblm.c

Compare this file to the similar file:
Show the results in this format:

# include "tbl.c"
maknew(str)
	char *str;
{
	/* make two numerical fields */
	int dpoint, c;
	char *p, *q, *ba;
	p = str;
	for (ba= 0; c = *str; str++)
		if (c == '\\' && *(str+1)== '&')
			ba=str;
	str=p;
	if (ba==0)
		{
		for (dpoint=0; *str; str++)
			if (*str=='.' &&
				(str>p && digit(*(str-1)) ||
				digit(*(str+1))))
					dpoint=str;
		if (!dpoint && *(str-1)== '$')
			return(0);
		if (dpoint==0)
			for(; str>p; str--)
			{
			if (digit( * (str-1) ) )
				break;
			}
		if (!dpoint && p==str) /* not numerical, don't split */
			return(0);
		if (dpoint) str=dpoint;
		}
	else
		str = ba;
	p =str;
	if (exstore ==0 || exstore >exlim)
		{
		exstore = chspace();
		exlim= exstore+MAXCHS;
		}
	q = exstore;
	while (*exstore++ = *str++);
	*p = 0;
	return(q);
	}