Add support for editing the patch headers.
Index: quilt-el/quilt.el
===================================================================
--- quilt-el.orig/quilt.el	2007-04-14 16:38:13.000000000 +0900
+++ quilt-el/quilt.el	2007-04-14 17:14:38.000000000 +0900
@@ -378,6 +378,43 @@
 		(quilt-cmd (concat "delete " p))
 		(quilt-revert))))))))
 
+(defun quilt-header-commit ()
+  "commit to change patch header"
+  (interactive)
+  (let* ((tmp (make-temp-file "quilt-header-")))
+    (set-visited-file-name tmp)
+    (basic-save-buffer)
+    (cd quilt-header-directory)
+    (shell-command (concat "EDITOR=cat quilt -r header <" tmp))
+    (kill-buffer (current-buffer))
+    (delete-file tmp)))
+
+(defvar quilt-header-mode-map (make-keymap))
+(define-key quilt-header-mode-map "\C-c\C-c" 'quilt-header-commit)
+
+(defun quilt-edit-header (arg)
+  "Edit the header of a patch"
+  (interactive "P")
+  (let* ((qd (quilt-dir)))
+    (if (not qd)
+	(quilt-cmd "push")		; to print error message
+      (let* ((p (if arg
+		   (quilt-complete-list "Edit patch: " (quilt-patch-list))
+		 (quilt-top-patch))))
+	(if (string-equal p "")
+	    (message "no patch name is supplied")
+	  (let* ((qb (get-buffer-create (format " *quilt-heaer(%s)*" p))))
+	    (switch-to-buffer-other-window qb)
+	    (erase-buffer)
+	    (kill-all-local-variables)
+	    (make-local-variable 'quilt-header-directory)
+	    (setq quilt-header-directory default-directory)
+	    (setq mode-map "quilt-header")
+	    (use-local-map quilt-header-mode-map)
+	    (setq major-mode 'quilt-header-mode)
+	    (call-process "quilt" nil qb nil "header" p)
+	    (goto-char 0)))))))
+
 (defvar quilt-mode-map (make-sparse-keymap))
 (define-key quilt-mode-map "\C-c.t" 'quilt-top)
 (define-key quilt-mode-map "\C-c.f" 'quilt-find-file)
@@ -399,6 +436,7 @@
 (define-key quilt-mode-map "\C-c.R" 'quilt-remove)
 (define-key quilt-mode-map "\C-c.s" 'quilt-edit-series)
 (define-key quilt-mode-map "\C-c.h" 'quilt-header)
+(define-key quilt-mode-map "\C-c.H" 'quilt-edit-header)
 (define-key quilt-mode-map "\C-c.D" 'quilt-delete)
 
 (defvar quilt-mode nil)
