sieve: fix script name when uploading
authorJulien Danjou <julien@danjou.info>
Mon, 28 Feb 2011 16:47:44 +0000 (17:47 +0100)
committerJulien Danjou <julien@danjou.info>
Mon, 28 Feb 2011 16:47:44 +0000 (17:47 +0100)
Signed-off-by: Julien Danjou <julien@danjou.info>
lisp/ChangeLog
lisp/sieve.el

index 1bebba7..c41fbf7 100644 (file)
@@ -1,3 +1,10 @@
+2011-02-28  Julien Danjou  <julien@danjou.info>
+
+       * sieve.el (sieve-buffer-script-name): New local variable to store
+       sieve script name.
+       (sieve-edit-script): Store sieve script name.
+       (sieve-upload): Use sieve script name when uploading.
+
 2011-02-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
        * gnus-group.el (gnus-import-other-newsrc-file): New function.
index 31b2665..8cdd717 100644 (file)
@@ -98,6 +98,9 @@ require \"fileinto\";
 
 (defvar sieve-manage-buffer nil)
 (defvar sieve-buffer-header-end nil)
+(defvar sieve-buffer-script-name nil
+  "The real script name of the buffer.")
+(make-local-variable 'sieve-buffer-script-name)
 
 ;; Sieve-manage mode:
 
@@ -204,6 +207,7 @@ require \"fileinto\";
       (switch-to-buffer (get-buffer-create "template.siv"))
       (insert sieve-template))
     (sieve-mode)
+    (setq sieve-buffer-script-name name)
     (message "Press C-c C-l to upload script to server.")))
 
 (defmacro sieve-change-region (&rest body)
@@ -363,12 +367,12 @@ Server  : " server ":" (or port "2000") "
 ;;;###autoload
 (defun sieve-upload (&optional name)
   (interactive)
-  (unless name
-    (setq name (buffer-name)))
   (when (or (get-buffer sieve-buffer) (call-interactively 'sieve-manage))
     (let ((script (buffer-string)) err)
       (with-current-buffer (get-buffer sieve-buffer)
-       (setq err (sieve-manage-putscript name script sieve-manage-buffer))
+       (setq err (sieve-manage-putscript
+                   (or name sieve-buffer-script-name (buffer-name))
+                   script sieve-manage-buffer))
        (if (sieve-manage-ok-p err)
            (message (concat
                      "Sieve upload done.  Use `C-c RET' to manage scripts."))