GNU bug report logs - #37396
26.3; execute-kbd-macro changes current buffer inside with-temp-buffer and similar forms

Previous Next

Package: emacs;

Reported by: "Ryan C. Thompson" <rct <at> thompsonclan.org>

Date: Fri, 13 Sep 2019 01:20:02 UTC

Severity: normal

Found in version 26.3

Done: Lars Ingebrigtsen <larsi <at> gnus.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 37396 in the body.
You can then email your comments to 37396 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#37396; Package emacs. (Fri, 13 Sep 2019 01:20:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Ryan C. Thompson" <rct <at> thompsonclan.org>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Fri, 13 Sep 2019 01:20:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: "Ryan C. Thompson" <rct <at> thompsonclan.org>
To: bug-gnu-emacs <at> gnu.org
Subject: 26.3; execute-kbd-macro changes current buffer inside
 with-temp-buffer and similar forms
Date: Thu, 12 Sep 2019 18:18:38 -0700
[Message part 1 (text/plain, inline)]
When inside a form that temporarily changes the current buffer, such as 
"with-temp-buffer", running "execute-kbd-macro" appears to switch the 
current buffer back to whatever buffer was current when the current 
command started executing. For example:

(with-temp-buffer
  (list
   ;; Returns the temp buffer
   (current-buffer)
   (execute-kbd-macro "hello")
   ;; Returns the buffer that was current when evaluation began
   (current-buffer)))

As indicated by the comments, the first call to "current-buffer" returns 
the temporary buffer, but the second call, after calling 
"execute-kbd-macro", returns a different buffer (e.g. the scratch 
buffer, if you evaluated the code from there). As far as I can tell, 
"execute-kbd-macro" is not documented to change the current buffer.

This causes problems for my with-simulated-input package, as described 
here: https://github.com/DarwinAwardWinner/with-simulated-input/issues/4

In GNU Emacs 26.3 (build 1, x86_64-apple-darwin18.7.0, NS appkit-1671.60 
Version 10.14.6 (Build 18G95))

of 2019-09-03 built on urania.lan
Windowing system distributor 'Apple', version 10.3.1671
Recent messages:
uncompressing cl-macs.el.gz...done

Killed inactive buffer: *Help*.
Mark set [6 times]
Quit [2 times]
Mark set [3 times]
Type "q" in help window to restore its previous buffer.
Mark set [5 times]
Quit
Mark set [2 times]
Subject, To or body not found
Configured using:
'configure --disable-dependency-tracking --disable-silent-rules
--enable-locallisppath=/usr/local/share/emacs/site-lisp
--infodir=/usr/local/Cellar/emacs-plus/26.3/share/info/emacs
--prefix=/usr/local/Cellar/emacs-plus/26.3 --with-xml2 --without-dbus
--with-gnutls --with-imagemagick --with-modules --with-rsvg --with-ns
--disable-ns-self-contained'

Configured features:
RSVG IMAGEMAGICK GLIB NOTIFY ACL GNUTLS LIBXML2 TOOLKIT_SCROLL_BARS NS
MODULES THREADS LCMS2

Important settings:
value of $LANG: en_US.UTF-8
locale-coding-system: utf-8-unix

Major mode: Lisp Interaction

Minor modes in effect:
global-magit-file-mode: t
magit-auto-revert-mode: t
global-git-commit-mode: t
async-bytecomp-package-mode: t
recentf-mode: t
diff-auto-refine-mode: t
rainbow-delimiters-mode: t
pretty-symbols-mode: t
lexbind-mode: t
highlight-defined-mode: t
shell-dirtrack-mode: t
editorconfig-mode: t
global-auto-complete-mode: t
auto-complete-mode: t
adjust-parens-mode: t
override-global-mode: t
ws-butler-global-mode: t
ws-butler-mode: t
winner-mode: t
which-key-mode: t
which-function-mode: t
volatile-highlights-mode: t
sml-modeline-mode: t
savehist-mode: t
save-place-mode: t
mode-line-bell-mode: t
minibuffer-depth-indicate-mode: t
midnight-mode: t
mac-pseudo-daemon-mode: t
imagex-auto-adjust-mode: t
ido-yes-or-no-mode: t
ido-ubiquitous-mode: t
minibuffer-electric-default-mode: t
ido-everywhere: t
ido-complete-space-or-hyphen-mode: t
icomplete-mode: t
highlight-stages-global-mode: t
highlight-stages-mode: t
global-undo-tree-mode: t
undo-tree-mode: t
global-pointback-mode: t
pointback-mode: t
global-hl-line-mode: t
global-anzu-mode: t
anzu-mode: t
desktop-save-mode: t
delete-selection-mode: t
beacon-mode: t
bar-cursor-mode: t
autopair-global-mode: t
autopair-mode: t
show-paren-mode: t
auto-dim-other-buffers-mode: t
amx-mode: t
tooltip-mode: t
global-eldoc-mode: t
eldoc-mode: t
electric-indent-mode: t
mouse-wheel-mode: t
menu-bar-mode: t
file-name-shadow-mode: t
global-font-lock-mode: t
font-lock-mode: t
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t

Load-path shadows:
/Users/ryan/.emacs.d/elpa/elsa-20190331.858/Elsafile hides 
/Users/ryan/.emacs.d/elpa/flycheck-elsa-20190211.1121/Elsafile
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-stan hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-stan
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-exp hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-exp
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-J hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-J
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-eshell hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-eshell
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-emacs-lisp hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-emacs-lisp
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-gnus hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-gnus
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-css hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-css
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-lob hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-lob
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-forth hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-forth
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-macs hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-macs
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-version hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-version
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-scheme hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-scheme
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-abc hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-abc
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-C hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-C
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-capture hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-capture
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-ref hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-ref
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-clojure hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-clojure
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-mouse hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-mouse
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-ledger hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-ledger
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-ctags hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-ctags
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-entities hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-entities
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-archive hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-archive
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-screen hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-screen
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-haskell hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-haskell
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-asymptote hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-asymptote
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-mhe hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-mhe
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-table hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-table
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-keys hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-keys
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-org hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-org
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-plot hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-plot
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-awk hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-awk
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-groovy hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-groovy
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-octave hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-octave
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-faces hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-faces
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-colview hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-colview
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-R hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-R
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-timer hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-timer
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-ebnf hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-ebnf
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-mobile hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-mobile
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-fortran hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-fortran
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-shell hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-shell
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-perl hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-perl
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-sqlite hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-sqlite
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-sed hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-sed
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-list hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-list
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-ruby hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-ruby
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-eval hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-eval
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-habit hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-habit
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-clock hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-clock
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-html hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-html
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-src hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-src
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-lisp hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-lisp
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-ditaa hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-ditaa
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-pcomplete hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-pcomplete
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-lint hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-lint
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-rmail hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-rmail
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-latex hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-latex
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-sass hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-sass
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-io hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-io
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-tangle hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-tangle
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-calc hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-calc
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-java hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-java
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-icalendar hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-icalendar
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-eww hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-eww
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-md hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-md
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-beamer hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-beamer
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-element hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-element
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-protocol hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-protocol
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-mscgen hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-mscgen
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-gnuplot hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-gnuplot
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-latex hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-latex
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-id hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-id
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-vala hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-vala
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-man hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-man
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-feed hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-feed
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-lua hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-lua
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-table hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-table
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-ocaml hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-ocaml
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-coq hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-coq
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-picolisp hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-picolisp
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-indent hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-indent
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-lilypond hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-lilypond
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-matlab hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-matlab
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-datetree hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-datetree
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-python hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-python
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-bbdb hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-bbdb
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-makefile hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-makefile
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-duration hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-duration
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-agenda hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-agenda
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-dot hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-dot
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-js hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-js
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-publish hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-publish
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-inlinetask hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-inlinetask
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-org hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-org
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-core hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-core
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-compat hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-compat
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-docview hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-docview
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-odt hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-odt
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-plantuml hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-plantuml
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-ascii hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-ascii
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-loaddefs hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-loaddefs
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-w3m hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-w3m
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-bibtex hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-bibtex
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-info hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-info
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-hledger hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-hledger
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-maxima hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-maxima
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-macro hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-macro
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-sql hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-sql
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-attach hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-attach
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-processing hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-processing
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ox-texinfo hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ox-texinfo
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-irc hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-irc
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-crypt hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-crypt
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-footnote hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-footnote
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/org-install hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/org-install
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-comint hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-comint
/Users/ryan/.emacs.d/elpa/org-plus-contrib-20190513/ob-shen hides 
/usr/local/Cellar/emacs-plus/26.3/share/emacs/26.3/lisp/org/ob-shen

Features:
(shadow sort mail-extr macrostep-c cmacexp macrostep cc-mode cc-fonts
cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
bs slime-tests dabbrev make-mode network-stream starttls url-http url-gw
nsm url-cache url-auth eww mm-url url-queue url url-proxy url-privacy
url-expand url-methods url-history url-cookie url-domsuf url-util
mailcap shr svg xml rng-cmpct texnfo-upd texinfo rng-nxml nxml-mode
nxml-outln nxml-rap sgml-mode dom rng-valid org-drill org-learn org-id
hi-lock completion eieio-opt speedbar sb-image ezimage dframe cl-print
magit-imenu git-rebase misearch multi-isearch two-column executable
bug-reference magit-extras magit-filenotify magit-submodule
magit-obsolete magit-popup magit-blame magit-stash magit-reflog
magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-tag
magit-merge magit-branch magit-reset magit-files magit-refs magit-status
magit magit-repos magit-apply magit-wip magit-log magit-diff smerge-mode
magit-core magit-autorevert magit-margin magit-transient magit-process
magit-mode transient git-commit magit-git magit-section magit-utils crm
log-edit pcvs-util with-editor async-bytecomp async crux epa-file
recentf tree-widget flymake-proc flymake elec-pair markdown-mode
edit-indirect autorevert filenotify vc-git diff-mode org-eldoc org-eww
org-rmail org-mhe org-irc org-info org-gnus nnir gnus-sum gnus-group
gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls
utf7 netrc nnoo gnus-spec gnus-int gnus-range gnus-win org-docview
doc-view jka-compr image-mode org-bibtex bibtex org-bbdb org-w3m server
emacsbug message rmc puny rfc822 mml mml-sec epa epg mailabbrev
gmm-utils mailheader sendmail yaml-mode with-simulated-input tempbuf
system-specific-settings snakemake-mode python tramp-sh smooth-scrolling
slime compile arc-mode archive-mode hyperspec browse-url
reveal-in-osx-finder rainbow-delimiters pretty-symbols polymode derived
poly-lock polymode-base polymode-weave polymode-export polymode-compat
polymode-methods polymode-core polymode-classes eieio-custom eieio-base
color paradox paradox-menu paradox-commit-list hydra lv paradox-execute
paradox-github paradox-core spinner package-lint finder org-bullets gnus
nnheader gnus-util rmail rmail-loaddefs mail-utils ox-extra ox-odt
rng-loc rng-uri rng-parse rng-match rng-dt rng-util rng-pttrn nxml-parse
nxml-ns nxml-enc xmltok nxml-util ox-latex ox-icalendar ox-html table
ox-ascii ox-publish ox occur-context-resize noflet cl-indent
lexbind-mode iqa htmlize highlight-defined header2 git-wip-mode vc
vc-dispatcher git-gutter-fringe fringe-helper flycheck-elsa flycheck
filelock ess ess-utils ess-custom tramp tramp-compat tramp-loaddefs
trampver shell elsa elsa-typed-subr elsa-typed-thingatpt
elsa-typed-syntax elsa-extension-builtin elsa-ruleset elsa-rules-list
elsa-analyser elsa-typed-builtin elsa-english elsa-check elsa-state
elsa-scope elsa-reader elsa-type-helpers elsa-error pcase elsa-variable
trinary elsa-types editorconfig diminish decide readme-debian
debian-copyright debian-control-mode debian-changelog-mode add-log
cl-lib-highlight cask-mode cask cask-bootstrap ansi package-recipe-mode
package-build-badges package-build package-recipe eieio-compat json map
shut-up epl git commander buttercup warnings ert ewoc debug
buttercup-compat auto-complete edmacro kmacro popup apt-sources-list
adjust-parens req-package view req-package-cycles req-package-args
req-package-hooks ht log4e use-package use-package-ensure
use-package-delight use-package-diminish use-package-bind-key bind-key
el-get el-get-autoloading el-get-list-packages el-get-dependencies
el-get-build el-get-status pp el-get-methods el-get-fossil el-get-svn
el-get-pacman el-get-github-zip el-get-github-tar el-get-http-zip
el-get-http-tar el-get-hg el-get-go el-get-git-svn el-get-fink
el-get-emacswiki el-get-http el-get-notify el-get-emacsmirror
el-get-github el-get-git el-get-elpa el-get-darcs el-get-cvs el-get-bzr
el-get-brew el-get-builtin el-get-apt-get el-get-recipes
el-get-byte-compile subr-x el-get-custom el-get-core autoload cl dired
dired-loaddefs etags xref project face-remap ws-butler winner which-key
which-func imenu volatile-highlights sml-modeline savehist saveplace
mode-line-bell mb-depth midnight mac-pseudo-daemon image+ image-file
ido-yes-or-no ido-completing-read+ memoize cus-edit wid-edit
minibuf-eldef ido ido-complete-space-or-hyphen icomplete
highlight-stages undo-tree diff pointback assoc hl-line git-gutter anzu
thingatpt desktop frameset delsel beacon bar-cursor autopair paren
auto-dim-other-buffers amx cus-start cus-load exec-path-from-shell f
dash s quelpa-use-package use-package-core cl-extra parse-time quelpa
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util
ietf-drums mail-prsvr lisp-mnt help-fns radix-tree help-mode org-element
avl-tree generator org ob ob-tangle ob-ref ob-lob ob-table ob-exp
org-macro org-footnote org-src ob-comint ob-keys org-pcomplete pcomplete
comint ansi-color ring org-list org-faces org-entities noutline outline
easy-mmode org-version ob-emacs-lisp ob-core ob-eval org-compat advice
org-macs org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs finder-inf rx slime-autoloads info package easymenu
epg-config url-handlers url-parse auth-source cl-seq eieio eieio-core
cl-macs eieio-loaddefs password-cache url-vars seq byte-opt gv bytecomp
byte-compile cconv cl-loaddefs cl-lib time-date tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel term/ns-win ns-win
ucs-normalize mule-util term/common-win 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 kqueue cocoa ns lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 2514916 151329)
(symbols 48 69247 1)
(miscs 40 7557 6145)
(strings 32 433514 7709)
(string-bytes 1 7381142)
(vectors 16 117043)
(vector-slots 8 2420847 101084)
(floats 8 984 2859)
(intervals 56 23608 940)
(buffers 992 118))

[Message part 2 (text/html, inline)]

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#37396; Package emacs. (Fri, 13 Sep 2019 07:37:02 GMT) Full text and rfc822 format available.

Message #8 received at 37396 <at> debbugs.gnu.org (full text, mbox):

From: martin rudalics <rudalics <at> gmx.at>
To: "Ryan C. Thompson" <rct <at> thompsonclan.org>, 37396 <at> debbugs.gnu.org
Subject: Re: bug#37396: 26.3; execute-kbd-macro changes current buffer inside
 with-temp-buffer and similar forms
Date: Fri, 13 Sep 2019 09:36:49 +0200
> When inside a form that temporarily changes the current buffer, such
> as "with-temp-buffer", running "execute-kbd-macro" appears to switch
> the current buffer back to whatever buffer was current when the
> current command started executing.

'execute-kbd-macro' calls command_loop_1 which sets the current buffer
to the buffer shown in the selected window.

> For example:
>
> (with-temp-buffer
>    (list
>     ;; Returns the temp buffer
>     (current-buffer)
>     (execute-kbd-macro "hello")
>     ;; Returns the buffer that was current when evaluation began
>     (current-buffer)))

Try with

(with-temp-buffer
  (let ((restore (window-buffer))
	temp)
    (setq temp (current-buffer))
    (set-window-buffer (selected-window) temp)
    (execute-kbd-macro "hello")
    (set-window-buffer (selected-window) restore)
    (list temp (current-buffer))))

martin




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#37396; Package emacs. (Sat, 30 Jan 2021 07:36:01 GMT) Full text and rfc822 format available.

Message #11 received at 37396 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: martin rudalics <rudalics <at> gmx.at>
Cc: "Ryan C. Thompson" <rct <at> thompsonclan.org>, 37396 <at> debbugs.gnu.org
Subject: Re: bug#37396: 26.3; execute-kbd-macro changes current buffer
 inside with-temp-buffer and similar forms
Date: Sat, 30 Jan 2021 08:35:17 +0100
martin rudalics <rudalics <at> gmx.at> writes:

> 'execute-kbd-macro' calls command_loop_1 which sets the current buffer
> to the buffer shown in the selected window.
>
>> For example:
>>
>> (with-temp-buffer
>>    (list
>>     ;; Returns the temp buffer
>>     (current-buffer)
>>     (execute-kbd-macro "hello")
>>     ;; Returns the buffer that was current when evaluation began
>>     (current-buffer)))
>
> Try with
>
> (with-temp-buffer
>   (let ((restore (window-buffer))
> 	temp)
>     (setq temp (current-buffer))
>     (set-window-buffer (selected-window) temp)
>     (execute-kbd-macro "hello")
>     (set-window-buffer (selected-window) restore)
>     (list temp (current-buffer))))

So this seems to work as designed, so I'm closing this bug report.  If
there's something to be done here, please respond to the debbugs address
and we'll reopen.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug closed, send any further explanations to 37396 <at> debbugs.gnu.org and "Ryan C. Thompson" <rct <at> thompsonclan.org> Request was from Lars Ingebrigtsen <larsi <at> gnus.org> to control <at> debbugs.gnu.org. (Sat, 30 Jan 2021 07:36:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#37396; Package emacs. (Sun, 31 Jan 2021 06:10:01 GMT) Full text and rfc822 format available.

Message #16 received at 37396 <at> debbugs.gnu.org (full text, mbox):

From: "Ryan C. Thompson" <rct <at> thompsonclan.org>
To: Lars Ingebrigtsen <larsi <at> gnus.org>, martin rudalics <rudalics <at> gmx.at>
Cc: 37396 <at> debbugs.gnu.org
Subject: Re: bug#37396: 26.3; execute-kbd-macro changes current buffer inside
 with-temp-buffer and similar forms
Date: Sun, 31 Jan 2021 01:09:01 -0500
On 1/30/21 2:35 AM, Lars Ingebrigtsen wrote:
> martin rudalics <rudalics <at> gmx.at> writes:
>
>> 'execute-kbd-macro' calls command_loop_1 which sets the current buffer
>> to the buffer shown in the selected window.
>>
>>> For example:
>>>
>>> (with-temp-buffer
>>>     (list
>>>      ;; Returns the temp buffer
>>>      (current-buffer)
>>>      (execute-kbd-macro "hello")
>>>      ;; Returns the buffer that was current when evaluation began
>>>      (current-buffer)))
>> Try with
>>
>> (with-temp-buffer
>>    (let ((restore (window-buffer))
>> 	temp)
>>      (setq temp (current-buffer))
>>      (set-window-buffer (selected-window) temp)
>>      (execute-kbd-macro "hello")
>>      (set-window-buffer (selected-window) restore)
>>      (list temp (current-buffer))))
> So this seems to work as designed, so I'm closing this bug report.  If
> there's something to be done here, please respond to the debbugs address
> and we'll reopen.
>
If nothing else, this behavior seems worth noting in the function's 
docstring, since otherwise there's no way to know about it short of 
reading the source.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#37396; Package emacs. (Sun, 31 Jan 2021 07:47:02 GMT) Full text and rfc822 format available.

Message #19 received at 37396 <at> debbugs.gnu.org (full text, mbox):

From: Lars Ingebrigtsen <larsi <at> gnus.org>
To: "Ryan C. Thompson" <rct <at> thompsonclan.org>
Cc: martin rudalics <rudalics <at> gmx.at>, 37396 <at> debbugs.gnu.org
Subject: Re: bug#37396: 26.3; execute-kbd-macro changes current buffer
 inside with-temp-buffer and similar forms
Date: Sun, 31 Jan 2021 08:46:43 +0100
"Ryan C. Thompson" <rct <at> thompsonclan.org> writes:

> If nothing else, this behavior seems worth noting in the function's
> docstring, since otherwise there's no way to know about it short of
> reading the source.

I've now mentioned this in the doc string of the function in Emacs 28.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 28 Feb 2021 12:24:07 GMT) Full text and rfc822 format available.

This bug report was last modified 3 years and 56 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.