aboutsummaryrefslogtreecommitdiff
path: root/lib/libedit
diff options
context:
space:
mode:
authorMatthew N. Dodd <mdodd@FreeBSD.org>1999-08-20 01:17:12 +0000
committerMatthew N. Dodd <mdodd@FreeBSD.org>1999-08-20 01:17:12 +0000
commit90cc1fbc53153f0c7175c41720a40fd543a55bca (patch)
treec1a3c3003f587a7102b9193101fdebcfc7d36c47 /lib/libedit
parent4033a962bf71343a83c94066453d69af1b7e4f10 (diff)
downloadsrc-90cc1fbc53153f0c7175c41720a40fd543a55bca.tar.gz
src-90cc1fbc53153f0c7175c41720a40fd543a55bca.zip
Add 2 functions: el_data_set() and el_data_get() which do what you
would expect. (Allow user data to be associated with an EditLine context). As this changes no existing interfaces and doesn't alter any structs visable to the user I've been told that its not necessary to bump the version of the library.
Notes
Notes: svn path=/head/; revision=50070
Diffstat (limited to 'lib/libedit')
-rw-r--r--lib/libedit/Makefile3
-rw-r--r--lib/libedit/editline.314
-rw-r--r--lib/libedit/el.c20
-rw-r--r--lib/libedit/el.h2
4 files changed, 37 insertions, 2 deletions
diff --git a/lib/libedit/Makefile b/lib/libedit/Makefile
index 12d5cb4f1e95..26cd15fd316e 100644
--- a/lib/libedit/Makefile
+++ b/lib/libedit/Makefile
@@ -16,7 +16,8 @@ MLINKS= editline.3 el_init.3 editline.3 el_end.3 editline.3 el_reset.3 \
editline.3 el_parse.3 editline.3 el_set.3 editline.3 el_source.3 \
editline.3 el_resize.3 editline.3 el_line.3 \
editline.3 el_insertstr.3 editline.3 el_deletestr.3 \
- editline.3 history_init.3 editline.3 history_end.3 editline.3 history.3
+ editline.3 history_init.3 editline.3 history_end.3 editline.3 \
+ history.3 el_data_get.3 el_data_set.3
# For speed and debugging
diff --git a/lib/libedit/editline.3 b/lib/libedit/editline.3
index 33e32267c2d9..ffee26312fb9 100644
--- a/lib/libedit/editline.3
+++ b/lib/libedit/editline.3
@@ -33,7 +33,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
-.\" $Id$
+.\" $Id: editline.3,v 1.6 1999/07/12 20:49:33 nik Exp $
.\"
.Dd January 11, 1997
.Os BSD 4.4
@@ -53,6 +53,8 @@
.Nm el_line ,
.Nm el_insertstr ,
.Nm el_deletestr ,
+.Nm el_data_set ,
+.Nm el_data_get ,
.Nm history_init ,
.Nm history_end ,
.Nm history
@@ -85,6 +87,10 @@
.Fn el_insertstr "EditLine *e" "char *str"
.Ft void
.Fn el_deletestr "EditLine *e" "int count"
+.Ft void
+.Fn el_data_set "EditLine *e" "void *data"
+.Ft void *
+.Fn el_data_get "EditLine *e"
.Ft History *
.Fn history_init
.Ft void
@@ -412,6 +418,12 @@ is empty or won't fit, and 0 otherwise.
Delete
.Fa num
characters before the cursor.
+.It Fn el_data_set
+Set the user data to
+.Fa data
+.
+.It Fn el_data_get
+Get the user data.
.El
.Sh HISTORY LIST FUNCTIONS
The history functions use a common data structure,
diff --git a/lib/libedit/el.c b/lib/libedit/el.c
index c9c3f725593b..87f6813d455d 100644
--- a/lib/libedit/el.c
+++ b/lib/libedit/el.c
@@ -103,6 +103,7 @@ el_init(prog, fin, fout)
(void) prompt_init(el);
(void) sig_init(el);
el->el_flags = 0;
+ el->data = NULL;
return el;
} /* end el_init */
@@ -336,3 +337,22 @@ el_resize(el)
(void) sigprocmask(SIG_SETMASK, &oset, NULL);
}
+
+public void
+el_data_set (el, data)
+ EditLine *el;
+ void *data;
+{
+ el->data = data;
+
+ return;
+}
+
+public void *
+el_data_get (el)
+ EditLine *el;
+{
+ if (el->data)
+ return (el->data);
+ return (NULL);
+}
diff --git a/lib/libedit/el.h b/lib/libedit/el.h
index a608e2055be5..9514a707a151 100644
--- a/lib/libedit/el.h
+++ b/lib/libedit/el.h
@@ -125,6 +125,8 @@ struct editline {
el_history_t el_history; /* History stuff */
el_search_t el_search; /* Search stuff */
el_signal_t el_signal; /* Signal handling stuff */
+
+ void *data; /* user data */
};
#endif /* _h_el */