Mercurial > emacs
changeset 3256:14eb227cad41
(c-up-conditional): Handle commented-out #-cmds properly.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 29 May 1993 18:14:34 +0000 |
parents | b04e2b131ef0 |
children | be4f258fb329 |
files | lisp/progmodes/c-mode.el |
diffstat | 1 files changed, 18 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/progmodes/c-mode.el Sat May 29 17:58:03 1993 +0000 +++ b/lisp/progmodes/c-mode.el Sat May 29 18:14:34 1993 +0000 @@ -1271,24 +1271,25 @@ ;; the regexp matcher. (funcall search-function "#[ \t]*\\(if\\|elif\\|endif\\)" - nil t) - (progn - (beginning-of-line) - (looking-at "^[ \t]*#[ \t]*\\(if\\|elif\\|endif\\)"))) - ;; Update depth according to what we found. + nil t)) (beginning-of-line) - (cond ((looking-at "[ \t]*#[ \t]*endif") - (setq depth (+ depth increment))) - ((looking-at "[ \t]*#[ \t]*elif") - (if (and forward (= depth 0)) - (setq found (point)))) - (t (setq depth (- depth increment)))) - ;; If this line exits a level of conditional, exit inner loop. - (if (< depth 0) - (setq found (point))) - ;; When searching forward, start from end of line - ;; so that we don't find the same line again. - (if forward (end-of-line)))) + ;; Now verify it is really a preproc line. + (if (looking-at "^[ \t]*#[ \t]*\\(if\\|elif\\|endif\\)") + (progn + ;; Update depth according to what we found. + (beginning-of-line) + (cond ((looking-at "[ \t]*#[ \t]*endif") + (setq depth (+ depth increment))) + ((looking-at "[ \t]*#[ \t]*elif") + (if (and forward (= depth 0)) + (setq found (point)))) + (t (setq depth (- depth increment)))) + ;; If this line exits a level of conditional, exit inner loop. + (if (< depth 0) + (setq found (point))) + ;; When searching forward, start from end of line + ;; so that we don't find the same line again. + (if forward (end-of-line)))))) (or found (error "No containing preprocessor conditional")) (goto-char (setq new found)))