unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#31727: 25.3; format-spec clobbers match data
@ 2018-06-05 17:30 Ryan Thompson
  2018-06-05 17:39 ` Noam Postavsky
  0 siblings, 1 reply; 5+ messages in thread
From: Ryan Thompson @ 2018-06-05 17:30 UTC (permalink / raw)
  To: 31727

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

The following code throws an error:

(progn
   (string-match "h.*o" "hello")
   (format-spec "This sets the %s" (format-spec-make ?s "match data"))
   (match-string 0 "hello"))

This is because the implementation of "format-spec" uses regular
expressions internally, and does not save the match data and restore it
afterward.


In GNU Emacs 25.3.2 (x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
of 2017-09-12 built on lcy01-32
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description: Ubuntu 16.04.3 LTS

Configured using:
'configure --build=x86_64-linux-gnu --prefix=/usr
'--includedir=${prefix}/include' '--mandir=${prefix}/share/man'
'--infodir=${prefix}/share/info' --sysconfdir=/etc --localstatedir=/var
--disable-silent-rules '--libdir=${prefix}/lib/x86_64-linux-gnu'
'--libexecdir=${prefix}/lib/x86_64-linux-gnu' --disable-maintainer-mode
--disable-dependency-tracking --prefix=/usr --sharedstatedir=/var/lib
--program-suffix=25 --with-modules --with-x=yes --with-x-toolkit=gtk3
'CFLAGS=-g -O2 -fstack-protector-strong -Wformat
-Werror=format-security' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2'
'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro''

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

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

Major mode: Lisp Interaction

Minor modes in effect:
recentf-mode: t
magit-auto-revert-mode: t
global-git-commit-mode: t
async-bytecomp-package-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
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
minibuffer-electric-default-mode: t
minibuffer-depth-indicate-mode: t
midnight-mode: t
ido-yes-or-no-mode: t
ido-ubiquitous-mode: 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
ido-everywhere: t
override-global-mode: t
tooltip-mode: t
global-eldoc-mode: t
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
blink-cursor-mode: t
auto-composition-mode: t
auto-encryption-mode: t
auto-compression-mode: t
line-number-mode: t
transient-mark-mode: t

Recent messages:

Mark set
Entering debugger...
Back to top level
((115 . "match data"))
"This sets the match data"
Entering debugger...
Back to top level
Mark set [2 times]
Indenting region...done

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

Features:
(shadow sort mail-extr eieio-opt speedbar sb-image ezimage dframe
markdown-mode edit-indirect poly-R poly-markdown poly-noweb polymode
poly-base polymode-weave polymode-export polymode-debug polymode-methods
poly-lock polymode-compat polymode-classes eieio-compat polymode-core
eieio-custom eieio-base color dabbrev tabify bs two-column iso-transl
tramp-cache crux bug-reference magit-imenu git-rebase recentf
tree-widget misearch multi-isearch dired-aux magit-filenotify
magit-obsolete magit-blame magit-stash magit-bisect magit-remote
magit-commit magit-sequence magit-notes magit-worktree magit-branch
magit-files magit-refs magit-status magit esh-var esh-io esh-cmd esh-opt
esh-ext esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util
dired-x magit-repos magit-apply magit-wip magit-log magit-diff
smerge-mode magit-core magit-autorevert magit-process magit-margin
magit-mode derived magit-git magit-section magit-popup git-commit
magit-utils crm log-edit pcvs-util add-log with-editor async-bytecomp
async org-eldoc sh-script smie org-rmail org-mhe org-irc org-info
org-gnus org-docview doc-view jka-compr image-mode org-bibtex bibtex
org-bbdb org-w3m flymake ess-toolbar ess-mouse mouseme ess-swv ess-noweb
ess-noweb-font-lock-mode ess-bugs-l ess-sas-d ess-sas-l ess-sas-a
ess-stata-mode ess-stata-lang cc-vars cc-defs make-regexp essd-els
ess-sp6-d ess-dde ess-sp3-d ess-julia julia-mode ess-r-mode
ess-r-package ess-r-syntax ess-r-completion ess-roxy essddr ess-rd
hideshow ess-s-lang ess-help ess-site autorevert filenotify vc-git
diff-mode editorconfig-core editorconfig-core-handle
editorconfig-fnmatch server emacsbug message rfc822 mml mml-sec epg
mailabbrev gmm-utils mailheader sendmail mail-utils yaml-mode
with-simulated-input tempbuf system-specific-settings snakemake-mode
python tramp-sh smooth-scrolling slime arc-mode archive-mode hyperspec
browse-url reveal-in-osx-finder dired rainbow-delimiters pretty-symbols
paradox paradox-menu paradox-commit-list hydra lv paradox-execute
paradox-github paradox-core spinner subr-x org-bullets
occur-context-resize noflet cl-indent mac-pseudo-daemon lexbind-mode iqa
highlight-defined header2 git-wip-mode vc vc-dispatcher
git-gutter-fringe fringe-helper ess ess-mode ess-noweb-mode ess-inf
ess-tracebug compile ess-generics ess-utils cl ess-custom executable
ess-compat tramp tramp-compat tramp-loaddefs trampver ucs-normalize
shell editorconfig cask-mode cask cask-bootstrap shut-up epl git
commander buttercup warnings ert pp ewoc debug buttercup-compat
auto-complete edmacro kmacro popup adjust-parens req-package view
req-package-cycles req-package-args req-package-hooks
req-package-providers ht log4e rx etags xref project face-remap
ws-butler winner which-key which-func imenu volatile-highlights
sml-modeline savehist saveplace minibuf-eldef mb-depth midnight
ido-yes-or-no ido-completing-read+ memoize cus-edit wid-edit
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 ido
cus-start cus-load exec-path-from-shell f dash s quelpa-use-package
use-package diminish bind-key parse-time quelpa url-parse auth-source
eieio eieio-core gnus-util password-cache url-vars package-build
mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045
ietf-drums mm-util help-fns mail-prsvr json map lisp-mnt org-element
cl-seq avl-tree org advice org-macro org-footnote org-pcomplete
pcomplete org-list org-faces org-entities noutline outline easy-mmode
org-version ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table
ob-keys ob-exp ob-comint comint ansi-color ring ob-core ob-eval
org-compat org-macs org-loaddefs format-spec find-func cal-menu calendar
cal-loaddefs finder-inf cl-macs slime-autoloads info package epg-config
seq byte-opt gv bytecomp byte-compile cl-extra help-mode easymenu cconv
cl-loaddefs pcase cl-lib time-date mule-util tooltip eldoc electric
uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win
term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe
tabulated-list newcomment elisp-mode lisp-mode prog-mode register page
menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock
syntax facemenu font-core 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 charscript case-table epa-hook jka-cmpr-hook help
simple abbrev 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
dbusbind inotify dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty make-network-process emacs)

Memory information:
((conses 16 1078179 128814)
(symbols 48 55161 0)
(miscs 40 6908 2768)
(strings 32 288544 14357)
(string-bytes 1 4934592)
(vectors 16 81854)
(vector-slots 8 1654802 140198)
(floats 8 1379 2658)
(intervals 56 28826 5171)
(buffers 976 123)
(heap 1024 105005 5280))

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

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

* bug#31727: 25.3; format-spec clobbers match data
  2018-06-05 17:30 bug#31727: 25.3; format-spec clobbers match data Ryan Thompson
@ 2018-06-05 17:39 ` Noam Postavsky
  2018-06-05 17:49   ` Ryan Thompson
  2018-06-06 21:30   ` Richard Stallman
  0 siblings, 2 replies; 5+ messages in thread
From: Noam Postavsky @ 2018-06-05 17:39 UTC (permalink / raw)
  To: Ryan Thompson; +Cc: 31727

On 5 June 2018 at 13:30, Ryan Thompson <rct@thompsonclan.org> wrote:
>
> The following code throws an error:
>
> (progn
>    (string-match "h.*o" "hello")
>    (format-spec "This sets the %s" (format-spec-make ?s "match data"))
>    (match-string 0 "hello"))
>
> This is because the implementation of "format-spec" uses regular
> expressions internally, and does not save the match data and restore it
> afterward.

(elisp) Match Data:

Notice that all functions are allowed to overwrite the match data
unless they’re explicitly documented not to do so.





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

* bug#31727: 25.3; format-spec clobbers match data
  2018-06-05 17:39 ` Noam Postavsky
@ 2018-06-05 17:49   ` Ryan Thompson
  2018-06-05 22:30     ` Noam Postavsky
  2018-06-06 21:30   ` Richard Stallman
  1 sibling, 1 reply; 5+ messages in thread
From: Ryan Thompson @ 2018-06-05 17:49 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 31727

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

On Tue, Jun 5, 2018 at 10:39 AM Noam Postavsky <npostavs@gmail.com> wrote:

> On 5 June 2018 at 13:30, Ryan Thompson <rct@thompsonclan.org> wrote:
> >
> > The following code throws an error:
> >
> > (progn
> >    (string-match "h.*o" "hello")
> >    (format-spec "This sets the %s" (format-spec-make ?s "match data"))
> >    (match-string 0 "hello"))
> >
> > This is because the implementation of "format-spec" uses regular
> > expressions internally, and does not save the match data and restore it
> > afterward.
>
> (elisp) Match Data:
>
> Notice that all functions are allowed to overwrite the match data
> unless they’re explicitly documented not to do so.
>

Wow, I was not aware of that. This seems... really fragile. In any case, I
suppose the behavior is as documented, so you can close this bug.

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

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

* bug#31727: 25.3; format-spec clobbers match data
  2018-06-05 17:49   ` Ryan Thompson
@ 2018-06-05 22:30     ` Noam Postavsky
  0 siblings, 0 replies; 5+ messages in thread
From: Noam Postavsky @ 2018-06-05 22:30 UTC (permalink / raw)
  To: Ryan Thompson; +Cc: 31727

tags 31727 notabug
close 31727
quit

Ryan Thompson <rct@thompsonclan.org> writes:

>> (elisp) Match Data:
>>
>> Notice that all functions are allowed to overwrite the match data
>> unless they’re explicitly documented not to do so.
>>
>
> Wow, I was not aware of that. This seems... really fragile.

And yet, it usually works :)

> In any case, I suppose the behavior is as documented, so you can close
> this bug.

Done.






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

* bug#31727: 25.3; format-spec clobbers match data
  2018-06-05 17:39 ` Noam Postavsky
  2018-06-05 17:49   ` Ryan Thompson
@ 2018-06-06 21:30   ` Richard Stallman
  1 sibling, 0 replies; 5+ messages in thread
From: Richard Stallman @ 2018-06-06 21:30 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: rct, 31727

[[[ To any NSA and FBI agents reading my email: please consider    ]]]
[[[ whether defending the US Constitution against all enemies,     ]]]
[[[ foreign or domestic, requires you to follow Snowden's example. ]]]

Since 'format' does not clobber the match data,
I think users will expect 'format-spec' to behave likewise.

So I think we should fix it to preserve the match data,
one way or another.

That is the choice that makes Emacs simpler to program for.


-- 
Dr Richard Stallman
President, Free Software Foundation (https://gnu.org, https://fsf.org)
Internet Hall-of-Famer (https://internethalloffame.org)







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

end of thread, other threads:[~2018-06-06 21:30 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-05 17:30 bug#31727: 25.3; format-spec clobbers match data Ryan Thompson
2018-06-05 17:39 ` Noam Postavsky
2018-06-05 17:49   ` Ryan Thompson
2018-06-05 22:30     ` Noam Postavsky
2018-06-06 21:30   ` Richard Stallman

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