Subject: bug#26656: unidata-check needs updating for special casing

From: Michal Nazarewicz <[email-masked]>
Date: Sun, 18 Jun 2017 21:35:56 +0200

On Tue, Apr 25 2017, Glenn Morris wrote:
> Package: emacs
> Version: 26.0.50
> Severity: minor
>
> admin/unidata/unidata-gen.el includes a unidata-check function, to be
> used like this:
>
> ;; (let ((unidata-dir "/path/to/admin/unidata"))
> ;;   (unidata-setup-list "unidata.txt")
> ;;   (unidata-check))
>
> It works in emacs-25, but has numerous failures related to the special
> casing rules in master. Presumably it needs updating for this somewhat
> recent addition. Thanks.

I’m rather conflicted about the best way to fix this.  As currently
written, unidata-check makes sense for properties from UnicodeData.txt
file.

The function compares values in unidata.txt file with values generated
from various generator functions.  However, SpecialCasing.txt is read
directly by unidata-gen-table-special-casing--do-load function so there
is no other file that unidata-check can read to compare the generation
of.

Should I just skip the check for special casing properties.  With the
following:

diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
index 64e2babd4b9..f99004a4f7e 100644
--- a/admin/unidata/unidata-gen.el
+++ b/admin/unidata/unidata-gen.el
@@ -1353,7 +1353,8 @@ unidata-check
             (alist (and (functionp index)
                         (funcall index)))
             (check #x400))
-       (dolist (e unidata-list)
+       (dolist (e (unless (eq generator 'unidata-gen-table-special-casing)
+                     unidata-list))
          (let* ((char (car e))
                 (val1
                  (if alist (nth 1 (assoc char alist))

the function reports no errors.

-- 
Best regards
ミハウ “𝓶𝓲𝓷𝓪86” ナザレヴイツ
«If at first you don’t succeed, give up skydiving»