(defmacro cw-open/close-tag (command open-tag close-tag)
`(defun ,command (beg end)
(interactive "r")
(let ((start-tag ,open-tag)
(end-tag ,close-tag))
(save-excursion
(goto-char beg)
(insert start-tag)
(goto-char (+ end (length start-tag)))
(insert end-tag)))))
(cw-open/close-tag cw-enscript-scheme "\n" "\n")
(cw-open/close-tag cw-enscript-elisp "\n" "\n")
(cw-open/close-tag cw-enscript-c "\n" "\n")
(cw-open/close-tag cw-procedure "" "")
(cw-open/close-tag cw-constant "" "")
(cw-open/close-tag cw-syntax "" "")