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: Errors indicated by ineffective backslashes in string literals Date: Sat, 16 Mar 2019 19:09:18 +0100 Message-ID: Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Content-Type: multipart/mixed; boundary="Apple-Mail=_59B3FA01-266B-4128-97F3-836A2B807328" Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="173556"; mail-complaints-to="usenet@blaine.gmane.org" To: emacs-devel Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Mar 16 19:19:35 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 1h5Du9-000j4m-Ek for ged-emacs-devel@m.gmane.org; Sat, 16 Mar 2019 19:19:33 +0100 Original-Received: from localhost ([127.0.0.1]:44825 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h5Du8-0003OY-CL for ged-emacs-devel@m.gmane.org; Sat, 16 Mar 2019 14:19:32 -0400 Original-Received: from eggs.gnu.org ([209.51.188.92]:46823) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h5Dr5-0001T6-AM for emacs-devel@gnu.org; Sat, 16 Mar 2019 14:16:24 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h5DkK-0003mm-V7 for emacs-devel@gnu.org; Sat, 16 Mar 2019 14:09:25 -0400 Original-Received: from mail76c50.megamailservers.eu ([91.136.10.86]:43008 helo=mail70c50.megamailservers.eu) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h5DkJ-0003lw-Vj for emacs-devel@gnu.org; Sat, 16 Mar 2019 14:09:24 -0400 X-Authenticated-User: mattiase@bredband.net DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=megamailservers.eu; s=maildub; t=1552759760; bh=j/t9LkYHrWb+z+LZNp9trRjGvMT1jwop7tRrPqDRj9A=; h=From:Subject:Date:To:From; b=lhL0r0w4wnjxy/qFz/BaT0U7c/72vFDfrcHwU2DHfjEkMI04+HK8K6Z4rpZtZL5il kuwtESl4GDr539OsLZvszajYJcYUx6ejP0itoWKUQofsyew7sUknBaoAd3jyadiobI bm/98WiWkeR1uEsMa+2LsV8/+fGB244F0lHa6vj8= 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 mail70c50.megamailservers.eu (8.14.9/8.13.1) with ESMTP id x2GI9IAM019919 for ; Sat, 16 Mar 2019 18:09:20 +0000 X-Mailer: Apple Mail (2.3445.102.3) X-CTCH-RefID: str=0001.0A0B020B.5C8D3BD0.0023, 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=ILcs9DnG c=1 sm=1 tr=0 a=M+GU/qJco4WXjv8D6jB2IA==:117 a=M+GU/qJco4WXjv8D6jB2IA==:17 a=gIG03f-YK_7WdxeYoVkA:9 a=CjuIK1q_8ugA:10 a=ER9ggCFl1XiM76WQ3IoA:9 a=B2y7HmGcmWMA: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.86 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:234236 Archived-At: --Apple-Mail=_59B3FA01-266B-4128-97F3-836A2B807328 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii Sorry to bother you again, but while trying to get a better = understanding of regexp usage and errors I found several ineffective = backslashes in string literals (like "\.") and decided to do something = about them. Some were just superfluous and confusing, but others were apparent = errors. Here is the resulting patch. --Apple-Mail=_59B3FA01-266B-4128-97F3-836A2B807328 Content-Disposition: attachment; filename=0001-Fix-some-ineffective-backslashes-in-string-literals.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Fix-some-ineffective-backslashes-in-string-literals.patch" Content-Transfer-Encoding: quoted-printable =46rom=203928725db206290ebc7df8a4eaabd56dbc42fee9=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Mattias=3D20Engdeg=3DC3=3DA5rd?=3D=20= =0ADate:=20Sat,=2016=20Mar=202019=2018:19:23=20+0100=0A= Subject:=20[PATCH]=20Fix=20some=20ineffective=20backslashes=20in=20= string=20literals=0A=0ADeal=20with=20lone=20backslashes=20that=20have=20= no=20effect=20in=20string=20literals,=0Abut=20indicate=20that=20= something=20is=20amiss.=0A=0A*=20lisp/auth-source-pass.el=20= (auth-source-pass-entries):=0A*=20lisp/textmodes/artist.el=20= (artist-figlet-get-font-list-windows):=0A*=20lisp/org/ob-abc.el=20= (org-babel-expand-body:abc,=20org-babel-execute:abc):=0A*=20= lisp/org/ob-forth.el=20(org-babel-forth-session-execute):=0A*=20= lisp/vc/vc-git.el=20(vc-git--program-version):=0AAdd=20backslash=20in=20= regexp=20for=20correctness.=0A=0A*=20lisp/gnus/nnmail.el=20= (nnmail-split-abbrev-alist):=0AReplace=20`\||'=20with=20`\\|'=20to=20= follow=20the=20obvious=20regexp=20intent.=0A=0A*=20lisp/org/org-list.el=20= (org-plain-list-ordered-item-terminator):=0AAdd=20backslash=20in=20doc=20= comment=20so=20that=20it=20appears=20as=20intended.=0A=0A*=20= lisp/progmodes/cc-engine.el=20(c-forward-decl-or-cast-1,=20= c-end-of-decl-1):=0A*=20lisp/progmodes/f90.el=20= (f90-font-lock-keywords-2):=0A*=20lisp/progmodes/etags.el=20= (etags-tags-completion-table):=0A*=20lisp/progmodes/ruby-mode.el=20= (ruby-syntax-propertize):=0A*=20test/lisp/emacs-lisp/cl-print-tests.el=20= (cl-print-tests-1):=0ARemove=20superfluous=20backslashes=20from=20= regexp.=0A=0A*=20test/lisp/emacs-lisp/rx-tests.el=20(rx-char-any):=0A= Remove=20superfluous=20backslash=20from=20doc=20comment.=0A---=0A=20= lisp/auth-source-pass.el=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=20= 2=20+-=0A=20lisp/gnus/nnmail.el=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20|=202=20+-=0A=20lisp/org/ob-abc.el=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20|=204=20++--=0A=20= lisp/org/ob-forth.el=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20|=202=20+-=0A=20lisp/org/org-list.el=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20|=202=20+-=0A=20lisp/progmodes/cc-engine.el=20=20=20= =20=20=20=20=20=20=20=20=20|=206=20+++---=0A=20lisp/progmodes/etags.el=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= lisp/progmodes/f90.el=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= |=202=20+-=0A=20lisp/progmodes/ruby-mode.el=20=20=20=20=20=20=20=20=20=20= =20=20|=202=20+-=0A=20lisp/textmodes/artist.el=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20|=202=20+-=0A=20lisp/vc/vc-git.el=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20|=202=20+-=0A=20= test/lisp/emacs-lisp/cl-print-tests.el=20|=202=20+-=0A=20= test/lisp/emacs-lisp/rx-tests.el=20=20=20=20=20=20=20|=202=20+-=0A=2013=20= files=20changed,=2016=20insertions(+),=2016=20deletions(-)=0A=0Adiff=20= --git=20a/lisp/auth-source-pass.el=20b/lisp/auth-source-pass.el=0Aindex=20= e37cadb07c..deb805a6e1=20100644=0A---=20a/lisp/auth-source-pass.el=0A+++=20= b/lisp/auth-source-pass.el=0A@@=20-189,7=20+189,7=20@@=20often."=0A=20=20= =20(let=20((store-dir=20(expand-file-name=20"~/.password-store/")))=0A=20= =20=20=20=20(mapcar=0A=20=20=20=20=20=20(lambda=20(file)=20= (file-name-sans-extension=20(file-relative-name=20file=20store-dir)))=0A= -=20=20=20=20=20(directory-files-recursively=20store-dir=20"\.gpg$"))))=0A= +=20=20=20=20=20(directory-files-recursively=20store-dir=20"\\.gpg$"))))=0A= =20=0A=20(defun=20auth-source-pass--find-all-by-entry-name=20(entryname=20= user)=0A=20=20=20"Search=20the=20store=20for=20all=20entries=20either=20= matching=20ENTRYNAME/USER=20or=20ENTRYNAME.=0Adiff=20--git=20= a/lisp/gnus/nnmail.el=20b/lisp/gnus/nnmail.el=0Aindex=20= f6d7525293..a95cdb4a4f=20100644=0A---=20a/lisp/gnus/nnmail.el=0A+++=20= b/lisp/gnus/nnmail.el=0A@@=20-489,7=20+489,7=20@@=20Example:=0A=20=20=20=20= =20(from=20.=20"from\\|sender\\|resent-from")=0A=20=20=20=20=20(nato=20.=20= "to\\|cc\\|resent-to\\|resent-cc")=0A=20=20=20=20=20(naany=20.=20= "from\\|to\\|cc\\|sender\\|resent-from\\|resent-to\\|resent-cc")=0A-=20=20= =20=20(list=20.=20= "list-id\\|list-post\\|x-mailing-list\||x-beenthere\\|x-loop"))=0A+=20=20= =20=20(list=20.=20= "list-id\\|list-post\\|x-mailing-list\\|x-beenthere\\|x-loop"))=0A=20=20=20= "Alist=20of=20abbreviations=20allowed=20in=20`nnmail-split-fancy'."=0A=20= =20=20:group=20'nnmail-split=0A=20=20=20:type=20'(repeat=20(cons=20= :format=20"%v"=20symbol=20regexp)))=0Adiff=20--git=20= a/lisp/org/ob-abc.el=20b/lisp/org/ob-abc.el=0Aindex=20= cefbe716e1..43ee1d9921=20100644=0A---=20a/lisp/org/ob-abc.el=0A+++=20= b/lisp/org/ob-abc.el=0A@@=20-47,7=20+47,7=20@@=0A=20=09=20=20=20=20=20= (value=20(cdr=20pair)))=0A=20=09=20(setq=20body=0A=20=09=20=20=20=20=20=20= =20(replace-regexp-in-string=0A-=09=09(concat=20"\$"=20(regexp-quote=20= name))=0A+=09=09(concat=20"\\$"=20(regexp-quote=20name))=0A=20=09=09(if=20= (stringp=20value)=20value=20(format=20"%S"=20value))=0A=20=09=09body))))=0A= =20=20=20=20=20=20vars)=0A@@=20-59,7=20+59,7=20@@=0A=20=20=20(message=20= "executing=20Abc=20source=20code=20block")=0A=20=20=20(let*=20((cmdline=20= (cdr=20(assq=20:cmdline=20params)))=0A=20=09=20(out-file=20(let=20((file=20= (cdr=20(assq=20:file=20params))))=0A-=09=09=20=20=20=20=20(if=20file=20= (replace-regexp-in-string=20"\.pdf$"=20".ps"=20file)=0A+=09=09=20=20=20=20= =20(if=20file=20(replace-regexp-in-string=20"\\.pdf$"=20".ps"=20file)=0A=20= =09=09=20=20=20=20=20=20=20(error=20"abc=20code=20block=20requires=20= :file=20header=20argument"))))=0A=20=09=20(in-file=20= (org-babel-temp-file=20"abc-"))=0A=20=09=20(render=20(concat=20"abcm2ps"=20= "=20"=20cmdline=0Adiff=20--git=20a/lisp/org/ob-forth.el=20= b/lisp/org/ob-forth.el=0Aindex=208ca292656a..88ed964fd7=20100644=0A---=20= a/lisp/org/ob-forth.el=0A+++=20b/lisp/org/ob-forth.el=0A@@=20-53,7=20= +53,7=20@@=20This=20function=20is=20called=20by=20= `org-babel-execute-src-block'"=0A=20(defun=20= org-babel-forth-session-execute=20(body=20params)=0A=20=20=20(require=20= 'forth-mode)=0A=20=20=20(let=20((proc=20(forth-proc))=0A-=09(rx=20"=20= \\(\n:\\|compiled\n\\\|ok\n\\)")=0A+=09(rx=20"=20= \\(\n:\\|compiled\n\\|ok\n\\)")=0A=20=09(result-start))=0A=20=20=20=20=20= (with-current-buffer=20(process-buffer=20(forth-proc))=0A=20=20=20=20=20=20= =20(mapcar=20(lambda=20(line)=0Adiff=20--git=20a/lisp/org/org-list.el=20= b/lisp/org/org-list.el=0Aindex=20ef85b402f0..22692d224a=20100644=0A---=20= a/lisp/org/org-list.el=0A+++=20b/lisp/org/org-list.el=0A@@=20-236,7=20= +236,7=20@@=20into=0A=20=0A=20(defcustom=20= org-plain-list-ordered-item-terminator=20t=0A=20=20=20"The=20character=20= that=20makes=20a=20line=20with=20leading=20number=20an=20ordered=20list=20= item.=0A-Valid=20values=20are=20?.=20and=20?\).=20=20To=20get=20both=20= terminators,=20use=20t.=0A+Valid=20values=20are=20?.=20and=20?\\).=20=20= To=20get=20both=20terminators,=20use=20t.=0A=20=0A=20This=20variable=20= needs=20to=20be=20set=20before=20org.el=20is=20loaded.=20=20If=20you=0A=20= need=20to=20make=20a=20change=20while=20Emacs=20is=20running,=20use=20= the=20customize=0Adiff=20--git=20a/lisp/progmodes/cc-engine.el=20= b/lisp/progmodes/cc-engine.el=0Aindex=20fd66928099..cc3753a7eb=20100644=0A= ---=20a/lisp/progmodes/cc-engine.el=0A+++=20= b/lisp/progmodes/cc-engine.el=0A@@=20-8968,7=20+8968,7=20@@=20This=20= function=20might=20do=20hidden=20buffer=20changes."=0A=20=0A=20=09=20= (setq=20at-decl-end=0A=20=09=20=20=20=20=20=20=20(looking-at=20(cond=20= ((eq=20context=20'<>)=20"[,>]")=0A-=09=09=09=09=20((not=20(memq=20= context=20'(nil=20top)))=20"[,\)]")=0A+=09=09=09=09=20((not=20(memq=20= context=20'(nil=20top)))=20"[,)]")=0A=20=09=09=09=09=20(t=20"[,;]"))))=0A= =20=0A=20=09=20;;=20Now=20we've=20collected=20info=20about=20various=20= characteristics=20of=0A@@=20-10321,7=20+10321,7=20@@=20comment=20at=20= the=20start=20of=20cc-engine.el=20for=20more=20info."=0A=20=09=09=09=20=20= ;;=20Check=20for=20`c-opt-block-decls-with-vars-key'=0A=20=09=09=09=20=20= ;;=20before=20the=20first=20paren.=0A=20=09=09=09=20=20= (c-syntactic-re-search-forward=0A-=09=09=09=20=20=20(concat=20= "[;=3D\(\[{]\\|\\("=0A+=09=09=09=20=20=20(concat=20"[;=3D([{]\\|\\("=0A=20= =09=09=09=09=20=20=20c-opt-block-decls-with-vars-key=0A=20=09=09=09=09=20= =20=20"\\)")=0A=20=09=09=09=20=20=20lim=20t=20t=20t)=0A@@=20-10329,7=20= +10329,7=20@@=20comment=20at=20the=20start=20of=20cc-engine.el=20for=20= more=20info."=0A=20=09=09=09=20=20(not=20(eq=20(char-before)=20?_))=0A=20= =09=09=09=20=20;;=20Check=20that=20the=20first=20following=20paren=20is=0A= =20=09=09=09=20=20;;=20the=20block.=0A-=09=09=09=20=20= (c-syntactic-re-search-forward=20"[;=3D\(\[{]"=0A+=09=09=09=20=20= (c-syntactic-re-search-forward=20"[;=3D([{]"=0A=20=09=09=09=09=09=09=09=20= lim=20t=20t=20t)=0A=20=09=09=09=20=20(eq=20(char-before)=20?{))))))=0A=20= =09=20=20=20=20;;=20The=20declaration=20doesn't=20have=20any=20of=20the=0A= diff=20--git=20a/lisp/progmodes/etags.el=20b/lisp/progmodes/etags.el=0A= index=20c2715be537..910c320ab8=20100644=0A---=20= a/lisp/progmodes/etags.el=0A+++=20b/lisp/progmodes/etags.el=0A@@=20= -1281,7=20+1281,7=20@@=20buffer-local=20values=20of=20tags=20table=20= format=20variables."=0A=20=20=20=20=20=20=20;;=20This=20regexp=20matches=20= an=20explicit=20tag=20name=20or=20the=20place=20where=0A=20=20=20=20=20=20= =20;;=20it=20would=20start.=0A=20=20=20=20=20=20=20(while=20= (re-search-forward=0A-=20=20=20=20=20=20=20=20=20=20=20=20=20=20= "[\f\t\n\r()=3D,;=20]?\177\\\(?:\\([^\n\001]+\\)\001\\)?"=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20"[\f\t\n\r()=3D,;=20= ]?\177\\(?:\\([^\n\001]+\\)\001\\)?"=0A=20=09=20=20=20=20=20=20nil=20t)=0A= =20=09(push=09(prog1=20(if=20(match-beginning=201)=0A=20=09=09=09=20=20=20= ;;=20There=20is=20an=20explicit=20tag=20name.=0Adiff=20--git=20= a/lisp/progmodes/f90.el=20b/lisp/progmodes/f90.el=0Aindex=20= 3ec145b547..9de80635e9=20100644=0A---=20a/lisp/progmodes/f90.el=0A+++=20= b/lisp/progmodes/f90.el=0A@@=20-648,7=20+648,7=20@@=20= forall\\|block\\|critical\\)\\)\\_>"=0A=20\\|enumerator\\|procedure\\|\=0A= =20logical\\|double[=20\t]*precision\\|type[=20= \t]*(\\(?:\\sw\\|\\s_\\)+)\\|none\\)[=20\t]*"=0A=20=20=20=20=20=20=20(1=20= font-lock-keyword-face)=20(2=20font-lock-type-face))=0A-=20=20=20=20= '("\\_<\\(namelist\\|common\\)[=20\t]*/\\(\\(?:\\sw\\|\\s_\\)+\\)?\/"=0A= +=20=20=20=20'("\\_<\\(namelist\\|common\\)[=20= \t]*/\\(\\(?:\\sw\\|\\s_\\)+\\)?/"=0A=20=20=20=20=20=20=20(1=20= font-lock-keyword-face)=20(2=20font-lock-constant-face=20nil=20t))=0A=20=20= =20=20=20"\\_"=0A=20=20=20=20=20= '("\\(&\\)[=20\t]*\\(!\\|$\\)"=20=20(1=20font-lock-keyword-face))=0Adiff=20= --git=20a/lisp/progmodes/ruby-mode.el=20b/lisp/progmodes/ruby-mode.el=0A= index=20707875d130..5998ac8e39=20100644=0A---=20= a/lisp/progmodes/ruby-mode.el=0A+++=20b/lisp/progmodes/ruby-mode.el=0A@@=20= -1867,7=20+1867,7=20@@=20It=20will=20be=20properly=20highlighted=20even=20= when=20the=20call=20omits=20parens.")=0A=20=20=20=20=20=20=20("^[=20= \t]*def=20+\\(`\\)"=20(1=20"_"))=0A=20=20=20=20=20=20=20;;=20Ternary=20= operator=20colon=20followed=20by=20opening=20paren=20or=20bracket=0A=20=20= =20=20=20=20=20;;=20(semi-important=20for=20indentation).=0A-=20=20=20=20= =20=20("\\(:\\)\\(?:[\({]\\|\\[[^]]\\)"=0A+=20=20=20=20=20=20= ("\\(:\\)\\(?:[({]\\|\\[[^]]\\)"=0A=20=20=20=20=20=20=20=20(1=20= (string-to-syntax=20".")))=0A=20=20=20=20=20=20=20;;=20Regular=20= expressions.=20=20Start=20with=20matching=20unescaped=20slash.=0A=20=20=20= =20=20=20=20("\\(?:\\=3D\\|[^\\]\\)\\(?:\\\\\\\\\\)*\\(/\\)"=0Adiff=20= --git=20a/lisp/textmodes/artist.el=20b/lisp/textmodes/artist.el=0Aindex=20= d75a1ca2f9..e9b17795a9=20100644=0A---=20a/lisp/textmodes/artist.el=0A+++=20= b/lisp/textmodes/artist.el=0A@@=20-2895,7=20+2895,7=20@@=20Returns=20a=20= list=20of=20strings."=0A=20=20=20=20=20=20=20=20dir-list)=0A=20=20=20=20=20= =20=20(mapcar=0A=20=20=20=20=20=20=20=20(lambda=20(file)=0A-=20=20=20=20=20= =20=20=20=20(replace-regexp-in-string=20"\.flf\\'"=20""=20file))=0A+=20=20= =20=20=20=20=20=20=20(replace-regexp-in-string=20"\\.flf\\'"=20""=20= file))=0A=20=20=20=20=20=20=20=20result))))=0A=20=0A=20(defun=20= artist-figlet-choose-font=20()=0Adiff=20--git=20a/lisp/vc/vc-git.el=20= b/lisp/vc/vc-git.el=0Aindex=20c6806ba5cd..c990b0659d=20100644=0A---=20= a/lisp/vc/vc-git.el=0A+++=20b/lisp/vc/vc-git.el=0A@@=20-253,7=20+253,7=20= @@=20The=20following=20place=20holders=20should=20be=20present=20in=20= the=20string:=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20;;=20Git=20for=20Windows=20appends=20".windows.N"=20to=20= the=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20;;=20numerical=20version=20reported=20by=20Git.=0A=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(string-match=0A-=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"git=20= version=20\\([0-9.]+\\)\\(\.windows.[0-9]+\\)?$"=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"git=20version=20= \\([0-9.]+\\)\\(\\.windows.[0-9]+\\)?$"=0A=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20version-string))=0A=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(match-string=201=20= version-string)=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= "0")))))=0Adiff=20--git=20a/test/lisp/emacs-lisp/cl-print-tests.el=20= b/test/lisp/emacs-lisp/cl-print-tests.el=0Aindex=20= e163fb8a8d..406c528dce=20100644=0A---=20= a/test/lisp/emacs-lisp/cl-print-tests.el=0A+++=20= b/test/lisp/emacs-lisp/cl-print-tests.el=0A@@=20-34,7=20+34,7=20@@=0A=20=20= =20=20=20(let=20((print-circle=20t))=0A=20=20=20=20=20=20=20(should=20= (equal=20(cl-prin1-to-string=20`((x=20.=20,x)=20(y=20.=20,x)))=0A=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"((x=20.=20= #1=3D#s(cl-print--test=20:a=201=20:b=202))=20(y=20.=20#1#))")))=0A-=20=20= =20=20(should=20(string-match=20"\\`#f(compiled-function=20(x)=20= \"[^\"]+\"=20[^\)]*)\\'"=0A+=20=20=20=20(should=20(string-match=20= "\\`#f(compiled-function=20(x)=20\"[^\"]+\"=20[^)]*)\\'"=0A=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (cl-prin1-to-string=20(symbol-function=20#'caar))))))=0A=20=0A=20= (ert-deftest=20cl-print-tests-2=20()=0Adiff=20--git=20= a/test/lisp/emacs-lisp/rx-tests.el=20b/test/lisp/emacs-lisp/rx-tests.el=0A= index=20fa3d9b0d5e..7dd5e3b8de=20100644=0A---=20= a/test/lisp/emacs-lisp/rx-tests.el=0A+++=20= b/test/lisp/emacs-lisp/rx-tests.el=0A@@=20-25,7=20+25,7=20@@=0A=20;;;=20= Code:=0A=20=0A=20(ert-deftest=20rx-char-any=20()=0A-=20=20"Test=20= character=20alternatives=20with=20`\]'=20and=20`-'=20(Bug#25123)."=0A+=20= =20"Test=20character=20alternatives=20with=20`]'=20and=20`-'=20= (Bug#25123)."=0A=20=20=20(should=20(string-match=0A=20=20=20=20=20=20=20=20= =20=20=20=20(rx=20string-start=20(1+=20(char=20(?\]=20.=20?\{)=20(?<=20.=20= ?\])=20(?-=20.=20?:)))=0A=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= string-end)=0A--=20=0A2.17.2=20(Apple=20Git-113)=0A=0A= --Apple-Mail=_59B3FA01-266B-4128-97F3-836A2B807328--