)
+(defun char-is-commented(pos)
+ "True if the character at position pos is commented, nil otherwise."
+ (save-excursion
+ (goto-char pos)
+ (re-search-backward "#" (beginning-of-line-pos) t)
+ )
+)
+
+(defun char-is-commented-and-valid(pos)
+ "True if the character at position pos is commented and non-nil.
+ Nil otherwise."
+ (if (eq nil pos)
+ nil
+ (char-is-commented pos)
+ )
+)
+
(defun last-opening-brace()
- ;; Get the position of the last opening brace, with
- ;; respect to the current point.
+ "Returns the position of the last opening brace, with
+ respect to the current point. Ignores braces which
+ are commented out."
(save-excursion
(let ((lob (re-search-backward "{" nil t)))
+
+ (while (char-is-commented-and-valid lob)
+ (goto-char lob)
+ (setq lob (re-search-backward "{" nil t))
+ )
+
(if lob
lob
-1)
)
)
+
(defun last-closing-brace()
- ;; Get the position of the last closing brace, with
- ;; respect to the current point.
+ "Get the position of the last closing brace, with
+ respect to the current point. Ignores braces which
+ are commented out."
(save-excursion
(let ((lcb (re-search-backward "}" nil t)))
+
+ (while (char-is-commented-and-valid lcb)
+ (goto-char lcb)
+ (setq lcb (re-search-backward "}" nil t))
+ )
+
(if lcb
lcb
-1)
)
;; Set the indentation level to 0 if we find either brace on this
- ;; line.
- (if (brace-on-line)
- (setq indent 0)
+ ;; line and.
+ (if (and (brace-on-line) (not (char-is-commented (brace-on-line))))
+ 0
+ indent
)
-
- indent
)
)