]> git.eshelyaron.com Git - emacs.git/commitdiff
Revert "Signal an error for the regexp "[:alnum:]""
authorMattias Engdegård <mattiase@acm.org>
Thu, 27 Feb 2020 17:29:56 +0000 (18:29 +0100)
committerMattias Engdegård <mattiase@acm.org>
Thu, 27 Feb 2020 17:58:05 +0000 (18:58 +0100)
This reverts commit 8d5e8cddab732ac90e9ae930c63f7830f9dab24f.

etc/NEWS
src/regex-emacs.c
test/src/regex-emacs-tests.el

index 96a612b53408320a375d5f838e31c817d0f2d393..ee3a3c19e7c42023b7a0f1b91f11f433254f74c6 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -202,11 +202,6 @@ Emacs now supports bignums so this old glitch is no longer needed.
 'previous-system-time-locale' have been removed, as they were created
 by mistake and were not useful to Lisp code.
 
-** The regexp mistake '[:digit:]' is now an error.
-The correct syntax is '[[:digit:]]'.  Previously, forgetting the extra
-brackets silently resulted in a regexp that did not at all work as
-intended.
-
 \f
 * Lisp Changes in Emacs 28.1
 
index 38824370e056cc78eb332537b402b13cafb231d6..694431c95e244408277ecc524f5f673dfb963aba 100644 (file)
@@ -818,8 +818,7 @@ typedef enum
   REG_ESIZE,           /* Compiled pattern bigger than 2^16 bytes.  */
   REG_ERPAREN,         /* Unmatched ) or \); not returned from regcomp.  */
   REG_ERANGEX,         /* Range striding over charsets.  */
-  REG_ESIZEBR,          /* n or m too big in \{n,m\} */
-  REG_ECLASSBR,         /* Missing [] around [:class:].  */
+  REG_ESIZEBR           /* n or m too big in \{n,m\} */
 } reg_errcode_t;
 
 static const char *re_error_msgid[] =
@@ -843,7 +842,6 @@ static const char *re_error_msgid[] =
    [REG_ERPAREN] = "Unmatched ) or \\)",
    [REG_ERANGEX ] = "Range striding over charsets",
    [REG_ESIZEBR ] = "Invalid content of \\{\\}",
-   [REG_ECLASSBR] = "Class syntax is [[:digit:]]; missing brackets",
   };
 
 /* For 'regs_allocated'.  */
@@ -2002,23 +2000,6 @@ regex_compile (re_char *pattern, ptrdiff_t size,
 
            laststart = b;
 
-            /* Check for the mistake of forgetting the extra square brackets,
-               as in "[:alpha:]".  */
-            if (*p == ':')
-              {
-                re_char *q = p + 1;
-                while (q != pend && *q != ']')
-                  {
-                    if (*q == ':')
-                      {
-                        if (q + 1 != pend && q[1] == ']' && q > p + 1)
-                          FREE_STACK_RETURN (REG_ECLASSBR);
-                        break;
-                      }
-                    q++;
-                  }
-              }
-
            /* Test '*p == '^' twice, instead of using an if
               statement, so we need only one BUF_PUSH.  */
            BUF_PUSH (*p == '^' ? charset_not : charset);
index 661d416e6a72b1562e0027ade6439525d3fd53b3..f9372e37b110cc75d771019cf59a374ed2b46924 100644 (file)
@@ -803,9 +803,4 @@ This evaluates the TESTS test cases from glibc."
   (should-not (string-match "å" "\xe5"))
   (should-not (string-match "[å]" "\xe5")))
 
-(ert-deftest regexp-invalid ()
-  ;; relint suppression: Duplicated
-  (should-error (string-match "[:space:]" "")
-                :type 'invalid-regexp))
-
 ;;; regex-emacs-tests.el ends here