
;; Print the parent function in emacs lisp
(defun c-print-defun-name ()
  (interactive)
  (save-excursion
    (c-beginning-of-defun)
    (end-of-line 0)
    (let ((end (point)))
      (c-beginning-of-statement)
      (let ((start (point)))
        (setq string (buffer-substring start end))
        (message "%s" (replace-regexp-in-string "[ \t\n]+" " " string))))))

;; original angus less version
;; (defun print-defun-name ()
;;   (interactive)
;;   (save-excursion
;;     (beginning-of-defun)
;;     (beginning-of-line 0)
;;     (let ((start (point))
;;           string)
;;       (end-of-line 2)
;;       (setq string (buffer-substring start (point)))
;;       (message "%s" (replace-regexp-in-string "[ \t\n]" " " string)))))
