/*
 * Copyright (c) 2001-2002 The Trustees of Indiana University.  
 *                         All rights reserved.
 * Copyright (c) 1998-2001 University of Notre Dame. 
 *                         All rights reserved.
 * Copyright (c) 1994-1998 The Ohio State University.  
 *                         All rights reserved.
 * 
 * This file is part of the LAM/MPI software package.  For license
 * information, see the LICENSE file in the top level directory of the
 * LAM/MPI source distribution.
 * 
 * $HEADER$
 *
 *	Ohio Trollius
 *
 *	$Id: tfgets.c,v 6.4 2002/10/09 21:00:53 brbarret Exp $
 *
 *	We are just putting our stamp on this for housekeeping reasons.
 */

/*
 * This file is originally from dLibs 1.2 by Dale Schumacher et al.
 * It was modified for Trollius by MB, 88/12.
 * It was modified again for portability by GDB, 91/08.
 * And yet again by JRV for LAM, 93/05.
 */

#include <tstdio.h>

char *
tfgets(data, limit, fp)
	char *data;
	int limit;
	TFILE *fp;
{
	char *p = data;
	int c = 0;

	while((--limit > 0) && ((c = tfgetc(fp)) != EOF))
		if((*p++ = c) == '\n')
			break;
	*p = EOS;
	return((c == EOF && p == data) ? NULL : data);	/* NULL == EOF */
}

char *
tgets(data)
	char *data;
{
	char *p = data;
	int c;

	while(((c = tfgetc(tstdin)) != EOF) && (c != '\n')) {
		if(c == '\b') {
			if(p > data)
				--p;
		} else {
			*p++ = c;
		}
	}
	*p = EOS;
	return(((c == EOF) && (p == data)) ? NULL : data);  /* NULL == EOF */
}


syntax highlighted by Code2HTML, v. 0.9.1