changeset 14776:d392e3ffa1bb

(pascal-declaration-end): Now locates the end of a parameterlist correctly. (electric-pascal-tab): Never indented a line when pascal-tab-always-indent was set to nil. (pascal-indent-case): Now locates the end of a case-statement correctly.
author Richard M. Stallman <rms@gnu.org>
date Thu, 07 Mar 1996 05:53:10 +0000
parents f4cc1bc9ec2c
children 658f41757279
files lisp/progmodes/pascal.el
diffstat 1 files changed, 13 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/pascal.el	Wed Mar 06 19:20:09 1996 +0000
+++ b/lisp/progmodes/pascal.el	Thu Mar 07 05:53:10 1996 +0000
@@ -244,7 +244,8 @@
 		 "[:=]\\|\\(\\<record\\>\\)\\|\\(\\<end\\>\\)" 
 		 (save-excursion (end-of-line 2) (point)) t))
       (cond ((match-beginning 1) (setq nest (1+ nest)))
-	    ((match-beginning 2) (setq nest (1- nest)))))))
+	    ((match-beginning 2) (setq nest (1- nest)))
+	    ((looking-at "[^(\n]+)") (setq nest 0))))))
 
 
 (defun pascal-declaration-beg ()
@@ -427,7 +428,11 @@
 	(save-excursion
 	  (beginning-of-line)
 	  (pascal-indent-line))
-      (insert "\t"))
+      (if (save-excursion
+	    (skip-chars-backward " \t")
+	    (bolp))
+	  (pascal-indent-line)
+	(insert "\t")))
     (pascal-indent-command)))
 
 
@@ -903,10 +908,12 @@
 	   "^[ \t]*[^ \t,:]+[ \t]*\\(,[ \t]*[^ \t,:]+[ \t]*\\)*:"
 	   (marker-position end) 'move)
 	  (forward-char -1))
-      (delete-horizontal-space)
-      (if (> (current-column) ind)
-	  (setq ind (current-column)))
-      (pascal-end-of-statement))
+      (if (< (point) (marker-position end))
+	  (progn
+	    (delete-horizontal-space)
+	    (if (> (current-column) ind)
+		(setq ind (current-column)))
+	    (pascal-end-of-statement))))
     (goto-char beg)
     (setq oldpos (marker-position end))
     ;; Indent all case statements