(defun add-header-guard () (interactive) (if (buffer-file-name) (let ((fn (upcase (file-name-nondirectory (file-name-sans-extension buffer-file-name)))) (begin (point-marker))) (goto-char (point-min)) (insert "#ifndef _" fn "_H" "\n#define _" fn "_H\t1" "\n") (goto-char (point-max)) (insert "\n#endif") (goto-char begin)) (message (concat "Buffer " (buffer-name) " must have a filename"))))