(defun nagios-indent-line(&optional flag)
"Indents a line, taking nesting into account."
+ (interactive)
(nagios-indent-to (nagios-calculate-indent))
)
)
)
-(defun pos-offset()
+(defun point-offset()
;; How far are we from the beginning of the line?
(- (point) (beginning-of-line-pos))
)
;; How far is the first character on this line
;; from the beginning of the line?
(save-excursion
- (+ (pos-offset) (skip-chars-forward " \t"))
+ (beginning-of-line)
+ (skip-chars-forward " \t")
)
)
(defun nagios-indent-to(indent-column)
"Indent the current line to column indent-column."
-
;; Store the point in orig-pos.
(let ((orig-point (point)))
(let ((text-delta (- (first-char-offset) orig-first-char-offset)))
(goto-char (+ orig-point text-delta))
)
+
+ ;; The point should never wind up to the left of indent-column, so
+ ;; if it's there, move it over to indent-column.
+ (if (< (point-offset) indent-column)
+ (goto-char indent-column)
+ )
)
)
)
(defun nagios-calculate-indent()
"Calculate the level of indentation."
- ;; We're either inside a block, or we aren't.
+ ;; We're either inside a block, or we aren't.
;; Initialize the indent variable to either nagios-indent-level
;; or 0 depending on whether or not we're in a block.
(let ((indent (if (nagios-in-block)
- (setq indent nagios-indent-level)
+ nagios-indent-level
0)
)
)