summaryrefslogtreecommitdiffstats
path: root/lib/libedit
diff options
context:
space:
mode:
authormdodd <mdodd@FreeBSD.org>1999-08-20 01:17:12 +0000
committermdodd <mdodd@FreeBSD.org>1999-08-20 01:17:12 +0000
commitb47bf1ab5f378718e3afceba062ddbe540147e75 (patch)
tree5b335b96bb47515c3169dd10772cd3d0180deb62 /lib/libedit
parent90786531ff6e7a3610108631f31c3cb35c737ac4 (diff)
downloadFreeBSD-src-b47bf1ab5f378718e3afceba062ddbe540147e75.zip
FreeBSD-src-b47bf1ab5f378718e3afceba062ddbe540147e75.tar.gz
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.
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 12d5cb4..26cd15f 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 33e3226..ffee263 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 c9c3f72..87f6813 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 a608e20..9514a70 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 */
OpenPOWER on IntegriCloud