changeset 15230:307b7c77a5e5

(pascal-end-of-statement, pascal-calculate-indent): Set parse-sexp-ignore-comments to t before parsing. (pascal-indent-case): Save position of cursor, and restores it after reindenting the code.
author Richard M. Stallman <rms@gnu.org>
date Mon, 13 May 1996 16:25:13 +0000
parents a270351f6e0c
children afc59ce2842a
files lisp/progmodes/pascal.el
diffstat 1 files changed, 7 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/pascal.el	Mon May 13 15:24:25 1996 +0000
+++ b/lisp/progmodes/pascal.el	Mon May 13 16:25:13 1996 +0000
@@ -612,7 +612,8 @@
 (defun pascal-end-of-statement ()
   "Move forward to end of current statement."
   (interactive)
-  (let ((nest 0) pos
+  (let ((parse-sexp-ignore-comments t)
+	(nest 0) pos
 	(regexp (concat "\\(" pascal-beg-block-re "\\)\\|\\("
 			pascal-end-block-re "\\)")))
     (if (not (looking-at "[ \t\n]")) (forward-sexp -1))
@@ -784,7 +785,8 @@
   "Calculate the indent of the current Pascal line.
 Return a list of two elements: (INDENT-TYPE INDENT-LEVEL)."
   (save-excursion
-    (let* ((oldpos (point))
+    (let* ((parse-sexp-ignore-comments t)
+	   (oldpos (point))
 	   (state (save-excursion (parse-partial-sexp (point-min) (point))))
 	   (nest 0) (par 0) (complete (looking-at "[ \t]*end\\>"))
 	   (elsed (looking-at "[ \t]*else\\>"))
@@ -895,8 +897,8 @@
 
 (defun pascal-indent-case ()
   "Indent within case statements."
-  (skip-chars-forward ": \t")
-  (let ((end (prog2
+  (let ((savepos (point-marker))
+	(end (prog2
 		 (end-of-line)
 		 (point-marker)
 	       (re-search-backward "\\<case\\>" nil t)))
@@ -930,7 +932,7 @@
 	(insert " "))
       (setq oldpos (point))
       (pascal-end-of-statement))
-    (goto-char oldpos)))
+    (goto-char savepos)))
 
 (defun pascal-indent-paramlist (&optional arg)
   "Indent current line in parameterlist.