From owner-svn-src-user@FreeBSD.ORG Sun Feb 26 19:05:17 2012 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C52B4106566C; Sun, 26 Feb 2012 19:05:17 +0000 (UTC) (envelope-from gabor@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 97A278FC14; Sun, 26 Feb 2012 19:05:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.4/8.14.4) with ESMTP id q1QJ5H2a078859; Sun, 26 Feb 2012 19:05:17 GMT (envelope-from gabor@svn.freebsd.org) Received: (from gabor@localhost) by svn.freebsd.org (8.14.4/8.14.4/Submit) id q1QJ5Hdg078855; Sun, 26 Feb 2012 19:05:17 GMT (envelope-from gabor@svn.freebsd.org) Message-Id: <201202261905.q1QJ5Hdg078855@svn.freebsd.org> From: Gabor Kovesdan Date: Sun, 26 Feb 2012 19:05:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r232191 - user/gabor/tre-integration/contrib/tre/lib X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 26 Feb 2012 19:05:17 -0000 Author: gabor Date: Sun Feb 26 19:05:17 2012 New Revision: 232191 URL: http://svn.freebsd.org/changeset/base/232191 Log: - Add handling single pattern Modified: user/gabor/tre-integration/contrib/tre/lib/mregcomp.c user/gabor/tre-integration/contrib/tre/lib/mregexec.c user/gabor/tre-integration/contrib/tre/lib/tre-mfastmatch.h Modified: user/gabor/tre-integration/contrib/tre/lib/mregcomp.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/mregcomp.c Sun Feb 26 19:00:59 2012 (r232190) +++ user/gabor/tre-integration/contrib/tre/lib/mregcomp.c Sun Feb 26 19:05:17 2012 (r232191) @@ -79,6 +79,12 @@ tre_mcompile(mregex_t *preg, size_t nr, } } + if (nr == 1) + { + preg->type = MHEUR_SINGLE; + goto finish; + } + /* If not literal, check if any of them have fixed-length prefix. */ if (!(cflags & REG_LITERAL)) for (int i = 0; i < nr; i++) Modified: user/gabor/tre-integration/contrib/tre/lib/mregexec.c ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/mregexec.c Sun Feb 26 19:00:59 2012 (r232190) +++ user/gabor/tre-integration/contrib/tre/lib/mregexec.c Sun Feb 26 19:05:17 2012 (r232191) @@ -235,6 +235,15 @@ finish2: } /* + * Single pattern. Call single matcher. + */ + else if (preg->type == MHEUR_SINGLE) + { + return tre_match(&preg->patterns[0], str, len, type, nmatch, pmatch, + eflags); + } + + /* * General case. Look for the beginning of any of the patterns with the * Wu-Manber algorithm and try to match from there with the automaton. */ Modified: user/gabor/tre-integration/contrib/tre/lib/tre-mfastmatch.h ============================================================================== --- user/gabor/tre-integration/contrib/tre/lib/tre-mfastmatch.h Sun Feb 26 19:00:59 2012 (r232190) +++ user/gabor/tre-integration/contrib/tre/lib/tre-mfastmatch.h Sun Feb 26 19:05:17 2012 (r232191) @@ -15,6 +15,7 @@ #define MHEUR_PREFIX 1 #define MHEUR_LONGEST 2 #define MHEUR_LITERAL 3 +#define MHEUR_SINGLE 4 typedef struct { int cflags;