1/*- 2 * Copyright (c) 1991, 1993 3 * The Regents of the University of California. All rights reserved. 4 * 5 * This code is derived from software contributed to Berkeley by 6 * Kenneth Almquist. 7 * 8 * Redistribution and use in source and binary forms, with or without --- 19 unchanged lines hidden (view full) --- 28 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 29 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 30 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34 * SUCH DAMAGE. 35 * |
36 * $Id: input.c,v 1.5 1996/09/01 10:20:18 peter Exp $ |
37 */ 38 39#ifndef lint 40static char sccsid[] = "@(#)input.c 8.3 (Berkeley) 6/9/95"; 41#endif /* not lint */ 42 43#include <stdio.h> /* defines BUFSIZ */ 44#include <fcntl.h> --- 128 unchanged lines hidden (view full) --- 173pread() 174{ 175 int nr; 176 177 parsenextc = parsefile->buf; 178retry: 179 if (parsefile->fd == 0 && el) { 180 const char *rl_cp; |
181 182 rl_cp = el_gets(el, &nr); 183 if (rl_cp == NULL) 184 nr = 0; 185 else { 186 /* XXX - BUFSIZE should redesign so not necessary */ |
187 (void)strcpy(parsenextc, rl_cp); |
188 } 189 190 } else { 191 nr = read(parsefile->fd, parsenextc, BUFSIZ - 1); 192 } 193 194 if (nr <= 0) { 195 if (nr < 0) { --- 84 unchanged lines hidden (view full) --- 280 *q = '\0'; 281 more = 0; 282 } 283 } 284 285 savec = *q; 286 *q = '\0'; 287 |
288#ifndef NO_HISTORY |
289 if (parsefile->fd == 0 && hist && something) { 290 INTOFF; 291 history(hist, whichprompt == 1 ? H_ENTER : H_ADD, parsenextc); 292 INTON; 293 } |
294#endif |
295 |
296 if (vflag) { 297 out2str(parsenextc); 298 flushout(out2); 299 } 300 301 *q = savec; 302 303 return *parsenextc++; --- 202 unchanged lines hidden --- |