Subject: 27.0.50; sieve-upload doesn't work if no sieve-buffer

From: OGAWA Hirofumi <[email-masked]>
Date: Sun, 30 Sep 2018 08:27:33 +0900

`sieve-upload' uploads `current-buffer' to sieve daemon. But it doesn't
work as expected if `sieve-buffer' is nil.  Because if `sieve-buffer' is
nil, it calls `sieve-manage' to open network stream, then `sieve-manage'
changes `current-buffer'.

This fixes it by using `save-current-buffer' to call `sieve-manage'.

---

 lisp/net/sieve.el |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff -puN lisp/net/sieve.el~sieve-fixes lisp/net/sieve.el
--- emacs/lisp/net/sieve.el~sieve-fixes	2018-09-30 07:33:22.576515187 +0900
+++ emacs-hirofumi/lisp/net/sieve.el	2018-09-30 07:33:22.577515181 +0900
@@ -345,7 +345,8 @@ Used to bracket operations which move po
 ;;;###autoload
 (defun sieve-upload (&optional name)
   (interactive)
-  (when (or (get-buffer sieve-buffer) (call-interactively 'sieve-manage))
+  (when (or (get-buffer sieve-buffer)
+            (save-current-buffer (call-interactively 'sieve-manage)))
     (let ((script (buffer-string)) err)
       (with-current-buffer (get-buffer sieve-buffer)
 	(setq err (sieve-manage-putscript
_

In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2018-08-04 built on devron
Repository revision: da0054c30729e58259c1e7251cb03c8ef13ff943
Windowing system distributor 'The X.Org Foundation', version 11.0.12001000
System Description: Debian GNU/Linux buster/sid

Recent messages:
Sorry, can’t move spam from spam group nnimap+ibmpc.myhome.or.jp:Junk to spam group nnimap+ibmpc.myhome.or.jp:Junk
3 spam messages were registered by backend spam-use-move.
Expiring articles...done
Saving /home/hirofumi/.newsrc.eld...
Saving file /home/hirofumi/.newsrc.eld...
Wrote /home/hirofumi/.newsrc.eld
Saving /home/hirofumi/.newsrc.eld...done
Making completion list... [2 times]
Quit [2 times]
Mark saved where search started

Configured using:
 'configure --libexecdir=/usr/local/lib --with-x --with-x-toolkit=gtk3
 --without-xim --with-xpm --with-jpeg --with-tiff --with-gif --with-png
 --with-rsvg --with-dbus --with-wide-int --with-modules'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY ACL
LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11 MODULES THREADS JSON LCMS2

Important settings:
  value of $LANG: ja_JP.UTF-8
  value of $XMODIFIERS: @im=ibus
  locale-coding-system: utf-8-unix

Major mode: Group

Minor modes in effect:
  shell-dirtrack-mode: t
  gnus-topic-mode: t
  gnus-undo-mode: t
  flycheck-pos-tip-mode: t
  global-flycheck-mode: t
  auto-insert-mode: t
  yas-global-mode: t
  yas-minor-mode: t
  global-company-mode: t
  company-mode: t
  savehist-mode: t
  eyebrowse-mode: t
  icomplete-mode: t
  show-paren-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t

Load-path shadows:
None found.

Features:
(shadow emacsbug apropos edebug backtrace info wgrep shell pcomplete
eieio-opt speedbar sb-image ezimage dframe pulse semantic/symref/grep
grep compile comint semantic/symref semantic/util-modes semantic/util
semantic semantic/tag semantic/lex semantic/fw mode-local cedet vc-mtn
vc-hg vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs vc vc-dispatcher
cl-print thingatpt help-fns radix-tree misearch multi-isearch dired-aux
sendmail nnir bbdb-gui bbdb-hooks gnus-dup url-http url-gw url-auth
url-cache jka-compr gnus-notifications gnus-fun notifications dbus
hl-line elfeed-show elfeed-search bookmark elfeed-csv elfeed elfeed-curl
elfeed-log elfeed-db elfeed-lib avl-tree generator url-queue xml-query
pp sort gnus-cite shr-color color shr text-property-search svg xml dom
browse-url qp mm-archive gnus-async gnus-bcklg gnus-ml disp-table
gnus-topic utf-7 rfc2104 gnutls network-stream nsm nnfolder bbdb-gnus
bbdb-snarf mail-extr nnnil spam spam-stat bbdb-com warnings bbdb
timezone gnus-uu yenc gnus-demon gnus-delay gnus-draft gnus-agent
gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg
gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum nndraft nnmh
gnus-group gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source
utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rmc
puny rfc822 mml mml-sec epa mm-decode mm-bodies mm-encode mail-parse
rfc2231 mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util
rmail rmail-loaddefs rfc2047 rfc2045 ietf-drums mail-utils wid-edit
dircolors-faces ansi-color dired-x dired dired-loaddefs
company-yasnippet flyspell ispell server generic-x multi-translate
google-translate-smooth-ui google-translate google-translate-default-ui
google-translate-core-ui ido google-translate-core google-translate-tk
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-domsuf url-util mailcap magit-autoloads git-modes-autoloads
flycheck-pos-tip pos-tip flycheck find-func autoinsert yasnippet
elec-pair company-oddmuse company-keywords company-etags etags xref
project ring company-gtags company-dabbrev-code company-dabbrev
company-files company-capf company-cmake company-xcode company-clang
company-semantic company-eclim company-template company-bbdb company
edmacro kmacro bbdb-autoloads savehist browse-kill-ring cl
eyebrowse-session desktop frameset eyebrowse format-spec dash icomplete
paren mozc-im-indicater mozc-popup popup mozc-im advice mm-util
mail-prsvr time-date mule-util mozc rx finder-inf package let-alist
derived pcase cl-extra help-mode easymenu url-handlers url-parse
auth-source cl-seq eieio eieio-core cl-macs eieio-loaddefs
password-cache json map url-vars seq byte-opt gv bytecomp byte-compile
cconv epg epg-config subr-x cl-loaddefs cl-lib japan-util tooltip eldoc
electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win
x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads dbusbind inotify lcms2 dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 842374 184907)
 (symbols 48 49050 109)
 (miscs 40 653 2447)
 (strings 32 391245 18606)
 (string-bytes 1 14422662)
 (vectors 16 136748)
 (vector-slots 8 2577719 173822)
 (floats 8 23424 982)
 (intervals 56 12861 870)
 (buffers 992 64))

-- 
OGAWA Hirofumi <[email-masked]>