(defun xen-reformat-region () "Adjust region based on xen/CODING_STYLE." (interactive "") (save-excursion (let ((start (point)) (end (mark)) (case-fold-search nil) ) (if (not end) (setq end (point-max)) ) (if (< end start) (progn (setq start (mark)) (setq end (point)) ) ) (goto-char start) (while (word-search-forward "if" end t) (if (looking-at "(") (insert-char ? 1) ) (if (looking-at " ") (just-one-space) ) (if (looking-at "(") (progn (forward-char) (insert-char ? 1) (just-one-space) (backward-char 2) (forward-sexp) (backward-char 1) (insert-char ? 1) (just-one-space) ) ) ) (goto-char start) (while (word-search-forward "while" end t) (if (looking-at "(") (insert-char ? 1) ) (if (looking-at " ") (just-one-space) ) (if (looking-at "(") (progn (forward-char) (insert-char ? 1) (just-one-space) (backward-char 2) (forward-sexp) (backward-char 1) (insert-char ? 1) (just-one-space) ) ) ) (goto-char start) (while (word-search-forward "for" end t) (if (looking-at "(") (insert-char ? 1) ) (if (looking-at " ") (just-one-space) ) (if (looking-at "(") (progn (forward-char) (insert-char ? 1) (just-one-space) (backward-char 2) (forward-sexp) (backward-char 1) (insert-char ? 1) (just-one-space) ) ) ) (goto-char start) (while (word-search-forward "switch" end t) (if (looking-at "(") (insert-char ? 1) ) (if (looking-at " ") (just-one-space) ) (if (looking-at "(") (progn (forward-char) (insert-char ? 1) (just-one-space) (backward-char 2) (forward-sexp) (backward-char 1) (insert-char ? 1) (just-one-space) ) ) ) (goto-char start) (while (word-search-forward "do" end t) (if (eolp) (delete-char 1) ) (if (looking-at "(") (insert-char ? 1) ) (if (looking-at " ") (just-one-space) ) (if (looking-at "{") (progn (forward-sexp) (if (eolp) (delete-char 1) ) (insert-char ? 1) (just-one-space) ) ) ) (indent-region start end) (untabify start end) ) ) )