unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Regexp linting scan
@ 2019-12-01 22:20 Mattias Engdegård
  2019-12-02 10:14 ` Richard Copley
  0 siblings, 1 reply; 11+ messages in thread
From: Mattias Engdegård @ 2019-12-01 22:20 UTC (permalink / raw)
  To: Emacs developers

[-- Attachment #1: Type: text/plain, Size: 111 bytes --]

Another scan for regexp mistakes, based on a slightly improved detector that finds more nested repetitions.


[-- Attachment #2: relint.log --]
[-- Type: application/octet-stream, Size: 137572 bytes --]

^ permalink raw reply	[flat|nested] 11+ messages in thread
* Regexp linting scan
@ 2020-01-30 16:16 Mattias Engdegård
  2020-02-20 15:13 ` Mattias Engdegård
  0 siblings, 1 reply; 11+ messages in thread
From: Mattias Engdegård @ 2020-01-30 16:16 UTC (permalink / raw)
  To: Emacs developers

[-- Attachment #1: Type: text/plain, Size: 631 bytes --]

Here is a new scan of regexp irregularities in the Emacs tree (master at 1ed7cd41db), using relint 1.13, xr 1.15.

Relint now finds more regexps, and the xr linting engine has a new subsumption check. This check finds pairs of repetitions, one made unnecessary by the other, like [ab]+a* or a*a*. The check is somewhat experimental, but is accurate enough and not only indicates possible mistakes and general waste but also potential slow regexps.

As an example of the last point, the running time of

(string-match "a*a*b" (make-string N ?a))

is cubical in N. (Not all mistakes are exponential, but it's bad enough.)


[-- Attachment #2: relint.log --]
[-- Type: application/octet-stream, Size: 19818 bytes --]

-*- compilation -*-
Relint results for ~/emacs
lisp/cedet/semantic/grammar.el:1309:8: In comment-start-skip: Duplicated `\' inside character alternative (pos 10)
  "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *"
   ..............^
lisp/cedet/srecode/srt-mode.el:198:8: In comment-start-skip: Duplicated `\' inside character alternative (pos 10)
  "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *"
   ..............^
lisp/cedet/data-debug.el:883:8: In comment-start-skip: Duplicated `\' inside character alternative (pos 10)
  "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\);+ *"
   ..............^
lisp/emacs-lisp/lisp-mode.el:431:7: In lisp-el-font-lock-keywords-2 (font-lock-type-face): Escaped non-special character `&' (pos 3)
  "\\_<\\&\\(?:\\sw\\|\\s_\\|\\\\.\\)+\\_>"
   ....^
lisp/emacs-lisp/lisp-mode.el:487:7: In lisp-cl-font-lock-keywords-2 (font-lock-type-face): Escaped non-special character `&' (pos 3)
  "\\_<\\&\\(?:\\sw\\|\\s_\\|\\\\.\\)+\\_>"
   ....^
lisp/emacs-lisp/lisp-mode.el:542:3: In lisp-el-font-lock-keywords-for-backtraces-2 (font-lock-type-face): Escaped non-special character `&' (pos 3)
  "\\_<\\&\\(?:\\sw\\|\\s_\\|\\\\.\\)+\\_>"
   ....^
lisp/emacs-lisp/lisp-mode.el:753:15: In comment-start-skip: Duplicated `\' inside character alternative (pos 10)
  "\\(\\(^\\|[^\\\\\n]\\)\\(\\\\\\\\\\)*\\)\\(;+\\|#|\\) *"
   ..............^
lisp/gnus/deuglify.el:406:14: In call to re-search-forward: Repetition subsumes preceding repetition (pos 19)
  "^[>|#% \t]*--* ?[^-]+ [^-]+ ?--*\\s *\n[^\n:]+:[ \t]*\\([^\n]+\\)\n\\([^\n:]+:[ \t]*[^\n]+\n\\)+"
   ....................^
lisp/gnus/deuglify.el:406:14: In call to re-search-forward: Repetition subsumed by preceding repetition (pos 27)
  "^[>|#% \t]*--* ?[^-]+ [^-]+ ?--*\\s *\n[^\n:]+:[ \t]*\\([^\n]+\\)\n\\([^\n:]+:[ \t]*[^\n]+\n\\)+"
   ............................^
lisp/gnus/deuglify.el:406:14: In call to re-search-forward: Repetition subsumes preceding repetition (pos 76)
  "^[>|#% \t]*--* ?[^-]+ [^-]+ ?--*\\s *\n[^\n:]+:[ \t]*\\([^\n]+\\)\n\\([^\n:]+:[ \t]*[^\n]+\n\\)+"
   .........................................................................................^
lisp/gnus/message.el:325:3: In message-subject-trailing-was-ask-regexp: Repetition subsumes preceding repetition (pos 32)
  "[ \t]*\\([[(]+[Ww][Aa][Ss]:?[ \t]*.*[])]+\\)"
   ...................................^
lisp/gnus/message.el:340:3: In message-subject-trailing-was-regexp: Repetition subsumes preceding repetition (pos 28)
  "[ \t]*\\((*[Ww][Aa][Ss]:[ \t]*.*)\\)"
   ...............................^
lisp/gnus/message.el:2271:25: In call to string-match: Repetition subsumes preceding repetition (pos 28)
  "[ \t]*\\((*[Ww][Aa][Ss]:[ \t]*.*)\\)"
   ...............................^
lisp/net/browse-url.el:209:3: In browse-url-button-regexp: Repetition subsumed by preceding repetition (pos 219)
  "\\b\\(\\(www\\.\\|\\(s?https?\\|ftp\\|file\\|gopher\\|nntp\\|news\\|telnet\\|wais\\|mailto\\|info\\):\\)\\(//[-a-z0-9_.]+:[0-9]*\\)?\\(?:[-a-z0-9_=#$@~%&*+\\/[:word:]!?:;.,]+([-a-z0-9_=#$@~%&*+\\/[:word:]!?:;.,]+[-a-z0-9_=#$@~%&*+\\/[:word:]]*)\\(?:[-a-z0-9_=#$@~%&*+\\/[:word:]!?:;.,]+[-a-z0-9_=#$@~%&*+\\/[:word:]]\\)?\\|[-a-z0-9_=#$@~%&*+\\/[:word:]!?:;.,]+[-a-z0-9_=#$@~%&*+\\/[:word:]]\\)\\)"
   ..................................................................................................................................................................................................................................................^
lisp/net/rcirc.el:2414:3: In rcirc-url-regexp: Repetition subsumed by preceding repetition (pos 219)
  "\\b\\(\\(www\\.\\|\\(s?https?\\|ftp\\|file\\|gopher\\|nntp\\|news\\|telnet\\|wais\\|mailto\\|info\\):\\)\\(//[-a-z0-9_.]+:[0-9]*\\)?\\(?:[-a-z0-9_=#$@~%&*+\\/[:word:]!?:;.,]+([-a-z0-9_=#$@~%&*+\\/[:word:]!?:;.,]+[-a-z0-9_=#$@~%&*+\\/[:word:]]*)[-a-z0-9_=#$@~%&*+\\/[:word:]]\\|[-a-z0-9_=#$@~%&*+\\/[:word:]!?:;.,]+[-a-z0-9_=#$@~%&*+\\/[:word:]]\\)\\)"
   ..................................................................................................................................................................................................................................................^
lisp/org/ob-core.el:2440:27: In call to looking-at: Repetition subsumes preceding repetition (pos 131)
  "^[ \t]*#\\+RESULTS\\(?:\\[\\(?:<\\(?:[0-9]\\{4\\}-[0-1][0-9]-[0-3][0-9] [0-2][0-9]\\(?::[0-5][0-9]\\)\\{2\\}\\)> \\)?\\([[:alnum:]]+\\)\\]\\)?:[ \t]*.*$"
   ......................................................................................................................................................^
lisp/org/ob-fortran.el:109:21: In call to string-match: Repetition subsumes preceding repetition (pos 19)
  "^[ \t]*program[ \t]*.*"
   .....................^
lisp/org/org-capture.el:1024:40: In call to string-match: Repetition subsumes preceding repetition (pos 16)
  "\\([^ ]+\\)--?[^ ]+[ ]+\\(.*\\)"
   ..................^
lisp/org/org-table.el:3102:27: In call to string-match-p: Repetition subsumes preceding repetition (pos 12)
  "\\`@-?[-+0-9]+\\$-?[0-9]+\\'"
   .............^
lisp/org/org.el:457:3: In org-maybe-keyword-time-regexp: Repetition subsumes preceding repetition (pos 104)
  "\\(\\<\\(\\(?:CLO\\(?:CK\\|SED\\)\\|DEADLINE\\|SCHEDULED\\):\\)\\)? *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?[]>]\\|<%%([^\r\n>]*>\\)"
   .............................................................................................................................^
lisp/org/org.el:567:25: In org-ts-regexp: Repetition subsumes preceding repetition (pos 43)
  "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>"
   ....................................................^
lisp/org/org.el:571:3: In org-ts-regexp-inactive: Repetition subsumes preceding repetition (pos 44)
  "\\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)\\]"
   ......................................................^
lisp/org/org.el:574:30: In org-ts-regexp-both: Repetition subsumes preceding repetition (pos 47)
  "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]"
   ........................................................^
lisp/org/org.el:592:25: In org-tr-regexp: Repetition subsumes preceding repetition (pos 43)
  "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>--?-?<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>"
   ....................................................^
lisp/org/org.el:592:25: In org-tr-regexp: Repetition subsumes preceding repetition (pos 96)
  "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>--?-?<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>"
   ...................................................................................................................^
lisp/org/org.el:596:3: In org-tr-regexp-both: Repetition subsumes preceding repetition (pos 47)
  "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]--?-?[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]"
   ........................................................^
lisp/org/org.el:596:3: In org-tr-regexp-both: Repetition subsumes preceding repetition (pos 107)
  "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]--?-?[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]"
   ..............................................................................................................................^
lisp/org/org.el:599:26: In org-tsr-regexp: Repetition subsumes preceding repetition (pos 43)
  "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>\\(--?-?<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>\\)?"
   ....................................................^
lisp/org/org.el:599:26: In org-tsr-regexp: Repetition subsumes preceding repetition (pos 98)
  "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>\\(--?-?<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>\\)?"
   ......................................................................................................................^
lisp/org/org.el:604:3: In org-tsr-regexp-both: Repetition subsumes preceding repetition (pos 47)
  "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]\\(--?-?[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]\\)?"
   ........................................................^
lisp/org/org.el:604:3: In org-tsr-regexp-both: Repetition subsumes preceding repetition (pos 109)
  "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]\\(--?-?[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^]\r\n>]*?\\)[]>]\\)?"
   .................................................................................................................................^
lisp/org/org.el:9988:19: In call to re-search-forward: Repetition subsumes preceding repetition (pos 106)
  "\\(\\<SCHEDULED: *<\\([^>]+\\)>\\)\\|\\(\\<DEADLINE: *<\\([^>]+\\)>\\)\\|\\(<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} ?[^\r\n>]*?\\)>\\)"
   ................................................................................................................................^
lisp/play/gametree.el:327:21: In call to looking-at: Repetition subsumed by preceding repetition (pos 6)
  "[^\n]*-*-[^\n]*gametree-local-layout: \\([^;\n]*\\);"
   .......^
lisp/progmodes/cc-mode.el:2674:3: In c-Java-defun-prompt-regexp: Repetition subsumes preceding repetition (pos 182)
  "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()\177=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f\v]*\\)+\\)?\\s-*"
   ...........................................................................................................................................................................................................^
lisp/progmodes/cfengine.el:1325:8: In comment-start-skip: Duplicated `\' inside character alternative (pos 12)
  "\\(\\(?:^\\|[^\\\\\n]\\)\\(?:\\\\\\\\\\)*\\)#+[ \t]*"
   ................^
lisp/progmodes/ebnf2ps.el:5983:26: `ebnf-range-regexp' cannot be used for arguments to `skip-chars-forward'
lisp/progmodes/fortran.el:428:3: In fortran-font-lock-keywords-3: Unescaped literal `*' (pos 407)
  "\\<\\(byte\\|c\\(?:haracter\\|om\\(?:mon\\|plex\\)\\)\\|d\\(?:ata\\|imension\\|ouble[ \t]*\\(?:complex\\|precision\\)\\)\\|e\\(?:nd[ \t]*\\(?:map\\|structure\\|union\\)\\|quivalence\\|xternal\\)\\|i\\(?:mplicit[ \t]*\\(?:byte\\|c\\(?:haracter\\|omplex\\)\\|double[ \t]*\\(?:complex\\|precision\\)\\|integer\\|logical\\|none\\|real\\)\\|nt\\(?:eger\\|rinsic\\)\\)\\|logical\\|map\\|none\\|parameter\\|re\\(?:al\\|cord\\)\\|s\\(?:\\(?:av\\|tructur\\)e\\)\\|union\\)\\>[ \t(/]*\\(*\\)?"
   .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................^
lisp/progmodes/fortran.el:463:3: In fortran-font-lock-keywords-4: Unescaped literal `*' (pos 407)
  "\\<\\(byte\\|c\\(?:haracter\\|om\\(?:mon\\|plex\\)\\)\\|d\\(?:ata\\|imension\\|ouble[ \t]*\\(?:complex\\|precision\\)\\)\\|e\\(?:nd[ \t]*\\(?:map\\|structure\\|union\\)\\|quivalence\\|xternal\\)\\|i\\(?:mplicit[ \t]*\\(?:byte\\|c\\(?:haracter\\|omplex\\)\\|double[ \t]*\\(?:complex\\|precision\\)\\|integer\\|logical\\|none\\|real\\)\\|nt\\(?:eger\\|rinsic\\)\\)\\|logical\\|map\\|none\\|parameter\\|re\\(?:al\\|cord\\)\\|s\\(?:\\(?:av\\|tructur\\)e\\)\\|union\\)\\>[ \t(/]*\\(*\\)?"
   .............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................^
lisp/progmodes/idlw-shell.el:1601:3: In idlwave-shell-halting-error: Repetition subsumes preceding repetition (pos 65)
  "^% .*\n\\([^%].*\n\\)*% Execution halted at:\\(\\s-*\\S-+\\s-*[0-9]+\\s-*.*\\)\n"
   ..........................................................................^
lisp/progmodes/opascal.el:1691:5: In call to syntax-propertize-rules: Escaped non-special character `/' (pos 3)
  "(\\(\\/\\)"
   ....^
lisp/progmodes/pascal.el:190:5: In call to syntax-propertize-rules: Escaped non-special character `/' (pos 3)
  "(\\(\\/\\)"
   ....^
lisp/progmodes/perl-mode.el:238:8: In call to syntax-propertize-rules: Unescaped literal `^' (pos 6)
  "\\$ ?{?^?[_[:alpha:]][_[:alnum:]]*\\('\\)[_[:alpha:]]"
   .......^
lisp/progmodes/ruby-mode.el:804:30: In call to looking-at: Repetition subsumes preceding repetition (pos 10)
  "\\s *#\\s *.*\\(en\\)?coding\\s *:\\s *\\([-a-z0-9_]*\\)"
   ............^
lisp/progmodes/sh-script.el:1161:6: In call to syntax-propertize-rules: Repetition of repetition (pos 25)
  "\"\\(?:\\(?:[^\\\"]\\|\\\\.\\)*?\\)??\\(\\$(\\|`\\)"
   ...................................^
lisp/progmodes/simula.el:370:47: In paragraph-start: Escaped non-special character `f' (pos 8)
  "[ \t]*$\\|\\f"
   ..........^
lisp/progmodes/verilog-mode.el:925:3: In verilog-error-font-lock-keywords: Repetition subsumed by preceding repetition (pos 3)
  ".*%?\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ \t:]+\\):\\([0-9]+\\):"
   ...^
lisp/progmodes/verilog-mode.el:925:3: In verilog-error-font-lock-keywords: Repetition subsumed by preceding repetition (pos 3)
  ".*%?\\(Error\\|Warning\\)\\(-[^:]+\\|\\):[\n ]*\\([^ \t:]+\\):\\([0-9]+\\):"
   ...^
lisp/progmodes/verilog-mode.el:5348:23: In call to looking-at: Repetition subsumes preceding repetition (pos 64)
  "\\(.*\\)([WE]\\([0-9A-Z]+\\)).*,\\s +line\\s +[0-9]+:\\s +\\([^:\n]+\\):?.*$"
   ..........................................................................^
lisp/progmodes/verilog-mode.el:6791:24: In call to looking-at: Repetition subsumed by preceding repetition (pos 11)
  "^[^:;]+[ \t]*:"
   ............^
lisp/progmodes/verilog-mode.el:7785:11: In call to re-search-backward: Repetition subsumes preceding repetition (pos 7)
  "//\\s-*.*\\s-*\\(translate\\|coverage\\|lint\\)_\\(on\\|off\\)\\>"
   ........^
lisp/progmodes/verilog-mode.el:7785:11: In call to re-search-backward: Repetition subsumed by preceding repetition (pos 11)
  "//\\s-*.*\\s-*\\(translate\\|coverage\\|lint\\)_\\(on\\|off\\)\\>"
   .............^
lisp/progmodes/verilog-mode.el:7793:10: In call to re-search-forward: Repetition subsumes preceding repetition (pos 7)
  "//\\s-*.*\\s-*\\(translate\\|coverage\\|lint\\)_off\\>"
   ........^
lisp/progmodes/verilog-mode.el:7793:10: In call to re-search-forward: Repetition subsumed by preceding repetition (pos 11)
  "//\\s-*.*\\s-*\\(translate\\|coverage\\|lint\\)_off\\>"
   .............^
lisp/progmodes/verilog-mode.el:7800:10: In call to re-search-backward: Repetition subsumes preceding repetition (pos 7)
  "//\\s-*.*\\s-*\\(translate\\|coverage\\|lint\\)_off\\>"
   ........^
lisp/progmodes/verilog-mode.el:7800:10: In call to re-search-backward: Repetition subsumed by preceding repetition (pos 11)
  "//\\s-*.*\\s-*\\(translate\\|coverage\\|lint\\)_off\\>"
   .............^
lisp/progmodes/verilog-mode.el:7807:22: In call to re-search-forward: Repetition subsumes preceding repetition (pos 7)
  "//\\s-*.*\\s-*\\(translate\\|coverage\\|lint\\)_on\\>"
   ........^
lisp/progmodes/verilog-mode.el:7807:22: In call to re-search-forward: Repetition subsumed by preceding repetition (pos 11)
  "//\\s-*.*\\s-*\\(translate\\|coverage\\|lint\\)_on\\>"
   .............^
lisp/progmodes/verilog-mode.el:9985:30: In call to string-match: Repetition subsumes preceding repetition (pos 15)
  "^\\(\\|[/\\]*[^*?]*[/\\]\\)\\([^/\\]*[*?][^/\\]*\\)\\(.*\\)"
   ..................^
lisp/textmodes/reftex-vars.el:894:5: In reftex-label-regexps: Repetition subsumes preceding repetition (pos 234)
  "\\\\\\(?:begin[[:space:]]*{\\(?:d\\(?:array\\|group\\|math\\|series\\)\\|lstlisting\\)}[[:space:]]*\\|\\(?:ctable\\)\\)\\[[^][]*\\(?:{[^}{]*\\(?:{[^}{]*\\(?:{[^}{]*}[^}{]*\\)*}[^}{]*\\)*}[^][]*\\)*\\<label[[:space:]]*=[[:space:]]*{?\\(?1:[^] ,}\r\n\t%]+\\)}?[^]]*\\]"
   ......................................................................................................................................................................................................................................................................^
lisp/textmodes/tex-mode.el:1255:31: In paragraph-start: Duplicated `\' inside character alternative (pos 11)
  "[ \t]*$\\|[\f\\\\%]\\|[ \t]*\\$\\$"
   ...............^
lisp/textmodes/tex-mode.el:1258:34: In paragraph-separate: Duplicated `\' inside character alternative (pos 11)
  "[ \t]*$\\|[\f\\\\%]\\|[ \t]*\\$\\$[ \t]*$"
   ...............^
lisp/url/url-gw.el:194:30: In call to url-wait-for-string: Repetition subsumed by preceding repetition (pos 22)
  "^\r*Escape character.*\r*\n+"
   ........................^
lisp/vc/ediff-ptch.el:120:3: In ediff-context-diff-label-regexp: Repetition subsumed by preceding repetition (pos 31)
  "\\(^\\*\\*\\* +\\([^ \t\n]+\\)[^*]+[\t ]*\n--- +\\([^ \t\n]+\\)\\|^--- +\\([^ \t\n]+\\).*\n\\+\\+\\+ +\\([^ \t\n]+\\)\\)"
   ........................................^
lisp/vc/pcvs-parse.el:475:18: In call to cvs-match: Repetition subsumes preceding repetition (pos 36)
  " *RCS Version:[ \t]*\\([0-9.]+\\)[ \t]*.*$"
   ........................................^
lisp/bs.el:180:3: In bs-mode-font-lock-keywords: Repetition subsumed by preceding repetition (pos 20)
  "^\\( *M *R *Buffer * *Size * *Mode * *File * *$\\)"
   .....................^
lisp/bs.el:180:3: In bs-mode-font-lock-keywords: Repetition subsumed by preceding repetition (pos 28)
  "^\\( *M *R *Buffer * *Size * *Mode * *File * *$\\)"
   .............................^
lisp/bs.el:180:3: In bs-mode-font-lock-keywords: Repetition subsumed by preceding repetition (pos 36)
  "^\\( *M *R *Buffer * *Size * *Mode * *File * *$\\)"
   .....................................^
lisp/bs.el:180:3: In bs-mode-font-lock-keywords: Repetition subsumed by preceding repetition (pos 44)
  "^\\( *M *R *Buffer * *Size * *Mode * *File * *$\\)"
   .............................................^
lisp/informat.el:340:45: In call to re-search-forward: Repetition subsumes preceding repetition (pos 16)
  "\\*note[ \n]*[^:\t]*:"
   ...................^
lisp/term.el:2794:3: In term-control-seq-regexp: Repetition subsumed by preceding repetition (pos 23)
  "\\(?:[\r\n\000\007\t\b\016\017]\\|\032[^\n]+\r?\n\\|\e\\(?:[DM78c]\\|AnSiT[^\n]+\r?\n\\|\\[\\([0-?]*\\)[ -/]*[@-~]\\)\\)"
   ..............................................^
lisp/term.el:2794:3: In term-control-seq-regexp: Repetition subsumed by preceding repetition (pos 52)
  "\\(?:[\r\n\000\007\t\b\016\017]\\|\032[^\n]+\r?\n\\|\e\\(?:[DM78c]\\|AnSiT[^\n]+\r?\n\\|\\[\\([0-?]*\\)[ -/]*[@-~]\\)\\)"
   ..................................................................................^
test/src/regex-emacs-tests.el:508:43: In call to re-search-forward: Repetition subsumed by preceding repetition (pos 14)
  "^/\\(.*\\)/\\(.*i?\\)$"
   .................^

Finished -- 72 errors (2 suppressed).

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2020-02-20 15:13 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-12-01 22:20 Regexp linting scan Mattias Engdegård
2019-12-02 10:14 ` Richard Copley
2019-12-02 10:19   ` Mattias Engdegård
2019-12-05  0:57     ` Paul Eggert
2019-12-05  2:10       ` Michael Welsh Duggan
2019-12-05 11:38         ` Mattias Engdegård
2019-12-05 12:11           ` Mattias Engdegård
2019-12-06  3:34             ` Paul Eggert
2019-12-05 10:21       ` Mattias Engdegård
  -- strict thread matches above, loose matches on Subject: below --
2020-01-30 16:16 Mattias Engdegård
2020-02-20 15:13 ` Mattias Engdegård

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).