Module Name:    src
Committed By:   christos
Date:           Tue Jan 22 20:23:21 UTC 2013

Modified Files:
        src/lib/libedit: editline.3 el.c histedit.h shlib_version

Log Message:
provide an el_init_fd function.


To generate a diff of this commit:
cvs rdiff -u -r1.78 -r1.79 src/lib/libedit/editline.3
cvs rdiff -u -r1.71 -r1.72 src/lib/libedit/el.c
cvs rdiff -u -r1.49 -r1.50 src/lib/libedit/histedit.h
cvs rdiff -u -r1.18 -r1.19 src/lib/libedit/shlib_version

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/editline.3
diff -u src/lib/libedit/editline.3:1.78 src/lib/libedit/editline.3:1.79
--- src/lib/libedit/editline.3:1.78	Thu Jan 10 11:03:06 2013
+++ src/lib/libedit/editline.3	Tue Jan 22 15:23:21 2013
@@ -1,4 +1,4 @@
-.\"	$NetBSD: editline.3,v 1.78 2013/01/10 16:03:06 wiz Exp $
+.\"	$NetBSD: editline.3,v 1.79 2013/01/22 20:23:21 christos Exp $
 .\"
 .\" Copyright (c) 1997-2013 The NetBSD Foundation, Inc.
 .\" All rights reserved.
@@ -26,12 +26,13 @@
 .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 .\" POSSIBILITY OF SUCH DAMAGE.
 .\"
-.Dd January 10, 2013
+.Dd January 22, 2013
 .Dt EDITLINE 3
 .Os
 .Sh NAME
 .Nm editline ,
 .Nm el_init ,
+.Nm el_init_fd ,
 .Nm el_end ,
 .Nm el_reset ,
 .Nm el_gets ,
@@ -77,6 +78,8 @@
 .In histedit.h
 .Ft EditLine *
 .Fn el_init "const char *prog" "FILE *fin" "FILE *fout" "FILE *ferr"
+.Ft EditLine *
+.Fn el_init_fd "const char *prog" "FILE *fin" "FILE *fout" "FILE *ferr" "int fdin" "int fdout" "int fderr"
 .Ft void
 .Fn el_end "EditLine *e"
 .Ft void
@@ -170,6 +173,8 @@ The line editing functions use a common 
 .Fa EditLine ,
 which is created by
 .Fn el_init
+or
+.Fn el_init_fd
 and freed by
 .Fn el_end .
 .Pp
@@ -193,11 +198,20 @@ are the input, output, and error streams
 In this documentation, references to
 .Dq the tty
 are actually to this input/output stream combination.
+.It Fn el_init_fd
+Like
+.Fn el_init
+but allows specifying file descriptors for the
+.Xr stdio 3
+corresponding streams, in case those were created with
+.Xr funopen 3 .
 .It Fn el_end
 Clean up and finish with
 .Fa e ,
 assumed to have been created with
-.Fn el_init .
+.Fn el_init
+or
+.Fn el_init_fd .
 .It Fn el_reset
 Reset the tty and the parser.
 This should be called after an error which may have upset the tty's

Index: src/lib/libedit/el.c
diff -u src/lib/libedit/el.c:1.71 src/lib/libedit/el.c:1.72
--- src/lib/libedit/el.c:1.71	Tue Sep 11 07:58:53 2012
+++ src/lib/libedit/el.c	Tue Jan 22 15:23:21 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: el.c,v 1.71 2012/09/11 11:58:53 christos Exp $	*/
+/*	$NetBSD: el.c,v 1.72 2013/01/22 20:23:21 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.71 2012/09/11 11:58:53 christos Exp $");
+__RCSID("$NetBSD: el.c,v 1.72 2013/01/22 20:23:21 christos Exp $");
 #endif
 #endif /* not lint && not SCCSID */
 
@@ -60,6 +60,14 @@ __RCSID("$NetBSD: el.c,v 1.71 2012/09/11
 public EditLine *
 el_init(const char *prog, FILE *fin, FILE *fout, FILE *ferr)
 {
+    return el_init_fd(prog, fin, fout, ferr, fileno(fin), fileno(fout),
+	fileno(ferr));
+}
+
+public EditLine *
+el_init_fd(const char *prog, FILE *fin, FILE *fout, FILE *ferr,
+    int fdin, int fdout, int fderr)
+{
 	EditLine *el = el_malloc(sizeof(*el));
 
 	if (el == NULL)
@@ -71,9 +79,9 @@ el_init(const char *prog, FILE *fin, FIL
 	el->el_outfile = fout;
 	el->el_errfile = ferr;
 
-	el->el_infd = fileno(fin);
-	el->el_outfd = fileno(fout);
-	el->el_errfd = fileno(ferr);
+	el->el_infd = fdin;
+	el->el_outfd = fdout;
+	el->el_errfd = fderr;
 
 	el->el_prog = Strdup(ct_decode_string(prog, &el->el_scratch));
 	if (el->el_prog == NULL) {

Index: src/lib/libedit/histedit.h
diff -u src/lib/libedit/histedit.h:1.49 src/lib/libedit/histedit.h:1.50
--- src/lib/libedit/histedit.h:1.49	Thu May 31 09:16:39 2012
+++ src/lib/libedit/histedit.h	Tue Jan 22 15:23:21 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: histedit.h,v 1.49 2012/05/31 13:16:39 christos Exp $	*/
+/*	$NetBSD: histedit.h,v 1.50 2013/01/22 20:23:21 christos Exp $	*/
 
 /*-
  * Copyright (c) 1992, 1993
@@ -84,6 +84,8 @@ typedef struct lineinfo {
  * Initialization, cleanup, and resetting
  */
 EditLine	*el_init(const char *, FILE *, FILE *, FILE *);
+EditLine	*el_init_fd(const char *, FILE *, FILE *, FILE *,
+    int, int, int);
 void		 el_end(EditLine *);
 void		 el_reset(EditLine *);
 

Index: src/lib/libedit/shlib_version
diff -u src/lib/libedit/shlib_version:1.18 src/lib/libedit/shlib_version:1.19
--- src/lib/libedit/shlib_version:1.18	Sat Jan 10 22:07:48 2009
+++ src/lib/libedit/shlib_version	Tue Jan 22 15:23:21 2013
@@ -1,5 +1,5 @@
-#	$NetBSD: shlib_version,v 1.18 2009/01/11 03:07:48 christos Exp $
+#	$NetBSD: shlib_version,v 1.19 2013/01/22 20:23:21 christos Exp $
 #	Remember to update distrib/sets/lists/base/shl.* when changing
 #
 major=3
-minor=0
+minor=1

Reply via email to