]> git.eshelyaron.com Git - emacs.git/commitdiff
(calculate-c-indent): Don't loop forever at bobp.
authorKarl Heuer <kwzh@gnu.org>
Wed, 30 Mar 1994 01:43:08 +0000 (01:43 +0000)
committerKarl Heuer <kwzh@gnu.org>
Wed, 30 Mar 1994 01:43:08 +0000 (01:43 +0000)
(calculate-c-indent, indent-c-exp): Test char against 0, not nil.

lisp/progmodes/c-mode.el

index 0ceb173a0b2990e8654fa47295253bea21121473..91016c99b9b9a053bdf16fed1438bad6fa287e6c 100644 (file)
@@ -766,23 +766,28 @@ Returns nil if line starts inside a string, t if in a comment."
               (beginning-of-line)
               (c-backward-to-noncomment containing-sexp))
             ;; Check for a preprocessor statement or its continuation lines.
-            ;; Move back to end of previous non-preprocessor line.
+            ;; Move back to end of previous non-preprocessor line,
+            ;; or possibly beginning of buffer.
             (let ((found (point)) stop)
               (while (not stop)
-                (cond ((save-excursion (end-of-line 0)
+                (beginning-of-line)
+                (cond ((bobp)
+                       (setq found (point)
+                             stop t))
+                      ((save-excursion (forward-char -1)
                                        (= (preceding-char) ?\\))
-                       (end-of-line 0))
+                       (forward-char -1))
                       ;; This line is not preceded by a backslash.
                       ;; So either it starts a preprocessor command
                       ;; or any following continuation lines
                       ;; should not be skipped.
-                      ((progn (beginning-of-line) (= (following-char) ?#))
-                       (end-of-line 0)
+                      ((= (following-char) ?#)
+                       (forward-char -1)
                        (setq found (point)))
                       (t (setq stop t))))
               (goto-char found))
             ;; Now we get the answer.
-            (if (and (not (memq (preceding-char) '(nil ?\, ?\; ?\} ?\{)))
+            (if (and (not (memq (preceding-char) '(0 ?\, ?\; ?\} ?\{)))
                      ;; But don't treat a line with a close-brace
                      ;; as a continuation.  It is probably the
                      ;; end of an enum type declaration.
@@ -1177,7 +1182,7 @@ If within a string or comment, move by sentences instead of statements."
                    (if (= (following-char) ?})
                        (setq this-indent (car indent-stack))
                      (c-backward-to-noncomment opoint)
-                     (if (not (memq (preceding-char) '(nil ?\, ?\; ?} ?: ?{)))
+                     (if (not (memq (preceding-char) '(0 ?\, ?\; ?} ?: ?{)))
                          ;; Preceding line did not end in comma or semi;
                          ;; indent this line  c-continued-statement-offset
                          ;; more than previous.