Module Name: src Committed By: christos Date: Thu Jan 27 23:11:41 UTC 2011
Modified Files: src/lib/libedit: el.c el.h tty.c Log Message: don't turn on editing if stdout is not a tty. To generate a diff of this commit: cvs rdiff -u -r1.60 -r1.61 src/lib/libedit/el.c cvs rdiff -u -r1.21 -r1.22 src/lib/libedit/el.h cvs rdiff -u -r1.33 -r1.34 src/lib/libedit/tty.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/lib/libedit/el.c diff -u src/lib/libedit/el.c:1.60 src/lib/libedit/el.c:1.61 --- src/lib/libedit/el.c:1.60 Sat Aug 28 11:44:59 2010 +++ src/lib/libedit/el.c Thu Jan 27 18:11:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: el.c,v 1.60 2010/08/28 15:44:59 christos Exp $ */ +/* $NetBSD: el.c,v 1.61 2011/01/27 23:11:40 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)el.c 8.2 (Berkeley) 1/3/94"; #else -__RCSID("$NetBSD: el.c,v 1.60 2010/08/28 15:44:59 christos Exp $"); +__RCSID("$NetBSD: el.c,v 1.61 2011/01/27 23:11:40 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -72,6 +72,8 @@ el->el_errfile = ferr; el->el_infd = fileno(fin); + el->el_outfd = fileno(fout); + el->el_errfd = fileno(ferr); el->el_prog = Strdup(ct_decode_string(prog, &el->el_scratch)); if (el->el_prog == NULL) { @@ -333,9 +335,11 @@ break; case 1: el->el_outfile = fp; + el->el_outfd = fileno(fp); break; case 2: el->el_errfile = fp; + el->el_errfd = fileno(fp); break; default: rv = -1; Index: src/lib/libedit/el.h diff -u src/lib/libedit/el.h:1.21 src/lib/libedit/el.h:1.22 --- src/lib/libedit/el.h:1.21 Thu Dec 31 10:58:26 2009 +++ src/lib/libedit/el.h Thu Jan 27 18:11:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: el.h,v 1.21 2009/12/31 15:58:26 christos Exp $ */ +/* $NetBSD: el.h,v 1.22 2011/01/27 23:11:40 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -119,6 +119,8 @@ FILE *el_outfile; /* Stdio stuff */ FILE *el_errfile; /* Stdio stuff */ int el_infd; /* Input file descriptor */ + int el_outfd; /* Output file descriptor */ + int el_errfd; /* Error file descriptor */ int el_flags; /* Various flags. */ int el_errno; /* Local copy of errno */ coord_t el_cursor; /* Cursor location */ Index: src/lib/libedit/tty.c diff -u src/lib/libedit/tty.c:1.33 src/lib/libedit/tty.c:1.34 --- src/lib/libedit/tty.c:1.33 Sun Apr 18 17:17:22 2010 +++ src/lib/libedit/tty.c Thu Jan 27 18:11:40 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: tty.c,v 1.33 2010/04/18 21:17:22 christos Exp $ */ +/* $NetBSD: tty.c,v 1.34 2011/01/27 23:11:40 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -37,7 +37,7 @@ #if 0 static char sccsid[] = "@(#)tty.c 8.1 (Berkeley) 6/4/93"; #else -__RCSID("$NetBSD: tty.c,v 1.33 2010/04/18 21:17:22 christos Exp $"); +__RCSID("$NetBSD: tty.c,v 1.34 2011/01/27 23:11:40 christos Exp $"); #endif #endif /* not lint && not SCCSID */ @@ -46,6 +46,7 @@ */ #include <assert.h> #include <errno.h> +#include <unistd.h> /* for isatty */ #include <strings.h> /* for ffs */ #include "el.h" #include "tty.h" @@ -496,6 +497,14 @@ if (el->el_flags & EDIT_DISABLED) return (0); + if (!isatty(el->el_outfd)) { +#ifdef DEBUG_TTY + (void) fprintf(el->el_errfile, + "tty_setup: isatty: %s\n", strerror(errno)); +#endif /* DEBUG_TTY */ + return (-1); + } + &el->el_tty.t_ed) == -1) { if (tty_getty(el, &el->el_tty.t_ed) == -1) { #ifdef DEBUG_TTY (void) fprintf(el->el_errfile,