From 2cc769a8c3b869fdeedd470501ab8d93c2182554 Mon Sep 17 00:00:00 2001 From: Alan Mackenzie Date: Wed, 11 Jan 2012 22:21:44 +0000 Subject: [PATCH] Fix Emacs bug #10463 - put `widen's around the critical spots. --- lisp/ChangeLog | 8 ++++++++ lisp/progmodes/cc-engine.el | 19 +++++++++++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 90a2070c87c..4f81fdab8e4 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2012-01-11 Alan Mackenzie + + Fix Emacs bug #10463 - put `widen's around the critical spots. + + * progmodes/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. + 2012-01-11 Glenn Morris * dired-aux.el (dired-do-shell-command): Fix */? logic. (Bug#6561) diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el index 392e5d1c37c..2e0294341da 100644 --- a/lisp/progmodes/cc-engine.el +++ b/lisp/progmodes/cc-engine.el @@ -4211,12 +4211,14 @@ The last point calculated is cached if the cache is enabled, i.e. if 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 @@ -4236,9 +4238,10 @@ comment at the start of cc-engine.el for more info." (save-excursion (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)))) (cond -- 2.39.2