summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Eggert <eggert@cs.ucla.edu>2016-08-05 14:09:08 -0700
committerPaul Eggert <eggert@cs.ucla.edu>2016-08-05 14:09:08 -0700
commit6b780a2e97c032d1749f190e0f5cfbbce99d0a60 (patch)
tree18287633d9eb2d63d8badf035144e8a3143c00db
parent95c6606a477e017ed7b418fcc81fd937895fee20 (diff)
parent9ba51edf62b25c678508a316ec78a09b18d3bf9e (diff)
Merge from origin/emacs-25
9ba51ed Document buffer-swap-text+save-excursion interaction 452aa94 Fix eieio vs cl-generic incompatibilities found in Rudel (bug... 248d5dd Include cl-generic in package--builtin-versions (bug#22817) 8f5a8b6 Improve timing in `tramp-test29-environment-variables' 05ba7a0 Add test for handling environment variables in Tramp e393d4f * lisp/emacs-lisp/package.el (describe-package-1) (package-st... 5e38887 ; * lisp/net/tramp.el: Fix 2010-10-04 comment typo. (Bug#23913) 90f2169 ; Spelling fixes 069fc05 Improve documentation of search functions 0a0144a Delete environment variables in Tramp when needed f624671 Add "New in Emacs 25" section to the FAQ 658daf9 Fix 'vertical-motion' in non-interactive sessions 686b520 Fix memory leak in imagemagick-types 4069b71 Update ELisp manual to match 'string-collate-equalp' doc string 1b2d6a6 Clarify docstring of find-feature-regexp aac62a6 Add details to cl-lib defining macros' docstrings d6aa4da Clarify doc string of 'save-buffer' 03bcf11 Un-confuse doc string of 'string-collate-equalp' c53135b Clarify documentation of 'mouse-on-link-p' # Conflicts: # lisp/emacs-lisp/eieio-core.el
-rw-r--r--doc/lispref/buffers.texi6
-rw-r--r--doc/lispref/searching.texi67
-rw-r--r--doc/lispref/strings.texi5
-rw-r--r--doc/misc/efaq.texi105
-rw-r--r--etc/PROBLEMS4
-rw-r--r--lisp/emacs-lisp/cl-generic.el14
-rw-r--r--lisp/emacs-lisp/cl-macs.el29
-rw-r--r--lisp/emacs-lisp/eieio-compat.el3
-rw-r--r--lisp/emacs-lisp/eieio-core.el2
-rw-r--r--lisp/emacs-lisp/find-func.el2
-rw-r--r--lisp/emacs-lisp/package.el9
-rw-r--r--lisp/files.el10
-rw-r--r--lisp/isearch.el48
-rw-r--r--lisp/mouse.el5
-rw-r--r--lisp/net/tramp-sh.el48
-rw-r--r--lisp/net/tramp.el2
-rw-r--r--src/buffer.c4
-rw-r--r--src/fns.c3
-rw-r--r--src/image.c8
-rw-r--r--src/indent.c1
-rw-r--r--src/search.c85
-rw-r--r--test/lisp/net/tramp-tests.el126
22 files changed, 467 insertions, 119 deletions
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 1f7f263fb2..740d7cfd8a 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -1211,6 +1211,12 @@ swapped as well: the positions of point and mark, all the markers, the
overlays, the text properties, the undo list, the value of the
@code{enable-multibyte-characters} flag (@pxref{Text Representations,
enable-multibyte-characters}), etc.
+
+@strong{Warning:} If this function is called from within a
+@code{save-excursion} form, the current buffer will be set to
+@var{buffer} upon leaving the form, since the marker used by
+@code{save-excursion} to save the position and buffer will be swapped
+as well.
@end defun
If you use @code{buffer-swap-text} on a file-visiting buffer, you
diff --git a/doc/lispref/searching.texi b/doc/lispref/searching.texi
index 644716a95c..a04e6938ce 100644
--- a/doc/lispref/searching.texi
+++ b/doc/lispref/searching.texi
@@ -44,7 +44,7 @@ Searching and Replacement, emacs, The GNU Emacs Manual}.
buffer is multibyte; they convert the search string to unibyte if the
buffer is unibyte. @xref{Text Representations}.
-@deffn Command search-forward string &optional limit noerror repeat
+@deffn Command search-forward string &optional limit noerror count
This function searches forward from point for an exact match for
@var{string}. If successful, it sets point to the end of the occurrence
found, and returns the new value of point. If no match is found, the
@@ -95,24 +95,24 @@ The argument @var{noerror} only affects valid searches which fail to
find a match. Invalid arguments cause errors regardless of
@var{noerror}.
-If @var{repeat} is a positive number @var{n}, it serves as a repeat
-count: the search is repeated @var{n} times, each time starting at the
-end of the previous time's match. If these successive searches
-succeed, the function succeeds, moving point and returning its new
-value. Otherwise the search fails, with results depending on the
-value of @var{noerror}, as described above. If @var{repeat} is a
-negative number -@var{n}, it serves as a repeat count of @var{n} for a
-search in the opposite (backward) direction.
+If @var{count} is a positive number @var{n}, the search is done
+@var{n} times; each successive search starts at the end of the
+previous match. If all these successive searches succeed, the
+function call succeeds, moving point and returning its new value.
+Otherwise the function call fails, with results depending on the value
+of @var{noerror}, as described above. If @var{count} is a negative
+number -@var{n}, the search is done @var{n} times in the opposite
+(backward) direction.
@end deffn
-@deffn Command search-backward string &optional limit noerror repeat
+@deffn Command search-backward string &optional limit noerror count
This function searches backward from point for @var{string}. It is
like @code{search-forward}, except that it searches backwards rather
than forwards. Backward searches leave point at the beginning of the
match.
@end deffn
-@deffn Command word-search-forward string &optional limit noerror repeat
+@deffn Command word-search-forward string &optional limit noerror count
This function searches forward from point for a word match for
@var{string}. If it finds a match, it sets point to the end of the
match found, and returns the new value of point.
@@ -156,8 +156,10 @@ returns @code{nil} instead of signaling an error. If @var{noerror} is
neither @code{nil} nor @code{t}, it moves point to @var{limit} (or the
end of the accessible portion of the buffer) and returns @code{nil}.
-If @var{repeat} is non-@code{nil}, then the search is repeated that many
-times. Point is positioned at the end of the last match.
+If @var{count} is a positive number, it specifies how many successive
+occurrences to search for. Point is positioned at the end of the last
+match. If @var{count} is a negative number, the search is backward
+and point is positioned at the beginning of the last match.
@findex word-search-regexp
Internally, @code{word-search-forward} and related functions use the
@@ -165,7 +167,7 @@ function @code{word-search-regexp} to convert @var{string} to a
regular expression that ignores punctuation.
@end deffn
-@deffn Command word-search-forward-lax string &optional limit noerror repeat
+@deffn Command word-search-forward-lax string &optional limit noerror count
This command is identical to @code{word-search-forward}, except that
the beginning or the end of @var{string} need not match a word
boundary, unless @var{string} begins or ends in whitespace.
@@ -173,14 +175,14 @@ For instance, searching for @samp{ball boy} matches @samp{ball boyee},
but does not match @samp{balls boy}.
@end deffn
-@deffn Command word-search-backward string &optional limit noerror repeat
+@deffn Command word-search-backward string &optional limit noerror count
This function searches backward from point for a word match to
@var{string}. This function is just like @code{word-search-forward}
except that it searches backward and normally leaves point at the
beginning of the match.
@end deffn
-@deffn Command word-search-backward-lax string &optional limit noerror repeat
+@deffn Command word-search-backward-lax string &optional limit noerror count
This command is identical to @code{word-search-backward}, except that
the beginning or the end of @var{string} need not match a word
boundary, unless @var{string} begins or ends in whitespace.
@@ -1005,7 +1007,7 @@ only the search functions useful in programs. The principal one is
the buffer is multibyte; they convert the regular expression to unibyte
if the buffer is unibyte. @xref{Text Representations}.
-@deffn Command re-search-forward regexp &optional limit noerror repeat
+@deffn Command re-search-forward regexp &optional limit noerror count
This function searches forward in the current buffer for a string of
text that is matched by the regular expression @var{regexp}. The
function skips over any amount of text that is not matched by
@@ -1014,14 +1016,12 @@ It returns the new value of point.
If @var{limit} is non-@code{nil}, it must be a position in the current
buffer. It specifies the upper bound to the search. No match
-extending after that position is accepted.
+extending after that position is accepted. If @var{limit} is omitted
+or @code{nil}, it defaults to the end of the accessible portion of the
+buffer.
-If @var{repeat} is supplied, it must be a positive number; the search
-is repeated that many times; each repetition starts at the end of the
-previous match. If all these successive searches succeed, the search
-succeeds, moving point and returning its new value. Otherwise the
-search fails. What @code{re-search-forward} does when the search
-fails depends on the value of @var{noerror}:
+What @code{re-search-forward} does when the search fails depends on
+the value of @var{noerror}:
@table @asis
@item @code{nil}
@@ -1033,6 +1033,19 @@ Move point to @var{limit} (or the end of the accessible portion of the
buffer) and return @code{nil}.
@end table
+The argument @var{noerror} only affects valid searches which fail to
+find a match. Invalid arguments cause errors regardless of
+@var{noerror}.
+
+If @var{count} is a positive number @var{n}, the search is done
+@var{n} times; each successive search starts at the end of the
+previous match. If all these successive searches succeed, the
+function call succeeds, moving point and returning its new value.
+Otherwise the function call fails, with results depending on the value
+of @var{noerror}, as described above. If @var{count} is a negative
+number -@var{n}, the search is done @var{n} times in the opposite
+(backward) direction.
+
In the following example, point is initially before the @samp{T}.
Evaluating the search call moves point to the end of that line (between
the @samp{t} of @samp{hat} and the newline).
@@ -1057,7 +1070,7 @@ comes back" twice.
@end example
@end deffn
-@deffn Command re-search-backward regexp &optional limit noerror repeat
+@deffn Command re-search-backward regexp &optional limit noerror count
This function searches backward in the current buffer for a string of
text that is matched by the regular expression @var{regexp}, leaving
point at the beginning of the first text found.
@@ -1228,13 +1241,13 @@ non-greedy repetition operators (@pxref{Regexp Special, non-greedy}).
This is because POSIX backtracking conflicts with the semantics of
non-greedy repetition.
-@deffn Command posix-search-forward regexp &optional limit noerror repeat
+@deffn Command posix-search-forward regexp &optional limit noerror count
This is like @code{re-search-forward} except that it performs the full
backtracking specified by the POSIX standard for regular expression
matching.
@end deffn
-@deffn Command posix-search-backward regexp &optional limit noerror repeat
+@deffn Command posix-search-backward regexp &optional limit noerror count
This is like @code{re-search-backward} except that it performs the full
backtracking specified by the POSIX standard for regular expression
matching.
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 4e4c239291..0b9529460f 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -503,8 +503,9 @@ the codeset part of the locale cannot be @code{"UTF-8"} on MS-Windows.
If your system does not support a locale environment, this function
behaves like @code{string-equal}.
-Do @emph{not} use this function to compare file names for equality, only
-for sorting them.
+Do @emph{not} use this function to compare file names for equality, as
+filesystems generally don't honor linguistic equivalence of strings
+that collation implements.
@end defun
@defun string-prefix-p string1 string2 &optional ignore-case
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index 8eee9e1d86..72a90a1ff2 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -931,6 +931,7 @@ status of its latest version.
@menu
* Origin of the term Emacs::
* Latest version of Emacs::
+* New in Emacs 25::
* New in Emacs 24::
* New in Emacs 23::
* New in Emacs 22::
@@ -977,9 +978,9 @@ conventions}).
@cindex Bazaar repository, Emacs
Emacs @value{EMACSVER} is the current version as of this writing. A version
-number with two components (e.g., @samp{22.1}) indicates a released
+number with two components (e.g., @samp{24.5}) indicates a released
version; three components indicate a development
-version (e.g., @samp{23.0.50} is what will eventually become @samp{23.1}).
+version (e.g., @samp{26.0.50} is what will eventually become @samp{26.1}).
Emacs is under active development, hosted at
@uref{http://savannah.gnu.org/projects/emacs/, Savannah}.
@@ -998,6 +999,106 @@ Emacs, type @kbd{C-h C-n} (@kbd{M-x view-emacs-news}). As of Emacs 22,
you can give this command a prefix argument to read about which features
were new in older versions.
+@node New in Emacs 25
+@section What is different about Emacs 25?
+@cindex Differences between Emacs 24 and Emacs 25
+@cindex Emacs 25, new features in
+
+@itemize
+@cindex xwidgets
+@item
+Emacs can now embed native widgets inside Emacs buffers, if you have
+gtk3 and webkitgtk3 installed. E.g., to access the embedded webkit
+browser widget, type @kbd{M-x xwidget-webkit-browse-url}.
+
+@cindex loadable modules
+@item
+Emacs can now dynamically load external modules compiled as shared
+libraries.
+
+@cindex Unicode characters, typing easily
+@item
+@kbd{C-x 8} has new shorthands for several popular characters, type
+@kbd{C-x 8 C-h} to list shorthands.
+
+@cindex automatic display of Lisp APIs
+@item
+A new minor mode @code{global-eldoc-mode} is enabled by default, and
+shows in the echo area or in the mode line the argument list of the
+Emacs Lisp form at point.
+
+@cindex pasting text on text terminals
+@cindex bracketed paste mode
+@item
+On text terminals that support the ``bracketed paste mode'' EMacs now
+uses that mode by default. This mode allows Emacs to distinguish
+between pasted text and text typed by the user.
+
+@cindex Unicode 9.0.0
+@item
+Emacs 25 comes with data files imported from the latest Unicode
+Standard version 9.0.0.
+
+@cindex bidirectional editing
+@item
+The support for bidirectional editing was updated to include all the
+features mandated by the latest Unicode Standard version 9.0.0.
+
+@cindex character folding in searches
+@item
+Search command can now perform character folding in matches. This is
+analogous to case folding, but instead of disregarding case variants,
+it disregards wider classes of distinctions between similar
+characters, such as matching different variants of double quote
+characters, ignoring diacritics, etc.
+
+@cindex eww
+@item
+The Emacs Web Browser EWW was extended to render text using
+variable-pitch fonts, and got other new features.
+
+@cindex rmail, and HTML mails
+@item
+Rmail can now render HTML mail messages, if Emacs is built with
+libxml2 or if you have the Lynx browser installed.
+
+@cindex support for push commands in VC
+@item
+VC now has basic support for @code{push} commands, implemented for
+Bzr, Git, and Hg.
+
+@cindex hide-ifdef, C/C@t{++} expressions in macros
+@item
+Hide-IfDef mode now support full C/C@t{++} expressions in macros,
+macro argument expansion, interactive macro evaluation and automatic
+scanning of @code{#define}d symbols.
+
+@cindex xref
+@item
+New package Xref replaces Etags's front-end and UI. Xref provides a
+generic framework and new commands to find and move to definitions of
+functions, macros, data structures etc., as well as go back to the
+location where you were before moving to a definition. It supersedes
+and obsoletes many Etags commands, while still using the etags.el code
+that reads the TAGS tables as one of its back-ends. As result, the
+popular key bindings @kbd{M-.} and @kbd{M-,} have been changed to
+invoke Xref commands.
+
+@cindex project
+@item
+The new package Project provides generic infrastructure for dealing
+with projects.
+
+@cindex horizontal scroll bars
+@item
+Emacs can now draw horizontal scroll bars on some platforms that
+provide toolkit scroll bars, namely Gtk+, Lucid, Motif and Windows.
+
+@end itemize
+
+Consult the Emacs @file{NEWS} file (@kbd{C-h n}) for the full list of
+changes in Emacs 25.
+
@node New in Emacs 24
@section What is different about Emacs 24?
@cindex Differences between Emacs 23 and Emacs 24
diff --git a/etc/PROBLEMS b/etc/PROBLEMS
index 5c9553bcb9..ebce3e0d46 100644
--- a/etc/PROBLEMS
+++ b/etc/PROBLEMS
@@ -958,13 +958,13 @@ occurrence of the failure. So far, the failure has been observed with
GTK+ versions 3.4.2, 3.14.5 and 3.18.7. However, another 3.4.2 build
does not exhibit the bug.
-Some window managers (xfce) apparently work around this failure by
+Some window managers (Xfce) apparently work around this failure by
cropping the menu bar. With other windows managers, it's possible to
shrink the frame manually after the problem occurs, e.g. by dragging the
frame's border with the mouse. However, some window managers have been
reported to refuse such attempts and snap back to the width needed to
show the full menu bar (wmii) or at least cause the screen to flicker
-during such resizing attempts (i3, icewm).
+during such resizing attempts (i3, IceWM).
See also http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15700,
http://debbugs.gnu.org/cgi/bugreport.cgi?bug=22000,
diff --git a/lisp/emacs-lisp/cl-generic.el b/lisp/emacs-lisp/cl-generic.el
index d5612f4eb1..61186e1a88 100644
--- a/lisp/emacs-lisp/cl-generic.el
+++ b/lisp/emacs-lisp/cl-generic.el
@@ -86,6 +86,11 @@
;;; Code:
+;; The autoloads.el mechanism which adds package--builtin-versions
+;; maintenance to loaddefs.el doesn't work for preloaded packages (such
+;; as this one), so we have to do it by hand!
+(push (purecopy '(cl-generic 1 0)) package--builtin-versions)
+
;; Note: For generic functions that dispatch on several arguments (i.e. those
;; which use the multiple-dispatch feature), we always use the same "tagcodes"
;; and the same set of arguments on which to dispatch. This works, but is
@@ -697,6 +702,15 @@ FUN is the function that should be called when METHOD calls
(setq fun (cl-generic-call-method generic method fun)))
fun)))))
+(defun cl-generic-apply (generic args)
+ "Like `apply' but takes a cl-generic object rather than a function."
+ ;; Handy in cl-no-applicable-method, for example.
+ ;; In Common Lisp, generic-function objects are funcallable. Ideally
+ ;; we'd want the same in Elisp, but it would either require using a very
+ ;; different (and less efficient) representation of cl--generic objects,
+ ;; or non-trivial changes in the general infrastructure (compiler and such).
+ (apply (cl--generic-name generic) args))
+
(defun cl--generic-arg-specializer (method dispatch-arg)
(or (if (integerp dispatch-arg)
(nth dispatch-arg
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 56170e6a71..37244f5c35 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -327,6 +327,20 @@ FORM is of the form (ARGS . BODY)."
Like normal `defun', except ARGLIST allows full Common Lisp conventions,
and BODY is implicitly surrounded by (cl-block NAME ...).
+The full form of a Common Lisp function argument list is
+
+ (VAR...
+ [&optional (VAR [INITFORM [SVAR]])...]
+ [&rest|&body VAR]
+ [&key (([KEYWORD] VAR) [INITFORM [SVAR]])... [&allow-other-keys]]
+ [&aux (VAR [INITFORM])...])
+
+VAR maybe be replaced recursively with an argument list for
+destructing, `&whole' is supported within these sublists. If
+SVAR, INITFORM, and KEYWORD are all omitted, then `(VAR)' may be
+written simply `VAR'. See the Info node `(cl)Argument Lists' for
+more details.
+
\(fn NAME ARGLIST [DOCSTRING] BODY...)"
(declare (debug
;; Same as defun but use cl-lambda-list.
@@ -406,6 +420,21 @@ and BODY is implicitly surrounded by (cl-block NAME ...).
Like normal `defmacro', except ARGLIST allows full Common Lisp conventions,
and BODY is implicitly surrounded by (cl-block NAME ...).
+The full form of a Common Lisp macro argument list is
+
+ (VAR...
+ [&optional (VAR [INITFORM [SVAR]])...]
+ [&rest|&body VAR]
+ [&key (([KEYWORD] VAR) [INITFORM [SVAR]])... [&allow-other-keys]]
+ [&aux (VAR [INITFORM])...]
+ [&environment VAR])
+
+VAR maybe be replaced recursively with an argument list for
+destructing, `&whole' is supported within these sublists. If
+SVAR, INITFORM, and KEYWORD are all omitted, then `(VAR)' may be
+written simply `VAR'. See the Info node `(cl)Argument Lists' for
+more details.
+
\(fn NAME ARGLIST [DOCSTRING] BODY...)"
(declare (debug
(&define name cl-macro-list cl-declarations-or-string def-body))
diff --git a/lisp/emacs-lisp/eieio-compat.el b/lisp/emacs-lisp/eieio-compat.el
index 7ee897093b..413b94f01a 100644
--- a/lisp/emacs-lisp/eieio-compat.el
+++ b/lisp/emacs-lisp/eieio-compat.el
@@ -188,7 +188,8 @@ Summary:
(`no-applicable-method
(setq method 'cl-no-applicable-method)
(setq specializers `(generic ,@specializers))
- (lambda (generic arg &rest args) (apply code arg generic args)))
+ (lambda (generic arg &rest args)
+ (apply code arg (cl--generic-name generic) (cons arg args))))
(_ code))))
(cl-generic-define-method
method (unless (memq kind '(nil :primary)) (list kind))
diff --git a/lisp/emacs-lisp/eieio-core.el b/lisp/emacs-lisp/eieio-core.el
index 0567c87dd3..52577adefa 100644
--- a/lisp/emacs-lisp/eieio-core.el
+++ b/lisp/emacs-lisp/eieio-core.el
@@ -971,7 +971,7 @@ If a consistent order does not exist, signal an error."
(defun eieio--class-precedence-c3 (class)
"Return all parents of CLASS in c3 order."
- (let ((parents (eieio--class-parents (cl--find-class class))))
+ (let ((parents (eieio--class-parents class)))
(eieio--c3-merge-lists
(list class)
(append
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index 4a7b710910..cbb134e95d 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -105,7 +105,7 @@ Please send improvements and fixes to the maintainer."
(defcustom find-feature-regexp
(concat ";;; Code:")
"The regexp used by `xref-find-definitions' when searching for a feature definition.
-Note it must contain a `%s' at the place where `format'
+Note it may contain up to one `%s' at the place where `format'
should insert the feature name."
;; We search for ";;; Code" rather than (feature '%s) because the
;; former is near the start of the code, and the latter is very
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index 540a0e9027..e721b553ea 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -2259,13 +2259,13 @@ Otherwise no newline is inserted."
(package--print-help-section "Status")
(cond (built-in
(insert (propertize (capitalize status)
- 'font-lock-face 'package-status-builtin-face)
+ 'font-lock-face 'package-status-built-in)
"."))
(pkg-dir
(insert (propertize (if (member status '("unsigned" "dependency"))
"Installed"
(capitalize status))
- 'font-lock-face 'package-status-builtin-face))
+ 'font-lock-face 'package-status-built-in))
(insert (substitute-command-keys " in `"))
(let ((dir (abbreviate-file-name
(file-name-as-directory
@@ -2278,7 +2278,7 @@ Otherwise no newline is inserted."
(insert (substitute-command-keys
"',\n shadowing a ")
(propertize "built-in package"
- 'font-lock-face 'package-status-builtin-face))
+ 'font-lock-face 'package-status-built-in))
(insert (substitute-command-keys "'")))
(if signed
(insert ".")
@@ -2830,13 +2830,14 @@ Return (PKG-DESC [NAME VERSION STATUS DOC])."
"Face used on package description summaries in the package menu."
:version "25.1")
+;; Shame this hyphenates "built-in", when "font-lock-builtin-face" doesn't.
(defface package-status-built-in
'((t :inherit font-lock-builtin-face))
"Face used on the status and version of built-in packages."
:version "25.1")
(defface package-status-external
- '((t :inherit package-status-builtin-face))
+ '((t :inherit package-status-built-in))
"Face used on the status and version of external packages."
:version "25.1")
diff --git a/lisp/files.el b/lisp/files.el
index abf6b0c818..55a7afe787 100644
--- a/lisp/files.el
+++ b/lisp/files.el
@@ -4700,14 +4700,20 @@ By default, makes the previous version into a backup file
Prefixed with one \\[universal-argument], marks this version
to become a backup when the next save is done.
Prefixed with two \\[universal-argument]'s,
- unconditionally makes the previous version into a backup file.
+ makes the previous version into a backup file.
Prefixed with three \\[universal-argument]'s, marks this version
to become a backup when the next save is done,
- and unconditionally makes the previous version into a backup file.
+ and makes the previous version into a backup file.
With a numeric prefix argument of 0, never make the previous version
into a backup file.
+Note that the various variables that control backups, such
+as `version-control', `backup-enable-predicate', `vc-make-backup-files',
+and `backup-inhibited', to name just the more popular ones, still
+control whether a backup will actually be produced, even when you
+invoke this command prefixed with two or three \\[universal-argument]'s.
+
If a file's name is FOO, the names of its numbered backup versions are
FOO.~i~ for various integers i. A non-numbered backup file is called FOO~.
Numeric backups (rather than FOO~) will be made if value of
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 25261d8d4a..b50379a250 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -1628,10 +1628,17 @@ Used in `word-search-forward', `word-search-backward',
"Search backward from point for STRING, ignoring differences in punctuation.
Set point to the beginning of the occurrence found, and return point.
An optional second argument bounds the search; it is a buffer position.
-The match found must not extend before that position.
+ The match found must not begin before that position. A value of nil
+ means search to the beginning of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
- If not nil and not t, move to limit of search and return nil.
-Optional fourth argument is repeat count--search for successive occurrences.
+ If not nil and not t, position at limit of search and return nil.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ forward, instead of backward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth to last one (or
+ last, if COUNT is 1 or nil) in the buffer located entirely before
+ the origin of the search; correspondingly with COUNT negative.
Relies on the function `word-search-regexp' to convert a sequence
of words in STRING to a regexp used to search words without regard
@@ -1645,10 +1652,17 @@ has no effect on it."
"Search forward from point for STRING, ignoring differences in punctuation.
Set point to the end of the occurrence found, and return point.
An optional second argument bounds the search; it is a buffer position.
-The match found must not extend after that position.
+ The match found must not end after that position. A value of nil
+ means search to the end of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
If not nil and not t, move to limit of search and return nil.
-Optional fourth argument is repeat count--search for successive occurrences.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ backward, instead of forward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth one (or first,
+ if COUNT is 1 or nil) in the buffer located entirely after the
+ origin of the search; correspondingly with COUNT negative.
Relies on the function `word-search-regexp' to convert a sequence
of words in STRING to a regexp used to search words without regard
@@ -1666,10 +1680,17 @@ Unlike `word-search-backward', the end of STRING need not match a word
boundary, unless STRING ends in whitespace.
An optional second argument bounds the search; it is a buffer position.
-The match found must not extend before that position.
+ The match found must not begin before that position. A value of nil
+ means search to the beginning of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
- If not nil and not t, move to limit of search and return nil.
-Optional fourth argument is repeat count--search for successive occurrences.
+ If not nil and not t, position at limit of search and return nil.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ forward, instead of backward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth to last one (or
+ last, if COUNT is 1 or nil) in the buffer located entirely before
+ the origin of the search; correspondingly with COUNT negative.
Relies on the function `word-search-regexp' to convert a sequence
of words in STRING to a regexp used to search words without regard
@@ -1687,10 +1708,17 @@ Unlike `word-search-forward', the end of STRING need not match a word
boundary, unless STRING ends in whitespace.
An optional second argument bounds the search; it is a buffer position.
-The match found must not extend after that position.
+ The match found must not end after that position. A value of nil
+ means search to the end of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
If not nil and not t, move to limit of search and return nil.
-Optional fourth argument is repeat count--search for successive occurrences.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ backward, instead of forward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth one (or first,
+ if COUNT is 1 or nil) in the buffer located entirely after the
+ origin of the search; correspondingly with COUNT negative.
Relies on the function `word-search-regexp' to convert a sequence
of words in STRING to a regexp used to search words without regard
diff --git a/lisp/mouse.el b/lisp/mouse.el
index 4b4749bb45..2a9a62feae 100644
--- a/lisp/mouse.el
+++ b/lisp/mouse.el
@@ -744,8 +744,9 @@ its value is returned."
(defun mouse-on-link-p (pos)
"Return non-nil if POS is on a link in the current buffer.
-POS must be a buffer position in the current buffer or a mouse
-event location in the selected window (see `event-start').
+POS must specify a buffer position in the current buffer, as a list
+of the form returned by the `event-start' and `event-end' functions,
+or a mouse event location in the selected window (see `event-start').
However, if `mouse-1-click-in-non-selected-windows' is non-nil,
POS may be a mouse event location in any window.
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index f79394ac9b..80e8375b94 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -2877,18 +2877,23 @@ the result will be a local, non-Tramp, file name."
tramp-initial-end-of-output))
;; We use as environment the difference to toplevel
;; `process-environment'.
- env
- (env
- (dolist
- (elt
- (cons prompt (nreverse (copy-sequence process-environment)))
- env)
- (or (member elt (default-toplevel-value 'process-environment))
- (setq env (cons elt env)))))
+ env uenv
+ (env (dolist (elt (cons prompt process-environment) env)
+ (or (member elt (default-toplevel-value 'process-environment))
+ (if (string-match "=" elt)
+ (setq env (append env `(,elt)))
+ (if (tramp-get-env-with-u-option v)
+ (setq env (append `("-u" ,elt) env))
+ (setq uenv (cons elt uenv)))))))
(command
(when (stringp program)
- (format "cd %s && exec %s env %s %s"
+ (format "cd %s && %s exec %s env %s %s"
(tramp-shell-quote-argument localname)
+ (if uenv
+ (format
+ "unset %s &&"
+ (mapconcat 'tramp-shell-quote-argument uenv " "))
+ "")
(if heredoc (format "<<'%s'" tramp-end-of-heredoc) "")
(mapconcat 'tramp-shell-quote-argument env " ")
(if heredoc
@@ -2974,20 +2979,28 @@ the result will be a local, non-Tramp, file name."
(error "Implementation does not handle immediate return"))
(with-parsed-tramp-file-name default-directory nil
- (let (command env input tmpinput stderr tmpstderr outbuf ret)
+ (let (command env uenv input tmpinput stderr tmpstderr outbuf ret)
;; Compute command.
(setq command (mapconcat 'tramp-shell-quote-argument
(cons program args) " "))
;; We use as environment the difference to toplevel `process-environment'.
- (setq env
- (dolist (elt (nreverse (copy-sequence process-environment)) env)
- (or (member elt (default-toplevel-value 'process-environment))
- (setq env (cons elt env)))))
+ (dolist (elt process-environment)
+ (or (member elt (default-toplevel-value 'process-environment))
+ (if (string-match "=" elt)
+ (setq env (append env `(,elt)))
+ (if (tramp-get-env-with-u-option v)
+ (setq env (append `("-u" ,elt) env))
+ (setq uenv (cons elt uenv))))))
(when env
(setq command
(format
"env %s %s"
(mapconcat 'tramp-shell-quote-argument env " ") command)))
+ (when uenv
+ (setq command
+ (format
+ "unset %s && %s"
+ (mapconcat 'tramp-shell-quote-argument uenv " ") command)))
;; Determine input.
(if (null infile)
(setq input "/dev/null")
@@ -5528,6 +5541,13 @@ Return ATTR."
tramp-unknown-id-string)
(t res)))))
+(defun tramp-get-env-with-u-option (vec)
+ (with-tramp-connection-property vec "env-u-option"
+ (tramp-message vec 5 "Checking, whether `env -u' works")
+ ;; Option "-u" is a GNU extension.
+ (tramp-send-command-and-check
+ vec "env FOO=foo env -u FOO 2>/dev/null | grep -qv FOO" t)))
+
;; Some predefined connection properties.
(defun tramp-get-inline-compress (vec prop size)
"Return the compress command related to PROP.
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index d80006abbc..34e3054721 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3524,7 +3524,7 @@ connection buffer."
(with-current-buffer (tramp-get-connection-buffer vec)
(let (buffer-read-only) (delete-region pos (point))))))))
-:;; Utility functions:
+;;; Utility functions:
(defun tramp-accept-process-output (&optional proc timeout timeout-msecs)
"Like `accept-process-output' for Tramp processes.
diff --git a/src/buffer.c b/src/buffer.c
index 8756cbbbd7..24c997fcdb 100644
--- a/src/buffer.c
+++ b/src/buffer.c
@@ -2224,7 +2224,9 @@ advance_to_char_boundary (ptrdiff_t byte_pos)
DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text,
1, 1, 0,
- doc: /* Swap the text between current buffer and BUFFER. */)
+ doc: /* Swap the text between current buffer and BUFFER.
+Using this function from `save-excursion' might produce surprising
+results, see Info node `(elisp)Swapping Text'. */)
(Lisp_Object buffer)
{
struct buffer *other_buffer;
diff --git a/src/fns.c b/src/fns.c
index 3895ada325..31f0fd2741 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -449,8 +449,7 @@ the codeset part of the locale cannot be \"UTF-8\" on MS-Windows.
If your system does not support a locale environment, this function
behaves like `string-equal'.
-Do NOT use this function to compare file names for equality, only
-for sorting them. */)
+Do NOT use this function to compare file names for equality. */)
(Lisp_Object s1, Lisp_Object s2, Lisp_Object locale, Lisp_Object ignore_case)
{
#if defined __STDC_ISO_10646__ || defined WINDOWSNT
diff --git a/src/image.c b/src/image.c
index 1770de7e8f..7a554ef1b6 100644
--- a/src/image.c
+++ b/src/image.c
@@ -8910,13 +8910,13 @@ and `imagemagick-types-inhibit'. */)
{
Lisp_Object typelist = Qnil;
size_t numf = 0;
- ExceptionInfo ex;
+ ExceptionInfo *ex;
char **imtypes;
size_t i;
- GetExceptionInfo(&ex);
- imtypes = GetMagickList ("*", &numf, &ex);
- DestroyExceptionInfo(&ex);
+ ex = AcquireExceptionInfo ();
+ imtypes = GetMagickList ("*", &numf, ex);
+ DestroyExceptionInfo (ex);
for (i = 0; i < numf; i++)
{
diff --git a/src/indent.c b/src/indent.c
index 1015259ced..f8c180d3e2 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -2030,6 +2030,7 @@ whether or not it is currently displayed in some window. */)
struct position pos;
pos = *vmotion (PT, PT_BYTE, XINT (lines), w);
SET_PT_BOTH (pos.bufpos, pos.bytepos);
+ it.vpos = pos.vpos;
}
else
{
diff --git a/src/search.c b/src/search.c
index 7c4a02491d..3d4846644e 100644
--- a/src/search.c
+++ b/src/search.c
@@ -2157,12 +2157,17 @@ DEFUN ("search-backward", Fsearch_backward, Ssearch_backward, 1, 4,
doc: /* Search backward from point for STRING.
Set point to the beginning of the occurrence found, and return point.
An optional second argument bounds the search; it is a buffer position.
-The match found must not extend before that position.
+ The match found must not begin before that position. A value of nil
+ means search to the beginning of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
- If not nil and not t, position at limit of search and return nil.
-Optional fourth argument COUNT, if non-nil, means to search for COUNT
- successive occurrences. If COUNT is negative, search forward,
- instead of backward, for -COUNT occurrences.
+ If not nil and not t, position at limit of search and return nil.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ forward, instead of backward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth to last one (or
+ last, if COUNT is 1 or nil) in the buffer located entirely before
+ the origin of the search; correspondingly with COUNT negative.
Search case-sensitivity is determined by the value of the variable
`case-fold-search', which see.
@@ -2177,13 +2182,17 @@ DEFUN ("search-forward", Fsearch_forward, Ssearch_forward, 1, 4, "MSearch: ",
doc: /* Search forward from point for STRING.
Set point to the end of the occurrence found, and return point.
An optional second argument bounds the search; it is a buffer position.
-The match found must not extend after that position. A value of nil is
- equivalent to (point-max).
+ The match found must not end after that position. A value of nil
+ means search to the end of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
If not nil and not t, move to limit of search and return nil.
-Optional fourth argument COUNT, if non-nil, means to search for COUNT
- successive occurrences. If COUNT is negative, search backward,
- instead of forward, for -COUNT occurrences.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ backward, instead of forward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth one (or first,
+ if COUNT is 1 or nil) in the buffer located entirely after the
+ origin of the search; correspondingly with COUNT negative.
Search case-sensitivity is determined by the value of the variable
`case-fold-search', which see.
@@ -2197,14 +2206,19 @@ See also the functions `match-beginning', `match-end' and `replace-match'. */)
DEFUN ("re-search-backward", Fre_search_backward, Sre_search_backward, 1, 4,
"sRE search backward: ",
doc: /* Search backward from point for match for regular expression REGEXP.
-Set point to the beginning of the match, and return point.
-The match found is the one starting last in the buffer
-and yet ending before the origin of the search.
+Set point to the beginning of the occurrence found, and return point.
An optional second argument bounds the search; it is a buffer position.
-The match found must start at or after that position.
+ The match found must not begin before that position. A value of nil
+ means search to the beginning of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
- If not nil and not t, move to limit of search and return nil.
-Optional fourth argument is repeat count--search for successive occurrences.
+ If not nil and not t, position at limit of search and return nil.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ forward, instead of backward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth to last one (or
+ last, if COUNT is 1 or nil) in the buffer located entirely before
+ the origin of the search; correspondingly with COUNT negative.
Search case-sensitivity is determined by the value of the variable
`case-fold-search', which see.
@@ -2221,10 +2235,17 @@ DEFUN ("re-search-forward", Fre_search_forward, Sre_search_forward, 1, 4,
doc: /* Search forward from point for regular expression REGEXP.
Set point to the end of the occurrence found, and return point.
An optional second argument bounds the search; it is a buffer position.
-The match found must not extend after that position.
+ The match found must not end after that position. A value of nil
+ means search to the end of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
If not nil and not t, move to limit of search and return nil.
-Optional fourth argument is repeat count--search for successive occurrences.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ backward, instead of forward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth one (or first,
+ if COUNT is 1 or nil) in the buffer located entirely after the
+ origin of the search; correspondingly with COUNT negative.
Search case-sensitivity is determined by the value of the variable
`case-fold-search', which see.
@@ -2240,14 +2261,19 @@ DEFUN ("posix-search-backward", Fposix_search_backward, Sposix_search_backward,
"sPosix search backward: ",
doc: /* Search backward from point for match for regular expression REGEXP.
Find the longest match in accord with Posix regular expression rules.
-Set point to the beginning of the match, and return point.
-The match found is the one starting last in the buffer
-and yet ending before the origin of the search.
+Set point to the beginning of the occurrence found, and return point.
An optional second argument bounds the search; it is a buffer position.
-The match found must start at or after that position.
+ The match found must not begin before that position. A value of nil
+ means search to the beginning of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
- If not nil and not t, move to limit of search and return nil.
-Optional fourth argument is repeat count--search for successive occurrences.
+ If not nil and not t, position at limit of search and return nil.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ forward, instead of backward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth to last one (or
+ last, if COUNT is 1 or nil) in the buffer located entirely before
+ the origin of the search; correspondingly with COUNT negative.
Search case-sensitivity is determined by the value of the variable
`case-fold-search', which see.
@@ -2265,10 +2291,17 @@ DEFUN ("posix-search-forward", Fposix_search_forward, Sposix_search_forward, 1,
Find the longest match in accord with Posix regular expression rules.
Set point to the end of the occurrence found, and return point.
An optional second argument bounds the search; it is a buffer position.
-The match found must not extend after that position.
+ The match found must not end after that position. A value of nil
+ means search to the end of the accessible portion of the buffer.
Optional third argument, if t, means if fail just return nil (no error).
If not nil and not t, move to limit of search and return nil.
-Optional fourth argument is repeat count--search for successive occurrences.
+Optional fourth argument COUNT, if a positive number, means to search
+ for COUNT successive occurrences. If COUNT is negative, search
+ backward, instead of forward, for -COUNT occurrences. A value of
+ nil means the same as 1.
+With COUNT positive, the match found is the COUNTth one (or first,
+ if COUNT is 1 or nil) in the buffer located entirely after the
+ origin of the search; correspondingly with COUNT negative.
Search case-sensitivity is determined by the value of the variable
`case-fold-search', which see.
diff --git a/test/lisp/net/tramp-tests.el b/test/lisp/net/tramp-tests.el
index a1ae78ab5c..e05786fa07 100644
--- a/test/lisp/net/tramp-tests.el
+++ b/test/lisp/net/tramp-tests.el
@@ -1702,7 +1702,99 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
;; Cleanup.
(ignore-errors (delete-file tmp-name)))))
-(ert-deftest tramp-test29-vc-registered ()
+(defun tramp-test--shell-command-to-string-asynchronously (command)
+ "Like `shell-command-to-string', but for asynchronous processes."
+ (with-temp-buffer
+ (async-shell-command command (current-buffer))
+ ;; Suppress nasty messages.
+ (set-process-sentinel (get-buffer-process (current-buffer)) nil)
+ (while (get-buffer-process (current-buffer))
+ (accept-process-output (get-buffer-process (current-buffer)) 0.1))
+ (accept-process-output)
+ (buffer-substring-no-properties (point-min) (point-max))))
+
+;; This test is inspired by Bug#23952.
+(ert-deftest tramp-test29-environment-variables ()
+ "Check that remote processes set / unset environment variables properly."
+ :tags '(:expensive-test)
+ (skip-unless (tramp--test-enabled))
+ (skip-unless
+ (eq
+ (tramp-find-foreign-file-name-handler tramp-test-temporary-file-directory)
+ 'tramp-sh-file-name-handler))
+
+ (dolist (this-shell-command-to-string
+ '(;; Synchronously.
+ shell-command-to-string
+ ;; Asynchronously.
+ tramp-test--shell-command-to-string-asynchronously))
+
+ (let ((default-directory tramp-test-temporary-file-directory)
+ (shell-file-name "/bin/sh")
+ (envvar (concat "VAR_" (upcase (md5 (current-time-string)))))
+ kill-buffer-query-functions)
+
+ (unwind-protect
+ ;; Set a value.
+ (let ((process-environment
+ (cons (concat envvar "=foo") process-environment)))
+ ;; Default value.
+ (should
+ (string-match
+ "foo"
+ (funcall
+ this-shell-command-to-string
+ (format "echo -n ${%s:?bla}" envvar))))))
+
+ (unwind-protect
+ ;; Set the empty value.
+ (let ((process-environment
+ (cons (concat envvar "=") process-environment)))
+ ;; Value is null.
+ (should
+ (string-match
+ "bla"
+ (funcall
+ this-shell-command-to-string
+ (format "echo -n ${%s:?bla}" envvar))))
+ ;; Variable is set.
+ (should
+ (string-match
+ (regexp-quote envvar)
+ (funcall this-shell-command-to-string "set")))))
+
+ ;; We force a reconnect, in order to have a clean environment.
+ (tramp-cleanup-connection
+ (tramp-dissect-file-name tramp-test-temporary-file-directory)
+ 'keep-debug 'keep-password)
+ (unwind-protect
+ ;; Unset the variable.
+ (let ((tramp-remote-process-environment
+ (cons (concat envvar "=foo")
+ tramp-remote-process-environment)))
+ ;; Set the initial value, we want to unset below.
+ (should
+ (string-match
+ "foo"
+ (funcall
+ this-shell-command-to-string
+ (format "echo -n ${%s:?bla}" envvar))))
+ (let ((process-environment
+ (cons envvar process-environment)))
+ ;; Variable is unset.
+ (should
+ (string-match
+ "bla"
+ (funcall
+ this-shell-command-to-string
+ (format "echo -n ${%s:?bla}" envvar))))
+ ;; Variable is unset.
+ (should-not
+ (string-match
+ (regexp-quote envvar)
+ (funcall this-shell-command-to-string "set")))))))))
+
+(ert-deftest tramp-test30-vc-registered ()
"Check `vc-registered'."
:tags '(:expensive-test)
(skip-unless (tramp--test-enabled))
@@ -1771,7 +1863,7 @@ This tests also `make-symbolic-link', `file-truename' and `add-name-to-file'."
;; Cleanup.
(ignore-errors (delete-directory tmp-name1 'recursive)))))
-(ert-deftest tramp-test30-make-auto-save-file-name ()
+(ert-deftest tramp-test31-make-auto-save-file-name ()
"Check `make-auto-save-file-name'."
(skip-unless (tramp--test-enabled))
@@ -2031,7 +2123,7 @@ Several special characters do not work properly there."
(ignore-errors (delete-directory tmp-name2 'recursive)))))
(defun tramp--test-special-characters ()
- "Perform the test in `tramp-test31-special-characters*'."
+ "Perform the test in `tramp-test32-special-characters*'."
;; Newlines, slashes and backslashes in file names are not
;; supported. So we don't test. And we don't test the tab
;; character on Windows or Cygwin, because the backslash is
@@ -2072,14 +2164,14 @@ Several special characters do not work properly there."
"{foo}bar{baz}"))
;; These tests are inspired by Bug#17238.
-(ert-deftest tramp-test31-special-characters ()
+(ert-deftest tramp-test32-special-characters ()
"Check special characters in file names."
(skip-unless (tramp--test-enabled))
(skip-unless (not (tramp--test-rsync-p)))
(tramp--test-special-characters))
-(ert-deftest tramp-test31-special-characters-with-stat ()
+(ert-deftest tramp-test32-special-characters-with-stat ()
"Check special characters in file names.
Use the `stat' command."
:tags '(:expensive-test)
@@ -2099,7 +2191,7 @@ Use the `stat' command."
tramp-connection-properties)))
(tramp--test-special-characters)))
-(ert-deftest tramp-test31-special-characters-with-perl ()
+(ert-deftest tramp-test32-special-characters-with-perl ()
"Check special characters in file names.
Use the `perl' command."
:tags '(:expensive-test)
@@ -2122,7 +2214,7 @@ Use the `perl' command."
tramp-connection-properties)))
(tramp--test-special-characters)))
-(ert-deftest tramp-test31-special-characters-with-ls ()
+(ert-deftest tramp-test32-special-characters-with-ls ()
"Check special characters in file names.
Use the `ls' command."
:tags '(:expensive-test)
@@ -2146,7 +2238,7 @@ Use the `ls' command."
(tramp--test-special-characters)))
(defun tramp--test-utf8 ()
- "Perform the test in `tramp-test32-utf8*'."
+ "Perform the test in `tramp-test33-utf8*'."
(let* ((utf8 (if (and (eq system-type 'darwin)
(memq 'utf-8-hfs (coding-system-list)))
'utf-8-hfs 'utf-8))
@@ -2160,14 +2252,14 @@ Use the `ls' command."
"银河系漫游指南系列"
"Автостопом по гала́ктике")))
-(ert-deftest tramp-test32-utf8 ()
+(ert-deftest tramp-test33-utf8 ()
"Check UTF8 encoding in file names and file contents."
(skip-unless (tramp--test-enabled))
(skip-unless (not (tramp--test-rsync-p)))
(tramp--test-utf8))
-(ert-deftest tramp-test32-utf8-with-stat ()
+(ert-deftest tramp-test33-utf8-with-stat ()
"Check UTF8 encoding in file names and file contents.
Use the `stat' command."
:tags '(:expensive-test)
@@ -2187,7 +2279,7 @@ Use the `stat' command."
tramp-connection-properties)))
(tramp--test-utf8)))
-(ert-deftest tramp-test32-utf8-with-perl ()
+(ert-deftest tramp-test33-utf8-with-perl ()
"Check UTF8 encoding in file names and file contents.
Use the `perl' command."
:tags '(:expensive-test)
@@ -2210,7 +2302,7 @@ Use the `perl' command."
tramp-connection-properties)))
(tramp--test-utf8)))
-(ert-deftest tramp-test32-utf8-with-ls ()
+(ert-deftest tramp-test33-utf8-with-ls ()
"Check UTF8 encoding in file names and file contents.
Use the `ls' command."
:tags '(:expensive-test)
@@ -2234,7 +2326,7 @@ Use the `ls' command."
(tramp--test-utf8)))
;; This test is inspired by Bug#16928.
-(ert-deftest tramp-test33-asynchronous-requests ()
+(ert-deftest tramp-test34-asynchronous-requests ()
"Check parallel asynchronous requests.
Such requests could arrive from timers, process filters and
process sentinels. They shall not disturb each other."
@@ -2324,7 +2416,7 @@ process sentinels. They shall not disturb each other."
(dolist (buf buffers)
(ignore-errors (kill-buffer buf)))))))
-(ert-deftest tramp-test34-recursive-load ()
+(ert-deftest tramp-test35-recursive-load ()
"Check that Tramp does not fail due to recursive load."
(skip-unless (tramp--test-enabled))
@@ -2347,7 +2439,7 @@ process sentinels. They shall not disturb each other."
(mapconcat 'shell-quote-argument load-path " -L ")
(shell-quote-argument code)))))))
-(ert-deftest tramp-test35-unload ()
+(ert-deftest tramp-test36-unload ()
"Check that Tramp and its subpackages unload completely.
Since it unloads Tramp, it shall be the last test to run."
;; Mark as failed until all symbols are unbound.
@@ -2395,8 +2487,8 @@ Since it unloads Tramp, it shall be the last test to run."
;; * Fix `tramp-test06-directory-file-name' for `ftp'.
;; * Fix `tramp-test15-copy-directory' for `rsync'.
;; * Fix `tramp-test27-start-file-process' on MS Windows (`process-send-eof'?).
-;; * Fix Bug#16928. Set expected error of `tramp-test33-asynchronous-requests'.
-;; * Fix `tramp-test35-unload' (Not all symbols are unbound). Set
+;; * Fix Bug#16928. Set expected error of `tramp-test34-asynchronous-requests'.
+;; * Fix `tramp-test36-unload' (Not all symbols are unbound). Set
;; expected error.
(defun tramp-test-all (&optional interactive)