summaryrefslogtreecommitdiffstats
path: root/lib/libedit/search.c
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/search.c
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/search.c')
-rw-r--r--lib/libedit/search.c17
1 files changed, 16 insertions, 1 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
}
OpenPOWER on IntegriCloud