]> git.eshelyaron.com Git - emacs.git/commitdiff
(i) Remove any hard syntax-table properties for <, > inserted by C-y.
authorAlan Mackenzie <acm@muc.de>
Thu, 25 Feb 2010 21:21:25 +0000 (21:21 +0000)
committerAlan Mackenzie <acm@muc.de>
Thu, 25 Feb 2010 21:21:25 +0000 (21:21 +0000)
(ii) Remove category text props, not syntax-table ones in unmarking <, >.

lisp/ChangeLog
lisp/progmodes/cc-engine.el
lisp/progmodes/cc-mode.el

index d0cdaf25a23f45ed5959ef3d36e35915d5f85164..59bd441f0d88385a22ccf6b79a39ad833bde2868 100644 (file)
@@ -1,3 +1,13 @@
+2010-02-25  Alan Mackenzie  <acm@muc.de>
+
+       * progmodes/cc-engine.el (c-clear-<-pair-props)
+       (c-clear->-pair-props): Correct to wipe category text props, not
+       syntax-table ones.
+
+       * progmodes/cc-mode.el (c-after-change): Remove any hard
+       syntax-table properties for <, > which, e.g., C-y has
+       inopportunely converted from category properties.
+
 2010-02-24  Chong Yidong  <cyd@stupidchicken.com>
 
        * files.el (hack-local-variables-filter): For eval forms, also
index 3b7f6e4ea0a3672bccfd00c13bf4808133aa9711..336e2c392627de2a5d557397b52bb43bda28214d 100644 (file)
@@ -4929,8 +4929,8 @@ comment at the start of cc-engine.el for more info."
        (c-go-list-forward))
       (when (equal (c-get-char-property (1- (point)) 'syntax-table)
                   c->-as-paren-syntax) ; should always be true.
-       (c-clear-char-property (1- (point)) 'syntax-table))
-      (c-clear-char-property pos 'syntax-table))))
+       (c-clear-char-property (1- (point)) 'category))
+      (c-clear-char-property pos 'category))))
 
 (defun c-clear->-pair-props (&optional pos)
   ;; POS (default point) is at a > character.  If it is marked with
@@ -4946,8 +4946,8 @@ comment at the start of cc-engine.el for more info."
        (c-go-up-list-backward))
       (when (equal (c-get-char-property (point) 'syntax-table)
                        c-<-as-paren-syntax) ; should always be true.
-       (c-clear-char-property (point) 'syntax-table))
-      (c-clear-char-property pos 'syntax-table))))
+       (c-clear-char-property (point) 'category))
+      (c-clear-char-property pos 'category))))
 
 (defun c-clear-<>-pair-props (&optional pos)
   ;; POS (default point) is at a < or > character.  If it has an
index 57f87c04b8890641143f88087328397c8abc9423..7f9ed6436f48338b295623f3d78b4977800a036f 100644 (file)
@@ -642,11 +642,9 @@ compatible with old code; callers should always specify it."
     (widen)
     (save-excursion
       (if c-get-state-before-change-functions
-         (let ((beg (point-min))
-               (end (point-max)))
-           (mapc (lambda (fn)
-                   (funcall fn beg end))
-                 c-get-state-before-change-functions)))
+         (mapc (lambda (fn)
+                 (funcall fn (point-min) (point-max)))
+               c-get-state-before-change-functions))
       (if c-before-font-lock-function
          (funcall c-before-font-lock-function (point-min) (point-max)
                   (- (point-max) (point-min))))))
@@ -1042,6 +1040,14 @@ Note that the style variables are always made local to the buffer."
          (when (> beg end)
            (setq beg end)))
 
+       ;; C-y is capable of spuriously converting category properties
+       ;; c-</>-as-paren-syntax into hard syntax-table properties.  Remove
+       ;; these when it happens.
+       (c-clear-char-property-with-value beg end 'syntax-table
+                                         c-<-as-paren-syntax)
+       (c-clear-char-property-with-value beg end 'syntax-table
+                                         c->-as-paren-syntax)
+
        (c-trim-found-types beg end old-len) ; maybe we don't need all of these.
        (c-invalidate-sws-region-after beg end)
        (c-invalidate-state-cache beg)