unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#37396: 26.3; execute-kbd-macro changes current buffer inside with-temp-buffer and similar forms
@ 2019-09-13  1:18 Ryan C. Thompson
  2019-09-13  7:36 ` martin rudalics
  0 siblings, 1 reply; 5+ messages in thread
From: Ryan C. Thompson @ 2019-09-13  1:18 UTC (permalink / raw)
  To: 37396

[-- Attachment #1: Type: text/plain, Size: 26955 bytes --]

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))


[-- Attachment #2: Type: text/html, Size: 30547 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#37396: 26.3; execute-kbd-macro changes current buffer inside with-temp-buffer and similar forms
  2019-09-13  1:18 bug#37396: 26.3; execute-kbd-macro changes current buffer inside with-temp-buffer and similar forms Ryan C. Thompson
@ 2019-09-13  7:36 ` martin rudalics
  2021-01-30  7:35   ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: martin rudalics @ 2019-09-13  7:36 UTC (permalink / raw)
  To: Ryan C. Thompson, 37396

 > 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





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#37396: 26.3; execute-kbd-macro changes current buffer inside with-temp-buffer and similar forms
  2019-09-13  7:36 ` martin rudalics
@ 2021-01-30  7:35   ` Lars Ingebrigtsen
  2021-01-31  6:09     ` Ryan C. Thompson
  0 siblings, 1 reply; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-30  7:35 UTC (permalink / raw)
  To: martin rudalics; +Cc: Ryan C. Thompson, 37396

martin rudalics <rudalics@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





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#37396: 26.3; execute-kbd-macro changes current buffer inside with-temp-buffer and similar forms
  2021-01-30  7:35   ` Lars Ingebrigtsen
@ 2021-01-31  6:09     ` Ryan C. Thompson
  2021-01-31  7:46       ` Lars Ingebrigtsen
  0 siblings, 1 reply; 5+ messages in thread
From: Ryan C. Thompson @ 2021-01-31  6:09 UTC (permalink / raw)
  To: Lars Ingebrigtsen, martin rudalics; +Cc: 37396

On 1/30/21 2:35 AM, Lars Ingebrigtsen wrote:
> martin rudalics <rudalics@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.





^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#37396: 26.3; execute-kbd-macro changes current buffer inside with-temp-buffer and similar forms
  2021-01-31  6:09     ` Ryan C. Thompson
@ 2021-01-31  7:46       ` Lars Ingebrigtsen
  0 siblings, 0 replies; 5+ messages in thread
From: Lars Ingebrigtsen @ 2021-01-31  7:46 UTC (permalink / raw)
  To: Ryan C. Thompson; +Cc: 37396

"Ryan C. Thompson" <rct@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





^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2021-01-31  7:46 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-09-13  1:18 bug#37396: 26.3; execute-kbd-macro changes current buffer inside with-temp-buffer and similar forms Ryan C. Thompson
2019-09-13  7:36 ` martin rudalics
2021-01-30  7:35   ` Lars Ingebrigtsen
2021-01-31  6:09     ` Ryan C. Thompson
2021-01-31  7:46       ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).