From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Mattias_Engdeg=C3=A5rd?= Newsgroups: gmane.emacs.devel Subject: Regexp scan of Emacs (April 19) Date: Fri, 19 Apr 2019 11:39:04 +0200 Message-ID: <90232AC2-3228-4C8F-AD84-FFB6A30F51AF@acm.org> Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.8\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_8645E953-5BFA-4DF4-B698-3B7E0A60ECFC" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="244315"; mail-complaints-to="usenet@blaine.gmane.org" To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Apr 19 11:56:13 2019 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hHQFg-0011QD-Vs for ged-emacs-devel@m.gmane.org; Fri, 19 Apr 2019 11:56:13 +0200 Original-Received: from localhost ([127.0.0.1]:54040 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hHQFf-00073t-Vt for ged-emacs-devel@m.gmane.org; Fri, 19 Apr 2019 05:56:12 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:46002) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1hHQEb-0006WM-6w for emacs-devel@gnu.org; Fri, 19 Apr 2019 05:55:06 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1hHPzB-0001MV-Ra for emacs-devel@gnu.org; Fri, 19 Apr 2019 05:39:10 -0400 Original-Received: from mail81c50.megamailservers.eu ([91.136.10.91]:45980 helo=mail18c50.megamailservers.eu) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1hHPzB-0001Ln-H7 for emacs-devel@gnu.org; Fri, 19 Apr 2019 05:39:09 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1555666746; bh=rJC8IgH40Q0gat0AU+E39agWSuQM9fqp353y5Z+FPqU=; h=From:Subject:Date:To:From; b=bih2wMstz6BoXIePS6ni4eTsllIXjvJXW4VrXWUBMA4u5tUJs30oFtmIcs/s4adE9 r4iurUvC258r563cXGyCo3Z9FWMgvurwJTT/8XzaaI+9XufgZhnDtsxoKDcSX1v3ps RkrdLNdg+4U2V7JI0iycofz5xE9eBXWSEn1VdxUQ= Feedback-ID: mattiase@acm.or Original-Received: from [192.168.1.64] (c-e636e253.032-75-73746f71.bbcust.telenor.se [83.226.54.230]) (authenticated bits=0) by mail18c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x3J9d5Pv014976 for ; Fri, 19 Apr 2019 09:39:06 +0000 X-Mailer: Apple Mail (2.3445.104.8) X-CTCH-RefID: str=0001.0A0B0205.5CB9973A.0046, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 X-CTCH-VOD: Unknown X-CTCH-Spam: Unknown X-CTCH-Score: 0.000 X-CTCH-Flags: 0 X-CTCH-ScoreCust: 0.000 X-CSC: 0 X-CHA: v=2.3 cv=S7n3PrkP c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=vqywxIeYYjb7zID4wl8A:9 a=CjuIK1q_8ugA:10 a=fJAxoID2TOD7dCFO9OAA:9 a=ITdVHhY7-e0A:10 X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x (no timestamps) [generic] X-Received-From: 91.136.10.91 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.org gmane.emacs.devel:235650 Archived-At: --Apple-Mail=_8645E953-5BFA-4DF4-B698-3B7E0A60ECFC Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii This is the latest scan of errors and oddities in regexps in the Emacs = source tree. New this time is an experimental check for branch subsumption: whether = one branch in an or-expression matches a superset of another, like = "[ab]\\|a". Please tell me if you believe this might be useful, so that = I know whether to include it in the next release of xr. The algorithm uses some simple linear heuristics since a full regexp = subset check would be quite expensive and probably require DFA = construction and graph equivalence; maybe something for a future = version. --Apple-Mail=_8645E953-5BFA-4DF4-B698-3B7E0A60ECFC Content-Disposition: attachment; filename=relint.log Content-Type: application/octet-stream; x-unix-mode=0644; name="relint.log" Content-Transfer-Encoding: quoted-printable ;;=20-*-=20compilation=20-*-=0ARelint=20results=20for=20~/emacs=0A= lisp/eshell/em-hist.el:726:31:=20In=20call=20to=20string-match:=20Branch=20= matches=20superset=20of=20a=20previous=20branch=20(pos=2037)=0A=20=20= "^:?\\([0-9]+\\|[$^%*]\\)?\\(\\*\\|-[0-9]*\\|[$^%*]\\)?"=0A=20=20=20= ............................................^=0A= lisp/international/ja-dic-cnv.el:127:29:=20In=20call=20to=20= re-search-forward:=20Branch=20matches=20subset=20of=20a=20previous=20= branch=20(pos=2016)=0A=20=20"^[#<>?]\\(\\(\\cH\\|=E3=83=BC\\)+\\)=20"=0A=20= =20=20....................^=0Alisp/international/ja-dic-cnv.el:160:31:=20= In=20call=20to=20re-search-forward:=20Branch=20matches=20subset=20of=20a=20= previous=20branch=20(pos=2010)=0A=20=20"^\\(\\(\\cH\\|=E3=83=BC\\)+\\)[<>?= ]=20"=0A=20=20=20..............^=0A= lisp/international/ja-dic-cnv.el:278:33:=20In=20call=20to=20= re-search-forward:=20Branch=20matches=20subset=20of=20a=20previous=20= branch=20(pos=2010)=0A=20=20"^\\(\\(\\cH\\|=E3=83=BC\\)+\\)=20= \\(/\\cj.*\\)/$"=0A=20=20=20..............^=0A= lisp/net/tramp-adb.el:56:3:=20In=20tramp-adb-prompt:=20Repetition=20of=20= expression=20matching=20an=20empty=20string=20(pos=2057)=0A=20=20= "^[[:digit:]]*|?\\(?:[[:alnum:]\e;[]*@?[[:alnum:]]*[^#\\$]*\\)?[#\\$][[:sp= ace:]]"=0A=20=20=20= .............................................................^=0A= lisp/progmodes/cc-awk.el:98:29:=20In=20c-awk-esc-pair-re:=20Branch=20= matches=20subset=20of=20a=20previous=20branch=20(pos=2010)=0A=20=20= "\\\\\\(.\\|\n\\|\r\\|\\'\\)"=0A=20=20=20................^=0A= lisp/progmodes/cc-awk.el:137:3:=20In=20c-awk-harmless-string*-re:=20= Branch=20matches=20subset=20of=20a=20previous=20branch=20(pos=2029)=0A=20= =20= "\\([^_#/\"{}();\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|_\\([^\"]\\|\\'\\)= \\)*"=0A=20=20=20.........................................^=0A= lisp/progmodes/cc-awk.el:141:3:=20In=20c-awk-harmless-string*-here-re:=20= Branch=20matches=20subset=20of=20a=20previous=20branch=20(pos=2031)=0A=20= =20= "\\=3D\\([^_#/\"{}();\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|_\\([^\"]\\|\= \'\\)\\)*"=0A=20=20=20............................................^=0A= lisp/progmodes/cc-awk.el:148:3:=20In=20c-awk-harmless-line-string*-re:=20= Branch=20matches=20subset=20of=20a=20previous=20branch=20(pos=2024)=0A=20= =20= "\\([^_#/\"\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|_\\([^\"]\\|\\'\\)\\)*"= =0A=20=20=20....................................^=0A= lisp/progmodes/cc-awk.el:152:3:=20In=20c-awk-harmless-line-re:=20Branch=20= matches=20subset=20of=20a=20previous=20branch=20(pos=2024)=0A=20=20= "\\([^_#/\"\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|_\\([^\"]\\|\\'\\)\\)*\= \(#.*\\)?\\(\n\\|\r\\|\\'\\)"=0A=20=20=20= ....................................^=0Alisp/progmodes/cc-awk.el:159:3:=20= In=20c-awk-harmless-lines+-here-re:=20Branch=20matches=20subset=20of=20a=20= previous=20branch=20(pos=2028)=0A=20=20= "\\=3D\\(\\([^_#/\"\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|_\\([^\"]\\|\\'= \\)\\)*\\(#.*\\)?\\(\n\\|\r\\|\\'\\)\\)+"=0A=20=20=20= ..........................................^=0A= lisp/progmodes/cc-awk.el:167:3:=20In=20c-awk-string-innards-re:=20Branch=20= matches=20subset=20of=20a=20previous=20branch=20(pos=2021)=0A=20=20= "\\([^\"\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\)*"=0A=20=20=20= .................................^=0Alisp/progmodes/cc-awk.el:170:3:=20= In=20c-awk-string-without-end-here-re:=20Branch=20matches=20subset=20of=20= a=20previous=20branch=20(pos=2026)=0A=20=20= "\\=3D_?\"\\([^\"\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\)*"=0A=20=20=20= ........................................^=0A= lisp/progmodes/cc-awk.el:174:3:=20In=20c-awk-possibly-open-string-re:=20= Branch=20matches=20subset=20of=20a=20previous=20branch=20(pos=2022)=0A=20= =20= "\"\\([^\"\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\)*\\(\"\\|$\\|\\'\\)"=0A= =20=20=20...................................^=0A= lisp/progmodes/cc-awk.el:191:3:=20In=20c-awk-regexp-char-list-re:=20= Branch=20matches=20subset=20of=20a=20previous=20branch=20(pos=2045)=0A=20= =20= "\\[\\(\\(\\\\[\n\r]\\)*\\^\\)?\\(\\\\[\n\r]\\)*]?\\(\\\\\\(.\\|\n\\|\r\\|= \\'\\)\\|\\[:[a-z]+:\\]\\|[^]\n\r]\\)*\\(]\\|$\\)"=0A=20=20=20= ....................................................................^=0A= lisp/progmodes/cc-awk.el:197:3:=20In=20c-awk-regexp-innards-re:=20Branch=20= matches=20subset=20of=20a=20previous=20branch=20(pos=2012)=0A=20=20= "\\(\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|\\[\\(\\(\\\\[\n\r]\\)*\\^\\)?\\(\\\\[\n= \r]\\)*]?\\(\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|\\[:[a-z]+:\\]\\|[^]\n\r]\\)*\\(= ]\\|$\\)\\|[^[/\\\n\r]\\)*"=0A=20=20=20...................^=0A= lisp/progmodes/cc-awk.el:197:3:=20In=20c-awk-regexp-innards-re:=20Branch=20= matches=20subset=20of=20a=20previous=20branch=20(pos=2066)=0A=20=20= "\\(\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|\\[\\(\\(\\\\[\n\r]\\)*\\^\\)?\\(\\\\[\n= \r]\\)*]?\\(\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|\\[:[a-z]+:\\]\\|[^]\n\r]\\)*\\(= ]\\|$\\)\\|[^[/\\\n\r]\\)*"=0A=20=20=20= ..........................................................................= ...........................^=0Alisp/progmodes/cc-awk.el:201:3:=20In=20= c-awk-regexp-without-end-re:=20Branch=20matches=20subset=20of=20a=20= previous=20branch=20(pos=2013)=0A=20=20= "/\\(\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|\\[\\(\\(\\\\[\n\r]\\)*\\^\\)?\\(\\\\[\= n\r]\\)*]?\\(\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|\\[:[a-z]+:\\]\\|[^]\n\r]\\)*\\= (]\\|$\\)\\|[^[/\\\n\r]\\)*"=0A=20=20=20....................^=0A= lisp/progmodes/cc-awk.el:201:3:=20In=20c-awk-regexp-without-end-re:=20= Branch=20matches=20subset=20of=20a=20previous=20branch=20(pos=2067)=0A=20= =20= "/\\(\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|\\[\\(\\(\\\\[\n\r]\\)*\\^\\)?\\(\\\\[\= n\r]\\)*]?\\(\\\\\\(.\\|\n\\|\r\\|\\'\\)\\|\\[:[a-z]+:\\]\\|[^]\n\r]\\)*\\= (]\\|$\\)\\|[^[/\\\n\r]\\)*"=0A=20=20=20= ..........................................................................= ............................^=0Alisp/progmodes/cc-awk.el:255:3:=20In=20= c-awk-non-/-syn-ws*-re:=20Branch=20matches=20subset=20of=20a=20previous=20= branch=20(pos=2069)=0A=20=20"\\(\\(\\\\[\n\r]\\|[=20= \t]\\)*\\([^#/\"\\\n\r=20= \t]\\|\\\\\\(.\\|\\'\\)\\|\"\\([^\"\\\n\r]\\|\\\\\\(.\\|\n\\|\r\\|\\'\\)\\= )*\\(\"\\|$\\|\\'\\)\\)\\)*"=0A=20=20=20= ..........................................................................= ...............................^=0Alisp/progmodes/cc-mode.el:1247:26:=20= In=20call=20to=20re-search-forward:=20Branch=20matches=20subset=20of=20a=20= previous=20branch=20(pos=2017)=0A=20=20= "[\n\r]?\\(\\\\\\(.\\|\n\\|\r\\)\\|[^\\\n\r]\\)*"=0A=20=20=20= ..........................^=0Alisp/progmodes/cc-mode.el:1374:27:=20In=20= call=20to=20looking-at:=20Branch=20matches=20subset=20of=20a=20previous=20= branch=20(pos=2012)=0A=20=20"\\(\\\\\\(.\\|\n\\|\r\\)\\|[^\"]\\)*"=0A=20=20= =20...................^=0Alisp/progmodes/cperl-mode.el:7980:16:=20In=20= call=20to=20looking-at:=20Branch=20matches=20superset=20of=20a=20= previous=20branch=20(pos=2071)=0A=20=20= "\\([a-zA-Z0-9]+[^*+{?]\\)\\|\\$\\([a-zA-Z0-9_]+\\([[{]\\)?\\|[^\n=20= \t)|]\\)\\|[$^]\\|\\(\\\\.\\|[^][()#|*+?\n]\\)\\([*+{?]\\??\\)?\\|\\(\\[\\= )\\|\\((\\(\\?\\)?\\)\\|\\(|\\)"=0A=20=20=20= ..........................................................................= ..........^=0Alisp/arc-mode.el:2020:26:=20In=20call=20to=20looking-at:=20= Branch=20matches=20subset=20of=20a=20previous=20branch=20(pos=2044)=0A=20= =20"^=20+[0-9.]+=20+D?-+=20+\\([0-9-]+\\)=20+\\([-0-9.%]+\\|-+\\)=20= +\\([0-9a-zA-Z]+\\)=20+\\([0-9-]+\\)=20+\\([0-9:]+\\)=20+\\(.*\\)\n"=0A=20= =20=20................................................^=0A= lisp/info.el:1534:41:=20In=20call=20to=20re-search-forward:=20Branch=20= matches=20superset=20of=20a=20previous=20branch=20(pos=2018)=0A=20=20= "^\\*=20\\([^:\n]+:\\(:\\|[^.\n]+\\).\\)"=0A=20=20=20= .......................^=0Alisp/xml.el:247:27:=20In=20xml-att-type-re:=20= Branch=20matches=20superset=20of=20a=20previous=20branch=20(pos=20191)=0A= =20=20= "\\(?:CDATA\\|\\(?:ID\\|IDREF\\|IDREFS\\|ENTITY\\|ENTITIES\\|NMTOKEN\\|NMT= OKENS\\)\\|\\(?:NOTATION\\s-+(\\s-*[[:word:]:_][[:word:]:_.0-9\267=CC=80-=CD= =AF=E2=80=BF=E2=81=80-]*\\(?:\\s-*|\\s-*[[:word:]:_][[:word:]:_.0-9\267=CC= =80-=CD=AF=E2=80=BF=E2=81=80-]*\\)*\\s-*)\\)\\|\\(?:\\(?:NOTATION\\s-+(\\s= -*[[:word:]:_][[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2=81=80-]*\\(?:\\= s-*|\\s-*[[:word:]:_][[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2=81=80-]*= \\)*\\s-*)\\)\\|\\(?:(\\s-*[[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2=81= =80-]+\\(?:\\s-*|\\s-*[[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2=81=80-]= +\\)*\\s-+)\\)\\)\\)"=0A=20=20=20= ..........................................................................= ..........................................................................= ......................................................................^=0A= lisp/xml.el:257:26:=20In=20xml-att-def-re:=20Branch=20matches=20superset=20= of=20a=20previous=20branch=20(pos=20239)=0A=20=20= "\\(?:\\s-*[[:word:]:_][[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2=81=80-= ]*\\s-*\\(?:CDATA\\|\\(?:ID\\|IDREF\\|IDREFS\\|ENTITY\\|ENTITIES\\|NMTOKEN= \\|NMTOKENS\\)\\|\\(?:NOTATION\\s-+(\\s-*[[:word:]:_][[:word:]:_.0-9\267=CC= =80-=CD=AF=E2=80=BF=E2=81=80-]*\\(?:\\s-*|\\s-*[[:word:]:_][[:word:]:_.0-9= \267=CC=80-=CD=AF=E2=80=BF=E2=81=80-]*\\)*\\s-*)\\)\\|\\(?:\\(?:NOTATION\\= s-+(\\s-*[[:word:]:_][[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2=81=80-]*= \\(?:\\s-*|\\s-*[[:word:]:_][[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2=81= =80-]*\\)*\\s-*)\\)\\|\\(?:(\\s-*[[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF= =E2=81=80-]+\\(?:\\s-*|\\s-*[[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2=81= =80-]+\\)*\\s-+)\\)\\)\\)\\s-*\\(?:#REQUIRED\\|#IMPLIED\\|\\(?:#FIXED\\s-+= \\)*\\(?:\"\\(?:[^&\"]\\|\\(?:&[[:word:]:_][[:word:]:_.0-9\267=CC=80-=CD=AF= =E2=80=BF=E2=81=80-]*;\\|\\(?:&#[0-9]+;\\|&#x[0-9a-fA-F]+;\\)\\)\\)*\"\\|'= \\(?:[^&']\\|\\(?:&[[:word:]:_][[:word:]:_.0-9\267=CC=80-=CD=AF=E2=80=BF=E2= =81=80-]*;\\|\\(?:&#[0-9]+;\\|&#x[0-9a-fA-F]+;\\)\\)\\)*'\\)\\)\\)"=0A=20= =20=20= ..........................................................................= ..........................................................................= ..........................................................................= ..................................................^=0A= lisp/xml.el:805:28:=20In=20call=20to=20looking-at:=20Branch=20matches=20= superset=20of=20a=20previous=20branch=20(pos=20304)=0A=20=20""=0A=20=20=20= ..........................................................................= ..........................................................................= ..........................................................................= ..........................................................................= .....................................................^=0A= --Apple-Mail=_8645E953-5BFA-4DF4-B698-3B7E0A60ECFC--