emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 41d9d51: Merge from origin/emacs-27


From: Glenn Morris
Subject: master 41d9d51: Merge from origin/emacs-27
Date: Sat, 11 Jan 2020 10:55:23 -0500 (EST)

branch: master
commit 41d9d51cf5ac5b76c09802388e1691cf489d9d9d
Merge: 17cfd70 f0ebd91
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-27
    
    f0ebd919c1 (origin/emacs-27) ; * doc/lispref/anti.texi (Antinews): Fi...
    6f059159ee Update Acknowledgments sections
    e1262d45f9 Update Antinews in ELisp manual
    fd8128f0c1 ; Move the description of define-inline to a different nod...
    524441d6b3 Improve wording in the ELisp manual
    8addfa91c8 Reset to the standard value when reverting session's custo...
    d6f9b09777 Fix saving multiple themes
    c556aabde8 Calc: fix interval entry (bug#39040)
    91cd3c1372 Fix horizontal line display in Custom buffers
    15c8e984ae ; * etc/NEWS: Fix a typo.
    ff8996a337 flymake: fix typo in variable binding (bug#38752)
    16eaaa07e6 ; Minor spelling fixes
    5efe795659 Update Antinews in the Emacs manual
    5841240295 Use NSNumber instead of BOOL (bug#39047)
    beec9f64a5 Add comment on fido-mode's file-sorting semantics
    eb3c6ad325 Consider non-string minibuffer-default in icomplete
    
    # Conflicts:
    #   etc/NEWS
---
 doc/emacs/ack.texi             |  27 +++-
 doc/emacs/anti.texi            | 203 ++++++++++++------------
 doc/emacs/emacs.texi           |  15 +-
 doc/lispref/anti.texi          | 342 +++++++++++++++--------------------------
 doc/lispref/elisp.texi         |   2 +-
 doc/lispref/functions.texi     | 196 +++++++++++------------
 doc/lispref/modes.texi         |  17 +-
 etc/NEWS.27                    |   2 +-
 lisp/calc/calc.el              |   2 +-
 lisp/cus-edit.el               |  20 +--
 lisp/custom.el                 |   2 +-
 lisp/icomplete.el              |  17 +-
 lisp/progmodes/flymake-proc.el |   2 +-
 src/nsfns.m                    |   4 +-
 14 files changed, 400 insertions(+), 451 deletions(-)

diff --git a/doc/emacs/ack.texi b/doc/emacs/ack.texi
index e8d0a4b..c622488 100644
--- a/doc/emacs/ack.texi
+++ b/doc/emacs/ack.texi
@@ -236,6 +236,12 @@ Andrew Cohen wrote @file{spam-wash.el}, to decode and 
clean email before
 it is analyzed for spam.
 
 @item
+Daniel Colascione wrote the portable dumping code in @file{pdumper.c}
+and elsewhere.  He also implemented double-buffering for X-based GUI
+frames, and the original support for loading shared-object modules
+into Emacs.
+
+@item
 Theresa O'Connor wrote @file{json.el}, a file for parsing and
 generating JSON files.
 
@@ -503,6 +509,10 @@ Tassilo Horn wrote DocView mode, allowing viewing of PDF, 
PostScript and
 DVI documents.
 
 @item
+Khaled Hosny, Yamamoto Mitsuharu, and Eli Zaretskii implemented
+text shaping with HarfBuzz for Emacs.
+
+@item
 Joakim Hove wrote @file{html2text.el}, a html to plain text converter.
 
 @item
@@ -702,7 +712,9 @@ files.
 Juri Linkov wrote @file{misearch.el}, extending isearch to multi-buffer
 searches; the code in @file{files-x.el} for handling file- and
 directory-local variables; and the @code{info-finder} feature that
-creates a virtual Info manual of package keywords.
+creates a virtual Info manual of package keywords.  He also
+implemented the Tab Bar and window tab-lines, and added numerous
+enhancements and improvements in I-search.
 
 @item
 Leo Liu wrote @file{pcmpl-x.el}, providing completion for
@@ -818,6 +830,11 @@ major modes by inheriting key bindings and commands from 
existing major
 modes.
 
 @item
+Jimmy Aguilar Mena wrote the code to support the @code{:extend} face
+attribute, and also implemented the optional
+@code{display-fill-column-indicator} feature.
+
+@item
 Will Mengarini wrote @file{repeat.el}, a command to repeat the preceding
 command with its arguments.
 
@@ -1084,6 +1101,10 @@ Kevin Ryde wrote @file{info-xref.el}, a library for 
checking
 references in Info files.
 
 @item
+Phil Sainty wrote @file{so-long.el}, a set of features for easier
+editing of files with very long lines.
+
+@item
 James B. Salem and Brewster Kahle wrote @file{completion.el}, providing
 dynamic word completion.
 
@@ -1235,6 +1256,10 @@ Tibor Šimko and Milan Zamazal wrote @file{slovak.el}, 
support for
 editing text in Slovak language.
 
 @item
+João Távora wrote many improvements for @file{flymake.el}, an
+on-the-fly syntax-checking package.
+
+@item
 Luc Teirlinck wrote @file{help-at-pt.el}, providing local help through
 the keyboard.
 
diff --git a/doc/emacs/anti.texi b/doc/emacs/anti.texi
index 6cf573e..5190ae4 100644
--- a/doc/emacs/anti.texi
+++ b/doc/emacs/anti.texi
@@ -4,103 +4,113 @@
 @c See file emacs.texi for copying conditions.
 
 @node Antinews
-@appendix Emacs 25 Antinews
+@appendix Emacs 26 Antinews
 @c Update the emacs.texi Antinews menu entry with the above version number.
 
   For those users who live backwards in time, here is information
-about downgrading to Emacs version 25.3.  We hope you will enjoy the
+about downgrading to Emacs version 26.3.  We hope you will enjoy the
 greater simplicity that results from the absence of many @w{Emacs
 @value{EMACSVER}} features.
 
 @itemize @bullet
 @item
-Emacs no longer defaults to requiring the GnuTLS library when you
-build it.  Those who want the TLS functionality built-in will have to
-explicitly request it at build time---or forever hold their peace.  We
-decided that having the TLS functionality doesn't justify annoying
-users or package builders with error messages about libgnutls absence.
-We also decided that if you do build with GnuTLS, we will allow
-versions of the library older than 2.12.2, as that version will become
-less and less available/popular as you move farther back in time.
+Emacs no longer uses @acronym{GMP}, the GNU Multiple Precision
+library, and doesn't support Lisp integers greater than
+@code{most-positive-fixnum} or smaller than
+@code{most-negative-fixnum}.  We now have only one kind of a Lisp
+integer.  This simplifies many Lisp programs that use integers, and
+makes integer calculations always fast.  If you want larger values,
+use Lisp floats, as Emacs has done since day one.
 
 @item
-For similar reasons, we've reverted back to building our own version
-of @command{movemail} that retrieves POP3 mail as clear text via
-insecure channels.  As you move back in time, the availability of
-secure alternatives to POP3 will diminish, and we are only keen to
-support that.  We've also removed the @option{--with-mailutils}
-configure-time option, as it no longer makes sense for the observable
-past.
+Emacs no longer supports HarfBuzz as the engine for shaping complex
+text.  As you move back in time, we will gradually shed off all traces
+of support for complex text shaping, and this is one step in that
+direction.
 
 @item
-We have removed support for @command{systemd} and similar services: we
-no longer provide a user init file for enabling Emacs support via
-those services, and we removed from the Emacs server the
-socket-launching support important for Emacs client operation under
-these services.  Again, these services will lose popularity as you
-move back in time, so the code supporting them will be just dead code,
-bloating Emacs unnecessarily.
+We have removed support for building with the Jansson library, and
+consequently the native support for JSON parsing is gone.  The
+importance of JSON decreases as we go back in time, so for now using
+the Lisp code for handling it should be good enough; in one of the
+past Emacs versions, we intend to remove even that, as useless bloat.
+
+The library for supporting JSONRPC applications was removed for the
+same reason.
 
 @item
-Reproducible builds of Emacs are no longer supported, as past
-development will make that unnecessary.
+The ``portable dumper'' feature is gone.  We are once again using the
+field-proven ``unexec'' way of dumping Emacs.  With that, the hope for
+being able to re-dump your customized Emacs session is also gone: why
+would anyone want to record their random customization experiments on
+disk, and restore them the next time they start Emacs?  And true
+Emacsers don't restart their Emacs sessions anyway.
 
 @item
-The @option{--fg-daemon} is gone, leaving only @option{--daemon}.  No
-need to procrastinate on the dilemma whether you do or do not want the
-new shiny ``headless Emacs'' thingy.  Hail, simplicity!
+We dropped the support for @acronym{XDG}-style configuration
+directories and the @env{XDG_CONFIG_HOME} environment variable.
+There's once again only one place where Emacs looks for its init
+files: the @file{~/.emacs.d} directory, with the @file{~/.emacs} file
+as fallback.  We think this will go a long way towards preventing
+confusion among users who for some reason have @env{XDG_CONFIG_HOME}
+set, thus risking to have their init files randomly spread between two
+places.  In one of the past Emacs versions, we intend to further
+simplify this, removing the @file{~/.emacs.d} place and leaving only
+@file{~/.emacs}; stay tuned.
+
+For similar reasons, we've removed the ``early init'' file.  You can
+now again use all the tricks you want to initialize variables like
+@code{package-user-dir} and @code{package-load-list} just in time for
+the packages to load.
+
+@command{emacsclient} no longer supports @acronym{XDG}-style directory
+trees, either.
 
 @item
-As text terminals supporting true color will lose ground as you move
-back in time, we've removed support for 24-bit colors on text
-terminals.  If you want colors on a text terminal, you should be fine
-with just 8 of them.  (Truth being told, we think text terminals
-should be monochrome, but you will have to keep downgrading to older
-Emacs versions to have that feature back.)
+TLS connections are back to their lenient security settings.  We
+decided that too tight security settings are an annoyance for users,
+and make little sense considering the world-wide tendency to have
+fewer and fewer network security problems as we move back in time
+(those issues will be completely gone when networks disappear in some
+distant past).
 
 @item
-Emacs 25.3 no longer supports magic signatures of the form
-@samp{#!/usr/bin/env @var{interpreter}} in scripts.  Moving back in
-time means you are getting closer to the ideal of the original Unix
-design where all the interpreters lived in a single directory
-@file{/bin}, so this fancy feature is simply becoming unnecessary
-ballast.
+The @code{server-after-make-frame-hook} hook was deleted, in
+preparation for removing the entire daemon business in some past Emacs
+version.  You will be glad to learn that setting up the GUI
+customizations of your sessions is now once again as easy as it ever
+was, with just the @code{after-make-frame-functions} to use.
 
 @item
-The double-buffering feature of Emacs display on X has been removed.
-We decided that its complexity and a few random surprising
-side-effects aren't justified by the gains, even though those gains
-were hailed in some quarters.  Yes, Emacs 25.3 will flicker in some
-use cases, but we are sure Emacs users will be able to suck it, as
-they have been doing for years.  Since this feature is gone, we've
-also removed the @code{inhibit-double-buffering} frame parameter,
-which is now unnecessary.
+The @code{flex} completion style was removed.  We feel that it
+unnecessarily complicates the Emacs user experience, and therefore
+will continue to remove other tricky completion styles, until in some
+past Emacs version we get to a single original style Emacs pioneered
+decades ago.  Long live simplicity; down with complications!
 
 @item
-Non-breaking hyphens and ASCII characters displayed instead of
-unsupported quote characters are now again displayed using the
-@code{escape-glyph} face.  We think having a single face instead of 3
-different ones will make Emacs customization a much simpler job for
-users.  For the same reason, we've removed the
-@code{header-line-highlight} face, leaving just @code{highlight} for
-any element of the Emacs display besides the mode line.
+The optional display of the fill-column indicator is no longer
+supported.  With the display sizes becoming smaller and smaller as you
+move back in time, we feel that the display itself will always show
+you where to fill or wrap your text, and do this much more easily and
+reliably than eny such display indicator.
 
 @item
-You can no longer disable attempts of recovery from fatal exceptions
-such as C stack overflows and fatal signals.  Since the recovery
-included in Emacs is reliable enough, we decided there was no reason
-to put your edits in danger of becoming lost when these situations
-happen.  The variables @code{attempt-stack-overflow-recovery} and
-@code{attempt-orderly-shutdown-on-fatal-signal} are therefore removed.
+We removed the features that made visiting large files easier.  Thus,
+Emacs will no longer suggest visiting a large file literally, nor will
+offer the @code{so-long} mode to deal with overly-long lines.  We
+decided that this simplification is worthwhile, given that the general
+tendency of having very large files is becoming a rarity as we move
+back in time.
 
 @item
-The @code{list-timers} command was removed, as we decided timers are
-not a user-level feature, and therefore users should not be allowed to
-mess with them.  Ask an Emacs Lisp guru near you for help if you have
-a runaway timer in your session.  (Of course, as you move back in
-time, such runaway timers will become less and less frequent, and
-actually timers might start shutting down automatically, as they
-cannot cope with time reversal.)
+We have removed the feature that displayed echo-area messages without
+hiding content of the active minibuffer.  This should prevent user
+confusion from having two unrelated pieces of text staring at them,
+with no clear separation between them.  Users with good memories (and
+Emacs users are all expected to be of that kind) will have no trouble
+keeping the minibuffer text in their minds, and typing the responses
+without actually seeing the prompts.
 
 @item
 Horizontal scrolling using the mouse or touchpad has been removed.  In
@@ -110,14 +120,20 @@ horizontal scrolling is the first step towards its 
complete removal in
 prior Emacs versions.
 
 @item
-We have found the @option{--tramp} option of @command{emacsclient} too
-risky and too complicated, so we removed it to simplify the client
-code and its usage.
+The @code{main-thread} variable and @code{list-threads} were removed,
+and @code{thread-join} no longer returns the result of the finished
+thread.  We intend to remove the support for Lisp threads in some past
+Emacs version, so we continue removing the associated complexities and
+features as we go back in time.
 
 @item
-The @code{display-raw-bytes-as-hex} variable is gone, so raw bytes can
-only be displayed as octal escapes.  Emacs users should be able to
-convert from octal to any other base in their sleep!
+Tab bar and window tab-lines were removed.  This should make the Emacs
+display simpler and less cluttered, and help those users who disable
+menu bar and tool bar in their GUI sessions.  The fashion to provide
+tabs in every GUI application out there is gaining less and less
+popularity as we move back in time, and will completely disappear at
+some past point; removing the tabs from Emacs is the step in that
+direction.
 
 @item
 Displaying line numbers for a buffer is only possibly using add-on
@@ -129,42 +145,15 @@ Consequently, @code{display-line-numbers-mode} was 
removed.
 
 @item
 On our permanent quest for simplifying Emacs, we've removed the
-support for passing command-line arguments and options to Emacs via
-the @option{--alternate-editor} option of @command{emacsclient} and
-@env{ALTERNATE_EDITOR} environment variable.  There's only one True
-Emacs---the one that comes up when invoked as @kbd{emacs}, no need for
-all those fancy options!
-
-@item
-The complication known as ``single-line horizontal scrolling'' is no
-longer with you in Emacs 25.3.  This feature was a bow to ``other
-editors''; instead, let those other editors bow to Emacs by hscrolling
-the entire window at all times.  Repeat after me: ``The Emacs way is
-the Only Way!''
-
-@item
-The fancy case conversions of non-ASCII characters used in several
-locales, like Turkish and Greek, are removed, leaving the relations
-between upper and lower letter-case simple again, as they were in
-7-bit ASCII.  Likewise with ligatures that turn into multiple
-characters when their letter-case changes---gone.
-
-@item
-Enchant is no longer supported by @code{ispell-buffer} and similar
-spell-checking commands.  As Enchant will gradually disappear while
-you move back in time, its support will become unnecessary anyway.
-
-@item
-Tramp lost its support for Google Drive repositories.  Cloud storage
-is on its way to extinction as you move back in time, thus making this
-feature redundant.
+support for changing the font size by turning the mouse wheel.
 
 @item
 Several commands, deemed to be unnecessary complications, have been
-removed.  Examples include @code{replace-buffer-contents} and
-@code{apropos-local-variable}.
+removed.  Examples include @code{make-empty-file},
+@code{font-lock-refontify}, @code{xref-find-definitions-at-mouse},
+@code{make-frame-on-monitor}, and @code{diff-buffers}.
 
 @item
 To keep up with decreasing computer memory capacity and disk space, many
-other functions and files have been eliminated in Emacs 25.3.
+other functions and files have been eliminated in Emacs 26.3.
 @end itemize
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 1368f3e..0400ed0 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -219,7 +219,7 @@ Appendices
 * GNU Free Documentation License:: The license for this documentation.
 * Emacs Invocation::    Hairy startup options.
 * X Resources::         X resources for customizing Emacs.
-* Antinews::            Information about Emacs version 25.
+* Antinews::            Information about Emacs version 26.
 * Mac OS / GNUstep::     Using Emacs under macOS and GNUstep.
 * Microsoft Windows::   Using Emacs on Microsoft Windows and MS-DOS.
 * Manifesto::           What's GNU?  Gnu's Not Unix!
@@ -1404,6 +1404,7 @@ Berry, Anna M. Bigatti, Ray Blaak, Martin Blais, Jim 
Blandy, Johan
 Bockgård, Jan Böcker, Joel Boehland, Lennart Borgman, Per Bothner,
 Terrence Brannon, Frank Bresz, Peter Breton, Emmanuel Briot, Kevin
 Broadey, Vincent Broman, Michael Brouwer, David M. Brown, Ken Brown, Stefan 
Bruda,
+Daniel Colascione,
 Georges Brun-Cottan, Joe Buehler, Scott Byer, Włodek Bzyl, Tino Calancha,
 Bill Carpenter, Per Cederqvist, Hans Chalupsky, Chris Chase, Bob
 Chassell, Andrew Choi, Chong Yidong, Sacha Chua, Stewart Clamen, James
@@ -1429,7 +1430,7 @@ Guillaume, Dmitry Gutov, Doug Gwyn, Bruno Haible, 
Ken'ichi Handa, Lars Hansen, C
 Hanson, Jesper Harder, Alexandru Harsanyi, K. Shane Hartman, John
 Heidemann, Jon K. Hellan, Magnus Henoch, Markus Heritsch, Dirk
 Herrmann, Karl Heuer, Manabu Higashida, Konrad Hinsen, Anders Holst,
-Jeffrey C. Honig, Tassilo Horn, Kurt Hornik, Tom Houlder, Joakim
+Jeffrey C. Honig, Tassilo Horn, Kurt Hornik, Khaled Hosny, Tom Houlder, Joakim
 Hove, Denis Howe, Lars Ingebrigtsen, Andrew Innes, Seiichiro Inoue,
 Philip Jackson, Martyn Jago, Pavel Janik, Paul Jarc, Ulf Jasper,
 Thorsten Jolitz, Michael K. Johnson, Kyle Jones, Terry Jones, Simon
@@ -1449,7 +1450,7 @@ Lüdecke, Greg McGary, Roland McGrath, Michael McNamara, 
Alan Mackenzie,
 Christopher J. Madsen, Neil M. Mager, Artur Malabarba, Ken Manheimer, Bill 
Mann,
 Brian Marick, Simon Marshall, Bengt Martensson, Charlie Martin,
 Yukihiro Matsumoto, Tomohiro Matsuyama, David Maus, Thomas May, Will 
Mengarini, David
-Megginson, Stefan Merten, Ben A. Mesander, Wayne Mesard, Brad
+Megginson, Jimmy Aguilar Mena, Stefan Merten, Ben A. Mesander, Wayne Mesard, 
Brad
 Miller, Lawrence Mitchell, Richard Mlynarik, Gerd Möllmann, Dani Moncayo, 
Stefan
 Monnier, Keith Moore, Jan Moringen, Morioka Tomohiko, Glenn Morris,
 Don Morrison, Diane Murray, Riccardo Murri, Sen Nagata, Erik Naggum,
@@ -1468,7 +1469,7 @@ Reitter, Alex Rezinsky, Rob Riepel, Lara Rios, Adrian 
Robert, Nick
 Roberts, Roland B. Roberts, John Robinson, Denis B. Roegel, Danny
 Roozendaal, Sebastian Rose, William Rosenblatt, Markus Rost, Guillermo
 J. Rozas, Martin Rudalics, Ivar Rummelhoff, Jason Rumney, Wolfgang
-Rupprecht, Benjamin Rutt, Kevin Ryde, James B. Salem, Masahiko Sato,
+Rupprecht, Benjamin Rutt, Kevin Ryde, Phil Sainty, James B. Salem, Masahiko 
Sato,
 Timo Savola, Jorgen Schäfer, Holger Schauer, William Schelter, Ralph
 Schleicher, Gregor Schmid, Michael Schmidt, Ronald S. Schnell,
 Philippe Schnoebelen, Jan Schormann, Alex Schroeder, Stefan Schoef,
@@ -1481,9 +1482,9 @@ South, Andre Spiegel, Michael Staats, Thomas Steffen, Ulf 
Stegemann,
 Reiner Steib, Sam Steingold, Ake Stenhoff, Philipp Stephani, Peter Stephenson, 
Ken
 Stevens, Andy Stewart, Jonathan Stigelman, Martin Stjernholm, Kim F.
 Storm, Steve Strassmann, Christopher Suckling, Olaf Sylvester, Naoto
-Takahashi, Steven Tamm, Jan Tatarik, Luc Teirlinck, Jean-Philippe Theberge, 
Jens
-T. Berger Thielemann, Spencer Thomas, Jim Thompson, Toru Tomabechi,
-David O'Toole, Markus Triska, Tom Tromey, Eli
+Takahashi, Steven Tamm, Jan Tatarik, João Távora, Luc Teirlinck,
+Jean-Philippe Theberge, Jens T.@: Berger Thielemann, Spencer Thomas,
+Jim Thompson, Toru Tomabechi, David O'Toole, Markus Triska, Tom Tromey, Eli
 Tziperman, Daiki Ueno, Masanobu Umeda, Rajesh Vaidheeswarran, Neil
 W. Van Dyke, Didier Verna, Joakim Verona, Ulrik Vieth, Geoffrey
 Voelker, Johan Vromans, Inge Wallin, John Paul Wallington, Colin
diff --git a/doc/lispref/anti.texi b/doc/lispref/anti.texi
index 5421d77..a134e88 100644
--- a/doc/lispref/anti.texi
+++ b/doc/lispref/anti.texi
@@ -6,276 +6,184 @@
 @c This node must have no pointers.
 
 @node Antinews
-@appendix Emacs 25 Antinews
+@appendix Emacs 26 Antinews
 @c Update the elisp.texi Antinews menu entry with the above version number.
 
 For those users who live backwards in time, here is information about
-downgrading to Emacs version 25.3.  We hope you will enjoy the greater
+downgrading to Emacs version 26.3.  We hope you will enjoy the greater
 simplicity that results from the absence of many @w{Emacs
 @value{EMACSVER}} features.
 
-@section Old Lisp Features in Emacs 25
-
 @itemize @bullet
 @item
-The concurrency features have been removed.  Even in its limited
-``mostly cooperative'' form, with only one Lisp thread running at any
-given time, it made Emacs significantly more complex for Lisp programs
-that need to work correctly in the presence of additional threads.
-
-@item
-Handling of file attributes has been simplified by discarding the
-accessor functions, such as @code{file-attribute-type} and
-@code{file-attribute-modification-time}.  Real Lisp programmers always
-access the individual attributes by their ordinal numbers, and can
-recite those numbers in their sleep.
-
-@item
-The networking code is back at its pristine simplicity, as we deleted
-the use of asynchronous DNS resolution, connection, and TLS
-negotiation for TLS streams.  You no longer need to consider the
-resulting complexity and interesting race conditions when you write
-Lisp programs that use network communications.  As a direct
-consequence, the @code{:complete-negotiation} parameter of
-@code{gnutls-boot} has become unnecessary, and was removed---just one
-example of how removal of asynchronicity simplifies Emacs.
-
-@item
-We've removed the @file{puny.el} library, so Web sites with
-non-@acronym{ASCII} URLs are no longer easily accessible.  But such
-sites become more and more rare as you move back in time, so having a
-specialized library for their support was deemed an unnecessary
-maintenance burden.
-
-@item
-The time conversion functions @code{current-time-string},
-@code{current-time-zone}, @code{decode-time},
-@code{format-time-string}, and @code{set-time-zone-rule} no longer
-accept integer offsets as time zone rules, to make it more of a
-challenge to convert foreign timestamps.  Also,
-@code{format-time-string} no longer converts @samp{%q} to the calendar
-quarter, as that is something you can easily do for yourself.
-
-@item
-Field numbers like @samp{%2$} in format specifiers are no longer
-available.  We decided that their use makes code reading and
-comprehension much harder, and that having them is unjustified in the
-past where similar features in popular C libraries will also be gone.
-
-@item
-Since the built-in capability to display line numbers has been removed
-(@pxref{Antinews,,, emacs, The GNU Emacs Manual}), we've also deleted
-the @code{line-number-display-width} function and the support for the
-@code{display-line-numbers-disable} property, as Lisp programs that do
-their own display layout decisions no longer need to cater to this
-tricky feature.
-
-@item
-Regular expressions have been simplified by removing support for
-Unicode character properties in the @code{[:blank:]} regexp class.  As
-result, this class will match only spaces and tabs.  Once again, this
-is in line with diminishing importance of Unicode as you move back in
-time.
-
-@item
-For similar reasons, we removed the function @code{char-from-name}.
-It should be easy enough to access the full list of Unicode characters
-returned by @code{ucs-names} instead, for as long as Unicode support
-in Emacs exists (which shouldn't be too long).
-
-@item
-Various functions that accept file names as arguments, such as
-@code{file-attributes}, @code{file-symlink-p}, and
-@code{make-symbolic-link} gained back the special support for file
-names quoted with @samp{/:}, and they now interpret @samp{~} in
-symlink targets as you'd expect: to mean your home directory.  The
-confusing differences between the operation of these functions in
-interactive and non-interactive invocations has been removed.
-
-@item
-Several functions that create or rename their files now treat their
-destination specially if it happens to be a directory, even when its
-name does not appear to be that of a directory.  For example,
-@code{(rename-file "A" "B")} no longer renames @file{A} to @file{B} if
-@file{B} happens to be a directory.  This is so that dealing with
-files becomes more of an adventure.
+Lisp objects are again implemented on the C level as integer types,
+not as pointers.  This might be a small step for Emacs Lisp users, but
+it's a giant leap for the Emacs developers who work on the C level,
+since it is now again easy to print Lisp object in the debugger in the
+decimal format, which is so much easier for debugging.  It also makes
+calling Emacs functions from the debugger easier, and allows us to
+freely mix integers and Lisp objects in the C code.
 
 @item
-The @code{format} function now returns new strings in more cases, to
-place more stress on the Emacs memory manager and thereby test Emacs
-better.
+The test suite was removed from the distribution tarball.  We believe
+that tests need seldom if ever be run, certainly not by the end
+users.  Removing the tests from the tarball makes it much smaller,
+which is important since disk space becomes more and more at premium
+as you move back in time.
 
 @item
-The function @file{assoc} has been simplified by removing its third
-optional argument.  It now always uses @code{equal} for comparison.
-Likewise, @code{alist-get} always uses @code{assq}, and @code{map-get}
-and @code{map-put} always use @code{eql} for their comparisons.
+Dynamic module support is disabled by default.  This both makes Emacs
+smaller (a worthy goal by itself), and removes the complications and
+additional complexity related with installing module support files and
+letting random shared objects an opportunity to be loaded into Emacs
+and mess with it.
 
 @item
-Numeric comparisons and the functions @code{format},
-@code{make-hash-table}, @code{min}, @code{max} and @code{logb} now
-occasionally round values internally to make their results less
-predictable.
+You now must activate any installed packages only after loading your
+init files.  That requires an explicit call to
+@code{package-initialize} in your init file, which is a Good Thing, as
+it makes you think seriously where and indeed whether you'd like your
+packages to become available to your sessions.  Simplicity should
+tramp convenience!
 
 @item
-The functions @code{ffloor}, @code{fceiling}l, @code{ftruncate} and
-@code{fround} now accept integer arguments.  Conversely, functions
-like @code{decode-char} that accept floating-point integers now accept
-arguments that are not integers.  In both cases the results are
-amusingly nonsensical sometimes.
+To reduce the amount of code in Emacs related to unimportant features,
+we've removed native rotation and resizing of images.  You will have
+to build Emacs with ImageMagick if you want to resize or rotate images
+inside Emacs.  We don't expect anyone to miss that.
 
 @item
-GnuTLS cryptographic functions are no longer available in Emacs.  We
-have decided that the needs for such functionality are deteriorating,
-and their cumbersome interfaces make them hard to use.
+We've re-enabled color fonts usage by the XFT font back-end.  We
+consider the availability of these fonts more important than a random
+crash here and there, especially since the use of these fonts for
+displaying Emoji will become less and less important as we travel back
+in time, and will completely disappear in some past Emacs version.
 
 @item
-We have removed support for records of user-defined types, and
-@code{cl-defstruct} no longer uses records.  This removes the
-potential for quite a few places where existing and past code could be
-broken by records.
+The function @code{network-interface-list} can now return only IPv4
+addresses.  We consider the complexity introduced by IPv6 to be too
+much to be justified, and on the other hand its removal is the step in
+the right direction, given that IPv6 is expected to be completely
+removed as we move back in time.
 
 @item
-You can again use @code{string-as-unibyte},
-@code{string-make-multibyte}, and other similar functions, without
-being annoyed by messages about their deprecation.  This is in
-preparation for removal of multibyte text from Emacs in the distant
-past.
+The limit on repetitions in regular expressions was reduced to
+@ifnottex
+2**15 @minus{} 1.
+@end ifnottex
+@tex
+@math{2^{15}-1}.
+@end tex
+We envision that regular expressions will become more and more simple
+as we move towards the distant past.
 
 @item
-The @code{string-version-lessp} function has been removed, to
-encourage programmers to use their own idiosyncratic methods to
-determine whether one version string precedes another.
+To simplify code and reduce complexity, we removed the capability of
+searching programs on remote hosts in @code{executable-find}.  If you
+really need this feature (why would you?), you can always write your
+own shell script and run it on the remote.
 
 @item
-The function @code{read-color} no longer displays color names using
-each color as the background.  We have determined that this surprises
-users and produces funny inconsistent results on color-challenged
-terminals.
+The @code{:extend} face attribute is no longer available; all faces
+have their background color extended by default past end of line.
+This should significantly simplify face management and remove
+unnecessary code bloat, as well as make faces significantly simpler to
+understand and use.
 
 @item
-Support for 24-bit color on text terminals has been dropped, since
-it wasn't needed long ago.
+The predicates @code{display-blink-cursor-p} and
+@code{display-symbol-keys-p} were deleted.  They are rarely if ever
+needed, and can easily be substituted by appropriate calls to old and
+proven APIs like @code{display-graphic-p}.  As an additional bonus,
+writing Lisp programs that depend on this functionality will make sure
+the programmer understands better what exactly is the required
+features of the display terminal.
 
 @item
-We removed the function @code{file-name-case-insensitive-p}, as
-testing for the OS symbol should be enough for the observable past to
-come, and learning to use yet another API is a burden.
+Relative directories in the value of the @env{HOME} environment
+variable are once again interpreted relative to the
+@code{default-directory} of the current buffer.  This is much simpler,
+and also allows @env{HOME} to resolve to a different place in
+different buffers, which allows some interesting applications.
 
-@item
-The function @code{read-multiple-choice} is also gone, in recognition
-of the fact that nothing makes Emacs Lisp hackers rejoice more than
-the need to sit down and write yet another interactive
-question-and-answer function, and make it optimal for each specific
-case.
-
-@item
-The function @code{add-variable-watcher} and the corresponding
-debugger command @code{debug-on-variable-change} have been removed.
-They make debugging more complicated, while examining the value of a
-variable at each stop point is easy enough to cover the same use
-cases.  Let simplicity rule!
-
-@item
-The function @code{mapcan} is gone; use @code{mapcar} instead, and
-process the resulting list as you see fit.
-
-@item
-Low-level list functions like @code{length} and @code{member} can now
-loop indefinitely when given cyclic lists, causing Emacs to freeze.
-This can help these functions run a tiny bit faster in the usual case
-where the input is not cyclic.
-
-@item
-The @code{write-region} function no longer propagates its
-@var{lockname} argument to file name handlers.
-
-@item
-You can once again write a Lisp program that returns funny random
-values from @code{file-attributes} by having another process alter the
-filesystem while Emacs is accessing the file.  This can give rise to
-some interesting applications in the near past.
-
-@item
-The functions @code{file-attributes}, @code{file-symlink-p}, and
-@code{make-symbolic-link} now quietly mutate the target of a local
-symbolic link in some cases, to make it more of a challenge to deal
-with arbitrary symlinks in Emacs code.
-
-@item
-The error @code{file-missing} has been removed; operations now lump
-such errors into the @code{file-error} category instead.
-
-@item
-The function @code{delete-directory} now signals an error if operating
-recursively and some other process deletes the directory before this
-function gets to it.
-
-@item
-The @code{dutch} input method now attempts to support Turkish too,
-albeit incorrectly.  Also, it converts @samp{IJ} and @samp{ij} to
-special characters instead of leaving them alone.
-
-@item
-Non-breaking hyphens and approximations to quotes are now displayed
-just with the @code{escape-glyph} face instead of having faces of
-their own.  This is simpler and gives the user amusing puzzles to
-solve when viewing text containing these characters.
+For the same reasons, @code{file-name-absolute-p} now again considers
+@file{~foo} an absolute file name, even if there's no known user
+@samp{foo}.  This means a Lisp program which uses such file names will
+always work the same on any system, regardless of its known users.
 
 @item
-The user option @code{electric-quote-context-sensitive} and the
-variable @code{electric-quote-inhibit-functions}, so that electric
-quoting is simpler and more likely to do the wrong thing.
+File-related primitives like @code{file-attributes},
+@code{file-modes}, @code{file-newer-than-file-p}, and some others once
+again return @code{nil} when the underlying low-level APIs fail,
+instead of signaling an error.  We decided that functions which signal
+errors require more complex code from Lisp programs which use them,
+and found this complexity unjustified when returning @code{nil} will
+do.
 
 @item
-The user option @code{text-quoting-style} has been removed, and is now
-just a variable.
+Similarly, old-style backquotes no longer signal errors; they generate
+warnings instead.  You can remove error handling from programs that
+use backquotes.
 
 @item
-We have removed the functions @code{file-name-quote},
-@code{file-name-unquote}, and @code{file-name-quoted-p}.  Writing code
-that checks whether a file name is already quoted is easy, and doubly
-quoting a file name should not produce any problems for well-written
-Lisp code.
+Formatting floating-point numbers has been sped up by letting the
+underlying implementation produce unpredictable values, instead of
+signaling errors when the number is too large to format correctly.  We
+believe the Emacs Lisp programmers should always know what they are
+doing when they deal with floating-point values.
 
 @item
-Frame parameters like @code{z-group}, @code{min-width},
-@code{parent-frame}, @code{delete-before}, etc. have been removed.
-Emacs should not replace your window-manager, certainly not as
-window-managers become less and less capable.
+The function @code{read-char-from-minibuffer} was deleted.  We decided
+that @code{read-char} should be enough for any Lisp program that needs
+to ask the user for a single-character input, in recognition of the
+fact that nothing makes Emacs Lisp hackers rejoice more than the need
+to sit down and write yet another interactive question-and-answer
+function, and make it optimal for each specific case.  Consequently,
+no history is provided for such responses (why would someone want
+history of single-key strokes, anyway?).
 
 @item
-We decided that the format of mode line and header line should be
-customizable only based on buffers; the @code{mode-line-format} and
-@code{header-line-format} window parameters have been removed.
+The function @code{ngettext} was deleted.  Non-English languages will
+become less and less widespread, let alone useful, as you move back in
+time, so we took this small step in that direction, and simplified
+Emacs as a nice bonus.
 
 @item
-Emacs now normally builds a limited @command{movemail} substitute that
-retrieves POP3 email only via insecure channels, and the
-configure-time option @option{--with-mailutils} has been removed.
-This simplifies Emacs setup when security is not important.
+Focus-change notifications on text-mode frames are no longer
+recognized or supported.  You can now safely disregard the possibility
+of receiving such notifications on TTY frames.  This is one small step
+on the long road of removing all non-character input events Emacs
+supports on TTY frames.
 
 @item
-The configure-time option @option{--enable-gcc-warnings=warn-only}
-has been removed, so that build-time warnings are always fatal now.
+Face specifications in @code{face-remapping-alist} now have to be
+buffer-specific, without any differences between windows showing the
+same buffers.  This allowed us to remove a lot of unneeded code bloat
+from Emacs, and make the face handling much simpler.
 
 @item
-The configure-time option @option{--disable-build-details} has been
-removed.  This way, Emacs builds are unique and irreproducible.
+The @samp{%o} and @samp{%x} formats now always produce unsigned
+values, as you'd expect.  This allows you to reveal the underlying
+machine representation, which is different on each architecture,
+something we consider a valuable feature.
 
 @item
-The variable @code{emacs-version} now includes the build number
-instead of storing it separately in @code{emacs-build-number}.
+We no longer highlight in @code{font-lock-warning-face} symbols with
+confusable quote characters, such as U+2018.  Detecting them
+needed  non-trivial amount of code, and we firmly believe that Lisp
+programmers always know what they are doing, and don't need to be
+annoyed with typefaces that stand out and distract.
 
 @item
-Emacs has been ported to IRIX.
+The function @code{file-system-info} was dropped on Posix platforms,
+since you can always invoke @command{df} instead and parse its
+output.
 
 @item
-Several options and variables have been removed to simplify Emacs and
-potentially make it less reliable.  These include the
-@option{--module-assertions} option, the
-@code{attempt-stack-overflow-recovery} variable, and the
-@code{attempt-orderly-shutdown-on-fatal-signal} variable.
+The functions that implement the @samp{base64url} encoding were
+removed, as they can always be emulated by suitable tweaking of the
+normal base-64 encoding.  No need to bloat Emacs and force Lisp
+programmers learn more interfaces on this account.
 
 @item
 As part of the ongoing quest for simplicity, many other functions and
diff --git a/doc/lispref/elisp.texi b/doc/lispref/elisp.texi
index c157079..cfd96f7 100644
--- a/doc/lispref/elisp.texi
+++ b/doc/lispref/elisp.texi
@@ -233,7 +233,7 @@ To view this manual in other formats, click
 
 Appendices
 
-* Antinews::                Info for users downgrading to Emacs 25.
+* Antinews::                Info for users downgrading to Emacs 26.
 * GNU Free Documentation License:: The license for this documentation.
 * GPL::                     Conditions for copying and changing GNU Emacs.
 * Tips::                    Advice and coding conventions for Emacs Lisp.
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 8e3e6ae..5cf67ba 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -576,8 +576,9 @@ naming conventions, which are being phased out.
 @cindex defining a function
 
   We usually give a name to a function when it is first created.  This
-is called @dfn{defining a function}, and it is done with the
-@code{defun} macro.
+is called @dfn{defining a function}, and we usually do it with the
+@code{defun} macro.  This section also describes other ways to define
+a function.
 
 @defmac defun name args [doc] [declare] [interactive] body@dots{}
 @code{defun} is the usual way to define new Lisp functions.  It
@@ -682,95 +683,8 @@ definition will have no effect on them.
 and tells the Lisp compiler to perform inline expansion on it.
 @xref{Inline Functions}.
 
-  Alternatively, you can define a function by providing the code which
-will inline it as a compiler macro.  The following macros make this
-possible.
-
-@c FIXME: Can define-inline use the interactive spec?
-@defmac define-inline name args [doc] [declare] body@dots{}
-Define a function @var{name} by providing code that does its inlining,
-as a compiler macro.  The function will accept the argument list
-@var{args} and will have the specified @var{body}.
-
-If present, @var{doc} should be the function's documentation string
-(@pxref{Function Documentation}); @var{declare}, if present, should be
-a @code{declare} form (@pxref{Declare Form}) specifying the function's
-metadata.
-@end defmac
-
-Functions defined via @code{define-inline} have several advantages
-with respect to macros defined by @code{defsubst} or @code{defmacro}:
-
-@itemize @minus
-@item
-They can be passed to @code{mapcar} (@pxref{Mapping Functions}).
-
-@item
-They are more efficient.
-
-@item
-They can be used as @dfn{place forms} to store values
-(@pxref{Generalized Variables}).
-
-@item
-They behave in a more predictable way than @code{cl-defsubst}
-(@pxref{Argument Lists,,, cl, Common Lisp Extensions for GNU Emacs
-Lisp}).
-@end itemize
-
-Like @code{defmacro}, a function inlined with @code{define-inline}
-inherits the scoping rules, either dynamic or lexical, from the call
-site.  @xref{Variable Scoping}.
-
-The following macros should be used in the body of a function defined
-by @code{define-inline}.
-
-@defmac inline-quote expression
-Quote @var{expression} for @code{define-inline}.  This is similar to
-the backquote (@pxref{Backquote}), but quotes code and accepts only
-@code{,}, not @code{,@@}.
-@end defmac
-
-@defmac inline-letevals (bindings@dots{}) body@dots{}
-This is similar to @code{let} (@pxref{Local Variables}): it sets up
-local variables as specified by @var{bindings}, and then evaluates
-@var{body} with those bindings in effect.  Each element of
-@var{bindings} should be either a symbol or a list of the form
-@w{@code{(@var{var} @var{expr})}}; the result is to evaluate
-@var{expr} and bind @var{var} to the result.  The tail of
-@var{bindings} can be either @code{nil} or a symbol which should hold
-a list of arguments, in which case each argument is evaluated, and the
-symbol is bound to the resulting list.
-@end defmac
-
-@defmac inline-const-p expression
-Return non-@code{nil} if the value of @var{expression} is already
-known.
-@end defmac
-
-@defmac inline-const-val expression
-Return the value of @var{expression}.
-@end defmac
-
-@defmac inline-error format &rest args
-Signal an error, formatting @var{args} according to @var{format}.
-@end defmac
-
-Here's an example of using @code{define-inline}:
-
-@lisp
-(define-inline myaccessor (obj)
-  (inline-letevals (obj)
-    (inline-quote (if (foo-p ,obj) (aref (cdr ,obj) 3) (aref ,obj 2)))))
-@end lisp
-
-@noindent
-This is equivalent to
-
-@lisp
-(defsubst myaccessor (obj)
-  (if (foo-p obj) (aref (cdr obj) 3) (aref obj 2)))
-@end lisp
+  To undefine a function name, use @code{fmakunbound}.
+@xref{Function Cells}.
 
 @node Calling Functions
 @section Calling Functions
@@ -2155,8 +2069,12 @@ this:
   An @dfn{inline function} is a function that works just like an
 ordinary function, except for one thing: when you byte-compile a call
 to the function (@pxref{Byte Compilation}), the function's definition
-is expanded into the caller.  To define an inline function, use
-@code{defsubst} instead of @code{defun}.
+is expanded into the caller.
+
+  The simple way to define an inline function, is to write
+@code{defsubst} instead of @code{defun}.  The rest of the definition
+looks just the same, but using @code{defsubst} says to make it inline
+for byte compilation.
 
 @defmac defsubst name args [doc] [declare] [interactive] body@dots{}
 This macro defines an inline function.  Its syntax is exactly the same
@@ -2194,9 +2112,95 @@ argument of an inline function is evaluated exactly 
once, you needn't
 worry about how many times the body uses the arguments, as you do for
 macros.
 
-  As an alternative to @code{defsubst}, you can use
-@code{define-inline} to define functions via their exhaustive compiler
-macro.  @xref{Defining Functions, define-inline}.
+  Alternatively, you can define a function by providing the code which
+will inline it as a compiler macro.  The following macros make this
+possible.
+
+@c FIXME: Can define-inline use the interactive spec?
+@defmac define-inline name args [doc] [declare] body@dots{}
+Define a function @var{name} by providing code that does its inlining,
+as a compiler macro.  The function will accept the argument list
+@var{args} and will have the specified @var{body}.
+
+If present, @var{doc} should be the function's documentation string
+(@pxref{Function Documentation}); @var{declare}, if present, should be
+a @code{declare} form (@pxref{Declare Form}) specifying the function's
+metadata.
+@end defmac
+
+Functions defined via @code{define-inline} have several advantages
+with respect to macros defined by @code{defsubst} or @code{defmacro}:
+
+@itemize @minus
+@item
+They can be passed to @code{mapcar} (@pxref{Mapping Functions}).
+
+@item
+They are more efficient.
+
+@item
+They can be used as @dfn{place forms} to store values
+(@pxref{Generalized Variables}).
+
+@item
+They behave in a more predictable way than @code{cl-defsubst}
+(@pxref{Argument Lists,,, cl, Common Lisp Extensions for GNU Emacs
+Lisp}).
+@end itemize
+
+Like @code{defmacro}, a function inlined with @code{define-inline}
+inherits the scoping rules, either dynamic or lexical, from the call
+site.  @xref{Variable Scoping}.
+
+The following macros should be used in the body of a function defined
+by @code{define-inline}.
+
+@defmac inline-quote expression
+Quote @var{expression} for @code{define-inline}.  This is similar to
+the backquote (@pxref{Backquote}), but quotes code and accepts only
+@code{,}, not @code{,@@}.
+@end defmac
+
+@defmac inline-letevals (bindings@dots{}) body@dots{}
+This is similar to @code{let} (@pxref{Local Variables}): it sets up
+local variables as specified by @var{bindings}, and then evaluates
+@var{body} with those bindings in effect.  Each element of
+@var{bindings} should be either a symbol or a list of the form
+@w{@code{(@var{var} @var{expr})}}; the result is to evaluate
+@var{expr} and bind @var{var} to the result.  The tail of
+@var{bindings} can be either @code{nil} or a symbol which should hold
+a list of arguments, in which case each argument is evaluated, and the
+symbol is bound to the resulting list.
+@end defmac
+
+@defmac inline-const-p expression
+Return non-@code{nil} if the value of @var{expression} is already
+known.
+@end defmac
+
+@defmac inline-const-val expression
+Return the value of @var{expression}.
+@end defmac
+
+@defmac inline-error format &rest args
+Signal an error, formatting @var{args} according to @var{format}.
+@end defmac
+
+Here's an example of using @code{define-inline}:
+
+@lisp
+(define-inline myaccessor (obj)
+  (inline-letevals (obj)
+    (inline-quote (if (foo-p ,obj) (aref (cdr ,obj) 3) (aref ,obj 2)))))
+@end lisp
+
+@noindent
+This is equivalent to
+
+@lisp
+(defsubst myaccessor (obj)
+  (if (foo-p obj) (aref (cdr obj) 3) (aref obj 2)))
+@end lisp
 
 @node Declare Form
 @section The @code{declare} Form
diff --git a/doc/lispref/modes.texi b/doc/lispref/modes.texi
index 7354eb1..b52871e 100644
--- a/doc/lispref/modes.texi
+++ b/doc/lispref/modes.texi
@@ -135,13 +135,26 @@ non-@code{nil} value, it returns that value; otherwise it 
returns
 @node Setting Hooks
 @subsection Setting Hooks
 
-  Here's an example that uses a mode hook to turn on Auto Fill mode when
-in Lisp Interaction mode:
+  Here's an example that adds a funtion to a mode hook to turn
+on Auto Fill mode when in Lisp Interaction mode:
 
 @example
 (add-hook 'lisp-interaction-mode-hook 'auto-fill-mode)
 @end example
 
+  The value of a hook variable should be a list of functions.  You can
+manipulate that list using the normal Lisp facilities, but the modular
+way is to use the functions @code{add-hook} and @code{remove-hook},
+defined below.  They take care to handle some unusual situations and
+avoid problems.
+
+  It works to put a @code{lambda}-expression function on a hook, but
+we recommend avoiding this because it can lead to confusion.  If you
+add the same @code{lambda}-expression a second time but write it
+slightly differently, you will get two equivalent but distinct
+functions on the hook.  If you then remove one of them, the other will
+still be on it.
+
 @defun add-hook hook function &optional depth local
 This function is the handy way to add function @var{function} to hook
 variable @var{hook}.  You can use it for abnormal hooks as well as for
diff --git a/etc/NEWS.27 b/etc/NEWS.27
index 6d4a611..43805bb 100644
--- a/etc/NEWS.27
+++ b/etc/NEWS.27
@@ -1687,7 +1687,7 @@ If non-nil, the default, buffers opened during 
pdbtracking session are
 killed when pdbtracking session is finished.
 
 ---
-*** New function 'python-shell-send-region'.
+*** New function 'python-shell-send-statement.
 It sends the statement delimited by 'python-nav-beginning-of-statement'
 and 'python-nav-end-of-statement' to the inferior Python process.
 
diff --git a/lisp/calc/calc.el b/lisp/calc/calc.el
index d299c5b..b519559 100644
--- a/lisp/calc/calc.el
+++ b/lisp/calc/calc.el
@@ -2288,7 +2288,7 @@ the United States."
        (calc-alg-digit-entry)
      (setq calc-aborted-prefix nil)
      (let* ((calc-digit-value nil)
-           (calc-prev-char nil)
+           (calc-prev-char last-command-event)
            (calc-prev-prev-char nil)
            (calc-buffer (current-buffer))
            (buf
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 79c2357..d3d17fd 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -3035,17 +3035,18 @@ Update the widget to show that value.  The value that 
was current
 before this operation becomes the backup value."
   (let* ((symbol (widget-value widget))
         (saved-value (get symbol 'saved-value))
-        (comment (get symbol 'saved-variable-comment)))
+        (comment (get symbol 'saved-variable-comment))
+         value)
     (custom-variable-backup-value widget)
     (if (not (or saved-value comment))
-       ;; If there is no saved value, remove the setting.
-       (custom-push-theme 'theme-value symbol 'user 'reset)
-      ;; Otherwise, apply the saved value.
-      (put symbol 'variable-comment comment)
-      (custom-push-theme 'theme-value symbol 'user 'set (car-safe saved-value))
-      (ignore-errors
-       (funcall (or (get symbol 'custom-set) 'set-default)
-                symbol (eval (car saved-value)))))
+        ;; If there is no saved value, remove the setting.
+        (custom-push-theme 'theme-value symbol 'user 'reset)
+      (setq value (car-safe saved-value))
+      (custom-push-theme 'theme-value symbol 'user 'set value)
+      (put symbol 'variable-comment comment))
+    (ignore-errors
+      (funcall (or (get symbol 'custom-set) #'set-default) symbol
+               (eval (or value (car (get symbol 'standard-value))))))
     (put symbol 'customized-value nil)
     (put symbol 'customized-variable-comment nil)
     (widget-put widget :custom-state 'unknown)
@@ -4295,6 +4296,7 @@ This works for both graphical and text displays."
             (widget-put widget :children children)
             (custom-group-state-update widget))
           ;; End line
+           (insert "\n")
            (custom-group--draw-horizontal-line)))))
 
 (defvar custom-group-menu
diff --git a/lisp/custom.el b/lisp/custom.el
index 037f6c5..885c486 100644
--- a/lisp/custom.el
+++ b/lisp/custom.el
@@ -1381,7 +1381,7 @@ function runs.  To disable other themes, use 
`disable-theme'."
            (custom-theme-recalc-variable symbol)))))))
   (unless (eq theme 'user)
     (setq custom-enabled-themes
-         (cons theme (delq theme custom-enabled-themes)))
+         (cons theme (remq theme custom-enabled-themes)))
     ;; Give the `user' theme the highest priority.
     (enable-theme 'user)))
 
diff --git a/lisp/icomplete.el b/lisp/icomplete.el
index e7e8cbf..a1a67e2 100644
--- a/lisp/icomplete.el
+++ b/lisp/icomplete.el
@@ -448,13 +448,14 @@ Usually run by inclusion in `minibuffer-setup-hook'."
        with end = (icomplete--field-end)
        with all = (completion-all-sorted-completions beg end)
        for fn in (cond ((and minibuffer-default
+                             (stringp minibuffer-default) ; bug#38992
                              (= (icomplete--field-end) (icomplete--field-beg)))
-                        ;; When we have a non-nil default and no input
-                        ;; whatsoever: we want to make sure that default
-                        ;; is bubbled to the top so that
+                        ;; When we have a non-nil string default and
+                        ;; no input whatsoever: we want to make sure
+                        ;; that default is bubbled to the top so that
                         ;; `icomplete-force-complete-and-exit' will
-                        ;; select it (do that even if the match doesn't
-                        ;; match the completion perfectly.
+                        ;; select it (do that even if the match
+                        ;; doesn't match the completion perfectly.
                         `(,(lambda (comp)
                              (equal minibuffer-default comp))
                           ,(lambda (comp)
@@ -462,6 +463,12 @@ Usually run by inclusion in `minibuffer-setup-hook'."
                        ((and fido-mode
                              (not minibuffer-default)
                              (eq (icomplete--category) 'file))
+                        ;; `fido-mode' has some extra file-sorting
+                        ;; semantics even if there isn't a default,
+                        ;; which is to bubble "./" to the top if it
+                        ;; exists.  This makes M-x dired RET RET go to
+                        ;; the directory of current file, which is
+                        ;; what vanilla Emacs and `ido-mode' both do.
                         `(,(lambda (comp)
                              (string= "./" comp)))))
        thereis (cl-loop
diff --git a/lisp/progmodes/flymake-proc.el b/lisp/progmodes/flymake-proc.el
index e2d9408..62f6d1a 100644
--- a/lisp/progmodes/flymake-proc.el
+++ b/lisp/progmodes/flymake-proc.el
@@ -851,7 +851,7 @@ can also be executed interactively independently of
   (interactive (list "Interrupted by user"))
   (dolist (buf (buffer-list))
     (with-current-buffer buf
-      (let (p flymake-proc--current-process)
+      (let ((p flymake-proc--current-process))
         (when (process-live-p p)
           (kill-process p)
           (process-put p 'flymake-proc--interrupted reason)
diff --git a/src/nsfns.m b/src/nsfns.m
index f2857c0..42bd88e 100644
--- a/src/nsfns.m
+++ b/src/nsfns.m
@@ -499,11 +499,11 @@ ns_set_represented_filename (struct frame *f)
 #if defined (NS_IMPL_COCOA) && defined (MAC_OS_X_VERSION_10_7)
   /* Work around for Mach port leaks on macOS 10.15 (bug#38618).  */
   NSURL *fileURL = [NSURL fileURLWithPath:fstr isDirectory:NO];
-  BOOL isUbiquitousItem = YES;
+  NSNumber *isUbiquitousItem = @YES;
   [fileURL getResourceValue:(id *)&isUbiquitousItem
                      forKey:NSURLIsUbiquitousItemKey
                       error:nil];
-  if (isUbiquitousItem)
+  if ([isUbiquitousItem boolValue])
     fstr = @"";
 #endif
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]