emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] master 4fa90ff: Merge from origin/emacs-26


From: Glenn Morris
Subject: [Emacs-diffs] master 4fa90ff: Merge from origin/emacs-26
Date: Sat, 17 Feb 2018 10:55:54 -0500 (EST)

branch: master
commit 4fa90ff8f5fda54fc42049c990c52d3e5236fbe6
Merge: cb38633 e5a2933
Author: Glenn Morris <address@hidden>
Commit: Glenn Morris <address@hidden>

    Merge from origin/emacs-26
    
    e5a2933 (origin/emacs-26) lisp/vc/: documentation fixes
    f21f8e6 Document 'desktop-files-not-to-save'
    d8917eb Improve documentation of Profiling features
    b228839 Improve indexing of "performance" in ELisp manual
    ab67b3e Minor change in Emacs manual's VC chapter
    c352434 Avoid memory corruption with specpdl overflow + edebug (Bug#3...
    593bbda Document comment-fill-column in the manual (Bug#11636)
    bd4cc8d * doc/emacs/dired.texi (Marks vs Flags): Copyedits.
    69107f3 ; Fix doc typos related to indefinite articles
    aaad1e6 Merge branch 'emacs-26' of git.savannah.gnu.org:/srv/git/emac...
    5906418 More fixes for the Emacs manual
    9ab3df1 ; Fix doc typos related to indefinite articles
    66a4e65 ; Fix doc typos related to indefinite articles
    35e5c57 ; Fix doc typos related to indefinite articles
---
 admin/grammars/c.by                 |  4 +--
 admin/notes/unicode                 |  2 +-
 doc/emacs/dired.texi                |  6 ++--
 doc/emacs/maintaining.texi          | 66 ++++++++++++++++++-------------------
 doc/emacs/misc.texi                 |  5 +++
 doc/emacs/programs.texi             | 25 +++++++-------
 doc/emacs/rmail.texi                |  2 +-
 doc/emacs/vc1-xtra.texi             |  7 ++--
 doc/lispintro/emacs-lisp-intro.texi |  4 +--
 doc/lispref/buffers.texi            |  2 +-
 doc/lispref/debugging.texi          | 60 ++++++++++++++++++++-------------
 doc/lispref/edebug.texi             |  2 +-
 doc/lispref/package.texi            |  2 +-
 doc/lispref/text.texi               |  2 +-
 doc/lispref/windows.texi            |  2 +-
 doc/misc/autotype.texi              |  2 +-
 doc/misc/cc-mode.texi               |  2 +-
 doc/misc/efaq.texi                  |  4 +--
 doc/misc/eshell.texi                |  2 +-
 doc/misc/gnus-faq.texi              |  8 ++---
 doc/misc/org.texi                   |  2 +-
 doc/misc/sc.texi                    |  4 +--
 etc/CALC-NEWS                       |  2 +-
 etc/ETAGS.EBNF                      |  2 +-
 etc/NEWS.20                         | 15 ++++-----
 etc/NEWS.21                         |  4 +--
 etc/NEWS.22                         |  2 +-
 etc/ORG-NEWS                        |  2 +-
 lisp/calendar/holidays.el           |  2 +-
 lisp/calendar/todo-mode.el          |  2 +-
 lisp/cedet/ede/cpp-root.el          |  2 +-
 lisp/cedet/ede/files.el             |  2 +-
 lisp/cedet/semantic/analyze.el      |  2 +-
 lisp/cedet/semantic/dep.el          |  2 +-
 lisp/cedet/semantic/lex.el          |  2 +-
 lisp/cedet/semantic/util-modes.el   |  2 +-
 lisp/cedet/srecode/el.el            |  2 +-
 lisp/cus-edit.el                    |  2 +-
 lisp/desktop.el                     |  3 +-
 lisp/emacs-lisp/benchmark.el        |  3 +-
 lisp/emacs-lisp/edebug.el           |  2 +-
 lisp/emacs-lisp/elp.el              |  5 +--
 lisp/emacs-lisp/ewoc.el             |  2 +-
 lisp/emacs-lisp/package.el          |  2 +-
 lisp/epa.el                         |  2 +-
 lisp/eshell/esh-cmd.el              |  2 +-
 lisp/eshell/esh-proc.el             |  2 +-
 lisp/faces.el                       |  2 +-
 lisp/ffap.el                        |  2 +-
 lisp/filenotify.el                  |  2 +-
 lisp/font-lock.el                   |  2 +-
 lisp/gnus/deuglify.el               |  2 +-
 lisp/gnus/gnus-agent.el             |  2 +-
 lisp/gnus/gnus-cache.el             |  2 +-
 lisp/gnus/gnus-cus.el               |  2 +-
 lisp/gnus/gnus-fun.el               |  2 +-
 lisp/gnus/gnus.el                   |  6 ++--
 lisp/hexl.el                        |  2 +-
 lisp/htmlfontify.el                 |  2 +-
 lisp/image/gravatar.el              |  4 +--
 lisp/international/fontset.el       |  2 +-
 lisp/mail/rmailedit.el              |  2 +-
 lisp/mh-e/mh-e.el                   |  2 +-
 lisp/mh-e/mh-mime.el                |  2 +-
 lisp/mh-e/mh-search.el              |  6 ++--
 lisp/net/gnutls.el                  |  2 +-
 lisp/net/mailcap.el                 |  4 +--
 lisp/nxml/xsd-regexp.el             |  6 ++--
 lisp/org/ob-calc.el                 |  2 +-
 lisp/org/ob-core.el                 |  6 ++--
 lisp/org/ob-org.el                  |  2 +-
 lisp/org/ob-picolisp.el             |  2 +-
 lisp/org/org-clock.el               |  2 +-
 lisp/org/org-eww.el                 |  6 ++--
 lisp/org/org-protocol.el            |  2 +-
 lisp/org/ox-html.el                 |  2 +-
 lisp/org/ox-latex.el                |  2 +-
 lisp/org/ox-odt.el                  |  5 ++-
 lisp/org/ox-texinfo.el              |  2 +-
 lisp/progmodes/ada-mode.el          |  2 +-
 lisp/progmodes/ada-stmt.el          |  4 +--
 lisp/progmodes/antlr-mode.el        |  2 +-
 lisp/progmodes/cc-engine.el         |  4 +--
 lisp/progmodes/cc-menus.el          |  2 +-
 lisp/progmodes/cc-mode.el           |  2 +-
 lisp/progmodes/compile.el           |  2 +-
 lisp/progmodes/icon.el              |  2 +-
 lisp/progmodes/python.el            |  6 ++--
 lisp/progmodes/sh-script.el         |  2 +-
 lisp/progmodes/sql.el               |  4 +--
 lisp/progmodes/vhdl-mode.el         |  2 +-
 lisp/tempo.el                       |  2 +-
 lisp/term/README                    |  2 +-
 lisp/textmodes/artist.el            | 28 ++++++++--------
 lisp/textmodes/flyspell.el          |  2 +-
 lisp/textmodes/reftex-vars.el       |  2 +-
 lisp/textmodes/rst.el               | 12 +++----
 lisp/thumbs.el                      |  2 +-
 lisp/vc/add-log.el                  |  2 +-
 lisp/vc/vc-git.el                   |  2 +-
 lisp/vc/vc.el                       |  5 ++-
 lisp/wid-edit.el                    |  4 +--
 src/.gdbinit                        |  2 +-
 src/character.c                     |  2 +-
 src/character.h                     |  2 +-
 src/charset.c                       |  2 +-
 src/coding.c                        |  4 +--
 src/dbusbind.c                      |  2 +-
 src/eval.c                          |  5 ++-
 src/image.c                         |  2 +-
 src/inotify.c                       |  2 +-
 src/keymap.c                        |  2 +-
 src/process.c                       |  2 +-
 src/regex.c                         |  2 +-
 src/syntax.c                        |  2 +-
 src/xdisp.c                         |  2 +-
 src/xsettings.c                     |  2 +-
 test/src/eval-tests.el              | 20 +++++++++++
 118 files changed, 288 insertions(+), 240 deletions(-)

diff --git a/admin/grammars/c.by b/admin/grammars/c.by
index 4a52bec..3755c32 100644
--- a/admin/grammars/c.by
+++ b/admin/grammars/c.by
@@ -917,8 +917,8 @@ variablearg-opt-name
     ( ,$1 )
   | semantic-list arg-list
     ( (car ( EXPAND $1 function-pointer )) $2)
- ;; Klaus Berndl: This allows variableargs without a arg-name being
- ;; parsed correct even if there several pointers (*)
+ ;; Klaus Berndl: This allows variableargs without an arg-name being
+ ;; parsed correctly even if there several pointers (*)
   | opt-stars
     ( "" ,$1 nil nil nil )
   ;
diff --git a/admin/notes/unicode b/admin/notes/unicode
index 85ba67b..ff0de8a 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -85,7 +85,7 @@ regard to completeness.
        code (keymap.c and print.c).
 
  * Rationalize character syntax and its relationship to the Unicode
-   database.  (Applies mainly to symbol an punctuation syntax.)
+   database.  (Applies mainly to symbol and punctuation syntax.)
 
  * Fontset handling and customization needs work.  We want to relate
    fonts to scripts, probably based on the Unicode blocks.  The
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 3fa35f1..0a62285 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -578,9 +578,9 @@ command will look in the buffer without revisiting the 
file, so the results
 might be inconsistent with the file on disk if its contents have changed
 since it was last visited.  If you don't want this, you may wish to
 revert the files you have visited in your buffers, or to turn on
-the @code{auto-revert} mode in those buffers, before invoking this
-command.  @xref{Reverting}.  If you prefer that this command always
-revisits the file, without having to revert the file or enable
address@hidden mode in those buffers, before invoking this
+command.  @xref{Reverting}.  If you prefer that this command should always
+revisit the file, without you having to revert the file or enable
 @code{auto-revert} mode, you might want to set
 @code{dired-always-read-filesystem} to address@hidden
 
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 1234db8..541bf97 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -60,8 +60,8 @@ changed.
   The Emacs version control interface is called @address@hidden  VC
 commands work with several different version control systems;
 currently, it supports Bazaar, CVS, Git, Mercurial, Monotone, RCS,
-SCCS/CSSC, and Subversion.  Of these, the GNU project distributes CVS,
-RCS, and Bazaar.
+SRC, SCCS/CSSC, and Subversion.  Of these, the GNU project distributes
+CVS, RCS, and Bazaar.
 
   VC is enabled automatically whenever you visit a file governed by a
 version control system.  To disable VC entirely, set the customizable
@@ -80,9 +80,7 @@ current buffer, use the command @code{vc-refresh-state}.  
This command
 is useful when you perform version control commands outside Emacs
 (e.g., from the shell prompt), or if you put the buffer's file under a
 different version control system, or remove it from version control
-entirely.  A companion command @code{vc-state-refresh} does the same,
-but does not consider switching the version control system or removal
-from VC.
+entirely.
 
 @menu
 * Introduction to VC::  How version control works in general.
@@ -185,12 +183,12 @@ everything you can do with RCS can be done through VC.
 
 @cindex CVS
 @item
-CVS is the free version control system that was, until recently (circa
-2008), used by the majority of free software projects.  Nowadays, it
-is slowly being superseded by newer systems.  CVS allows concurrent
-multi-user development either locally or over the network.  Unlike
-newer systems, it lacks support for atomic commits and file
-moving/renaming.  VC supports all basic editing operations under CVS.
+CVS is the free version control system that was, until circa 2008,
+used by the majority of free software projects.  Since then, it has
+been superseded by newer systems.  CVS allows concurrent multi-user
+development either locally or over the network.  Unlike newer systems,
+it lacks support for atomic commits and file moving/renaming.  VC
+supports all basic editing operations under CVS.
 
 @cindex SVN
 @cindex Subversion
@@ -322,13 +320,14 @@ possible.
 @subsubsection Changeset-based vs File-based Version Control
 
 @cindex file-based version control
-  On SCCS, RCS, CVS, and other early version control systems, version
-control operations are @dfn{file-based}: each file has its own comment
-and revision history separate from that of all other files.  Newer
-systems, beginning with Subversion, are @dfn{changeset-based}: a
-commit may include changes to several files, and the entire set of
-changes is handled as a unit.  Any comment associated with the change
-does not belong to a single file, but to the changeset itself.
+  On SCCS, RCS, CVS, and other early version control systems (and also
+in SRC), version control operations are @dfn{file-based}: each file
+has its own comment and revision history separate from that of all
+other files.  Newer systems, beginning with Subversion, are
address@hidden: a commit may include changes to several files,
+and the entire set of changes is handled as a unit.  Any comment
+associated with the change does not belong to a single file, but to
+the changeset itself.
 
 @cindex changeset-based version control
   Changeset-based version control is more flexible and powerful than
@@ -344,7 +343,7 @@ all of it.
 @cindex distributed version control
   Early version control systems were designed around a
 @dfn{centralized} model in which each project has only one repository
-used by all developers.  SCCS, RCS, CVS, and Subversion share this
+used by all developers.  SCCS, RCS, CVS, Subversion, and SRC share this
 kind of model.  One of its drawbacks is that the repository is a choke
 point for reliability and efficiency.
 
@@ -526,7 +525,7 @@ desired log entry for the new revision, followed by 
@kbd{C-c C-c} to
 commit.  @xref{Log Buffer}.
 
 If committing to a shared repository, the commit may fail if the
-repository that has been changed since your last update.  In that
+repository has been changed since your last update.  In that
 case, you must perform an update before trying again.  On a
 decentralized version control system, use @kbd{C-x v +}
 (@pxref{Pulling / Pushing}) or @kbd{C-x v m} (@pxref{Merging}).
@@ -609,7 +608,7 @@ if the fileset can be managed by more than one version 
control system,
 and Emacs fails to detect the correct one.
 
 @item
-Otherwise, if using CVS or RCS, you can specify a revision ID.
+Otherwise, if using CVS, RCS or SRC, you can specify a revision ID.
 
 If the fileset is modified (or locked), this makes Emacs commit with
 that revision address@hidden  You can create a new branch by supplying an
@@ -660,11 +659,10 @@ Author: J. R. Hacker <jrh@@example.com>
 
 @noindent
 Apart from the @samp{Author} header, Emacs recognizes the headers
address@hidden (a manually-specified commit time) and @samp{Fixes} (a
-reference to a bug fixed by the change).  Not all version control
-systems recognize all headers: Bazaar recognizes all three headers,
-while Git, Mercurial, and Monotone recognize only @samp{Author} and
address@hidden  If you specify a header for a system that does not
address@hidden (a one-line summary of the changeset), @samp{Date} (a
+manually-specified commit time), and @samp{Fixes} (a reference to a
+bug fixed by the change).  Not all version control systems recognize
+all headers.  If you specify a header for a system that does not
 support it, the header is treated as part of the log entry.
 
 @kindex C-c C-f @r{(Log Edit mode)}
@@ -969,9 +967,9 @@ file listed on the current line.
 @findex log-view-toggle-entry-display
   @kbd{C-x v L} (@code{vc-print-root-log}) displays a
 @file{*vc-change-log*} buffer showing the history of the entire
-version-controlled directory tree (RCS, SCCS, and CVS do not support
-this feature).  With a prefix argument, the command prompts for the
-maximum number of revisions to display.
+version-controlled directory tree (RCS, SCCS, CVS, and SRC do not
+support this feature).  With a prefix argument, the command prompts
+for the maximum number of revisions to display.
 
   The @kbd{C-x v L} history is shown in a compact form, usually
 showing only the first line of each log entry.  However, you can type
@@ -1048,7 +1046,7 @@ if you set the value to zero, that removes the limit.  
You can also
 increase the number of revisions shown in an existing
 @file{*vc-change-log*} buffer by clicking on the @samp{Show 2X
 entries} or @samp{Show unlimited entries} buttons at the end of the
-buffer.  However, RCS, SCCS, and CVS do not support this feature.
+buffer.  However, RCS, SCCS, CVS, and SRC do not support this feature.
 
 @kindex C-x v h
 @findex vc-region-history
@@ -1189,7 +1187,7 @@ but is not yet committed, while @file{temp.txt} is not 
under version
 control (@pxref{Registering}).
 
 The @samp{*} characters next to the entries for @file{README} and
address@hidden/main.c} indicate that the user has marked out these files as
address@hidden/main.c} indicate that the user has marked these files as
 the current VC fileset
 @iftex
 (see below).
@@ -1280,7 +1278,7 @@ point is on a directory entry, unmark all files in that 
directory tree
 files and directories.
 
 @item x
-Hide files with @samp{up-to-date} status
+Hide files with @samp{up-to-date} or @samp{ignored} status
 (@code{vc-dir-hide-up-to-date}).  With a prefix argument, hide items
 whose state is that of the item at point.
 @end table
@@ -1352,7 +1350,7 @@ Switch to a branch (@code{vc-retrieve-tag}).  
@xref{Switching Branches}.
 context menu invoked by @kbd{mouse-2}.  Furthermore, some VC backends
 use the menu to provide extra backend-specific commands.  For example,
 Git and Bazaar allow you to manipulate @dfn{stashes} and @dfn{shelves}
-(where are a way to temporarily put aside uncommitted changes, and
+(which are a way to temporarily put aside uncommitted changes, and
 bring them back at a later time).
 
 @node Branches
@@ -1517,7 +1515,7 @@ is shown in a separate buffer.
 prompts for a branch ID, or a pair of revision IDs (@pxref{Switching
 Branches}); then it finds the changes from that branch, or the changes
 between the two revisions you specified, and merges those changes into
-the current VC fileset.  If you just type @key{RET}, Emacs simply
+the current VC fileset.  If you just type @address@hidden, Emacs simply
 merges any changes that were made on the same branch since you checked
 the file out.
 
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index ae6f944..cfc689e 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -2434,6 +2434,11 @@ To disable this, set @code{desktop-restore-frames} to 
@code{nil}.
 (See that variable's documentation for some related options
 that you can customize to fine-tune this behavior.)
 
address@hidden desktop-files-not-to-save
+Information about buffers visiting remote files is not saved by
+default.  Customize the variable @code{desktop-files-not-to-save} to
+change this.
+
 @vindex frameset-filter-alist
    When the desktop restores the frame and window configuration, it
 uses the recorded values of frame parameters, disregarding any
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 2157178..4a59f43 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -965,13 +965,13 @@ the line is blank (i.e., empty or containing only 
whitespace
 characters), the comment is indented to the same position where
 @address@hidden would indent to (@pxref{Basic Indent}).  If the line
 is non-blank, the comment is placed after the last non-whitespace
-character on the line; normally, Emacs tries putting it at the column
-specified by the variable @code{comment-column} (@pxref{Options for
-Comments}), but if the line already extends past that column, it puts
-the comment at some suitable position, usually separated from the
-non-comment text by at least one space.  In each case, Emacs places
-point after the comment's starting delimiter, so that you can start
-typing the comment text right away.
+character on the line.  Emacs tries to fit the comment between the
+columns specified by the variables @code{comment-column} and
address@hidden (@pxref{Options for Comments}), if
+possible.  Otherwise, it will choose some other suitable position,
+usually separated from the non-comment text by at least one space.  In
+each case, Emacs places point after the comment's starting delimiter,
+so that you can start typing the comment text right away.
 
   You can also use @kbd{M-;} to align an existing comment.  If a line
 already contains the comment-start string, @kbd{M-;} realigns it to
@@ -1064,13 +1064,16 @@ comment.  Enable the @code{comment-close-slash} 
clean-up for this.
 @subsection Options Controlling Comments
 
 @vindex comment-column
address@hidden comment-fill-column
 @kindex C-x ;
 @findex comment-set-column
   As mentioned in @ref{Comment Commands}, when the @kbd{M-j} command
-adds a comment to a line, it tries to place the comment at the column
-specified by the buffer-local variable @code{comment-column}.  You can
-set either the local value or the default value of this buffer-local
-variable in the usual way (@pxref{Locals}).  Alternatively, you can
+adds a comment to a line, it tries to place the comment between the
+columns specified by the buffer-local variables @code{comment-column}
+and @code{comment-fill-column} (or if that is @code{nil}, then the
+value of @code{fill-column}, @pxref{Fill Commands}).  You can set
+either the local value or the default value of these buffer-local
+variables in the usual way (@pxref{Locals}).  Alternatively, you can
 type @kbd{C-x ;} (@code{comment-set-column}) to set the value of
 @code{comment-column} in the current buffer to the column where point
 is currently located.  @kbd{C-u C-x ;} sets the comment column to
diff --git a/doc/emacs/rmail.texi b/doc/emacs/rmail.texi
index 09cb034..e9371f3 100644
--- a/doc/emacs/rmail.texi
+++ b/doc/emacs/rmail.texi
@@ -1585,7 +1585,7 @@ use it, add the @samp{--tls} flag to 
@code{rmail-movemail-flags}.
   If your incoming mail is stored on a local machine in a format other
 than Unix mailbox, you will need the Mailutils @command{movemail} to
 retrieve it.  @xref{Movemail}, for the detailed description of
address@hidden versions.  For example, to access mail from a inbox in
address@hidden versions.  For example, to access mail from an inbox in
 @code{maildir} format located in @file{/var/spool/mail/in}, you would
 include the following in the Rmail inbox list:
 
diff --git a/doc/emacs/vc1-xtra.texi b/doc/emacs/vc1-xtra.texi
index 7a4b8e4..35dd6d1 100644
--- a/doc/emacs/vc1-xtra.texi
+++ b/doc/emacs/vc1-xtra.texi
@@ -113,8 +113,9 @@ Prompt for a file name, delete the file from the working 
tree, and
 schedule the deletion for committing.
 
 @item M-x vc-rename-file
-Prompt for two file names, @var{var} and @var{old}, rename them in the
-working tree, and schedule the renaming for committing.
+Prompt for two file names, @var{old} and @var{new}, rename them in the
+working tree, and schedule the renaming for committing.  The @var{old}
+file defaults to the current buffer's file name if it is under VC.
 @end table
 
 @findex vc-delete-file
@@ -268,7 +269,7 @@ with the file's version control type.
 @vindex vc-handled-backends
   The variable @code{vc-handled-backends} determines which version
 control systems VC should handle.  The default value is @code{(RCS CVS
-SVN SCCS Bzr Git Hg Mtn Arch)}, so it contains all the version systems
+SVN SCCS SRC Bzr Git Hg Mtn)}, so it contains all the version systems
 that are currently supported.  If you want VC to ignore one or more of
 these systems, exclude its name from the list.  To disable VC
 entirely, set this variable to @code{nil}.
diff --git a/doc/lispintro/emacs-lisp-intro.texi 
b/doc/lispintro/emacs-lisp-intro.texi
index 8b24cc1..137ccfe 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -11799,7 +11799,7 @@ Uses recursion."
 @end group
 @end smallexample
 
-What happens when we call this function with a argument of 7?
+What happens when we call this function with an argument of 7?
 
 The first instance of the @code{triangle-recursively} function adds
 the number 7 to the value returned by a second instance of
@@ -20821,7 +20821,7 @@ The function @code{1+} which adds one to its argument, 
is executed on
 
 Contrast this with @code{apply}, which applies its first argument to
 all the remaining.
-(@xref{Readying a Graph, , Readying a Graph}, for a explanation of
+(@xref{Readying a Graph, , Readying a Graph}, for an explanation of
 @code{apply}.)
 
 @need 1250
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 7e41eb3..3750fa6 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -667,7 +667,7 @@ reason.
 
 @defun ask-user-about-supersession-threat filename
 This function is used to ask a user how to proceed after an attempt to
-modify an buffer visiting file @var{filename} when the file is newer
+modify a buffer visiting file @var{filename} when the file is newer
 than the buffer text.  Emacs detects this because the modification
 time of the file on disk is newer than the last save-time and its contents
 have changed.
diff --git a/doc/lispref/debugging.texi b/doc/lispref/debugging.texi
index 0969207..2daa8a5 100644
--- a/doc/lispref/debugging.texi
+++ b/doc/lispref/debugging.texi
@@ -918,51 +918,65 @@ be cleaner to combine them.
 @section Profiling
 @cindex profiling
 @cindex profile
address@hidden performance analysis
 @cindex measuring resource usage
 @cindex memory usage
 
-If your program is working correctly, but you want to make it run more
-quickly or efficiently, the first thing to do is @dfn{profile} your
-code so that you know how it is using resources.  If you find that one
-particular function is responsible for a significant portion of the
-runtime, you can start looking for ways to optimize that piece.
+If your program is working correctly, but not fast enough, and you
+want to make it run more quickly or efficiently, the first thing to do
+is @dfn{profile} your code so that you know where it spends most of
+the execution time.  If you find that one particular function is
+responsible for a significant portion of the execution time, you can
+start looking for ways to optimize that piece.
 
 Emacs has built-in support for this.  To begin profiling, type
 @kbd{M-x profiler-start}.  You can choose to profile by processor
-usage, memory usage, or both.  After doing some work, type
address@hidden profiler-report} to display a summary buffer for each
-resource that you chose to profile.  The names of the report buffers
-include the times at which the reports were generated, so you can
-generate another report later on without erasing previous results.
-When you have finished profiling, type @kbd{M-x profiler-stop} (there
-is a small overhead associated with profiling).
+usage, memory usage, or both.  Then run the code you'd like to speed
+up.  After that, type @kbd{M-x profiler-report} to display a summary
+buffer for each resource (cpu and memory) that you chose to profile.
+The names of the report buffers include the times at which the reports
+were generated, so you can generate another report later on without
+erasing previous results.  When you have finished profiling, type
address@hidden profiler-stop} (there is a small overhead associated with
+profiling, so we don't recommend leaving it active except when you are
+actually running the code you want to examine).
 
 The profiler report buffer shows, on each line, a function that was
-called, followed by how much resource (processor or memory) it used in
-absolute and percentage times since profiling started.  If a given
+called, followed by how much resources (cpu or memory) it used in
+absolute and percentage terms since profiling started.  If a given
 line has a @samp{+} symbol at the left-hand side, you can expand that
 line by typing @address@hidden, in order to see the function(s) called
 by the higher-level function.  Use a prefix argument (@kbd{C-u
 @key{RET}}) to see the whole call tree below a function.  Pressing
 @address@hidden again will collapse back to the original state.
 
-Press @kbd{j} or @kbd{mouse-2} to jump to the definition of a function.
-Press @kbd{d} to view a function's documentation.
-You can save a profile to a file using @kbd{C-x C-w}.
-You can compare two profiles using @kbd{=}.
+Press @kbd{j} or @kbd{mouse-2} to jump to the definition of a function
+at point.  Press @kbd{d} to view a function's documentation.  You can
+save a profile to a file using @kbd{C-x C-w}.  You can compare two
+profiles using @kbd{=}.
 
 @c FIXME reversed calltree?
 
 @cindex @file{elp.el}
 @cindex timing programs
-The @file{elp} library offers an alternative approach.  See the file
address@hidden for instructions.
+The @file{elp} library offers an alternative approach, which is useful
+when you know in advance which Lisp function(s) you want to profile.
+Using that library, you begin by setting @code{elp-function-list} to
+the list of function symbols---those are the functions you want to
+profile.  Then type @address@hidden elp-instrument-list @key{RET} nil
address@hidden to arrange for profiling those functions.  After running
+the code you want to profile, invoke @address@hidden elp-results}} to
+display the current results.  See the file @file{elp.el} for more
+detailed instructions.  This approach is limited to profiling
+functions written in Lisp, it cannot profile Emacs primitives.
 
 @cindex @file{benchmark.el}
 @cindex benchmarking
-You can check the speed of individual Emacs Lisp forms using the
address@hidden library.  See the functions @code{benchmark-run} and
address@hidden in @file{benchmark.el}.
+You can measure the time it takes to evaluate individual Emacs Lisp
+forms using the @file{benchmark} library.  See the macros
address@hidden and @code{benchmark-run-compiled} in
address@hidden  You can also use the @code{benchmark} command
+for timing forms interactively.
 
 @c Not worth putting in the printed manual.
 @ifnottex
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index 0c17e1e..031fe65 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -898,7 +898,7 @@ lines inserted.
 
 @cindex coverage testing (Edebug)
 @cindex frequency counts
address@hidden performance analysis
address@hidden performance analysis (Edebug)
   Edebug provides rudimentary coverage testing and display of execution
 frequency.
 
diff --git a/doc/lispref/package.texi b/doc/lispref/package.texi
index 877aaf8..d179cf5 100644
--- a/doc/lispref/package.texi
+++ b/doc/lispref/package.texi
@@ -199,7 +199,7 @@ standard keyword from the @code{finder-known-keywords} list.
 as explained in @ref{Packaging Basics}.  In the above example, a magic
 comment autoloads @code{superfrobnicator-mode}.
 
-  @xref{Package Archives}, for a explanation of how to add a
+  @xref{Package Archives}, for an explanation of how to add a
 single-file package to a package archive.
 
 @node Multi-file Packages
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 299ed0b..51a440c 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -2981,7 +2981,7 @@ optional argument @var{append} is address@hidden, 
@var{face} is
 appended to the end of the list instead.  Note that in a face list,
 the first occurring value for each attribute takes precedence.
 
-For example, the following code would assign a italicized green face
+For example, the following code would assign an italicized green face
 to the text between @var{start} and @var{end}:
 
 @example
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 5ab6d6e..687d597 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -862,7 +862,7 @@ If the optional argument @var{pixelwise} is address@hidden,
 A positive @var{delta} moves the edge downwards or to the right; a
 negative @var{delta} moves it upwards or to the left.  If the edge
 cannot be moved as far as specified by @var{delta}, this function
-moves it as far as possible but does not signal a error.
+moves it as far as possible but does not signal an error.
 
 This function tries to resize windows adjacent to the edge that is
 moved.  If this is not possible for some reason (e.g., if that adjacent
diff --git a/doc/misc/autotype.texi b/doc/misc/autotype.texi
index 026c571..3d61d24 100644
--- a/doc/misc/autotype.texi
+++ b/doc/misc/autotype.texi
@@ -243,7 +243,7 @@ Interesting point.  When wrapping skeletons around 
successive regions, they are
 put at these places.  Point is left at first @code{_} where nothing is wrapped.
 @item @code{>}
 Indent line according to major mode.  When following element is @code{_}, and
-there is a interregion that will be wrapped here, indent that interregion.
+there is an interregion that will be wrapped here, indent that interregion.
 @item @code{&}
 Logical and.  If preceding element moved point, i.e., usually inserted
 something, do following element.
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 0132ab1..2de56fa 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -2408,7 +2408,7 @@ could achieve this with code like this in your 
@file{.emacs}:
 @end group
 @end example
 
-In a programming team, a hook is a also a good place for each member
+In a programming team, a hook is also a good place for each member
 to put his own personal preferences.  For example, you might be the
 only person in your team who likes Auto-newline minor mode.  You could
 have it enabled by default by placing the following in your
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 5392748..da6fda0 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -753,7 +753,7 @@ privileges, you have several options:
 Info files don't actually need to be installed before being used.
 You can use a prefix argument for the @code{info} command and specify
 the name of the Info file in the minibuffer.  This goes to the node
-named @samp{Top} in that file.  For example, to view a Info file named
+named @samp{Top} in that file.  For example, to view an Info file named
 @address@hidden in your home directory, you can type this:
 
 @example
@@ -3419,7 +3419,7 @@ version of Emacs, and see @ref{Current GNU 
distributions}, for a list of
 archive sites that make GNU software available.
 
 @node Finding a package with particular functionality
address@hidden How do I find a Emacs Lisp package that does XXX?
address@hidden How do I find an Emacs Lisp package that does XXX?
 @cindex Package, finding
 @cindex Finding an Emacs Lisp package
 @cindex Functionality, finding a particular package
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 43f8cd6..1789767 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -1022,7 +1022,7 @@ So that the user can enter @samp{info chmod}, for example.
 
 @item Create a mode @code{eshell-browse}
 
-It would treat the Eshell buffer as a outline.  Collapsing the outline
+It would treat the Eshell buffer as an outline.  Collapsing the outline
 hides all of the output text.  Collapsing again would show only the
 first command run in each directory
 
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 14c0117..26135b8 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -441,7 +441,7 @@ machine news.yourprovider.net login YourUserName password 
YourPassword
 @noindent
 .
 Make sure that the file isn't readable to others if you
-work on a OS which is capable of doing so.  (Under Unix
+work on an OS which is capable of doing so.  (Under Unix
 say
 @example
 chmod 600 ~/.authinfo
@@ -1449,7 +1449,7 @@ all those email addresses?
 
 @subsubheading Answer
 
-There's an very basic solution for this, mail aliases.
+There's a very basic solution for this, mail aliases.
 You can store your mail addresses in a ~/.mailrc file using a simple
 alias syntax:
 
@@ -2012,7 +2012,7 @@ server by typing @samp{J a}.  If you
 make a mistake, or change your mind, you can undo this
 action by typing @samp{J r}.  When
 you're done, type 'q' to return to the group buffer.
-Now the next time you enter a group on a agentized
+Now the next time you enter a group on an agentized
 server, the headers will be stored on disk and read from
 there the next time you enter the group.
 
@@ -2293,7 +2293,7 @@ When the term Emacs is used in this FAQ, it means either 
GNU
 Emacs or XEmacs.
 
 @item Message
-In this FAQ message means a either a mail or a posting to a
+In this FAQ message means either a mail or a posting to a
 Usenet Newsgroup or to some other fancy back end, no matter
 of which kind it is.
 
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 68aa01c..1793190 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -12989,7 +12989,7 @@ of these examples works:
 
 @subsubheading Embedding clickable images
 For clickable images, provide a link whose description is another link to an
-image file.  For example, to embed a image @file{org-mode-unicorn.png} which
+image file.  For example, to embed an image @file{org-mode-unicorn.png} which
 when clicked jumps to @uref{http://Orgmode.org} website, do the following
 
 @example
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index d8faad9..f214152 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -1340,7 +1340,7 @@ currently part of Supercite, but contributions are 
welcome!
 
 Regi works by interpreting frames with the function
 @code{regi-interpret}.  A frame is a list of arbitrary size where each
-element is a entry of the following form:
+element is an entry of the following form:
 
 @example
 (@var{pred} @var{func} address@hidden address@hidden)
@@ -1709,7 +1709,7 @@ of information from the info alist.
 @item @code{sc-mail-field-query} (@kbd{C-c C-p f})
 Allows you to interactively view, modify, add, and delete info alist
 key-value pairs.  With no argument, you are prompted (with completion)
-for a info key.  The value associated with that key is displayed in the
+for an info key.  The value associated with that key is displayed in the
 minibuffer.  With an argument, this command will first ask if you want
 to view, modify, add, or delete an info key.  Viewing is identical to
 running the command with no arguments.
diff --git a/etc/CALC-NEWS b/etc/CALC-NEWS
index 394894a..04baf41 100644
--- a/etc/CALC-NEWS
+++ b/etc/CALC-NEWS
@@ -70,7 +70,7 @@ For changes in Emacs 23.1 and later, see the main Emacs NEWS 
file.
 
 * Version 2.02d:
 
-** Fixed a minor installation problem with a Emacs 19.29 byte-compiler bug.
+** Fixed a minor installation problem with an Emacs 19.29 byte-compiler bug.
 
 ** Removed archaic "macedit" package (superseded by "edmacro").
 
diff --git a/etc/ETAGS.EBNF b/etc/ETAGS.EBNF
index 221078a..23bb944 100644
--- a/etc/ETAGS.EBNF
+++ b/etc/ETAGS.EBNF
@@ -84,7 +84,7 @@ whether it is possible to deduce the tag name from the 
pattern, and make
 an unnamed tag in those cases.  The name deduced from the pattern of an
 unnamed tag is the implicit name of that tag.
   When the user looks for a tag, and Emacs finds no explicit tag names
-that match it, Emacs then looks for an tag whose implicit tag name
+that match it, Emacs then looks for a tag whose implicit tag name
 matches the request.  etags.c uses implicit tag names when possible, in
 order to reduce the size of the tags file.
   An implicit tag name is deduced from the pattern by discarding the
diff --git a/etc/NEWS.20 b/etc/NEWS.20
index 3391d3e..31e640f 100644
--- a/etc/NEWS.20
+++ b/etc/NEWS.20
@@ -4130,17 +4130,16 @@ is an alternative to using the keymap itself.
 ** Changes in invisibility features
 
 *** Isearch can now temporarily show parts of the buffer which are
-hidden by an overlay with a invisible property, when the search match
+hidden by an overlay with an invisible property, when the search match
 is inside that portion of the buffer.  To enable this the overlay
-should have a isearch-open-invisible property which is a function that
-would be called having the overlay as an argument, the function should
-make the overlay visible.
+should have an isearch-open-invisible property, which is a function that
+would be called with the overlay as an argument, and should make it visible.
 
 During incremental search the overlays are shown by modifying the
-invisible and intangible properties, if beside this more actions are
-needed the overlay should have a isearch-open-invisible-temporary
-which is a function. The function is called with 2 arguments: one is
-the overlay and the second is nil when it should show the overlay and
+invisible and intangible properties.  If more actions are
+needed, the overlay should have an isearch-open-invisible-temporary property,
+which is a function.  The function is called with 2 arguments: one is
+the overlay, and the second is nil when it should show the overlay and
 t when it should hide it.
 
 *** add-to-invisibility-spec, remove-from-invisibility-spec
diff --git a/etc/NEWS.21 b/etc/NEWS.21
index 04bde7e..ea4f421 100644
--- a/etc/NEWS.21
+++ b/etc/NEWS.21
@@ -4348,7 +4348,7 @@ integer.  This is a required property.
 `:pt-height HEIGHT'
 
 HEIGHT specifies the height of the image in pt (1/72 inch).  HEIGHT
-must be a integer.  This is an required property.
+must be an integer.  This is a required property.
 
 `:bounding-box BOX'
 
@@ -4868,7 +4868,7 @@ temporarily to nil, for example
      (enlarge-window 10))
 
 Likewise, an attempt to split a fixed-height window vertically,
-or a fixed-width window horizontally results in a error.
+or a fixed-width window horizontally results in an error.
 
 ** The cursor-type frame parameter is now supported on MS-DOS
 terminals.  When Emacs starts, it by default changes the cursor shape
diff --git a/etc/NEWS.22 b/etc/NEWS.22
index c1009fc..26054d2 100644
--- a/etc/NEWS.22
+++ b/etc/NEWS.22
@@ -4895,7 +4895,7 @@ described above and specifies the total height of the 
line, causing a
 varying number of pixels to be inserted after the line to make it line
 exactly that many pixels high.
 
-If the `line-spacing' property value is an positive integer, the value
+If the `line-spacing' property value is a positive integer, the value
 is used as additional pixels to insert after the display line; this
 overrides the default frame `line-spacing' and any buffer local value of
 the `line-spacing' variable.
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index e7e60be..12eab44 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -148,7 +148,7 @@ directories in published site-maps.
 **** Scheme: support for tables
 **** Scheme: new variable: ~org-babel-scheme-null-to~
 
-This new custom option allows to use a empty list or null symbol to
+This new custom option allows you to use an empty list or null symbol to
 format the table output, initially assigned to ~hlines~.
 
 **** Scheme: new header ~:prologue~
diff --git a/lisp/calendar/holidays.el b/lisp/calendar/holidays.el
index 198c3bb..f383083 100644
--- a/lisp/calendar/holidays.el
+++ b/lisp/calendar/holidays.el
@@ -399,7 +399,7 @@ use instead of point."
 (defun holidays (&optional arg)
   "Display the holidays for last month, this month, and next month.
 If called with an optional prefix argument ARG, prompts for month and year.
-This function is suitable for execution in a init file."
+This function is suitable for execution in an init file."
   (interactive "P")
   (save-excursion
     (let* ((completion-ignore-case t)
diff --git a/lisp/calendar/todo-mode.el b/lisp/calendar/todo-mode.el
index 4246ca5..5161ae8 100644
--- a/lisp/calendar/todo-mode.el
+++ b/lisp/calendar/todo-mode.el
@@ -623,7 +623,7 @@ Todo mode revisit this file or, with option
 file was last visited.
 
 If you call this command before you have created any todo file in
-the current format, and you have an todo file in old format, it
+the current format, and you have a todo file in old format, it
 will ask you whether to convert that file and show it.
 Otherwise, calling this command before any todo file exists
 prompts for a file name and an initial category (defaulting to
diff --git a/lisp/cedet/ede/cpp-root.el b/lisp/cedet/ede/cpp-root.el
index 76afe9b..bcefb4e 100644
--- a/lisp/cedet/ede/cpp-root.el
+++ b/lisp/cedet/ede/cpp-root.el
@@ -137,7 +137,7 @@
 ;; Need a way to reconfigure a project, and have it affect all open buffers.
 ;; From Tobias Gerdin:
 ;;
-;;   >>3) Is there any way to refresh a ede-cpp-root-project dynamically? I 
have
+;;   >>3) Is there any way to refresh an ede-cpp-root-project dynamically? I 
have
 ;;   >>some file open part of the project, fiddle with the include paths and 
would
 ;;   >>like the open buffer to notice this when I re-evaluate the
 ;;   >>ede-cpp-root-project constructor.
diff --git a/lisp/cedet/ede/files.el b/lisp/cedet/ede/files.el
index 36ec7a1..c95402e 100644
--- a/lisp/cedet/ede/files.el
+++ b/lisp/cedet/ede/files.el
@@ -25,7 +25,7 @@
 ;;
 ;; Basic Model:
 ;;
-;; A directory belongs to a project if a ede-project-autoload structure
+;; A directory belongs to a project if an ede-project-autoload structure
 ;; matches your directory.
 ;;
 ;; A toplevel project is one where there is no active project above
diff --git a/lisp/cedet/semantic/analyze.el b/lisp/cedet/semantic/analyze.el
index 8f3d5b2..7c9f102 100644
--- a/lisp/cedet/semantic/analyze.el
+++ b/lisp/cedet/semantic/analyze.el
@@ -121,7 +121,7 @@ See `semantic-analyze-scoped-tags' for details.")
           :type buffer
           :documentation "The buffer this context is derived from.")
    (errors :initarg :errors
-          :documentation "Any errors thrown an caught during analysis.")
+          :documentation "Any errors thrown and caught during analysis.")
    )
   "Base analysis data for any context.")
 
diff --git a/lisp/cedet/semantic/dep.el b/lisp/cedet/semantic/dep.el
index 6f1bde0..640884d 100644
--- a/lisp/cedet/semantic/dep.el
+++ b/lisp/cedet/semantic/dep.el
@@ -67,7 +67,7 @@ For mode authors, use
 `defcustom-mode-local-semantic-dependency-system-include-path'
 to create a mode-specific variable to control this.
 
-When searching for a file associated with a name found in an tag of
+When searching for a file associated with a name found in a tag of
 class include, this path will be inspected for includes of type
 `system'.  Some include tags are agnostic to this setting and will
 check both the project and system directories.")
diff --git a/lisp/cedet/semantic/lex.el b/lisp/cedet/semantic/lex.el
index 0403e5e..0cc296f 100644
--- a/lisp/cedet/semantic/lex.el
+++ b/lisp/cedet/semantic/lex.el
@@ -408,7 +408,7 @@ TYPE name does not exist.  Otherwise signal an error."
 SPECS must be a list of (TYPE . TOKENS) elements, where:
 
   TYPE is the name of the type symbol to define.
-  TOKENS is an list of (TOKSYM . MATCHER) elements, where:
+  TOKENS is a list of (TOKSYM . MATCHER) elements, where:
 
     TOKSYM is any lexical token symbol.
     MATCHER is a string or regexp a text must match to be a such
diff --git a/lisp/cedet/semantic/util-modes.el 
b/lisp/cedet/semantic/util-modes.el
index 6374a0c..54c9578 100644
--- a/lisp/cedet/semantic/util-modes.el
+++ b/lisp/cedet/semantic/util-modes.el
@@ -782,7 +782,7 @@ If there is no function, disable the header line."
                  (goto-char (semantic-tag-start tag))
                  ;; Klaus Berndl <address@hidden>:
                  ;; goto the tag name; this is especially needed for languages
-                 ;; like c++ where a often used style is like:
+                 ;; like c++ where an often used style is like:
                  ;;     void
                  ;;     ClassX::methodM(arg1...)
                  ;;     {
diff --git a/lisp/cedet/srecode/el.el b/lisp/cedet/srecode/el.el
index f5f1265..ff9e1d5 100644
--- a/lisp/cedet/srecode/el.el
+++ b/lisp/cedet/srecode/el.el
@@ -24,7 +24,7 @@
 ;; Emacs Lisp specific handlers.  To use these handlers in your
 ;; template, add the :name part to your template argument list.
 ;;
-;; Error if not in a Emacs Lisp mode
+;; Error if not in an Emacs Lisp mode
 
 ;;; Code:
 
diff --git a/lisp/cus-edit.el b/lisp/cus-edit.el
index 8284e91..816c7f7 100644
--- a/lisp/cus-edit.el
+++ b/lisp/cus-edit.el
@@ -1192,7 +1192,7 @@ For example, the MH-E package updates this alist as 
follows:
 
 The value of PACKAGE needs to be unique and it needs to match the
 PACKAGE value appearing in the :package-version keyword.  Since
-the user might see the value in a error message, a good choice is
+the user might see the value in an error message, a good choice is
 the official name of the package, such as MH-E or Gnus.")
 
 ;;;###autoload
diff --git a/lisp/desktop.el b/lisp/desktop.el
index 420d62a..8bd4465 100644
--- a/lisp/desktop.el
+++ b/lisp/desktop.el
@@ -393,7 +393,8 @@ or `desktop-modes-not-to-save'."
 ;; Skip tramp and ange-ftp files
 (defcustom desktop-files-not-to-save
   "\\(^/[^/:]*:\\|(ftp)$\\)"
-  "Regexp identifying files whose buffers are to be excluded from saving."
+  "Regexp identifying files whose buffers are to be excluded from saving.
+The default value excludes buffers visiting remote files."
   :type '(choice (const :tag "None" nil)
                 regexp)
   :group 'desktop)
diff --git a/lisp/emacs-lisp/benchmark.el b/lisp/emacs-lisp/benchmark.el
index 0dc9333..b86b56b 100644
--- a/lisp/emacs-lisp/benchmark.el
+++ b/lisp/emacs-lisp/benchmark.el
@@ -96,7 +96,8 @@ result.  The overhead of the `lambda's is accounted for."
 ;;;###autoload
 (defun benchmark (repetitions form)
   "Print the time taken for REPETITIONS executions of FORM.
-Interactively, REPETITIONS is taken from the prefix arg.
+Interactively, REPETITIONS is taken from the prefix arg, and
+the command prompts for the form to benchmark.
 For non-interactive use see also `benchmark-run' and
 `benchmark-run-compiled'."
   (interactive "p\nxForm: ")
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index a0b4208..4f97712 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -641,7 +641,7 @@ list of a symbol.")
 
 (defun edebug-form-data-symbol ()
   "Return the edebug data symbol of the form where point is in.
-If point is not inside a edebuggable form, cause error."
+If point is not inside an edebuggable form, signal an error."
   (or (edebug--form-data-name (edebug-get-form-data-entry (point)))
       (error "Not inside instrumented form")))
 
diff --git a/lisp/emacs-lisp/elp.el b/lisp/emacs-lisp/elp.el
index 2dc1816..012e7cf 100644
--- a/lisp/emacs-lisp/elp.el
+++ b/lisp/emacs-lisp/elp.el
@@ -278,8 +278,9 @@ Argument FUNSYM is the symbol of a defined function."
 (defun elp-instrument-list (&optional list)
   "Instrument, for profiling, all functions in `elp-function-list'.
 Use optional LIST if provided instead.
-If called interactively, read LIST using the minibuffer."
-  (interactive "PList of functions to instrument: ") ;FIXME: Doesn't work?!
+If called interactively, prompt for LIST in the minibuffer;
+type \"nil\" to use `elp-function-list'."
+  (interactive "xList of functions to instrument: ")
   (unless (listp list)
     (signal 'wrong-type-argument (list 'listp list)))
   (mapcar #'elp-instrument-function (or list elp-function-list)))
diff --git a/lisp/emacs-lisp/ewoc.el b/lisp/emacs-lisp/ewoc.el
index b88a1a5..262d4d8 100644
--- a/lisp/emacs-lisp/ewoc.el
+++ b/lisp/emacs-lisp/ewoc.el
@@ -411,7 +411,7 @@ If the EWOC is empty, nil is returned."
      ((>= pos (ewoc--node-start-marker (ewoc--node-nth dll -2)))
       (ewoc--node-nth dll -2))
 
-     ;; We now know that pos is within a elem.
+     ;; We now know that pos is within an elem.
      (t
       ;; Make an educated guess about which of the three known
       ;; node'es (the first, the last, or GUESS) is nearest.
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index ab02d42..999e0d0 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -1750,7 +1750,7 @@ with PKG-DESC entry removed."
   "Return a list of dependencies for PACKAGE sorted by dependency.
 PACKAGE is included as the first element of the returned list.
 ONLY is an alist associating package names to package objects.
-Only these packages will be in the return value an their cdrs are
+Only these packages will be in the return value and their cdrs are
 destructively set to nil in ONLY."
   (let ((out))
     (dolist (dep (package-desc-reqs package))
diff --git a/lisp/epa.el b/lisp/epa.el
index 8694de4..5c237bc 100644
--- a/lisp/epa.el
+++ b/lisp/epa.el
@@ -267,7 +267,7 @@ You should bind this variable with `let', but do not set it 
globally.")
 (defvar epa-exit-buffer-function #'quit-window)
 
 (define-widget 'epa-key 'push-button
-  "Button for representing a epg-key object."
+  "Button for representing an epg-key object."
   :format "%[%v%]"
   :button-face-get 'epa--key-widget-button-face-get
   :value-create 'epa--key-widget-value-create
diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el
index ddab335..61c0ebc 100644
--- a/lisp/eshell/esh-cmd.el
+++ b/lisp/eshell/esh-cmd.el
@@ -80,7 +80,7 @@
 ;;
 ;;   echo x$(+ 1 2) "String $(+ 1 2)"
 ;;
-;; To pass a Lisp symbol as a argument, use the alternate quoting
+;; To pass a Lisp symbol as an argument, use the alternate quoting
 ;; syntax, since the single quote character is far too overused in
 ;; shell syntax:
 ;;
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el
index 841a950..59fb9b9 100644
--- a/lisp/eshell/esh-proc.el
+++ b/lisp/eshell/esh-proc.el
@@ -87,7 +87,7 @@ variable's value to take effect."
   "Called each time a process is exec'd by `eshell-gather-process-output'.
 It is passed one argument, which is the process that was just started.
 It is useful for things that must be done each time a process is
-executed in a eshell mode buffer (e.g., `process-kill-without-query').
+executed in an eshell mode buffer (e.g., `process-kill-without-query').
 In contrast, `eshell-mode-hook' is only executed once when the buffer
 is created."
   :type 'hook
diff --git a/lisp/faces.el b/lisp/faces.el
index 0fe839d..18b821a 100644
--- a/lisp/faces.el
+++ b/lisp/faces.el
@@ -698,7 +698,7 @@ Otherwise, VALUE must be a property list of the form:
 
 `(:color COLOR :style STYLE)'.
 
-COLOR can be a either a color name string or `foreground-color'.
+COLOR can be either a color name string or `foreground-color'.
 STYLE can be either `line' or `wave'.
 If a keyword/value pair is missing from the property list, a
 default value will be used for the value.
diff --git a/lisp/ffap.el b/lisp/ffap.el
index d584692..4e479d1 100644
--- a/lisp/ffap.el
+++ b/lisp/ffap.el
@@ -1081,7 +1081,7 @@ If a given RFC isn't in these then `ffap-rfc-path' is 
offered."
     ;; * strip trailing "@" and ":"
     ;; * no commas (good for latex)
     (file "--:\\\\${}+<>@-Z_[:alpha:]~*?" "<@" "@>;.,!:")
-    ;; An url, or maybe a email/news message-id:
+    ;; An url, or maybe an email/news message-id:
     (url "--:=&address@hidden:alpha:]~#,%;*()!'" "^[0-9a-zA-Z]" ":;.,!?")
     ;; Find a string that does *not* contain a colon:
     (nocolon "--9$+<>@-Z_[:alpha:]~" "<@" "@>;.,!?")
diff --git a/lisp/filenotify.el b/lisp/filenotify.el
index d88578b..5d37f39 100644
--- a/lisp/filenotify.el
+++ b/lisp/filenotify.el
@@ -424,7 +424,7 @@ DESCRIPTOR should be an object returned by 
`file-notify-add-watch'."
 ;; TODO:
 ;; * Watching a /dir/file may receive events for dir.
 ;;   (This may be the desired behaviour.)
-;; * Watching a file in a already watched directory
+;; * Watching a file in an already watched directory
 ;;   If the file is created and *then* a watch is added to that file, the
 ;;   watch might receive events which occurred prior to it being created,
 ;;   due to the way events are propagated during idle time.  Note: This
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 6f28569..29d3bc5 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -1835,7 +1835,7 @@ If SYNTACTIC-KEYWORDS is non-nil, it means these keywords 
are used for
                               (eval keywords)))))
 
 (defun font-lock-value-in-major-mode (values)
-  "If VALUES is an list, use `major-mode' as a key and return the `assq' value.
+  "If VALUES is a list, use `major-mode' as a key and return the `assq' value.
 VALUES should then be an alist on the form ((MAJOR-MODE . VALUE) ...) where
 MAJOR-MODE may be t.
 If VALUES isn't a list, return VALUES."
diff --git a/lisp/gnus/deuglify.el b/lisp/gnus/deuglify.el
index ce3ead3..d2bc87c 100644
--- a/lisp/gnus/deuglify.el
+++ b/lisp/gnus/deuglify.el
@@ -284,7 +284,7 @@
   :group 'gnus-outlook-deuglify)
 
 (defcustom gnus-outlook-display-hook nil
-  "A hook called after an deuglified article has been prepared.
+  "A hook called after a deuglified article has been prepared.
 It is run after `gnus-article-prepare-hook'."
   :version "22.1"
   :type 'hook
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el
index c786a9c..ada148d 100644
--- a/lisp/gnus/gnus-agent.el
+++ b/lisp/gnus/gnus-agent.el
@@ -451,7 +451,7 @@ manipulated as follows:
 (defvar gnus-agent-mode-status '(gnus-agent-mode " Plugged"))
 
 (defun gnus-agent-mode ()
-  "Minor mode for providing a agent support in Gnus buffers."
+  "Minor mode for providing agent support in Gnus buffers."
   (let* ((buffer (progn (string-match "^gnus-\\(.*\\)-mode$"
                                      (symbol-name major-mode))
                        (match-string 1 (symbol-name major-mode))))
diff --git a/lisp/gnus/gnus-cache.el b/lisp/gnus/gnus-cache.el
index d1324fe..1cdfea6 100644
--- a/lisp/gnus/gnus-cache.el
+++ b/lisp/gnus/gnus-cache.el
@@ -443,7 +443,7 @@ A group name is decoded according to
 decoded again according to `nnmail-pathname-coding-system',
 `file-name-coding-system', or `default-file-name-coding-system'.
 
-It is used when asking for a original group name from a cache
+It is used when asking for an original group name from a cache
 directory name, in which non-ASCII characters might have been unified
 into the ones of a certain charset particularly if the `utf-8' coding
 system for example was used.")
diff --git a/lisp/gnus/gnus-cus.el b/lisp/gnus/gnus-cus.el
index 00ccfb7..f4c0aa7 100644
--- a/lisp/gnus/gnus-cus.el
+++ b/lisp/gnus/gnus-cus.el
@@ -365,7 +365,7 @@ category."))
     (unless (or group topic)
       (error "No group on current line"))
     (when (and group topic)
-      (error "Both a group an topic on current line"))
+      (error "Both a group and topic on current line"))
     (unless (or topic (setq info (gnus-get-info group)))
       (error "Killed group; can't be edited"))
     ;; Ready.
diff --git a/lisp/gnus/gnus-fun.el b/lisp/gnus/gnus-fun.el
index d0557dc..40c6d51 100644
--- a/lisp/gnus/gnus-fun.el
+++ b/lisp/gnus/gnus-fun.el
@@ -66,7 +66,7 @@
 (defcustom gnus-convert-image-to-x-face-command
   "convert -scale 48x48! %s xbm:- | xbm2xface.pl"
   "Command for converting an image to an X-Face.
-The command must take a image filename (use \"%s\") as input.
+The command must take an image filename (use \"%s\") as input.
 The output must be the X-Face header data on stdout."
   :version "22.1"
   :group 'gnus-fun
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 0edde63..123b64a 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -2378,11 +2378,11 @@ This variable is persisted in the user's .newsrc.eld 
file.")
 
 ;; Propagate flags to server, with the following exceptions:
 ;; `seen' is private to each gnus installation
-;; `cache' is a internal gnus flag for each gnus installation
-;; `download' is a agent flag private to each gnus installation
+;; `cache' is an internal gnus flag for each gnus installation
+;; `download' is an agent flag private to each gnus installation
 ;; `unsend' are for nndraft groups only
 ;; `score' is not a proper mark
-;; `bookmark': don't propagated it, or fix the bug in update-mark.
+;; `bookmark': don't propagate it, or fix the bug in update-mark.
 (defconst gnus-article-unpropagated-mark-lists
   '(seen cache download unsend score bookmark unexist)
   "Marks that shouldn't be propagated to back ends.
diff --git a/lisp/hexl.el b/lisp/hexl.el
index 681a26b..d716405 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -890,7 +890,7 @@ This discards the buffer's undo information."
        (error "Invalid hex digit `%c'" ch)))))
 
 (defun hexl-oct-char-to-integer (character)
-  "Take a char and return its value as if it was a octal digit."
+  "Take a char and return its value as if it was an octal digit."
   (if (and (>= character ?0) (<= character ?7))
       (- character ?0)
     (error "Invalid octal digit `%c'" character)))
diff --git a/lisp/htmlfontify.el b/lisp/htmlfontify.el
index 82c0a89..dfa6bde 100644
--- a/lisp/htmlfontify.el
+++ b/lisp/htmlfontify.el
@@ -1630,7 +1630,7 @@ TEXT-ID marks a unique position within a block.  It is 
set to
 value of `point' at the current buffer position.
 
 TEXT-BEGINS-BLOCK-P is a boolean and is non-nil if the current
-span also begins a invisible portion of text.
+span also begins an invisible portion of text.
 
 An implementation can use TEXT-BLOCK, TEXT-ID,
 TEXT-BEGINS-BLOCK-P to implement fold/unfold-on-mouse-click like
diff --git a/lisp/image/gravatar.el b/lisp/image/gravatar.el
index fe44f0d..e7c472d 100644
--- a/lisp/image/gravatar.el
+++ b/lisp/image/gravatar.el
@@ -60,11 +60,11 @@
   "Base URL for getting gravatars.")
 
 (defun gravatar-hash (mail-address)
-  "Create an hash from MAIL-ADDRESS."
+  "Create a hash from MAIL-ADDRESS."
   (md5 (downcase mail-address)))
 
 (defun gravatar-build-url (mail-address)
-  "Return an URL to retrieve MAIL-ADDRESS gravatar."
+  "Return a URL to retrieve MAIL-ADDRESS gravatar."
   (format "%s/%s?d=404&r=%s&s=%d"
           gravatar-base-url
           (gravatar-hash mail-address)
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 45eabfc..6f91207 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -823,7 +823,7 @@
                     '("FreeMono" . "iso10646-1") nil 'prepend)
 
   ;; Since standard-fontset-spec on X uses fixed-medium font, which
-  ;; gets mapped to a iso8859-1 variant, we would like to prefer its
+  ;; gets mapped to an iso8859-1 variant, we would like to prefer its
   ;; iso10646-1 variant for symbols, where the coverage is known to be
   ;; good.
   (dolist (symbol-subgroup
diff --git a/lisp/mail/rmailedit.el b/lisp/mail/rmailedit.el
index 623a829..91aeb41 100644
--- a/lisp/mail/rmailedit.el
+++ b/lisp/mail/rmailedit.el
@@ -410,7 +410,7 @@ or else nil to insert it at the beginning.
 
 DELETED's elements are elements of OLD-HEADERS.
 CHANGED's elements have the form (OLD . NEW)
-where OLD is a element of OLD-HEADERS and NEW is an element of NEW-HEADERS."
+where OLD is an element of OLD-HEADERS and NEW is an element of NEW-HEADERS."
 
   (let ((reverse-new (reverse new-headers))
        inserted deleted changed)
diff --git a/lisp/mh-e/mh-e.el b/lisp/mh-e/mh-e.el
index 63d7a29..05ff672 100644
--- a/lisp/mh-e/mh-e.el
+++ b/lisp/mh-e/mh-e.el
@@ -831,7 +831,7 @@ This assumes that a temporary buffer is set up."
                               (expand-file-name "flists" dir)))))))))
 
 (defun mh-file-command-p (file)
-  "Return t if file FILE is the name of a executable regular file."
+  "Return t if file FILE is the name of an executable regular file."
   (and (file-regular-p file) (file-executable-p file)))
 
 (defun mh-variant-set-variant (variant)
diff --git a/lisp/mh-e/mh-mime.el b/lisp/mh-e/mh-mime.el
index 967eb86..e2c682a 100644
--- a/lisp/mh-e/mh-mime.el
+++ b/lisp/mh-e/mh-mime.el
@@ -1242,7 +1242,7 @@ MESSAGE number."
                             "message/rfc822"
                             (if (string= "" description) nil description)
                             "inline"))
-          (t (error "The message number, %s, is not a integer" msg)))))
+          (t (error "The message number, %s, is not an integer" msg)))))
 
 (defun mh-mh-forward-message (&optional description folder messages)
   "Add tag to forward a message.
diff --git a/lisp/mh-e/mh-search.el b/lisp/mh-e/mh-search.el
index 3e591c6..8b8ba96 100644
--- a/lisp/mh-e/mh-search.el
+++ b/lisp/mh-e/mh-search.el
@@ -443,7 +443,7 @@ search all folders."
            (setq redo-flag t))
           ((mh-folder-exists-p new-folder)
            ;; Folder exists but we don't have it open. That means they are
-           ;; stale results from a old flists search. Clear it out.
+           ;; stale results from an old flists search. Clear it out.
            (mh-exec-cmd-quiet nil "rmf" new-folder)))
     (setq message (mh-search "+" mh-flists-results-folder
                              redo-flag window-config)
@@ -1583,7 +1583,7 @@ If the folder returned doesn't exist then it is created."
     chosen-name))
 
 (defun mh-index-folder-search-regexp (folder)
-  "If FOLDER was created by a index search, return the search regexp.
+  "If FOLDER was created by an index search, return the search regexp.
 Return nil if FOLDER doesn't exist or the .mhe_index file is
 garbled."
   (ignore-errors
@@ -1912,7 +1912,7 @@ origin-index) map is updated too."
 
 (defun mh-index-update-single-msg (msg checksum origin-map)
   "Update various maps for one message.
-MSG is a index folder message, CHECKSUM its MD5 hash and
+MSG is an index folder message, CHECKSUM its MD5 hash and
 ORIGIN-MAP, if non-nil, a hash table containing which maps each
 message in the index folder to the folder and message that it was
 copied from. The function updates the hash tables
diff --git a/lisp/net/gnutls.el b/lisp/net/gnutls.el
index ea17fb51..85c9308 100644
--- a/lisp/net/gnutls.el
+++ b/lisp/net/gnutls.el
@@ -202,7 +202,7 @@ For the meaning of the rest of the parameters, see 
`gnutls-boot-parameters'."
      "boot: %s" params)
 
     (when (gnutls-errorp ret)
-      ;; This is a error from the underlying C code.
+      ;; This is an error from the underlying C code.
       (signal 'gnutls-error (list process ret)))
 
     process))
diff --git a/lisp/net/mailcap.el b/lisp/net/mailcap.el
index 748fb39..4ec0045 100644
--- a/lisp/net/mailcap.el
+++ b/lisp/net/mailcap.el
@@ -92,7 +92,7 @@ replaced with the file.
 MIME-TYPE is a regular expression being matched against the
 actual MIME type.  It is implicitly surrounded with ^ and $.
 
-TEST is an lisp form which is evaluated in order to test if the
+TEST is a lisp form which is evaluated in order to test if the
 entry should be chosen.  The `test' entry is optional.
 
 When selecting a viewer for a given MIME type, the first viewer
@@ -555,7 +555,7 @@ MAILCAPS if set; otherwise (on Unix) use the path from RFC 
1524, plus
 (defun mailcap-mailcap-entry-passes-test (info)
   "Replace the test clause of INFO itself with a boolean for some cases.
 This function supports only `test -n $DISPLAY' and `test -z $DISPLAY',
-replaces them with t or nil.  As for others or if INFO has a interactive
+replaces them with t or nil.  As for others or if INFO has an interactive
 spec (needsterm, needsterminal, or needsx11) but DISPLAY is not set,
 the test clause will be unchanged."
   (let ((test (assq 'test info))       ; The test clause
diff --git a/lisp/nxml/xsd-regexp.el b/lisp/nxml/xsd-regexp.el
index f83dad5..54f56dd 100644
--- a/lisp/nxml/xsd-regexp.el
+++ b/lisp/nxml/xsd-regexp.el
@@ -208,7 +208,7 @@ Signal an error if it is not."
         (nreverse (xsdre-compile-regexp re nil))))
 
 (defun xsdre-compile-regexp (re accum)
-  "Return a Emacs regular expression for the symbolic regexp RE.
+  "Return an Emacs regular expression for the symbolic regexp RE.
 Returns a list of strings whose head is the regexp for RE
 and whose tail is ACCUM."
   (cond ((not (consp re))
@@ -271,7 +271,7 @@ and whose tail is ACCUM."
        (t (xsdre-compile-char-class re accum))))
 
 (defun xsdre-compile-char-class (cc accum)
-  "Return a Emacs regular expression for the symbolic character class CC.
+  "Return an Emacs regular expression for the symbolic character class CC.
 Returns a list of strings whose head is the regexp for CC
 and whose tail is ACCUM."
   (cons (if (integerp cc)
@@ -450,7 +450,7 @@ LOWER ::= UNICODE
 UPPER ::= UNICODE
 SYMBOLIC-CHAR-CLASS ::= SYMBOL
 
-where UNICODE is a integer specifying a Unicode code-point and
+where UNICODE is an integer specifying a Unicode code-point and
 SYMBOLIC-CHAR-CLASS is a symbol which has either a `xsdre-char-class'
 property whose value is a CHAR-CLASS, or a `xsdre-ranges' property
 whose value is a range-list."
diff --git a/lisp/org/ob-calc.el b/lisp/org/ob-calc.el
index f491a6c..4ed5dd4 100644
--- a/lisp/org/ob-calc.el
+++ b/lisp/org/ob-calc.el
@@ -37,7 +37,7 @@
 (declare-function org-trim "org" (s &optional keep-lead))
 
 (defvar org-babel-default-header-args:calc nil
-  "Default arguments for evaluating an calc source block.")
+  "Default arguments for evaluating a calc source block.")
 
 (defun org-babel-expand-body:calc (body _params)
   "Expand BODY according to PARAMS, return the expanded body." body)
diff --git a/lisp/org/ob-core.el b/lisp/org/ob-core.el
index 5f378b2..0e2e78a 100644
--- a/lisp/org/ob-core.el
+++ b/lisp/org/ob-core.el
@@ -363,7 +363,7 @@ a window into the `org-babel-get-src-block-info' function."
 ;;;###autoload
 (defun org-babel-expand-src-block-maybe ()
   "Conditionally expand a source block.
-Detect if this is context for a org-babel src-block and if so
+Detect if this is context for an org-babel src-block and if so
 then run `org-babel-expand-src-block'."
   (interactive)
   (org-babel-when-in-src-block
@@ -372,7 +372,7 @@ then run `org-babel-expand-src-block'."
 ;;;###autoload
 (defun org-babel-load-in-session-maybe ()
   "Conditionally load a source block in a session.
-Detect if this is context for a org-babel src-block and if so
+Detect if this is context for an org-babel src-block and if so
 then run `org-babel-load-in-session'."
   (interactive)
   (org-babel-when-in-src-block
@@ -383,7 +383,7 @@ then run `org-babel-load-in-session'."
 ;;;###autoload
 (defun org-babel-pop-to-session-maybe ()
   "Conditionally pop to a session.
-Detect if this is context for a org-babel src-block and if so
+Detect if this is context for an org-babel src-block and if so
 then run `org-babel-switch-to-session'."
   (interactive)
   (org-babel-when-in-src-block
diff --git a/lisp/org/ob-org.el b/lisp/org/ob-org.el
index e522838..310aaec 100644
--- a/lisp/org/ob-org.el
+++ b/lisp/org/ob-org.el
@@ -34,7 +34,7 @@
 
 (defvar org-babel-default-header-args:org
   '((:results . "raw silent") (:exports . "code"))
-  "Default arguments for evaluating a org source block.")
+  "Default arguments for evaluating an org source block.")
 
 (defvar org-babel-org-default-header
   "#+TITLE: default empty header\n"
diff --git a/lisp/org/ob-picolisp.el b/lisp/org/ob-picolisp.el
index b6dc898..fd129b8 100644
--- a/lisp/org/ob-picolisp.el
+++ b/lisp/org/ob-picolisp.el
@@ -35,7 +35,7 @@
 ;; (http://picolisp.com/5000/-2.html). PicoLisp is included in some
 ;; GNU/Linux Distributions, and can be downloaded here:
 ;; http://software-lab.de/down.html.  It ships with a picolisp-mode and
-;; a inferior-picolisp-mode for Emacs (to be found in the /lib/el/
+;; an inferior-picolisp-mode for Emacs (to be found in the /lib/el/
 ;; directory).
 
 ;; Although it might seem more natural to use Emacs Lisp for most
diff --git a/lisp/org/org-clock.el b/lisp/org/org-clock.el
index 9bc1f0c..4c5fcc6 100644
--- a/lisp/org/org-clock.el
+++ b/lisp/org/org-clock.el
@@ -1394,7 +1394,7 @@ the default behavior."
 ;;;###autoload
 (defun org-clock-in-last (&optional arg)
   "Clock in the last closed clocked item.
-When already clocking in, send an warning.
+When already clocking in, send a warning.
 With a universal prefix argument, select the task you want to
 clock in from the last clocked in tasks.
 With two universal prefix arguments, start clocking using the
diff --git a/lisp/org/org-eww.el b/lisp/org/org-eww.el
index 0792c87..3d9dddc 100644
--- a/lisp/org/org-eww.el
+++ b/lisp/org/org-eww.el
@@ -25,9 +25,9 @@
 ;;; Commentary:
 
 ;; When this module is active `org-store-link' (often on key C-c l) in
-;; a eww buffer stores a link to the current url of the eww buffer.
+;; an EWW buffer stores a link to the current url of the eww buffer.
 
-;; In an eww buffer function `org-eww-copy-for-org-mode' kills either
+;; In an EWW buffer function `org-eww-copy-for-org-mode' kills either
 ;; a region or the whole buffer if no region is set and transforms the
 ;; text on the fly so that it can be pasted into an Org buffer with
 ;; hot links.
@@ -58,7 +58,7 @@
 ;; Store Org-link in eww-mode buffer
 (org-link-set-parameters "eww" :follow #'eww :store #'org-eww-store-link)
 (defun org-eww-store-link ()
-  "Store a link to the url of a Eww buffer."
+  "Store a link to the url of an EWW buffer."
   (when (eq major-mode 'eww-mode)
     (org-store-link-props
      :type "eww"
diff --git a/lisp/org/org-protocol.el b/lisp/org/org-protocol.el
index 3cbbc78..27c2bb2 100644
--- a/lisp/org/org-protocol.el
+++ b/lisp/org/org-protocol.el
@@ -663,7 +663,7 @@ to deal with new-style links.")
 ;;; Org specific functions:
 
 (defun org-protocol-create-for-org ()
-  "Create a Org protocol project for the current file's project.
+  "Create an Org protocol project for the current file's project.
 The visited file needs to be part of a publishing project in
 `org-publish-project-alist' for this to work.  The function
 delegates most of the work to `org-protocol-create'."
diff --git a/lisp/org/ox-html.el b/lisp/org/ox-html.el
index 06edb82..83f6479 100644
--- a/lisp/org/ox-html.el
+++ b/lisp/org/ox-html.el
@@ -2697,7 +2697,7 @@ holding contextual information."
 
 (defun org-html-format-inlinetask-default-function
   (todo todo-type priority text tags contents info)
-  "Default format function for a inlinetasks.
+  "Default format function for inlinetasks.
 See `org-html-format-inlinetask-function' for details."
   (format "<div class=\"inlinetask\">\n<b>%s</b>%s\n%s</div>"
          (org-html-format-headline-default-function
diff --git a/lisp/org/ox-latex.el b/lisp/org/ox-latex.el
index a656e06..c32aa29 100644
--- a/lisp/org/ox-latex.el
+++ b/lisp/org/ox-latex.el
@@ -2125,7 +2125,7 @@ holding contextual information."
 
 (defun org-latex-format-inlinetask-default-function
     (todo _todo-type priority title tags contents _info)
-  "Default format function for a inlinetasks.
+  "Default format function for inlinetasks.
 See `org-latex-format-inlinetask-function' for details."
   (let ((full-title
         (concat (when todo (format "\\textbf{\\textsf{\\textsc{%s}}} " todo))
diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el
index e0c5166..cdee568 100644
--- a/lisp/org/ox-odt.el
+++ b/lisp/org/ox-odt.el
@@ -600,8 +600,7 @@ allow document of a given class (irrespective of its source
 format) to be converted to any of the export formats associated
 with that class.
 
-See default setting of this variable for an typical
-configuration."
+See default setting of this variable for a typical configuration."
   :group 'org-export-odt
   :version "24.1"
   :type
@@ -1938,7 +1937,7 @@ holding contextual information."
 
 (defun org-odt-format-inlinetask-default-function
   (todo todo-type priority name tags contents)
-  "Default format function for a inlinetasks.
+  "Default format function for inlinetasks.
 See `org-odt-format-inlinetask-function' for details."
   (format "\n<text:p text:style-name=\"%s\">%s</text:p>"
          "Text_20_body"
diff --git a/lisp/org/ox-texinfo.el b/lisp/org/ox-texinfo.el
index fd4235a..d877c9c 100644
--- a/lisp/org/ox-texinfo.el
+++ b/lisp/org/ox-texinfo.el
@@ -958,7 +958,7 @@ holding contextual information."
 
 (defun org-texinfo-format-inlinetask-default-function
   (todo _todo-type priority title tags contents)
-  "Default format function for a inlinetasks.
+  "Default format function for inlinetasks.
 See `org-texinfo-format-inlinetask-function' for details."
   (let ((full-title
         (concat (when todo (format "@strong{%s} " todo))
diff --git a/lisp/progmodes/ada-mode.el b/lisp/progmodes/ada-mode.el
index d09ee52..2d3f6e2 100644
--- a/lisp/progmodes/ada-mode.el
+++ b/lisp/progmodes/ada-mode.el
@@ -2479,7 +2479,7 @@ and the offset."
            (forward-word-strictly -1))
 
          ;; If there is a parameter list, and we have a function declaration
-         ;; or a access to subprogram declaration
+         ;; or access to subprogram declaration
          (let ((num-back 1))
            (if (and (= (following-char) ?\()
                     (save-excursion
diff --git a/lisp/progmodes/ada-stmt.el b/lisp/progmodes/ada-stmt.el
index 02f7e39..f1ed01e 100644
--- a/lisp/progmodes/ada-stmt.el
+++ b/lisp/progmodes/ada-stmt.el
@@ -415,13 +415,13 @@ Invoke right after `ada-function-spec' or 
`ada-procedure-spec'."
 
 
 (define-skeleton ada-entry-family-prompt-discriminant
-  "Insert a entry specification, prompting for the entry name."
+  "Insert an entry specification, prompting for the entry name."
   "[discriminant name]: "
   str)
 
 
 (define-skeleton ada-entry-family
-  "Insert a entry specification, prompting for the entry name."
+  "Insert an entry specification, prompting for the entry name."
   "[entry name]: "
   "entry " str
   " (" (ada-entry-family-prompt-discriminant) ")"
diff --git a/lisp/progmodes/antlr-mode.el b/lisp/progmodes/antlr-mode.el
index 921db6b..1d4fd4f 100644
--- a/lisp/progmodes/antlr-mode.el
+++ b/lisp/progmodes/antlr-mode.el
@@ -1562,7 +1562,7 @@ The search for a correct position is as follows:
 
   * If search is within an area where options can be inserted, use the
     position of point.  Inside the options section and if point is in
-    the middle of a option definition, skip the rest of it.
+    the middle of an option definition, skip the rest of it.
   * If an options section already exists, insert the options at the end.
     If only the beginning of the area is visible, insert at the
     beginning.
diff --git a/lisp/progmodes/cc-engine.el b/lisp/progmodes/cc-engine.el
index be7e86b..cddf79b 100644
--- a/lisp/progmodes/cc-engine.el
+++ b/lisp/progmodes/cc-engine.el
@@ -3304,7 +3304,7 @@ comment at the start of cc-engine.el for more info."
                             (point)
                           here)))
        pa+1                  ; pos just after an opening PAren (or brace).
-       (ren+1 from)          ; usually a pos just after an closing paREN etc.
+       (ren+1 from)          ; usually a pos just after a closing paREN etc.
                              ; Is actually the pos. to scan for a (/{/[ from,
                              ; which sometimes is after a silly )/}/].
        paren+1               ; Pos after some opening or closing paren.
@@ -10345,7 +10345,7 @@ comment at the start of cc-engine.el for more info."
       b-pos)))
 
 (defun c-backward-typed-enum-colon ()
-  ;; We're at a "{" which might be the opening brace of a enum which is
+  ;; We're at a "{" which might be the opening brace of an enum which is
   ;; strongly typed (by a ":" followed by a type).  If this is the case, leave
   ;; point before the colon and return t.  Otherwise leave point unchanged and 
return nil.
   ;; Match data will be clobbered.
diff --git a/lisp/progmodes/cc-menus.el b/lisp/progmodes/cc-menus.el
index ae7759e..a42fe27 100644
--- a/lisp/progmodes/cc-menus.el
+++ b/lisp/progmodes/cc-menus.el
@@ -360,7 +360,7 @@ Example:
       (setq char (aref method p)
            p (1+ p))
       (cond
-       ;; Is CHAR part of a objc token?
+       ;; Is CHAR part of an objc token?
        ((and (not inargvar)   ; Ignore if CHAR is part of an argument variable.
             (eq 0 betweenparen) ; Ignore if CHAR is in parentheses.
             (or (and (<= ?a char) (<= char ?z))
diff --git a/lisp/progmodes/cc-mode.el b/lisp/progmodes/cc-mode.el
index 2ce3d96..664f010 100644
--- a/lisp/progmodes/cc-mode.el
+++ b/lisp/progmodes/cc-mode.el
@@ -622,7 +622,7 @@ that requires a literal mode spec at compile time."
   ;; buffer local value has its own alist structure.
   (setq c-offsets-alist (copy-alist c-offsets-alist))
 
-  ;; setup the comment indent variable in a Emacs version portable way
+  ;; setup the comment indent variable in an Emacs version portable way
   (set (make-local-variable 'comment-indent-function) 'c-comment-indent)
   ;; What sort of comments are default for M-;?
   (setq c-block-comment-flag c-block-comment-is-default)
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 92e202a..4229743 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -919,7 +919,7 @@ from a different message."
 
 ;; COLUMN and LINE are numbers parsed from an error message.  COLUMN and maybe
 ;; LINE will be nil for a message that doesn't contain them.  Then the
-;; location refers to a indented beginning of line or beginning of file.
+;; location refers to an indented beginning of line or beginning of file.
 ;; Once any location in some file has been jumped to, the list is extended to
 ;; (COLUMN LINE FILE-STRUCTURE MARKER TIMESTAMP . VISITED)
 ;; for all LOCs pertaining to that file.
diff --git a/lisp/progmodes/icon.el b/lisp/progmodes/icon.el
index 68bff26..6e02392 100644
--- a/lisp/progmodes/icon.el
+++ b/lisp/progmodes/icon.el
@@ -90,7 +90,7 @@
   :group 'icon)
 
 (defcustom icon-brace-imaginary-offset 0
-  "Imagined indentation of a Icon open brace that actually follows a 
statement."
+  "Imagined indentation of an Icon open brace that actually follows a 
statement."
   :type 'integer
   :group 'icon)
 
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 8ff7a30..530eb2f 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -422,7 +422,7 @@
       (string-delimiter . ,(rx (and
                                 ;; Match even number of backslashes.
                                 (or (not (any ?\\ ?\' ?\")) point
-                                    ;; Quotes might be preceded by a escaped 
quote.
+                                    ;; Quotes might be preceded by an escaped 
quote.
                                     (and (or (not (any ?\\)) point) ?\\
                                          (* ?\\ ?\\) (any ?\' ?\")))
                                 (* ?\\ ?\\)
@@ -925,7 +925,7 @@ keyword
                 (back-to-indentation)
                 (python-syntax-closing-paren-p))
               (cons :inside-paren-at-closing-nested-paren start))
-             ;; This line starts from a opening block in its own line.
+             ;; This line starts from an opening block in its own line.
              ((save-excursion
                 (goto-char start)
                 (when (and
@@ -1641,7 +1641,7 @@ ARG move forward only one sexp, else move backwards."
 
 (defun python-nav--lisp-forward-sexp-safe (&optional arg)
   "Safe version of standard `forward-sexp'.
-When at end of sexp (i.e. looking at a opening/closing paren)
+When at end of sexp (i.e. looking at an opening/closing paren)
 skips it instead of throwing an error.  With positive ARG move
 forward only one sexp, else move backwards."
   (let* ((arg (if (or (not arg) (> arg 0)) 1 -1))
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 1b9e10a..aaa86b5 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -3019,7 +3019,7 @@ If INFO is supplied it is used, else it is calculated."
 ;; line -- it is the PREVIOUS line which is continued, not the one
 ;; we are going to!
 ;; Also, we want to treat a whole "here document" as one big line,
-;; because we may want to a align to the beginning of it.
+;; because we may want to align to the beginning of it.
 ;;
 ;; What we do:
 ;; - go back to previous non-empty line
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index 7bc3a5a..d20c579 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -2774,7 +2774,7 @@ local variable."
 
     ;; Our start must be between them
     (goto-char last)
-    ;; Find an beginning-of-stmt that's not in a comment
+    ;; Find a beginning-of-stmt that's not in a comment
     (while (and (re-search-forward regexp next t 1)
                 (nth 7 (syntax-ppss)))
       (goto-char (match-end 0)))
@@ -4225,7 +4225,7 @@ the call to \\[sql-product-interactive] with
                (symbolp product)) product)
          (t sql-product)))              ; Default to sql-product
 
-  ;; If we have a product and it has a interactive mode
+  ;; If we have a product and it has an interactive mode
   (if product
       (when (sql-get-product-feature product :sqli-comint-func)
         ;; If no new name specified, try to pop to an active SQL
diff --git a/lisp/progmodes/vhdl-mode.el b/lisp/progmodes/vhdl-mode.el
index db29435..a841f87 100644
--- a/lisp/progmodes/vhdl-mode.el
+++ b/lisp/progmodes/vhdl-mode.el
@@ -4890,7 +4890,7 @@ Key bindings:
   (set (make-local-variable 'indent-tabs-mode) vhdl-indent-tabs-mode)
   (set (make-local-variable 'hippie-expand-verbose) nil)
 
-  ;; setup the comment indent variable in a Emacs version portable way
+  ;; setup the comment indent variable in an Emacs version portable way
   ;; ignore any byte compiler warnings you might get here
   (when (boundp 'comment-indent-function)
     (set (make-local-variable 'comment-indent-function) 'vhdl-comment-indent))
diff --git a/lisp/tempo.el b/lisp/tempo.el
index 6c39558..5d4dea5 100644
--- a/lisp/tempo.el
+++ b/lisp/tempo.el
@@ -154,7 +154,7 @@ setting it to (upcase), for example.")
 
 (defvar tempo-local-tags '((tempo-tags . nil))
   "A list of locally installed tag completion lists.
-It is a association list where the car of every element is a symbol
+It is an association list where the car of every element is a symbol
 whose variable value is a template list.  The cdr part, if non-nil,
 is a function or a regexp that defines the string to match.  See the
 documentation for the function `tempo-complete-tag' for more info.
diff --git a/lisp/term/README b/lisp/term/README
index d5453e1..4ab1a43 100644
--- a/lisp/term/README
+++ b/lisp/term/README
@@ -60,7 +60,7 @@ they'll frustrate you after you've forgotten about them.
    For another, the X keysyms provide a standard set of names that Emacs knows
 about.  It tries to bind many of them to useful things at startup, before your
 .emacs is read (so you can override them).  In some ways, the X keysym standard
-is a admittedly poor one; it's incomplete, and not well matched to the set of
+is an admittedly poor one; it's incomplete, and not well matched to the set of
 'virtual keys' that UNIX terminfo(3) provides.  But, trust us, the alternatives
 were worse.
 
diff --git a/lisp/textmodes/artist.el b/lisp/textmodes/artist.el
index 7341907..af7bcc7 100644
--- a/lisp/textmodes/artist.el
+++ b/lisp/textmodes/artist.el
@@ -1025,78 +1025,78 @@ If DRAW-HOW is `artist-do-poly':
 
 (defsubst artist-go-get-keyword (info-variant-part)
   "Retrieve the keyword component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 0))
 
 (defsubst artist-go-get-symbol (info-variant-part)
   "Retrieve the symbol component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 1))
 
 (defsubst artist-go-get-mode-line (info-variant-part)
   "Retrieve the mode line component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 2))
 
 (defsubst artist-go-get-arrow-pred (info-variant-part)
   "Retrieve the arrow predicate component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 3))
 
 (defsubst artist-go-get-arrow-set-fn (info-variant-part)
   "Retrieve the arrow set component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 4))
 
 (defsubst artist-go-get-init-fn (info-variant-part)
   "Retrieve the init function component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 5))
 
 (defsubst artist-go-get-prep-fill-fn (info-variant-part)
   "Retrieve the fill preparation function component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 6))
 
 (defsubst artist-go-get-exit-fn (info-variant-part)
   "Retrieve the exit component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 7))
 
 (defsubst artist-go-get-draw-how (info-variant-part)
   "Retrieve the draw how component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 8))
 
 (defsubst artist-go-get-draw-fn (info-variant-part)
   "Retrieve the draw function component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part."
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part."
   (elt info-variant-part 9))
 
 (defsubst artist-go-get-undraw-fn (info-variant-part)
   "Retrieve the undraw function component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part.
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part.
 This interval function component is available only if the `draw-how'
 component is other than `artist-do-continously' or 1."
   (elt (elt info-variant-part 10) 0))
 
 (defsubst artist-go-get-interval-fn (info-variant-part)
   "Retrieve the interval function component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part.
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part.
 This interval function component is available only if the `draw-how'
 component is `artist-do-continously'."
   (elt (elt info-variant-part 10) 0))
 
 (defsubst artist-go-get-fill-pred (info-variant-part)
   "Retrieve the fill predicate component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part.
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part.
 This interval function component is available only if the `draw-how'
 component is other than `artist-do-continously' or 1."
   (elt (elt info-variant-part 10) 1))
 
 (defsubst artist-go-get-fill-fn (info-variant-part)
   "Retrieve the fill function component from an INFO-VARIANT-PART.
-An INFO-VARIANT-PART is the shifted or unshifted info from a info-part.
+An INFO-VARIANT-PART is the shifted or unshifted info from an info-part.
 This interval function component is available only if the `draw-how'
 component is other than `artist-do-continously' or 1."
   (elt (elt info-variant-part 10) 2))
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 353d435..5568bbb 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -1732,7 +1732,7 @@ FLYSPELL-BUFFER."
 ;;*---------------------------------------------------------------------*/
 ;;*    flyspell-properties-at-p ...                                     */
 ;;*    -------------------------------------------------------------    */
-;;*    Is there an highlight properties at position pos?                */
+;;*    Is there a highlight property at position pos?                   */
 ;;*---------------------------------------------------------------------*/
 (defun flyspell-properties-at-p (pos)
   "Return t if there is a text property at POS, not counting `local-map'.
diff --git a/lisp/textmodes/reftex-vars.el b/lisp/textmodes/reftex-vars.el
index 6d253f1..01ee4f5 100644
--- a/lisp/textmodes/reftex-vars.el
+++ b/lisp/textmodes/reftex-vars.el
@@ -1405,7 +1405,7 @@ the text, so that the text has to be repeated outside the 
index macro.
 Needed for `reftex-index-selection-or-word' and for indexing from the
 phrase buffer.
 
-The final entry may also be a symbol if this entry has a association
+The final entry may also be a symbol if this entry has an association
 in the variable `reftex-index-macros-builtin' to specify the main
 indexing package you are using.  Valid values are currently
 default         The LaTeX default - unnecessary to specify this one
diff --git a/lisp/textmodes/rst.el b/lisp/textmodes/rst.el
index c93e4e4..48c0128 100644
--- a/lisp/textmodes/rst.el
+++ b/lisp/textmodes/rst.el
@@ -631,7 +631,7 @@ After interpretation of ARGS the results are concatenated 
as for
      &aux
      (char (rst-Ado--validate-char char-arg))
      (-style 'simple)))
-   ;; Construct a over-and-under section header.
+   ;; Construct an over-and-under section header.
    (:constructor
     rst-Ado-new-over-and-under
     (char-arg
@@ -696,7 +696,7 @@ Return CHAR if so or signal an error otherwise."
 
 (defun rst-Ado-is-over-and-under (self)
   ;; testcover: ok.
-  "Return non-nil if SELF is a over-and-under section adornment."
+  "Return non-nil if SELF is an over-and-under section adornment."
   (cl-check-type self rst-Ado)
   (eq (rst-Ado--style self) 'over-and-under))
 
@@ -834,7 +834,7 @@ Return ADO if so or signal an error otherwise."
 
 (defun rst-Hdr-is-over-and-under (self)
   ;; testcover: ok.
-  "Return non-nil if SELF is a over-and-under section header."
+  "Return non-nil if SELF is an over-and-under section header."
   (cl-check-type self rst-Hdr)
   (rst-Ado-is-over-and-under (rst-Hdr-ado self)))
 
@@ -937,7 +937,7 @@ This type is immutable."
                   (or (null und-beg) (integer-or-marker-p und-beg))
                   (or (null und-end) (integer-or-marker-p und-end)))
        (signal 'args-out-of-range
-               '("For a over-and-under section adornment all match pairs must 
be set."))))))
+               '("For an over-and-under section adornment all match pairs must 
be set."))))))
   match)
 
 (defun rst-Ttl--validate-indent (indent ado)
@@ -1224,7 +1224,7 @@ as well but give an additional message."
     ;; Makes paragraphs in region as a bullet list.
     (rst-define-key map [?\C-c ?\C-l ?\C-b] #'rst-bullet-list-region
                    [?\C-c ?\C-b])
-    ;; Makes paragraphs in region as a enumeration.
+    ;; Makes paragraphs in region an enumeration.
     (rst-define-key map [?\C-c ?\C-l ?\C-e] #'rst-enumerate-region
                    [?\C-c ?\C-e])
     ;; Converts bullets to an enumeration.
@@ -1529,7 +1529,7 @@ file."
 (defcustom rst-default-indent 1
   "Number of characters to indent the section title.
 This is only used while toggling adornment styles when switching
-from a simple adornment style to a over-and-under adornment
+from a simple adornment style to an over-and-under adornment
 style.  In addition this is used in cases where the adornments
 found in the buffer are to be used but the indentation for
 over-and-under adornments is inconsistent across the buffer."
diff --git a/lisp/thumbs.el b/lisp/thumbs.el
index 7aaed28..26c9935 100644
--- a/lisp/thumbs.el
+++ b/lisp/thumbs.el
@@ -48,7 +48,7 @@
 ;; That should be a directory containing image files.
 ;; from dired, C-t m enter in thumbs-mode with all marked files
 ;;             C-t a enter in thumbs-mode with all files in current-directory
-;; In thumbs-mode, pressing <return> on a image will bring you in image view
+;; In thumbs-mode, pressing <return> on an image will bring you in image view
 ;; mode for that image.  C-h m will give you a list of available keybinding.
 
 ;;; History:
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index ea2e8ec..bc2be4a 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -1163,7 +1163,7 @@ Has a preference of looking backwards."
   (goto-char (match-end 0)))
 
 (defun change-log-get-method-definition ()
-"For Objective C, return the method name if we are in a method."
+  "For Objective C, return the method name if we are in a method."
   (let ((change-log-get-method-definition-md "["))
     (save-excursion
       (if (re-search-backward "address@hidden([A-Za-z_]*\\)" nil t)
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 9274714..26af998 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -227,7 +227,7 @@ Should be consistent with the Git config value 
i18n.logOutputEncoding."
                         (concat name "\0"))))))))
 
 (defun vc-git--state-code (code)
-  "Convert from a string to a added/deleted/modified state."
+  "Convert from a string to an added/deleted/modified state."
   (pcase (string-to-char code)
     (?M 'edited)
     (?A 'added)
diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index b877015..01dc47e 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -2415,7 +2415,10 @@ When called interactively with a prefix argument, prompt 
for REMOTE-LOCATION."
 
 ;;;###autoload
 (defun vc-region-history (from to)
-  "Show the history of the region FROM..TO."
+  "Show the history of the region between FROM and TO.
+
+If called interactively, show the history between point and
+mark."
   (interactive "r")
   (let* ((lfrom (line-number-at-pos from t))
          (lto   (line-number-at-pos (1- to) t))
diff --git a/lisp/wid-edit.el b/lisp/wid-edit.el
index 8828236..bee7f80 100644
--- a/lisp/wid-edit.el
+++ b/lisp/wid-edit.el
@@ -1229,7 +1229,7 @@ When not inside a field, signal an error."
                               (save-restriction
                                 ;; `widget-narrow-to-field' can be
                                 ;; active when this function is called
-                                ;; from an change-functions hook. So
+                                ;; from a change-functions hook. So
                                 ;; temporarily remove field narrowing
                                 ;; before to call `get-char-property'.
                                 (widen)
@@ -1802,7 +1802,7 @@ If END is omitted, it defaults to the length of LIST."
 ;;; The `url-link' Widget.
 
 (define-widget 'url-link 'link
-  "A link to an www page."
+  "A link to a web page."
   :action 'widget-url-link-action)
 
 (defun widget-url-link-action (widget &optional _event)
diff --git a/src/.gdbinit b/src/.gdbinit
index 9fdcaf8..eb4d57a 100644
--- a/src/.gdbinit
+++ b/src/.gdbinit
@@ -564,7 +564,7 @@ define pgi
 end
 document pgi
 Pretty print glyph structure glyph[I].
-Takes one argument, a integer I.
+Takes one argument, an integer I.
 end
 
 define pgn
diff --git a/src/character.c b/src/character.c
index 4a934c7..6a68980 100644
--- a/src/character.c
+++ b/src/character.c
@@ -983,7 +983,7 @@ alphabeticp (int c)
          || gen_cat == UNICODE_CATEGORY_Nl);
 }
 
-/* Return true if C is a alphabetic or decimal-number character.  */
+/* Return true if C is an alphabetic or decimal-number character.  */
 bool
 alphanumericp (int c)
 {
diff --git a/src/character.h b/src/character.h
index d9e2d7b..1e420ba 100644
--- a/src/character.h
+++ b/src/character.h
@@ -695,7 +695,7 @@ INLINE int
 char_table_translate (Lisp_Object obj, int ch)
 {
   /* This internal function is expected to be called with valid arguments,
-     so there is a eassert instead of CHECK_xxx for the sake of speed.  */
+     so there is an eassert instead of CHECK_xxx for the sake of speed.  */
   eassert (CHAR_VALID_P (ch));
   eassert (CHAR_TABLE_P (obj));
   obj = CHAR_TABLE_REF (obj, ch);
diff --git a/src/charset.c b/src/charset.c
index cc61300..05290e8 100644
--- a/src/charset.c
+++ b/src/charset.c
@@ -2332,7 +2332,7 @@ init_charset_once (void)
    Don't make the value so small that the table is reallocated during
    bootstrapping, as glibc malloc calls larger than just under 64 KiB
    during an initial bootstrap wreak havoc after dumping; see the
-   M_MMAP_THRESHOLD value in alloc.c, plus there is a extra overhead
+   M_MMAP_THRESHOLD value in alloc.c, plus there is an extra overhead
    internal to glibc malloc and perhaps to Emacs malloc debugging.  */
 static struct charset charset_table_init[180];
 
diff --git a/src/coding.c b/src/coding.c
index 901f806..a16142a 100644
--- a/src/coding.c
+++ b/src/coding.c
@@ -252,7 +252,7 @@ decode_coding_XXXX (struct coding_system *coding)
   CODING_RESULT_XXX indicating how the encoding finished.
 
   DST_BYTES zero means that source area and destination area are
-  overlapped, which means that we can produce a encoded text until it
+  overlapped, which means that we can produce an encoded text until it
   reaches at the head of not-yet-encoded source text.
 
   Below is a template of these functions.  */
@@ -3973,7 +3973,7 @@ decode_coding_iso_2022 (struct coding_system *coding)
       /* Reset the invocation and designation status to the safest
         one; i.e. designate ASCII to the graphic register 0, and
         invoke that register to the graphic plane 0.  This typically
-        helps the case that an designation sequence for ASCII "ESC (
+        helps the case that a designation sequence for ASCII "ESC (
         B" is somehow broken (e.g. broken by a newline).  */
       CODING_ISO_INVOCATION (coding, 0) = 0;
       CODING_ISO_DESIGNATION (coding, 0) = charset_ascii;
diff --git a/src/dbusbind.c b/src/dbusbind.c
index 63dda58..ec3707d 100644
--- a/src/dbusbind.c
+++ b/src/dbusbind.c
@@ -1401,7 +1401,7 @@ usage: (dbus-message-internal &rest REST)  */)
 
       if ((mtype == DBUS_MESSAGE_TYPE_ERROR)
          && (!dbus_message_set_error_name (dmessage, DBUS_ERROR_FAILED)))
-       XD_SIGNAL1 (build_string ("Unable to create a error message"));
+       XD_SIGNAL1 (build_string ("Unable to create an error message"));
     }
 
   /* Check for timeout parameter.  */
diff --git a/src/eval.c b/src/eval.c
index 3c2b300..08a73b1 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1604,7 +1604,10 @@ signal_or_quit (Lisp_Object error_symbol, Lisp_Object 
data, bool keyboard_quit)
 
   /* This hook is used by edebug.  */
   if (! NILP (Vsignal_hook_function)
-      && ! NILP (error_symbol))
+      && ! NILP (error_symbol)
+      /* Don't try to call a lisp function if we've already overflowed
+         the specpdl stack.  */
+      && specpdl_ptr < specpdl + specpdl_size)
     {
       /* Edebug takes care of restoring these variables when it exits.  */
       if (lisp_eval_depth + 20 > max_lisp_eval_depth)
diff --git a/src/image.c b/src/image.c
index 6e86083..37416c1 100644
--- a/src/image.c
+++ b/src/image.c
@@ -8281,7 +8281,7 @@ extern WandExport void PixelGetMagickColor (const 
PixelWand *,
 #endif
 
 /* Log ImageMagick error message.
-   Useful when a ImageMagick function returns the status `MagickFalse'.  */
+   Useful when an ImageMagick function returns the status `MagickFalse'.  */
 
 static void
 imagemagick_error (MagickWand *wand)
diff --git a/src/inotify.c b/src/inotify.c
index 08da308..e06cc97 100644
--- a/src/inotify.c
+++ b/src/inotify.c
@@ -503,7 +503,7 @@ DEFUN ("inotify-watch-list", Finotify_watch_list, 
Sinotify_watch_list, 0, 0, 0,
 }
 
 DEFUN ("inotify-allocated-p", Finotify_allocated_p, Sinotify_allocated_p, 0, 
0, 0,
-       doc: /* Return non-nil, if a inotify instance is allocated.  */)
+       doc: /* Return non-nil, if an inotify instance is allocated.  */)
 {
   return inotifyfd < 0 ? Qnil : Qt;
 }
diff --git a/src/keymap.c b/src/keymap.c
index 80a899b..c8cc933 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -1278,7 +1278,7 @@ append_key (Lisp_Object key_sequence, Lisp_Object key)
   return CALLN (Fvconcat, key_sequence, key_list);
 }
 
-/* Given a event type C which is a symbol,
+/* Given an event type C which is a symbol,
    signal an error if is a mistake such as RET or M-RET or C-DEL, etc.  */
 
 static void
diff --git a/src/process.c b/src/process.c
index 496b1f2..6ba27a3 100644
--- a/src/process.c
+++ b/src/process.c
@@ -3733,7 +3733,7 @@ setting of the remote datagram address.  When specified 
for a client
 process, the FAMILY, HOST, and SERVICE args are ignored.
 
 The format of ADDRESS depends on the address family:
-- An IPv4 address is represented as an vector of integers [A B C D P]
+- An IPv4 address is represented as a vector of integers [A B C D P]
 corresponding to numeric IP address A.B.C.D and port number P.
 - A local address is represented as a string with the address in the
 local address space.
diff --git a/src/regex.c b/src/regex.c
index 122cf71..a4e6441 100644
--- a/src/regex.c
+++ b/src/regex.c
@@ -5787,7 +5787,7 @@ re_match_2_internal (struct re_pattern_buffer *bufp, 
re_char *string1,
 
            EXTRACT_NUMBER (mcnt, p2 - 2);
 
-           /* Ensure this is a indeed the trivial kind of loop
+           /* Ensure this is indeed the trivial kind of loop
               we are expecting.  */
            assert (skip_one_char (p1) == p2 - 3);
            assert ((re_opcode_t) p2[-3] == jump && p2 + mcnt == p);
diff --git a/src/syntax.c b/src/syntax.c
index 52cec23..20c6074 100644
--- a/src/syntax.c
+++ b/src/syntax.c
@@ -3049,7 +3049,7 @@ Comments are ignored if `parse-sexp-ignore-comments' is 
non-nil.
 
 If we reach the beginning or end of the accessible part of the buffer
 before we have scanned over COUNT lists, return nil if the depth at
-that point is zero, and signal a error if the depth is nonzero.  */)
+that point is zero, and signal an error if the depth is nonzero.  */)
   (Lisp_Object from, Lisp_Object count, Lisp_Object depth)
 {
   CHECK_NUMBER (from);
diff --git a/src/xdisp.c b/src/xdisp.c
index f6fcdec..1428644 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -32499,7 +32499,7 @@ or `nobreak-hyphen' face respectively.
 U+00A0 (no-break space), U+00AD (soft hyphen), U+2010 (hyphen), and
 U+2011 (non-breaking hyphen) are affected.
 
-Any other non-nil value means to display these characters as a escape
+Any other non-nil value means to display these characters as an escape
 glyph followed by an ordinary space or hyphen.
 
 A value of nil means no special handling of these characters.  */);
diff --git a/src/xsettings.c b/src/xsettings.c
index ac2d86f..81c8f9b 100644
--- a/src/xsettings.c
+++ b/src/xsettings.c
@@ -53,7 +53,7 @@ static char *current_font;
 static struct x_display_info *first_dpyinfo;
 static Lisp_Object current_tool_bar_style;
 
-/* Store an config changed event in to the event queue.  */
+/* Store a config changed event in to the event queue.  */
 
 static void
 store_config_changed_event (Lisp_Object arg, Lisp_Object display_name)
diff --git a/test/src/eval-tests.el b/test/src/eval-tests.el
index 201382d..e68fd13 100644
--- a/test/src/eval-tests.el
+++ b/test/src/eval-tests.el
@@ -79,4 +79,24 @@ Bug#24912 and Bug#24913."
   (let ((clauses (list '((progn (setcdr clauses "ouch") nil)))))
     (should-error (eval (cons 'cond clauses)))))
 
+(defun eval-tests--exceed-specbind-limit ()
+  (defvar eval-tests--var1)
+  (defvar eval-tests--var2)
+  ;; Bind two variables, to make extra sure we hit the
+  ;; `max-specpdl-size' limit before the `max-lisp-eval-depth' limit.
+  (let ((eval-tests--var1 1)
+        (eval-tests--var2 2))
+    ;; Recurse until we hit the limit.
+    (eval-tests--exceed-specbind-limit)))
+
+(ert-deftest eval-exceed-specbind-with-signal-hook ()
+  "Test for Bug#30481.
+Check that Emacs doesn't crash when exceeding specbind limit with
+`signal-hook-function' bound.  NOTE: Without the fix for
+Bug#30481, this test can appear to pass, but cause a
+crash/abort/malloc assert failure on the next test."
+  (let ((max-specpdl-size (/ max-lisp-eval-depth 2))
+        (signal-hook-function #'ignore))
+    (should-error (eval-tests--exceed-specbind-limit))))
+
 ;;; eval-tests.el ends here



reply via email to

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