X-Git-Url: http://gitweb.michael.orlitzky.com/?p=nagios-mode.git;a=blobdiff_plain;f=nagios-mode.el;h=377400172a2cf08b2123314612205d95d2a52be1;hp=3e869461782acc820a132be3b7446bbf7b428072;hb=2b2a805016e4cf9eae7c4258d2a3d5402420a752;hpb=a752ddc739d752cd88c24d0498d6ed2c3383bdb8 diff --git a/nagios-mode.el b/nagios-mode.el index 3e86946..3774001 100644 --- a/nagios-mode.el +++ b/nagios-mode.el @@ -68,7 +68,8 @@ ;; 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") ) ) @@ -79,7 +80,6 @@ (defun nagios-indent-to(indent-column) "Indent the current line to column indent-column." - ;; Store the point in orig-pos. (let ((orig-point (point))) @@ -93,15 +93,23 @@ (beginning-of-line) ;; Now insert indent-column spaces. - (while (< 0 indent-column) - (insert " ") - (setq indent-column (- indent-column 1))) + (let ((indent-remaining indent-column)) + (while (< 0 indent-remaining) + (insert " ") + (setq indent-remaining (- indent-remaining 1))) + ) ;; The text on the current line just moved left/right some amount; ;; call it text-delta. We want to move the point that same distance. (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 (+ (beginning-of-line-pos) indent-column)) + ) ) ) ) @@ -146,18 +154,20 @@ (defun brace-on-line() ;; Is there a curly brace on this line? (save-excursion + (beginning-of-line) (re-search-forward "[{}]" (end-of-line-pos) t) ) ) + (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) ) )