Commit 3a12f2ed authored by Fabián Ezequiel Gallina's avatar Fabián Ezequiel Gallina

Merge from origin/emacs-24

2616307f * net/tramp-sh.el (tramp-send-command-and-read): New optional arg MARKER. (tramp-get-remote-path): Use it.
c773edcf * net/tramp-gw.el (tramp-gw-open-connection): Suppress traces in wrong debug buffer. (tramp-gw-open-connection): Set process coding system 'binary. (tramp-gw-open-network-stream): Handle HTTP error 403.
8032fc16 * .gitignore: Ignore /conftest*.
fb420e77 * lisp/subr.el (sit-for): Tweak docstring.
061db139 Fix vc-git-dir-status-files WRT up-to-date vs edited
bb57c94d Consider electric-pair-mode in tex-mode.
7b945728 * test/automated/flymake/warnpred/ Tweak earlier change.
59c218fa ChangeLog fix
db2a7681 * test/automated/flymake/warnpred/ Tweak format
d9005dd5 src/gnutls.c (gnutls_init): Fix deprecation warning from GCC.

parents 6d14e0d3 2616307f
......@@ -48,6 +48,7 @@ makefile
2014-12-27 Paul Eggert <>
* .gitignore: Ignore /conftest*.
2014-12-27 Stefan Monnier <>
* build-aux/git-hooks/commit-msg (at_sign): Bump up line-length limit
to 78.
2014-12-27 Paul Eggert <>
2014-12-25 Paul Eggert <>
Prefer stpcpy to strcat
......@@ -308,7 +318,8 @@
2014-11-11 Eric S. Raymond <>
* git transition - set VCWITNESS appropriately for git.
Git transition.
* (src): Set VCSWITNESS appropriately for git.
All bzr revision IDS, and all CVS revision IDs for which a commit
could be identified, were changed to time-date!committer version
......@@ -87,8 +87,8 @@ exec $awk '
status = 1
72 < length && $0 ~ space {
print "Line longer than 72 characters in commit message"
78 < length && $0 ~ space {
print "Line longer than 78 characters in commit message"
status = 1
2014-12-27 Michael Albinus <>
* net/tramp-sh.el (tramp-send-command-and-read): New optional
(tramp-get-remote-path): Use it.
2014-12-27 Michael Albinus <>
* net/tramp.el (tramp-error-with-buffer): Call `message' properly.
(tramp-accept-process-output): Use nil as argument for
`accept-process-output', when there is a gateway prepended.
* net/tramp-gw.el (tramp-gw-open-connection): Suppress traces in
wrong debug buffer.
(tramp-gw-open-connection): Set process coding system 'binary.
(tramp-gw-open-network-stream): Handle HTTP error 403.
* net/tramp-sh.el (tramp-compute-multi-hops): Suppress traces in
wrong debug buffer.
(tramp-maybe-open-connection): Set connection property "gateway".
2014-12-27 Stefan Monnier <>
* subr.el (sit-for): Tweak docstring (bug#19381).
2014-12-27 Dmitry Gutov <>
* vc/vc-git.el (vc-git-after-dir-status-stage): Move `up-to-date'
stage to after `diff-index' (bug#19386).
2014-12-27 João Távora <>
* textmodes/tex-mode.el (tex-insert-quote): Consider and respect
`electric-pair-mode' (bug#19356).
2014-12-27 Michael Albinus <>
2014-12-27 Dmitry Gutov <>
elisp-xref-find: Don't create buffers eagerly.
......@@ -195,11 +195,12 @@ instead of the host name declared in TARGET-VEC."
(setq tramp-gw-gw-proc
(tramp-get-connection-name gw-vec)
(tramp-get-connection-buffer gw-vec)
(let ((tramp-verbose 0)) (tramp-get-connection-name gw-vec))
(let ((tramp-verbose 0)) (tramp-get-connection-buffer gw-vec))
(tramp-file-name-real-host target-vec)
(tramp-file-name-port target-vec)))
(set-process-sentinel tramp-gw-gw-proc 'tramp-gw-gw-proc-sentinel)
(set-process-coding-system tramp-gw-gw-proc 'binary 'binary)
(tramp-compat-set-process-query-on-exit-flag tramp-gw-gw-proc nil)
vec 4 "Opened %s process `%s'"
......@@ -260,6 +261,10 @@ authentication is requested from proxy server, provide it."
(200 (setq found t))
;; We need basic authentication.
(401 (setq authentication (tramp-gw-basic-authentication nil first)))
;; Access forbidden.
(403 (tramp-error-with-buffer
(current-buffer) tramp-gw-vector 'file-error
"Connection to %s:%d forbidden." host service))
;; Target host not found.
(404 (tramp-error-with-buffer
(current-buffer) tramp-gw-vector 'file-error
......@@ -2883,7 +2883,7 @@ the result will be a local, non-Tramp, file name."
(name1 name)
(i 0)
;; We do not want to raise an error when
;; `start-file-process' has been started several time in
;; `start-file-process' has been started several times in
;; `eshell' and friends.
(tramp-current-connection nil))
......@@ -4510,7 +4510,8 @@ Gateway hops are already opened."
;; Therefore, we must remember the gateway vector. But we
;; cannot do it as connection property, because it shouldn't
;; be persistent. And we have no started process yet either.
(tramp-set-file-property (car target-alist) "" "gateway" hop)))
(let ((tramp-verbose 0))
(tramp-set-file-property (car target-alist) "" "gateway" hop))))
;; Foreign and out-of-band methods are not supported for multi-hops.
(when (cdr target-alist)
......@@ -4687,7 +4688,8 @@ connection if a previous connection has died for some reason."
l-method 'tramp-connection-timeout))
(tramp-get-method-parameter l-method 'tramp-gw-args))
(gw (tramp-get-file-property hop "" "gateway" nil))
(gw (let ((tramp-verbose 0))
(tramp-get-file-property hop "" "gateway" nil)))
(g-method (and gw (tramp-file-name-method gw)))
(g-user (and gw (tramp-file-name-user gw)))
(g-host (and gw (tramp-file-name-real-host gw)))
......@@ -4715,8 +4717,10 @@ connection if a previous connection has died for some reason."
(setq login-args (append async-args login-args)))
;; Add gateway arguments if necessary.
(when (and gw gw-args)
(setq login-args (append gw-args login-args)))
(when gw
(tramp-set-connection-property p "gateway" t)
(when gw-args
(setq login-args (append gw-args login-args))))
;; Check for port number. Until now, there's no
;; need for handling like method, user, host.
......@@ -4902,8 +4906,9 @@ FMT and ARGS which are passed to `error'."
(or (tramp-send-command-and-check vec command)
(apply 'tramp-error vec 'file-error fmt args)))
(defun tramp-send-command-and-read (vec command &optional noerror)
(defun tramp-send-command-and-read (vec command &optional noerror marker)
"Run COMMAND and return the output, which must be a Lisp expression.
If MARKER is a regexp, read the output after that string.
In case there is no valid Lisp expression and NOERROR is nil, it
raises an error."
(when (if noerror
......@@ -4911,8 +4916,17 @@ raises an error."
vec command "`%s' returns with error" command))
(with-current-buffer (tramp-get-connection-buffer vec)
;; Read the expression.
(goto-char (point-min))
;; Read the marker.
(when (stringp marker)
(condition-case nil
(re-search-forward marker)
(error (unless noerror
vec 'file-error
"`%s' does not return the marker `%s': `%s'"
command marker (buffer-string))))))
;; Read the expression.
(condition-case nil
(prog1 (read (current-buffer))
;; Error handling.
......@@ -5064,25 +5078,22 @@ Return ATTR."
;; We cannot apply `tramp-send-command-and-read' because
;; the login shell could return more than just the $PATH
;; string. So we emulate that function.
;; The login shell could return more than just the $PATH
;; string. So we use `tramp-end-of-heredoc' as marker.
(when elt2
"%s -l %s 'echo \\\"$PATH\\\"'"
"%s -l %s 'echo %s \\\"$PATH\\\"'"
(tramp-file-name-method vec) 'tramp-remote-shell)
(tramp-file-name-method vec) 'tramp-remote-shell-args)
" ")))
(with-current-buffer (tramp-get-connection-buffer vec)
(goto-char (point-max))
(forward-line -1)
(read (current-buffer))))))
" ")
(tramp-shell-quote-argument tramp-end-of-heredoc))
nil (regexp-quote tramp-end-of-heredoc)))))
;; Replace place holder `tramp-default-remote-path'.
(when elt1
......@@ -1610,7 +1610,7 @@ an input event arrives. The other arguments are passed to `tramp-error'."
(let ((enable-recursive-minibuffers t))
;; `tramp-error' does not show messages. So we must do it
;; ourselves.
(message fmt-string arguments)
(apply 'message fmt-string arguments)
;; Show buffer.
(pop-to-buffer buf)
......@@ -3609,15 +3609,19 @@ connection buffer."
This is needed in order to hide `last-coding-system-used', which is set
for process communication also."
(with-current-buffer (process-buffer proc)
(tramp-message proc 10 "%s %s" proc (process-status proc))
(let (buffer-read-only last-coding-system-used)
;; FIXME: If there is a gateway process, we need communication
;; between several processes. Too complicate to implement, so we
;; read output from all proceeses.
(let ((p (if (tramp-get-connection-property proc "gateway" nil) nil proc))
buffer-read-only last-coding-system-used)
;; Under Windows XP, accept-process-output doesn't return
;; sometimes. So we add an additional timeout.
(with-timeout ((or timeout 1))
(if (featurep 'xemacs)
(accept-process-output proc timeout timeout-msecs)
(accept-process-output proc timeout timeout-msecs (and proc t)))))
(tramp-message proc 10 "\n%s" (buffer-string))))
(accept-process-output p timeout timeout-msecs)
(accept-process-output p timeout timeout-msecs (and proc t))))
(tramp-message proc 10 "%s %s %s\n%s"
proc (process-status proc) p (buffer-string)))))
(defun tramp-check-for-regexp (proc regexp)
"Check, whether REGEXP is contained in process buffer of PROC.
......@@ -2166,7 +2166,7 @@ keyboard-quit events while waiting for a valid input."
(defun sit-for (seconds &optional nodisp obsolete)
"Perform redisplay, then wait for SECONDS seconds or until input is available.
"Redisplay, then wait for SECONDS seconds. Stop when input is available.
SECONDS may be a floating-point value.
\(On operating systems that do not support waiting for fractions of a
second, floating-point values are rounded down to the nearest integer.)
......@@ -2184,7 +2184,7 @@ floating point support."
(declare (advertised-calling-convention (seconds &optional nodisp) "22.1"))
;; This used to be implemented in C until the following discussion:
;; Then it was moved to C using an implementation based on an idle timer,
;; Then it was moved here using an implementation based on an idle timer,
;; which was then replaced by the use of read-event.
(if (numberp nodisp)
(setq seconds (+ seconds (* 1e-3 nodisp))
......@@ -1300,18 +1300,48 @@ Inserts the value of `tex-open-quote' (normally ``) or `tex-close-quote'
\(normally '') depending on the context. With prefix argument, always
inserts \" characters."
(interactive "*P")
;; Discover if we'll be inserting normal double quotes.
(if (or arg (memq (char-syntax (preceding-char)) '(?/ ?\\))
(eq (get-text-property (point) 'face) 'tex-verbatim)
(backward-char (length tex-open-quote))
(when (or (looking-at (regexp-quote tex-open-quote))
(looking-at (regexp-quote tex-close-quote)))
(delete-char (length tex-open-quote))
(eq (get-text-property (point) 'face) 'tex-verbatim)
;; Discover if a preceding occurance of `tex-open-quote'
;; should be morphed to a normal double quote.
(and (>= (point) (+ (point-min) (length tex-open-quote)))
(backward-char (length tex-open-quote))
(when (or (looking-at (regexp-quote tex-open-quote))
(looking-at (regexp-quote tex-close-quote)))
(delete-char (length tex-open-quote))
(when (looking-at (regexp-quote tex-close-quote))
(delete-char (length tex-close-quote)))
;; Insert the normal quote (eventually letting
;; `electric-pair-mode' do its thing).
(self-insert-command (prefix-numeric-value arg))
(insert (if (or (memq (char-syntax (preceding-char)) '(?\( ?> ?\s))
(memq (preceding-char) '(?~)))
tex-open-quote tex-close-quote))))
;; We'll be inserting fancy TeX quotes, but consider and imitate
;; `electric-pair-mode''s two behaviours: pair-insertion and
;; region wrapping.
(if (and electric-pair-mode (use-region-p))
(let* ((saved (point-marker)))
(goto-char (mark))
(insert (if (> saved (mark)) tex-open-quote tex-close-quote))
(goto-char saved)
(insert (if (> saved (mark)) tex-close-quote tex-open-quote)))
(if (or (memq (char-syntax (preceding-char)) '(?\( ?> ?\s))
(memq (preceding-char) '(?~)))
(if electric-pair-mode
(if (looking-at (regexp-quote tex-close-quote))
(forward-char (length tex-close-quote))
(insert tex-open-quote)
(insert tex-close-quote)
(backward-char (length tex-close-quote)))
(insert tex-open-quote))
(if (looking-at (regexp-quote tex-close-quote))
(forward-char (length tex-close-quote))
(insert tex-close-quote))))))
(defun tex-validate-buffer ()
"Check current buffer for paragraphs containing mismatched braces or $s.
......@@ -371,8 +371,7 @@ or an empty string if none."
(goto-char (point-min))
(pcase stage
(setq next-stage (if (vc-git--empty-db-p) 'ls-files-added
(if files 'ls-files-up-to-date 'diff-index))))
(setq next-stage (if (vc-git--empty-db-p) 'ls-files-added 'diff-index)))
(setq next-stage 'ls-files-unknown)
(while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t)
......@@ -381,7 +380,7 @@ or an empty string if none."
(push (list name 'added (vc-git-create-extra-fileinfo 0 new-perm))
(setq next-stage 'diff-index)
(setq next-stage 'ls-files-unknown)
(while (re-search-forward "\\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} 0\t\\([^\0]+\\)\0" nil t)
(let ((perm (string-to-number (match-string 1) 8))
(name (match-string 2)))
......@@ -400,7 +399,7 @@ or an empty string if none."
(vc-git-create-extra-fileinfo 0 0))
(setq next-stage 'ls-files-unknown)
(setq next-stage (if files 'ls-files-up-to-date 'ls-files-unknown))
(while (re-search-forward
":\\([0-7]\\{6\\}\\) \\([0-7]\\{6\\}\\) [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\(\\([ADMUT]\\)\0\\([^\0]+\\)\\|\\([CR]\\)[0-9]*\0\\([^\0]+\\)\0\\([^\0]+\\)\\)\0"
nil t 1)
2014-12-27 Stefan Monnier <>
* buffer.c (syms_of_buffer) <Vafter_change_functions>: fix docstring.
2014-12-27 Eli Zaretskii <>
* gnutls.c (gnutls_init): Fix deprecation warning from GCC.
2014-12-27 Eli Zaretskii <>
2014-12-26 Paul Eggert <>
Use bool for boolean in xselect.c, xsettings.c
......@@ -918,6 +928,8 @@
* fileio.c (Fexpand_file_name): Use make_unibyte_string, not
build_string, when importing a home directory. (Bug#18873)
2014-12-27 Eli Zaretskii <>
* dispnew.c (buffer_posn_from_coords):
account for the header-line height. (Bug#18839)
......@@ -6066,9 +6066,9 @@ from happening repeatedly and making Emacs nonfunctional. */);
doc: /* List of functions to call after each text change.
Three arguments are passed to each function: the positions of
the beginning and end of the range of changed text,
and the length in bytes of the pre-change text replaced by that range.
and the length in chars of the pre-change text replaced by that range.
\(For an insertion, the pre-change length is zero;
for a deletion, that length is the number of bytes deleted,
for a deletion, that length is the number of chars deleted,
and the post-change beginning and end are at the same place.)
Buffer changes made while executing the `after-change-functions'
......@@ -134,7 +134,7 @@ DEF_GNUTLS_FN (void, gnutls_global_set_mem_functions,
gnutls_is_secure_function, gnutls_realloc_function,
DEF_GNUTLS_FN (int, gnutls_handshake, (gnutls_session_t));
DEF_GNUTLS_FN (int, gnutls_init, (gnutls_session_t *, gnutls_connection_end_t));
DEF_GNUTLS_FN (int, gnutls_init, (gnutls_session_t *, unsigned int));
DEF_GNUTLS_FN (int, gnutls_priority_set_direct,
(gnutls_session_t, const char *, const char **));
DEF_GNUTLS_FN (size_t, gnutls_record_check_pending, (gnutls_session_t));
2014-12-27 João Távora <>
* automated/electric-tests.el (autowrapping-7): Tests for
2014-12-27 Glenn Morris <>
* automated/flymake/warnpred/ Tweak format, since the
previous one seems to have stopped giving a warning with perl 5.20.1.
2014-12-27 Fabián Ezequiel Gallina <>
2014-12-26 Fabián Ezequiel Gallina <>
* automated/python-tests.el (python-shell-get-process-name-1)
@arr = [1,2,3,4];
@arr[1] = -1;
my $b = @arr[1];
......@@ -60,7 +60,7 @@
(mapcar #'car bindings)
(mapcar #'cdr bindings)
(self-insert-command 1))))
(call-interactively (key-binding `[,last-command-event])))))
(should (equal (buffer-substring-no-properties (point-min) (point-max))
(should (equal (point)
......@@ -575,5 +575,14 @@ baz\"\""
(skip-chars-backward "\"")
(mark-sexp -1)))
(define-electric-pair-test autowrapping-7
"foo" "\"" :expected-string "``foo''" :expected-point 8
:modes '(tex-mode)
:fixture-fn #'(lambda ()
(electric-pair-mode 1)
(goto-char (point-max))
(skip-chars-backward "\"")
(mark-sexp -1)))
(provide 'electric-tests)
;;; electric-tests.el ends here
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment