Function: pascal-indent-case
pascal-indent-case is a byte-compiled function defined in
pascal.el.gz.
Signature
(pascal-indent-case)
Documentation
Indent within case statements.
Source Code
;; Defined in /usr/src/emacs/lisp/progmodes/pascal.el.gz
(defun pascal-indent-case ()
"Indent within case statements."
(let ((savepos (point-marker))
(end (prog2
(end-of-line)
(point-marker)
(re-search-backward "\\<case\\>" nil t)))
(beg (point))
(pascal--extra-indent 0))
;; Get right indent
(while (< (point) end)
(if (re-search-forward
"^[ \t]*[^ \t,:]+[ \t]*\\(,[ \t]*[^ \t,:]+[ \t]*\\)*:"
(marker-position end) 'move)
(forward-char -1))
(if (< (point) end)
(progn
(delete-horizontal-space)
(if (> (current-column) pascal--extra-indent)
(setq pascal--extra-indent (current-column)))
(pascal-end-of-statement))))
(goto-char beg)
;; Indent all case statements
(while (< (point) end)
(if (re-search-forward
"^[ \t]*[^][ \t,\\.:]+[ \t]*\\(,[ \t]*[^ \t,:]+[ \t]*\\)*:"
(marker-position end) 'move)
(forward-char -1))
(indent-to (1+ pascal--extra-indent))
(if (/= (following-char) ?:)
()
(forward-char 1)
(delete-horizontal-space)
(insert " "))
(pascal-end-of-statement))
(goto-char savepos)))