Fix bug: the computed indentation could be negative, which caused
authorChris Hanson <org/chris-hanson/cph>
Sat, 23 Mar 1996 06:17:00 +0000 (06:17 +0000)
committerChris Hanson <org/chris-hanson/cph>
Sat, 23 Mar 1996 06:17:00 +0000 (06:17 +0000)
Scheme to die with a SIGSEGV.

v7/src/edwin/cinden.scm

index 5582a767c457781cb5c3432efcb53f785385cf2f..ec506d1ef8f2647d1f3043de1e10ce77e5d62801 100644 (file)
@@ -1,8 +1,8 @@
 ;;; -*-Scheme-*-
 ;;;
-;;;    $Id: cinden.scm,v 1.12 1995/02/07 23:50:20 cph Exp $
+;;;    $Id: cinden.scm,v 1.13 1996/03/23 06:17:00 cph Exp $
 ;;;
-;;;    Copyright (c) 1986, 1989-95 Massachusetts Institute of Technology
+;;;    Copyright (c) 1986, 1989-96 Massachusetts Institute of Technology
 ;;;
 ;;;    This material was developed by the Scheme project at the
 ;;;    Massachusetts Institute of Technology, Department of
@@ -126,10 +126,10 @@ This is in addition to c-continued-statement-offset."
           start
           (backward-definition-start start 1 'LIMIT))))
        ((char-match-forward #\} start)
-        (- indentation (ref-variable c-indent-level start)))
+        (max 0 (- indentation (ref-variable c-indent-level start))))
        ((char-match-forward #\{ start)
-        (+ indentation (ref-variable c-brace-offset start)))
-       (else indentation)))
+        (max 0 (+ indentation (ref-variable c-brace-offset start))))
+       (else (max 0 indentation))))
 \f
 (define (calculate-indentation mark parse-start)
   (let ((indent-point (line-start mark 0)))