summaryrefslogtreecommitdiffstats
path: root/lib/libedit
diff options
context:
space:
mode:
authorbde <bde@FreeBSD.org>1997-07-03 03:28:27 +0000
committerbde <bde@FreeBSD.org>1997-07-03 03:28:27 +0000
commite2f0a0f35c8c3ecbae359c67f0d5b3aac5ce43dc (patch)
treecfd1bb56bef2f8964dc85e334b5f5531a8997455 /lib/libedit
parent4e789e88d887b2015822fd4ddb14016866f05f97 (diff)
downloadFreeBSD-src-e2f0a0f35c8c3ecbae359c67f0d5b3aac5ce43dc.zip
FreeBSD-src-e2f0a0f35c8c3ecbae359c67f0d5b3aac5ce43dc.tar.gz
Import Lite2's src/lib, except for non-i386 machine-dependent directories,
libc/db, libc/gen/crypt.* and libtelnet. All affected files except 3 unimportant ones have already left the vendor branch.
Diffstat (limited to 'lib/libedit')
-rw-r--r--lib/libedit/histedit.h172
-rw-r--r--lib/libedit/term.c6
-rw-r--r--lib/libedit/termcap.h52
3 files changed, 229 insertions, 1 deletions
diff --git a/lib/libedit/histedit.h b/lib/libedit/histedit.h
new file mode 100644
index 0000000..95423c6
--- /dev/null
+++ b/lib/libedit/histedit.h
@@ -0,0 +1,172 @@
+/*-
+ * Copyright (c) 1992, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Christos Zoulas of Cornell University.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)histedit.h 8.2 (Berkeley) 1/3/94
+ */
+
+/*
+ * histedit.h: Line editor and history interface.
+ */
+#ifndef _h_editline
+#define _h_editline
+
+#include <sys/types.h>
+#include <stdio.h>
+
+/*
+ * ==== Editing ====
+ */
+typedef struct editline EditLine;
+
+/*
+ * For user-defined function interface
+ */
+typedef struct lineinfo {
+ __const char *buffer;
+ __const char *cursor;
+ __const char *lastchar;
+} LineInfo;
+
+
+/*
+ * EditLine editor function return codes.
+ * For user-defined function interface
+ */
+#define CC_NORM 0
+#define CC_NEWLINE 1
+#define CC_EOF 2
+#define CC_ARGHACK 3
+#define CC_REFRESH 4
+#define CC_CURSOR 5
+#define CC_ERROR 6
+#define CC_FATAL 7
+
+/*
+ * Initialization, cleanup, and resetting
+ */
+EditLine *el_init __P((const char *, FILE *, FILE *));
+void el_reset __P((EditLine *));
+void el_end __P((EditLine *));
+
+
+/*
+ * Get a line, a character or push a string back in the input queue
+ */
+__const char *el_gets __P((EditLine *, int *));
+int el_getc __P((EditLine *, char *));
+void el_push __P((EditLine *, const char *));
+
+/*
+ * High level function internals control
+ * Parses argc, argv array and executes builtin editline commands
+ */
+int el_parse __P((EditLine *, int, char **));
+
+/*
+ * Low level editline access function
+ */
+int el_set __P((EditLine *, int, ...));
+
+/*
+ * el_set/el_get parameters
+ */
+#define EL_PROMPT 0 /* , el_pfunc_t); */
+#define EL_TERMINAL 1 /* , const char *); */
+#define EL_EDITOR 2 /* , const char *); */
+#define EL_SIGNAL 3 /* , int); */
+#define EL_BIND 4 /* , const char *, ..., NULL); */
+#define EL_TELLTC 5 /* , const char *, ..., NULL); */
+#define EL_SETTC 6 /* , const char *, ..., NULL); */
+#define EL_ECHOTC 7 /* , const char *, ..., NULL); */
+#define EL_SETTY 8 /* , const char *, ..., NULL); */
+#define EL_ADDFN 9 /* , const char *, const char * */
+ /* , el_func_t); */
+#define EL_HIST 10 /* , hist_fun_t, const char *); */
+
+/*
+ * Source named file or $PWD/.editrc or $HOME/.editrc
+ */
+int el_source __P((EditLine *, const char *));
+
+/*
+ * Must be called when the terminal changes size; If EL_SIGNAL
+ * is set this is done automatically otherwise it is the responsibility
+ * of the application
+ */
+void el_resize __P((EditLine *));
+
+
+/*
+ * User-defined function interface.
+ */
+__const LineInfo *el_line __P((EditLine *));
+int el_insertstr __P((EditLine *, char *));
+void el_deletestr __P((EditLine *, int));
+
+/*
+ * ==== History ====
+ */
+
+typedef struct history History;
+
+typedef struct HistEvent {
+ int num;
+ __const char *str;
+} HistEvent;
+
+/*
+ * History access functions.
+ */
+History * history_init __P((void));
+void history_end __P((History *));
+
+__const HistEvent * history __P((History *, int, ...));
+
+#define H_FUNC 0 /* , UTSL */
+#define H_EVENT 1 /* , const int); */
+#define H_FIRST 2 /* , void); */
+#define H_LAST 3 /* , void); */
+#define H_PREV 4 /* , void); */
+#define H_NEXT 5 /* , void); */
+#define H_CURR 6 /* , void); */
+#define H_ADD 7 /* , const char*); */
+#define H_ENTER 8 /* , const char*); */
+#define H_END 9 /* , void); */
+#define H_NEXT_STR 10 /* , const char*); */
+#define H_PREV_STR 11 /* , const char*); */
+#define H_NEXT_EVENT 12 /* , const int); */
+#define H_PREV_EVENT 13 /* , const int); */
+
+#endif /* _h_editline */
diff --git a/lib/libedit/term.c b/lib/libedit/term.c
index 4971ef1..4b793b7 100644
--- a/lib/libedit/term.c
+++ b/lib/libedit/term.c
@@ -35,7 +35,7 @@
*/
#if !defined(lint) && !defined(SCCSID)
-static char sccsid[] = "@(#)term.c 8.1 (Berkeley) 6/4/93";
+static char sccsid[] = "@(#)term.c 8.2 (Berkeley) 4/30/95";
#endif /* not lint && not SCCSID */
/*
@@ -945,18 +945,22 @@ term_init_arrow(el)
fkey_t *arrow = el->el_term.t_fkey;
arrow[A_K_DN].name = "down";
+ arrow[A_K_DN].key = T_kd;
arrow[A_K_DN].fun.cmd = ED_NEXT_HISTORY;
arrow[A_K_DN].type = XK_CMD;
arrow[A_K_UP].name = "up";
+ arrow[A_K_UP].key = T_ku;
arrow[A_K_UP].fun.cmd = ED_PREV_HISTORY;
arrow[A_K_UP].type = XK_CMD;
arrow[A_K_LT].name = "left";
+ arrow[A_K_LT].key = T_kl;
arrow[A_K_LT].fun.cmd = ED_PREV_CHAR;
arrow[A_K_LT].type = XK_CMD;
arrow[A_K_RT].name = "right";
+ arrow[A_K_RT].key = T_kr;
arrow[A_K_RT].fun.cmd = ED_NEXT_CHAR;
arrow[A_K_RT].type = XK_CMD;
diff --git a/lib/libedit/termcap.h b/lib/libedit/termcap.h
new file mode 100644
index 0000000..4fd2cab
--- /dev/null
+++ b/lib/libedit/termcap.h
@@ -0,0 +1,52 @@
+/*-
+ * Copyright (c) 1992, 1993
+ * The Regents of the University of California. All rights reserved.
+ *
+ * This code is derived from software contributed to Berkeley by
+ * Christos Zoulas of Cornell University.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ * must display the following acknowledgement:
+ * This product includes software developed by the University of
+ * California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ *
+ * @(#)termcap.h 8.1 (Berkeley) 6/4/93
+ */
+
+/*
+ * termcap.h: I cannot find those in any include files...
+ */
+#ifndef _h_termcap
+#define _h_termcap
+
+int tgetent __P((char *, char *));
+char *tgetstr __P((char *, char **));
+int tgetflag __P((char *));
+int tgetnum __P((char *));
+char *tgoto __P((char *, int, int));
+char *tputs __P((char *, int, void (*)(int)));
+
+#endif /* _h_termcap */
OpenPOWER on IntegriCloud