summaryrefslogtreecommitdiffstats
path: root/lib/libedit
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>1994-10-02 01:33:28 +0000
committerache <ache@FreeBSD.org>1994-10-02 01:33:28 +0000
commit68177f2606095b3d125426cefcb4dba56a7a700c (patch)
treeeab6a15f7e9cd40928ea07e3ce7ef065405c3146 /lib/libedit
parent2d378393a19100eb8ee1b967803d2b1c735bd99a (diff)
downloadFreeBSD-src-68177f2606095b3d125426cefcb4dba56a7a700c.zip
FreeBSD-src-68177f2606095b3d125426cefcb4dba56a7a700c.tar.gz
Rewritten using POSIX regex
Add 57600 and 115200 speeds Correct termcap path
Diffstat (limited to 'lib/libedit')
-rw-r--r--lib/libedit/search.c17
-rw-r--r--lib/libedit/sys.h5
-rw-r--r--lib/libedit/term.c10
3 files changed, 29 insertions, 3 deletions
diff --git a/lib/libedit/search.c b/lib/libedit/search.c
index 4ff9c61..c57b96b 100644
--- a/lib/libedit/search.c
+++ b/lib/libedit/search.c
@@ -43,9 +43,14 @@ static char sccsid[] = "@(#)search.c 8.1 (Berkeley) 6/4/93";
*/
#include "sys.h"
#include <stdlib.h>
+#ifdef REGEXEC
+#include <sys/types.h>
+#include <regex.h>
+#else
#ifdef REGEXP
#include <regexp.h>
#endif
+#endif
#include "el.h"
/*
@@ -102,6 +107,10 @@ el_match(str, pat)
const char *str;
const char *pat;
{
+#ifdef REGEXEC
+ regex_t re;
+ regmatch_t mb;
+#else
#ifndef REGEXP
extern char *re_comp __P((const char *));
extern int re_exec __P((const char *));
@@ -109,9 +118,15 @@ el_match(str, pat)
regexp *re;
int rv;
#endif
+#endif
if (strstr(str, pat) != NULL)
return 1;
+#ifdef REGEXEC
+ if (regcomp(&re, pat, REG_EXTENDED) != 0)
+ return 0;
+ return (regexec(&re, str, 1, &mb, 0) == 0);
+#else
#ifndef REGEXP
if (re_comp(pat) != NULL)
return 0;
@@ -126,7 +141,7 @@ el_match(str, pat)
rv = 0;
return rv;
#endif
-
+#endif
}
diff --git a/lib/libedit/sys.h b/lib/libedit/sys.h
index cc260f5..eccf30d 100644
--- a/lib/libedit/sys.h
+++ b/lib/libedit/sys.h
@@ -76,10 +76,11 @@ typedef char* ioctl_t;
#endif
#include <stdio.h>
-#define REGEXP
+#define REGEXEC
+#undef REGEXP
#ifdef SUNOS
-# undef REGEXP
+# undef REGEXEC
# include <malloc.h>
typedef void (*sig_t)__P((int));
# ifdef __GNUC__
diff --git a/lib/libedit/term.c b/lib/libedit/term.c
index 4971ef1..053f052 100644
--- a/lib/libedit/term.c
+++ b/lib/libedit/term.c
@@ -135,6 +135,12 @@ private struct {
#ifdef B38400
{ "38400", B38400 },
#endif
+#ifdef B57600
+ { "57600", B57600 },
+#endif
+#ifdef B115200
+ { "115200", B115200 },
+#endif
{ NULL, 0 }
};
@@ -834,7 +840,11 @@ term_set(el, term)
if (i <= 0) {
if (i == -1)
+#ifdef __FreeBSD__
+ (void) fprintf(el->el_errfile, "Cannot open /usr/share/misc/termcap.\n");
+#else
(void) fprintf(el->el_errfile, "Cannot open /etc/termcap.\n");
+#endif
else if (i == 0)
(void) fprintf(el->el_errfile,
"No entry for terminal type \"%s\"\n", term);
OpenPOWER on IntegriCloud