BBN-Vax-TCP/src/libstr/strunc.c

#include "string.h"
extern struct sctrl _ScB;
/*
 * In many circumstances, one would like to collect as much data as possible
 * into a string, then free up whatever is not used. This is the purpose of
 * this routine. After filling the last string allocated, use it to set
 * its maximum length to its current length, permitting the remainder to be
 * used for other auto strings. If it is called on a string which was
 * not the last auto string to be allocated, its action is undefined.
 * (This version does nothing if the string does not start in the current
 * stack frame; otherwise it truncates the frame back to the current length
 * of the string.)
 */
strunc(s)
    char * s;
{
    register char * se;

    se = s;
    if (se >= _ScB.c_sp || se <= _ScB.c_sfp)
	return;     /* Not in current stack frame, ignore */
    while (*se++ != '\0')
	continue;

/* Note that se points to the byte AFTER the null */

    _ScB.c_sp = se;
}