]> git.eshelyaron.com Git - emacs.git/commitdiff
CC Mode: Fix a coding bug in c-make-keywords-re. This should fix bug #61135
authorAlan Mackenzie <acm@muc.de>
Mon, 30 Jan 2023 20:02:36 +0000 (20:02 +0000)
committerAlan Mackenzie <acm@muc.de>
Mon, 30 Jan 2023 20:02:36 +0000 (20:02 +0000)
* lisp/progmodes/cc-defs.el (c-make-keywords-re): Generate "\>" components in
result regexp when argument ADORN is `appendable'.  This fully fixes a bug
which was half-fixed on 2019-01-22.

lisp/progmodes/cc-defs.el

index bdbc03e7c94e3911a495a55e77bed847251d3919..aa6f33e9cab18cb172198d5557e15d16c0f9daa8 100644 (file)
@@ -1994,7 +1994,7 @@ when it's needed.  The default is the current language taken from
            ;; doesn't occur in any word in LIST.  Append it to all
            ;; the alternatives where we want to add \>.  Run through
            ;; `regexp-opt' and then replace it with \>.
-           (let ((unique "") pos)
+           (let ((unique "") (list1 (copy-tree list)) pos)
              (while (let (found)
                       (setq unique (concat unique "@")
                             pos list)
@@ -2005,13 +2005,12 @@ when it's needed.  The default is the current language taken from
                                     t))
                         (setq pos (cdr pos)))
                       found))
-             (setq pos (copy-tree list)
-                   )
+             (setq pos list1)
              (while pos
                (if (string-match "\\w\\'" (car pos))
                    (setcar pos (concat (car pos) unique)))
                (setq pos (cdr pos)))
-             (setq re (regexp-opt list))
+             (setq re (regexp-opt list1))
              (setq pos 0)
              (while (string-match unique re pos)
                (setq pos (+ (match-beginning 0) 2)