ftp.nice.ch/pub/next/unix/audio/cmusic.bs.N.tar.gz#/src/lib/charb/fgetcb.c

This is fgetcb.c in view mode; [Download] [Up]

# include <stdio.h>
# include "charb.h"

/*
 * read a newline terminated
 * string from FILE fd into
 * charb cb.
 *
 * returns EOF upon end of file
 * or error.
 *
 * no indication given for lines
 * not newline terminated.
 */

fgetcb(cb, fd)
register charb *cb;
FILE *fd;
{
	register int ch;
	register int i;

	i = 0;
	while ((ch = getc(fd)) != EOF) {
		if (i >= cb->c_max) {
			if ((cb = cbrealloc(cb, i+CBINC)) == NULL)
				return(EOF);
		}

		cb->c_buf[i++] = ch;

		if (ch == '\n')
			break;
	}

	if (i == 0)
		return(EOF);

	if (i >= cb->c_max) {
		if ((cb = cbrealloc(cb, i+CBINC)) == NULL)
			return(EOF);
	}

	cb->c_buf[i] = NULL;

	return(NULL);
}

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.