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#26656: unidata-check needs updating for special casing Date: Mon, 19 Jun 2017 22:30:54 +0200 Organization: http://mina86.com/ Message-ID: References: <7160hsxvg5.fsf@fencepost.gnu.org> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: blaine.gmane.org 1497904338 18175 195.159.176.226 (19 Jun 2017 20:32:18 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 19 Jun 2017 20:32:18 +0000 (UTC) Cc: 26656@debbugs.gnu.org To: Glenn Morris Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jun 19 22:32:08 2017 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 1dN3LC-00048X-Rx for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Jun 2017 22:32:07 +0200 Original-Received: from localhost ([::1]:44219 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dN3LH-0000fd-WA for geb-bug-gnu-emacs@m.gmane.org; Mon, 19 Jun 2017 16:32:12 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:42470) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1dN3LB-0000fN-Io for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 16:32:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1dN3L8-0004gI-E5 for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 16:32:05 -0400 Original-Received: from debbugs.gnu.org ([208.118.235.43]:53926) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1dN3L8-0004fy-8k for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 16:32:02 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1dN3L7-0003Xp-Sh for bug-gnu-emacs@gnu.org; Mon, 19 Jun 2017 16:32:01 -0400 X-Loop: help-debbugs@gnu.org Resent-From: Michal Nazarewicz Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 19 Jun 2017 20:32:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 26656 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 26656-submit@debbugs.gnu.org id=B26656.149790426413563 (code B ref 26656); Mon, 19 Jun 2017 20:32:01 +0000 Original-Received: (at 26656) by debbugs.gnu.org; 19 Jun 2017 20:31:04 +0000 Original-Received: from localhost ([127.0.0.1]:56602 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dN3KC-0003Wh-3p for submit@debbugs.gnu.org; Mon, 19 Jun 2017 16:31:04 -0400 Original-Received: from mail-wr0-f182.google.com ([209.85.128.182]:35036) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dN3KA-0003WC-3u for 26656@debbugs.gnu.org; Mon, 19 Jun 2017 16:31:02 -0400 Original-Received: by mail-wr0-f182.google.com with SMTP id y25so41493260wrd.2 for <26656@debbugs.gnu.org>; Mon, 19 Jun 2017 13:31:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=sender:from:to:cc:subject:in-reply-to:organization:face:breferences :openpgp:date:message-id:mime-version:content-transfer-encoding; bh=Ez+rojMcUaqeJdvoOeTOR2IdcMu4mIoLCG1eQ8Oqg4A=; b=JydYF9eYAXYycg40lakkCO6utG9d+cIeSuM32aU6vA+M9uhQDZN10U0PNqmg5IiQic 2Bbx97ujFQtDUjycQ2MVgjZ2OSvXbEPnUr8UgBxRr8nBwzXpKULs2RCGzPWtDqIEZM5c P2gYLSNqu4eH6BxCUY/Bjqipu4ppEbt8kgQ2Ult85ej8tSMbR8rFVFmw2F36TdFl03pD wvQtsstUhY/AQPQdIpZWI0O//QxqfQh6AXDSXvwXGD1lQiGhmxhqvLeV2afO/s9fx4xF S66dLGgkQlKBXO3OFj3o5iDLQw9Re0ePt/ihGoTbH+diy1+RyO311urD2mjKPcbbaAmp x2nw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:in-reply-to :organization:face:breferences:openpgp:date:message-id:mime-version :content-transfer-encoding; bh=Ez+rojMcUaqeJdvoOeTOR2IdcMu4mIoLCG1eQ8Oqg4A=; b=FtqKnKThe7ovolqLg32JdKq5MmsNFatSq8H9/UXmmpE6B5i0D9pT613eBOKF7ltJn4 S+pgT6uNkPynitFv/G+q8Got+N1R831uZC99t5nl9n7zwWOVF0u3zfW8D4vC54lO62FK LJOpb+QJHs10ycQgSqjzrodPh2lTmyHF3Bx1dZDEh1mjJv+HKXJLFUxOGsZ+3RgBJiwN aZOPxL03LadMXZOtTRVpBiclsQxRAwjZwEU5dy+Hf7vyae9sYT/li886YhUAe8WHh6D6 FmlauHEANhpEsAM7mDiYTq6OHN/hA6M5/T/KfakeiXaRUSperNWrITzTDXfR1RLpMxsk 3tJA== X-Gm-Message-State: AKS2vOygqDj01GgM0PG3YUzPZdhVrA1xYkCBm1OHY4ym/0GOHt6vI2gP uOrhpwxZD3pGEgmOiVZMvg== X-Received: by 10.223.163.152 with SMTP id l24mr10383553wrb.203.1497904255968; Mon, 19 Jun 2017 13:30:55 -0700 (PDT) Original-Received: from mpn-glaptop ([2620:0:105f:fd00:398d:5237:166a:fd52]) by smtp.gmail.com with ESMTPSA id 55sm7821855wrt.36.2017.06.19.13.30.54 (version=TLS1_2 cipher=AES128-SHA bits=128/128); Mon, 19 Jun 2017 13:30:55 -0700 (PDT) In-Reply-To: <8h8zbn6uu.fsf@fencepost.gnu.org> Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAJFBMVEWbfGlUPDDHgE57V0jUupKjgIObY0PLrom9mH4dFRK4gmjPs41MxjOgAAACP0lEQVQ4T23Sv2vbQBQHcBk1xE6WyALX107VUEgmn6+ouUwpEQQ6uRjttkWP4CkBg2M0BQLBdPFZYPsyFYo7qEtKDQ7on+t7+nF2Ux8ahD587717OmNYrOvycHsZ+o2r051wHTHysAvGb8ygvgu4QWT0sCmkgZCIEnlV2X8BtyraazFGDuxhmKSQJMlwHQ7v5MHSNxmz78rfElwAa3ieVD9e+hBhjaPDDG6NgFo2f4wBMNIo5YmRtF0RyDgFjJjlMIWbnuM4x9MMfABGTlN4qgIQB4A1DEyA1BHWtfeWNUMwiVJKoqh97KrkOO+qzgluVYLvFCUKAX73nONeBr7BGMdM6Sg0kuep03VywLaIzRiVr+GAzKlpQIsAFnWAG2e6DT5WmWDiudZMIc6hYrMOmeMQK9WX0B+/RfjzL9DI7Y9/Iayn29Ci0r2i4f9gMimMSZLCDMalgQGU5hnUtqAN0OGvEmO1Wnl0C0wWSCEHnuHBqmygxdxA8oWXwbipoc1EoNR9DqOpBpOJrnr0criQab9ZT4LL+wI+K7GBQH30CrhUruilgP9DRTrhVWZCiAyILP+wiuLeCKGTD6r/nc8LOJcAwR6IBTUs+7CASw3QFZ0MdA2PI3zNziH4ZKVhXCRMBjeZ1DWMekKwDCASwExy+NQ86TaykaDAFHO4aP48y4 fIcDM5yOG8GcTLbOyp8A8azjJI93JFd1EA6yN8sSxMQJWoABqniRZVykYgRXErzrdqExAoUrRb0xfRp8p2A/4XmfilTtkDZ4cAAAAASUVORK5CYII= X-Face: -TR8(rDTHy/(xl?SfWd1|3:TTgDIatE^t'vop%*gVg[kn$t{EpK(P"VQ=~T2#ysNmJKN$"yTRLB4YQs$4{[.]Fc1)*O]3+XO^oXM>Q#b^ix, O)Zbn)q[y06$`e3?C)`CwR9y5riE=fv^X@x$y?D:XO6L&x4f-}}I4=VRNwiA^t1-ZrVK^07.Pi/57c_du'& BrEferences: <7160hsxvg5.fsf@fencepost.gnu.org> <8h8zbn6uu.fsf@fencepost.gnu.org> OpenPGP: id=AC1F5F5CD41888F8CC8458582060401250751FF4; url=http://mina86.com/mina86.pub X-Hashcash: 1:20:170619:rgm@gnu.org::saS1TxKNrBP3UsgE:0000000+yi X-Hashcash: 1:20:170619:26656@debbugs.gnu.org::NLqvkjIGy0gnC06W:00000000000000000000000000000000000000001zzr 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:133773 Archived-At: > Michal Nazarewicz wrote: >> Should I just skip the check for special casing properties. On Mon, Jun 19 2017, Glenn Morris wrote: > Thanks, that sounds fine. All right then. Unless there are some objections I=E2=80=99ll get the foll= owing submitted in a few days: ---- >8 ---------------------------------------------------------------- >From 467660531e2aa6f68ef431a1dcc52823a6967d42 Mon Sep 17 00:00:00 2001 From: Michal Nazarewicz Date: Mon, 19 Jun 2017 21:34:25 +0200 Subject: [PATCH] =3D?UTF-8?q?unidata:=3D20don=3DE2=3D80=3D99t=3D20check=3D2= 0special=3D20ca?=3D =3D?UTF-8?q?sing=3D20in=3D20unidata-check=3D20=3D20(bug#26656)?=3D MIME-Version: 1.0 Content-Type: text/plain; charset=3DUTF-8 Content-Transfer-Encoding: 8bit * admin/unidata/unidata-gen.el (unidata-check): Do not test special casing mapping of characters since that mapping is not constructed from the unidata.txt file. Also, check for integer decoder and cons char earlier so that less unnecessary processing is performed. --- admin/unidata/unidata-gen.el | 89 ++++++++++++++++++++++------------------= ---- 1 file changed, 45 insertions(+), 44 deletions(-) diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el index 64e2babd4b9..42695f9bebb 100644 --- a/admin/unidata/unidata-gen.el +++ b/admin/unidata/unidata-gen.el @@ -1346,50 +1346,51 @@ unidata-check (generator (unidata-prop-generator proplist)) (default-value (unidata-prop-default proplist)) (val-list (unidata-prop-val-list proplist)) - (table (progn - (message "Generating %S table..." prop) - (funcall generator prop index default-value val-list))) - (decoder (char-table-extra-slot table 1)) - (alist (and (functionp index) - (funcall index))) - (check #x400)) - (dolist (e unidata-list) - (let* ((char (car e)) - (val1 - (if alist (nth 1 (assoc char alist)) - (nth index e))) - val2) - (if (and (stringp val1) (=3D (length val1) 0)) - (setq val1 nil)) - (unless (or (consp char) - (integerp decoder)) - (setq val2 - (cond ((functionp decoder) - (funcall decoder char (aref table char) table)) - (t ; must be nil - (aref table char)))) - (if val1 - (cond ((eq generator 'unidata-gen-table-symbol) - (setq val1 (intern val1))) - ((eq generator 'unidata-gen-table-integer) - (setq val1 (string-to-number val1))) - ((eq generator 'unidata-gen-table-character) - (setq val1 (string-to-number val1 16))) - ((eq generator 'unidata-gen-table-decomposition) - (setq val1 (unidata-split-decomposition val1)))) - (cond ((eq prop 'decomposition) - (setq val1 (list char))) - ((eq prop 'bracket-type) - (setq val1 'n)))) - (when (>=3D char check) - (message "%S %04X" prop check) - (setq check (+ check #x400))) - (or (equal val1 val2) - ;; characters get a 'name' property of nil - (and (eq prop 'name) (string=3D val1 "") (null val2)) - (insert (format "> %04X %S\n< %04X %S\n" - char val1 char val2))) - (sit-for 0)))))))) + (check #x400) + table decoder alist) + (unless (eq generator 'unidata-gen-table-special-casing) + (setq table (progn + (message "Generating %S table..." prop) + (funcall generator prop index default-value val-li= st)) + decoder (char-table-extra-slot table 1)) + (unless (integerp decoder) + (setq alist (and (functionp index) (funcall index))) + (dolist (e unidata-list) + (let ((char (car e)) val1 val2) + (unless (consp char) + (setq val1 (if alist + (nth 1 (assoc char alist)) + (nth index e))) + (and (stringp val1) + (=3D (length val1) 0) + (setq val1 nil)) + (if val1 + (cond ((eq generator 'unidata-gen-table-symbol) + (setq val1 (intern val1))) + ((eq generator 'unidata-gen-table-integer) + (setq val1 (string-to-number val1))) + ((eq generator 'unidata-gen-table-character) + (setq val1 (string-to-number val1 16))) + ((eq generator 'unidata-gen-table-decompositio= n) + (setq val1 (unidata-split-decomposition val1)= ))) + (cond ((eq prop 'decomposition) + (setq val1 (list char))) + ((eq prop 'bracket-type) + (setq val1 'n)))) + (setq val2 (aref table char)) + (when decoder + (setq val2 (funcall decoder char val2 table))) + (when (>=3D char check) + (message "%S %04X" prop check) + (setq check (+ check #x400))) + (or (equal val1 val2) + ;; characters get a 'name' property of nil + (and (eq prop 'name) + (string=3D val1 "") + (null val2)) + (insert (format "> %04X %S\n< %04X %S\n" + char val1 char val2))) + (sit-for 0)))))))))) =20 ;; The entry functions. They generate files described in the header ;; comment of this file. ---- >8 ---------------------------------------------------------------- A lot of the changes is white-space so the difference is actually smaller than it looks. It adds (eq generator 'unidata-gen-table-special-casing) condition and moves (integerp decoder) and (consp char) tests earlier. > If the check is actually doing anything useful, it would be good to > convert it to an ert test under test/, and add something similar for > SpecialCasing, if that makes sense. Honestly I hoped you would know what the intention of the check is. Special casing property has some sanity tests in test/src/casefiddle-tests.el (namely the casefiddle-tests-char-properties test case). I feel like the test would be better written with just a few values for every property rather than writing a complicated function testing all the data. --=20 Best regards =E3=83=9F=E3=83=8F=E3=82=A6 =E2=80=9C=F0=9D=93=B6=F0=9D=93=B2=F0=9D=93=B7= =F0=9D=93=AA86=E2=80=9D =E3=83=8A=E3=82=B6=E3=83=AC=E3=83=B4=E3=82=A4=E3=83= =84 =C2=ABIf at first you don=E2=80=99t succeed, give up skydiving=C2=BB