emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master ef4440a 2/2: Revert "Signal an error for the regexp "[:alnum:]""


From: Mattias Engdegård
Subject: master ef4440a 2/2: Revert "Signal an error for the regexp "[:alnum:]""
Date: Thu, 27 Feb 2020 12:58:13 -0500 (EST)

branch: master
commit ef4440a9c80b284d46ecce47f4d387f132bbf374
Author: Mattias Engdegård <address@hidden>
Commit: Mattias Engdegård <address@hidden>

    Revert "Signal an error for the regexp "[:alnum:]""
    
    This reverts commit 8d5e8cddab732ac90e9ae930c63f7830f9dab24f.
---
 etc/NEWS                      |  5 -----
 src/regex-emacs.c             | 21 +--------------------
 test/src/regex-emacs-tests.el |  5 -----
 3 files changed, 1 insertion(+), 30 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index 96a612b..ee3a3c1 100644
--- 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.
-
 
 * Lisp Changes in Emacs 28.1
 
diff --git a/src/regex-emacs.c b/src/regex-emacs.c
index 3882437..694431c 100644
--- a/src/regex-emacs.c
+++ b/src/regex-emacs.c
@@ -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);
diff --git a/test/src/regex-emacs-tests.el b/test/src/regex-emacs-tests.el
index 661d416..f9372e3 100644
--- a/test/src/regex-emacs-tests.el
+++ b/test/src/regex-emacs-tests.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]