Alan Mackenzie  committed 0a221a4

Fix Emacs bug #10463 - put `widen's around the critical spots.

cc-engine.el (c-in-literal, c-literal-limits): put a widen around each
invocation of c-state-pp-to-literal. Remove an unused let variable.

  • Participants
  • Parent commits 4e9db4d

Comments (0)

Files changed (1)

File cc-engine.el

 Note that this function might do hidden buffer changes.	 See the
 comment at the start of cc-engine.el for more info."
-  (let* ((safe-place (c-state-safe-place (point)))
-	 (lit (c-state-pp-to-literal safe-place (point))))
-    (or (cadr lit)
-	(and detect-cpp
-	     (save-excursion (c-beginning-of-macro))
-	     'pound))))
+  (save-restriction
+    (widen)
+    (let* ((safe-place (c-state-safe-place (point)))
+	   (lit (c-state-pp-to-literal safe-place (point))))
+      (or (cadr lit)
+	  (and detect-cpp
+	       (save-excursion (c-beginning-of-macro))
+	       'pound)))))
 (defun c-literal-limits (&optional lim near not-in-delimiter)
   "Return a cons of the beginning and end positions of the comment or
     (let* ((pos (point))
 	   (lim (or lim (c-state-safe-place pos)))
-	   (pp-to-lit (c-state-pp-to-literal lim pos))
+	   (pp-to-lit (save-restriction
+			(widen)
+			(c-state-pp-to-literal lim pos)))
 	   (state (car pp-to-lit))
-	   (lit-type (cadr pp-to-lit))
 	   (lit-limits (car (cddr pp-to-lit))))