From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Michal Nazarewicz Newsgroups: gmane.emacs.bugs Subject: bug#24378: [PATCH 3/6] Replace decimalnump with alphanumericp Date: Tue, 6 Sep 2016 15:31:31 +0200 Message-ID: <1473168694-13605-3-git-send-email-mina86@mina86.com> References: <1473168498-13194-1-git-send-email-mina86@mina86.com> <1473168694-13605-1-git-send-email-mina86@mina86.com> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: blaine.gmane.org 1473171153 32428 195.159.176.226 (6 Sep 2016 14:12:33 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Tue, 6 Sep 2016 14:12:33 +0000 (UTC) To: 24378@debbugs.gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Tue Sep 06 16:12:22 2016 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bhH6p-000740-1Z for geb-bug-gnu-emacs@m.gmane.org; Tue, 06 Sep 2016 16:12:19 +0200 Original-Received: from localhost ([::1]:33749 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bhH6n-0001Hz-0F for geb-bug-gnu-emacs@m.gmane.org; Tue, 06 Sep 2016 10:12:17 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:58296) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bhGTv-0000CK-8I for bug-gnu-emacs@gnu.org; Tue, 06 Sep 2016 09:32:13 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bhGTr-0007Ff-Hx for bug-gnu-emacs@gnu.org; Tue, 06 Sep 2016 09:32:06 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:53298) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bhGTr-0007Fa-EP for bug-gnu-emacs@gnu.org; Tue, 06 Sep 2016 09:32:03 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1bhGTr-0005vq-Aq for bug-gnu-emacs@gnu.org; Tue, 06 Sep 2016 09:32:03 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michal Nazarewicz Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 06 Sep 2016 13:32:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 24378 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: patch Original-Received: via spool by 24378-submit@debbugs.gnu.org id=B24378.147316871122749 (code B ref 24378); Tue, 06 Sep 2016 13:32:03 +0000 Original-Received: (at 24378) by debbugs.gnu.org; 6 Sep 2016 13:31:51 +0000 Original-Received: from localhost ([127.0.0.1]:51002 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bhGTf-0005up-3A for submit@debbugs.gnu.org; Tue, 06 Sep 2016 09:31:51 -0400 Original-Received: from mail-wm0-f52.google.com ([74.125.82.52]:38740) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bhGTc-0005tt-FQ for 24378@debbugs.gnu.org; Tue, 06 Sep 2016 09:31:48 -0400 Original-Received: by mail-wm0-f52.google.com with SMTP id 1so190062590wmz.1 for <24378@debbugs.gnu.org>; Tue, 06 Sep 2016 06:31:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=bMcG3kZbFB2iGTnoxsvh2l7UG/nXgA5NvA5HuqEBb1k=; b=GwG7eWt5syPgIWjKQcHYSY79UpTGwa0oOCXa8PhPaM6hB1TugQUcw7dV5mEAu/1Qf7 ScvtLJWSV453XCw78pZ6npsSEpJMdj7RDVDlgz2Q2RVLNr3n9H/W240PO1lptpvTGhjj ZQNpODvGBfym+maphxCetjkR89N6K0Qt2gw1pmY/vBQXhrHmBdn/0fSzIygWyvw6D/OP h4C167BBcLDobpW95ko1C8IMmgaguv35m5B+Eyq6xirX1RLrwZ5R4RqbZ4PtIm8TIGgo eqqIWrn87AwC/KPDS1sQxrUpPtNlRI8T1b/xTmSaW7hCA56A7p2Slq9ohgbgJhejd3i0 IaTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=bMcG3kZbFB2iGTnoxsvh2l7UG/nXgA5NvA5HuqEBb1k=; b=i/GRgJ/HBsZnUUZvGvCntiav5VWsBDNVuYPTn1A8ML0GphMrTApixK/kf4UqggzViI hix6D2MqeCTn0bFwlTIdQBHwrqY+qzomP+tAF2v4IuzfyVL3escBbe15iiJLYMN+bYBI ImbwQlQCz4oNcImY0HRKycsPV+ES9dZnonDwWANuHEEmoZ8wjoD4WPQHXyF2XpZp7Ld2 CiB0TjAFScZOb8tY1Vk7kGWkoJQNhd49TTFG+J03u9lFSk/pTBz+GIfG2fnmS9gTazXj D1GjQFlj5CStJo0lgFamlGFWPeYX8+2TqlMEn4g3lNb8uvlPvZh65RbNf7q2uvRb//Xw bWsw== X-Gm-Message-State: AE9vXwNiCzmgK5roDyFZTKZPScuvQlPa6RL3a86iiNwRPa/61C1GTGIWTFCcl7KrJg/+3gsg X-Received: by 10.28.238.88 with SMTP id m85mr19681776wmh.92.1473168702409; Tue, 06 Sep 2016 06:31:42 -0700 (PDT) Original-Received: from mpn.zrh.corp.google.com ([172.16.113.135]) by smtp.gmail.com with ESMTPSA id i195sm7991509wmg.14.2016.09.06.06.31.40 for <24378@debbugs.gnu.org> (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 06 Sep 2016 06:31:40 -0700 (PDT) Original-Received: by mpn.zrh.corp.google.com (Postfix, from userid 126942) id A39941E026C; Tue, 6 Sep 2016 15:31:39 +0200 (CEST) X-Mailer: git-send-email 2.8.0.rc3.226.g39d4020 In-Reply-To: <1473168694-13605-1-git-send-email-mina86@mina86.com> X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:122992 Archived-At: decimalnump was used in regex.c only in ISALNUM macro which ored it with alphabeticp. Because both of those functions require Unicode general category lookup, this resulted in unnecessary lookups (if alphabeticp return false decimalp had to perform another lookup). Drop decimalnump in favour of alphanumericp which combines decimelnump with alphabeticp. * src/character.c (decimalnump): Remove in favour of… (alphanumericp): …new function. * src/regex.c (ISALNUM): Use alphanumericp. --- src/character.c | 17 +++++++++++++---- src/character.h | 2 +- src/regex.c | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/character.c b/src/character.c index 9f60aa7..b19e41d 100644 --- a/src/character.c +++ b/src/character.c @@ -983,17 +983,26 @@ alphabeticp (int c) || gen_cat == UNICODE_CATEGORY_Nl); } -/* Return true if C is a decimal-number character. */ +/* Return true if C is a alphabetic or decimal-number character. */ bool -decimalnump (int c) +alphanumericp (int c) { Lisp_Object category = CHAR_TABLE_REF (Vunicode_category_table, c); if (! INTEGERP (category)) return false; EMACS_INT gen_cat = XINT (category); - /* See UTS #18. */ - return gen_cat == UNICODE_CATEGORY_Nd; + /* See UTS #18. Same comment as for alphabeticp applies. FIXME. */ + return (gen_cat == UNICODE_CATEGORY_Lu + || gen_cat == UNICODE_CATEGORY_Ll + || gen_cat == UNICODE_CATEGORY_Lt + || gen_cat == UNICODE_CATEGORY_Lm + || gen_cat == UNICODE_CATEGORY_Lo + || gen_cat == UNICODE_CATEGORY_Mn + || gen_cat == UNICODE_CATEGORY_Mc + || gen_cat == UNICODE_CATEGORY_Me + || gen_cat == UNICODE_CATEGORY_Nl + || gen_cat == UNICODE_CATEGORY_Nd); } /* Return true if C is a graphic character. */ diff --git a/src/character.h b/src/character.h index 0d0e31c..5499cc1 100644 --- a/src/character.h +++ b/src/character.h @@ -679,7 +679,7 @@ extern Lisp_Object Vchar_unify_table; extern Lisp_Object string_escape_byte8 (Lisp_Object); extern bool alphabeticp (int); -extern bool decimalnump (int); +extern bool alphanumericp (int); extern bool graphicp (int); extern bool printablep (int); diff --git a/src/regex.c b/src/regex.c index c808398..5f51b43 100644 --- a/src/regex.c +++ b/src/regex.c @@ -324,7 +324,7 @@ enum syntaxcode { Swhitespace = 0, Sword = 1, Ssymbol = 2 }; ? (((c) >= 'a' && (c) <= 'z') \ || ((c) >= 'A' && (c) <= 'Z') \ || ((c) >= '0' && (c) <= '9')) \ - : (alphabeticp (c) || decimalnump (c))) + : alphanumericp (c)) # define ISALPHA(c) (IS_REAL_ASCII (c) \ ? (((c) >= 'a' && (c) <= 'z') \ -- 2.8.0.rc3.226.g39d4020