Remove unneeded save-excursion.
authorFanael Linithien <fanael4@gmail.com>
Mon, 24 Nov 2014 18:09:33 +0000 (19:09 +0100)
committerFanael Linithien <fanael4@gmail.com>
Mon, 24 Nov 2014 18:09:33 +0000 (19:09 +0100)
syntax-propertize-function is allowed to move the point and mark.

misc/ninja-mode.el

index 71825d5..639e537 100644 (file)
 
 (defun ninja-syntax-propertize (start end)
   (save-match-data
-    (save-excursion
-      (goto-char start)
-      (while (search-forward "#" end t)
-        (let ((match-pos (match-beginning 0)))
-          (when (and
-                 ;; Is it the first non-white character on the line?
-                 (eq match-pos (save-excursion (back-to-indentation) (point)))
-                 (save-excursion
-                   (goto-char (line-end-position 0))
-                   (or
-                    ;; If we're continuting the previous line, it's not a
-                    ;; comment.
-                    (not (eq ?$ (char-before)))
-                    ;; Except if the previous line is a comment as well, as the
-                    ;; continuation dollar is ignored then.
-                    (nth 4 (syntax-ppss)))))
-            (put-text-property match-pos (1+ match-pos) 'syntax-table '(11))
-            (let ((line-end (line-end-position)))
-              ;; Avoid putting properties past the end of the buffer.
-              ;; Otherwise we get an `args-out-of-range' error.
-              (unless (= line-end (1+ (buffer-size)))
-                (put-text-property line-end (1+ line-end) 'syntax-table '(12))))))))))
+    (goto-char start)
+    (while (search-forward "#" end t)
+      (let ((match-pos (match-beginning 0)))
+        (when (and
+               ;; Is it the first non-white character on the line?
+               (eq match-pos (save-excursion (back-to-indentation) (point)))
+               (save-excursion
+                 (goto-char (line-end-position 0))
+                 (or
+                  ;; If we're continuting the previous line, it's not a
+                  ;; comment.
+                  (not (eq ?$ (char-before)))
+                  ;; Except if the previous line is a comment as well, as the
+                  ;; continuation dollar is ignored then.
+                  (nth 4 (syntax-ppss)))))
+          (put-text-property match-pos (1+ match-pos) 'syntax-table '(11))
+          (let ((line-end (line-end-position)))
+            ;; Avoid putting properties past the end of the buffer.
+            ;; Otherwise we get an `args-out-of-range' error.
+            (unless (= line-end (1+ (buffer-size)))
+              (put-text-property line-end (1+ line-end) 'syntax-table '(12)))))))))
 
 ;;;###autoload
 (define-derived-mode ninja-mode prog-mode "ninja"