aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2016-10-23 02:48:50 -0700
committerPaul Eggert2016-10-23 02:48:50 -0700
commit6df147c61a2f3fbabe6e47349d4e826cc7414ea2 (patch)
tree5164b234cd1018c7997f49f24a95ddcaf5a67dfd
parente892e1158619f546182e990f927abea02cdf5db3 (diff)
parent8ad0d7da0a84750e1884a89a212963f81ae26816 (diff)
downloademacs-6df147c61a2f3fbabe6e47349d4e826cc7414ea2.tar.gz
emacs-6df147c61a2f3fbabe6e47349d4e826cc7414ea2.zip
Merge from origin/emacs-25
8ad0d7d ; Fix quoting in etc/NEWS 6b9dee1 Change Tramp version to "2.2.13.25.2" 62f2684 * lisp/emacs-lisp/autoload.el (update-directory-autoloads): F... b2f32e4 Don't scan compiled module files for autoloads 9a758b4 Fix Bug#24698 baa8ba4 * lisp/subr.el (start-process): Doc fix. (Bug#24693) e535ca4 Fix display of vc-dir CVS file statuses in subdirectories 12da149 Update URL of MS-Windows optional DLLs 2331056 Merge branch 'emacs-25' of git.savannah.gnu.org:/srv/git/emac... a4285bc * lisp/simple.el (process-menu-mode, list-processes--refresh)... b0c447e * lisp/ibuf-ext.el (ibuffer-do-shell-command-file): Fix non-f... cf3c19b * lisp/ibuffer.el (ibuffer): Improve 'other-window' case. (B... # Conflicts: # doc/misc/trampver.texi # etc/NEWS # lisp/net/tramp-sh.el # lisp/net/trampver.el
-rw-r--r--etc/NEWS.2514
-rw-r--r--lisp/emacs-lisp/autoload.el7
-rw-r--r--lisp/net/tramp-sh.el247
-rw-r--r--lisp/subr.el2
-rw-r--r--lisp/vc/vc-cvs.el137
-rw-r--r--nt/INSTALL16
-rw-r--r--nt/README.W3213
7 files changed, 184 insertions, 252 deletions
diff --git a/etc/NEWS.25 b/etc/NEWS.25
index 3e686f98db3..a5bcb8dabdc 100644
--- a/etc/NEWS.25
+++ b/etc/NEWS.25
@@ -20,13 +20,13 @@ with a prefix argument or by typing C-u C-h C-n.
20This is a bug-fix release with (almost) no new features. 20This is a bug-fix release with (almost) no new features.
21 21
22--- 22---
23** `find-library', `help-function-def' and `help-variable-def' now run 23** 'find-library', 'help-function-def' and 'help-variable-def' now run
24`find-function-after-hook'. 24'find-function-after-hook'.
25 25
26+++ 26+++
27** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs. 27** New basic face 'fixed-pitch-serif', for a fixed-width font with serifs.
28The Info-quoted and tex-verbatim faces now default to inheriting from 28The 'Info-quoted' and 'tex-verbatim' faces now default to inheriting
29it. 29from it.
30 30
31--- 31---
32** New variable 'use-default-font-for-symbols' for backward compatibility. 32** New variable 'use-default-font-for-symbols' for backward compatibility.
@@ -38,6 +38,12 @@ fontsets if the default font supports these characters. Set this
38variable to nil to disable the new behavior and get back the old 38variable to nil to disable the new behavior and get back the old
39behavior. 39behavior.
40 40
41+++
42** 'electric-quote-mode' is no longer suppressed in a buffer whose
43whose coding system cannot represent curved quote characters.
44Instead, users can deal with the unrepresentable characters in the
45usual way when they save the buffer.
46
41--- 47---
42** New variable 'inhibit-compacting-font-caches'. 48** New variable 'inhibit-compacting-font-caches'.
43Set this variable to a non-nil value to speed up display of characters 49Set this variable to a non-nil value to speed up display of characters
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 426601c81f7..1292ea992d3 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -1012,7 +1012,12 @@ write its autoloads into the specified file instead."
1012 (interactive "DUpdate autoloads from directory: ") 1012 (interactive "DUpdate autoloads from directory: ")
1013 (let* ((files-re (let ((tmp nil)) 1013 (let* ((files-re (let ((tmp nil))
1014 (dolist (suf (get-load-suffixes)) 1014 (dolist (suf (get-load-suffixes))
1015 (unless (string-match "\\.elc" suf) (push suf tmp))) 1015 ;; We don't use module-file-suffix below because
1016 ;; we don't want to depend on whether Emacs was
1017 ;; built with or without modules support, nor
1018 ;; what is the suffix for the underlying OS.
1019 (unless (string-match "\\.\\(elc\\|\\so\\|dll\\)" suf)
1020 (push suf tmp)))
1016 (concat "^[^=.].*" (regexp-opt tmp t) "\\'"))) 1021 (concat "^[^=.].*" (regexp-opt tmp t) "\\'")))
1017 (files (apply #'nconc 1022 (files (apply #'nconc
1018 (mapcar (lambda (dir) 1023 (mapcar (lambda (dir)
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index 555e3711db2..e9077194691 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -4046,10 +4046,10 @@ process to set up. VEC specifies the connection."
4046 (case-fold-search t)) 4046 (case-fold-search t))
4047 (tramp-open-shell vec (tramp-get-method-parameter vec 'tramp-remote-shell)) 4047 (tramp-open-shell vec (tramp-get-method-parameter vec 'tramp-remote-shell))
4048 4048
4049 ;; Disable tab and echo expansion. 4049 ;; Disable echo expansion.
4050 (tramp-message vec 5 "Setting up remote shell environment") 4050 (tramp-message vec 5 "Setting up remote shell environment")
4051 (tramp-send-command 4051 (tramp-send-command
4052 vec "stty tab0 -inlcr -onlcr -echo kill '^U' erase '^H'" t) 4052 vec "stty -inlcr -onlcr -echo kill '^U' erase '^H'" t)
4053 ;; Check whether the echo has really been disabled. Some 4053 ;; Check whether the echo has really been disabled. Some
4054 ;; implementations, like busybox of embedded GNU/Linux, don't 4054 ;; implementations, like busybox of embedded GNU/Linux, don't
4055 ;; support disabling. 4055 ;; support disabling.
@@ -4066,7 +4066,8 @@ process to set up. VEC specifies the connection."
4066 (tramp-message vec 5 "Setting shell prompt") 4066 (tramp-message vec 5 "Setting shell prompt")
4067 (tramp-send-command 4067 (tramp-send-command
4068 vec (format "PS1=%s PS2='' PS3='' PROMPT_COMMAND=''" 4068 vec (format "PS1=%s PS2='' PS3='' PROMPT_COMMAND=''"
4069 (tramp-shell-quote-argument tramp-end-of-output)) t) 4069 (tramp-shell-quote-argument tramp-end-of-output))
4070 t)
4070 4071
4071 ;; Check whether the output of "uname -sr" has been changed. If 4072 ;; Check whether the output of "uname -sr" has been changed. If
4072 ;; yes, this is a strong indication that we must expire all 4073 ;; yes, this is a strong indication that we must expire all
@@ -4074,138 +4075,132 @@ process to set up. VEC specifies the connection."
4074 ;; `tramp-maybe-open-connection', it will be caught there. 4075 ;; `tramp-maybe-open-connection', it will be caught there.
4075 (tramp-message vec 5 "Checking system information") 4076 (tramp-message vec 5 "Checking system information")
4076 (let ((old-uname (tramp-get-connection-property vec "uname" nil)) 4077 (let ((old-uname (tramp-get-connection-property vec "uname" nil))
4077 (new-uname 4078 (uname
4078 (tramp-set-connection-property 4079 (tramp-set-connection-property
4079 vec "uname" 4080 vec "uname"
4080 (tramp-send-command-and-read vec "echo \\\"`uname -sr`\\\"")))) 4081 (tramp-send-command-and-read vec "echo \\\"`uname -sr`\\\""))))
4081 (when (and (stringp old-uname) (not (string-equal old-uname new-uname))) 4082 (when (and (stringp old-uname) (not (string-equal old-uname uname)))
4082 (tramp-message 4083 (tramp-message
4083 vec 3 4084 vec 3
4084 "Connection reset, because remote host changed from `%s' to `%s'" 4085 "Connection reset, because remote host changed from `%s' to `%s'"
4085 old-uname new-uname) 4086 old-uname uname)
4086 ;; We want to keep the password. 4087 ;; We want to keep the password.
4087 (tramp-cleanup-connection vec t t) 4088 (tramp-cleanup-connection vec t t)
4088 (throw 'uname-changed (tramp-maybe-open-connection vec)))) 4089 (throw 'uname-changed (tramp-maybe-open-connection vec)))
4089 4090
4090 ;; Try to set up the coding system correctly. 4091 ;; Try to set up the coding system correctly.
4091 ;; CCC this can't be the right way to do it. Hm. 4092 ;; CCC this can't be the right way to do it. Hm.
4092 (tramp-message vec 5 "Determining coding system") 4093 (tramp-message vec 5 "Determining coding system")
4093 (with-current-buffer (process-buffer proc) 4094 (with-current-buffer (process-buffer proc)
4094 ;; Use MULE to select the right EOL convention for communicating 4095 ;; Use MULE to select the right EOL convention for
4095 ;; with the process. 4096 ;; communicating with the process.
4096 (let ((cs (or (and (memq 'utf-8 (coding-system-list)) 4097 (let ((cs (or (and (memq 'utf-8 (coding-system-list))
4097 (string-match "utf-?8" (tramp-get-remote-locale vec)) 4098 (string-match "utf-?8" (tramp-get-remote-locale vec))
4098 (cons 'utf-8 'utf-8)) 4099 (cons 'utf-8 'utf-8))
4099 (process-coding-system proc) 4100 (process-coding-system proc)
4100 (cons 'undecided 'undecided))) 4101 (cons 'undecided 'undecided)))
4101 cs-decode cs-encode) 4102 cs-decode cs-encode)
4102 (when (symbolp cs) (setq cs (cons cs cs))) 4103 (when (symbolp cs) (setq cs (cons cs cs)))
4103 (setq cs-decode (or (car cs) 'undecided) 4104 (setq cs-decode (or (car cs) 'undecided)
4104 cs-encode (or (cdr cs) 'undecided) 4105 cs-encode (or (cdr cs) 'undecided)
4105 cs-encode 4106 cs-encode
4106 (coding-system-change-eol-conversion 4107 (coding-system-change-eol-conversion
4107 cs-encode 4108 cs-encode (if (string-match "^Darwin" uname) 'mac 'unix)))
4108 (if (string-match 4109 (tramp-send-command vec "echo foo ; echo bar" t)
4109 "^Darwin" (tramp-get-connection-property vec "uname" "")) 4110 (goto-char (point-min))
4110 'mac 'unix))) 4111 (when (search-forward "\r" nil t)
4111 (tramp-send-command vec "echo foo ; echo bar" t) 4112 (setq cs-decode (coding-system-change-eol-conversion cs-decode 'dos)))
4112 (goto-char (point-min)) 4113 ;; Special setting for Mac OS X.
4113 (when (search-forward "\r" nil t) 4114 (when (and (string-match "^Darwin" uname)
4114 (setq cs-decode (coding-system-change-eol-conversion cs-decode 'dos))) 4115 (memq 'utf-8-hfs (coding-system-list)))
4115 ;; Special setting for Mac OS X. 4116 (setq cs-decode 'utf-8-hfs
4116 (when (and (string-match 4117 cs-encode 'utf-8-hfs))
4117 "^Darwin" (tramp-get-connection-property vec "uname" "")) 4118 (set-buffer-process-coding-system cs-decode cs-encode)
4118 (memq 'utf-8-hfs (coding-system-list))) 4119 (tramp-message
4119 (setq cs-decode 'utf-8-hfs 4120 vec 5 "Setting coding system to `%s' and `%s'" cs-decode cs-encode)))
4120 cs-encode 'utf-8-hfs)) 4121
4121 (set-buffer-process-coding-system cs-decode cs-encode) 4122 (tramp-send-command vec "set +o vi +o emacs" t)
4122 (tramp-message 4123
4123 vec 5 "Setting coding system to `%s' and `%s'" cs-decode cs-encode))) 4124 ;; Check whether the remote host suffers from buggy
4124 4125 ;; `send-process-string'. This is known for FreeBSD (see comment
4125 (tramp-send-command vec "set +o vi +o emacs" t) 4126 ;; in `send_process', file process.c). I've tested sending 624
4126 4127 ;; bytes successfully, sending 625 bytes failed. Emacs makes a
4127 ;; Check whether the remote host suffers from buggy 4128 ;; hack when this host type is detected locally. It cannot handle
4128 ;; `send-process-string'. This is known for FreeBSD (see comment in 4129 ;; remote hosts, though.
4129 ;; `send_process', file process.c). I've tested sending 624 bytes 4130 (with-tramp-connection-property proc "chunksize"
4130 ;; successfully, sending 625 bytes failed. Emacs makes a hack when 4131 (cond
4131 ;; this host type is detected locally. It cannot handle remote 4132 ((and (integerp tramp-chunksize) (> tramp-chunksize 0))
4132 ;; hosts, though. 4133 tramp-chunksize)
4133 (with-tramp-connection-property proc "chunksize" 4134 (t
4134 (cond 4135 (tramp-message
4135 ((and (integerp tramp-chunksize) (> tramp-chunksize 0)) 4136 vec 5 "Checking remote host type for `send-process-string' bug")
4136 tramp-chunksize) 4137 (if (string-match "^FreeBSD" uname) 500 0))))
4137 (t 4138
4138 (tramp-message 4139 ;; Set remote PATH variable.
4139 vec 5 "Checking remote host type for `send-process-string' bug") 4140 (tramp-set-remote-path vec)
4140 (if (string-match 4141
4141 "^FreeBSD" (tramp-get-connection-property vec "uname" "")) 4142 ;; Search for a good shell before searching for a command which
4142 500 0)))) 4143 ;; checks if a file exists. This is done because Tramp wants to
4143 4144 ;; use "test foo; echo $?" to check if various conditions hold,
4144 ;; Set remote PATH variable. 4145 ;; and there are buggy /bin/sh implementations which don't execute
4145 (tramp-set-remote-path vec) 4146 ;; the "echo $?" part if the "test" part has an error. In
4146 4147 ;; particular, the OpenSolaris /bin/sh is a problem. There are
4147 ;; Search for a good shell before searching for a command which 4148 ;; also other problems with /bin/sh of OpenSolaris, like
4148 ;; checks if a file exists. This is done because Tramp wants to use 4149 ;; redirection of stderr in function declarations, or changing
4149 ;; "test foo; echo $?" to check if various conditions hold, and 4150 ;; HISTFILE in place. Therefore, OpenSolaris' /bin/sh is replaced
4150 ;; there are buggy /bin/sh implementations which don't execute the 4151 ;; by bash, when detected.
4151 ;; "echo $?" part if the "test" part has an error. In particular, 4152 (tramp-find-shell vec)
4152 ;; the OpenSolaris /bin/sh is a problem. There are also other 4153
4153 ;; problems with /bin/sh of OpenSolaris, like redirection of stderr 4154 ;; Disable unexpected output.
4154 ;; in function declarations, or changing HISTFILE in place. 4155 (tramp-send-command vec "mesg n 2>/dev/null; biff n 2>/dev/null" t)
4155 ;; Therefore, OpenSolaris' /bin/sh is replaced by bash, when 4156
4156 ;; detected. 4157 ;; IRIX64 bash expands "!" even when in single quotes. This
4157 (tramp-find-shell vec) 4158 ;; destroys our shell functions, we must disable it. See
4158 4159 ;; <http://stackoverflow.com/questions/3291692/irix-bash-shell-expands-expression-in-single-quotes-yet-shouldnt>.
4159 ;; Disable unexpected output. 4160 (when (string-match "^IRIX64" uname)
4160 (tramp-send-command vec "mesg n 2>/dev/null; biff n 2>/dev/null" t) 4161 (tramp-send-command vec "set +H" t))
4161 4162
4162 ;; IRIX64 bash expands "!" even when in single quotes. This 4163 ;; Disable tab expansion.
4163 ;; destroys our shell functions, we must disable it. See 4164 (if (string-match "BSD\\|Darwin" uname)
4164 ;; <http://stackoverflow.com/questions/3291692/irix-bash-shell-expands-expression-in-single-quotes-yet-shouldnt>. 4165 (tramp-send-command vec "stty tabs" t)
4165 (when (string-match "^IRIX64" (tramp-get-connection-property vec "uname" "")) 4166 (tramp-send-command vec "stty tab0" t))
4166 (tramp-send-command vec "set +H" t)) 4167
4167 4168 ;; Set utf8 encoding. Needed for Mac OS X, for example. This is
4168 ;; On BSD-like systems, ?\t is expanded to spaces. Suppress this. 4169 ;; non-POSIX, so we must expect errors on some systems.
4169 (when (string-match "BSD\\|Darwin" 4170 (tramp-send-command vec "stty iutf8 2>/dev/null" t)
4170 (tramp-get-connection-property vec "uname" "")) 4171
4171 (tramp-send-command vec "stty -oxtabs" t)) 4172 ;; Set `remote-tty' process property.
4172 4173 (let ((tty (tramp-send-command-and-read vec "echo \\\"`tty`\\\"" 'noerror)))
4173 ;; Set utf8 encoding. Needed for Mac OS X, for example. This is 4174 (unless (zerop (length tty))
4174 ;; non-POSIX, so we must expect errors on some systems. 4175 (process-put proc 'remote-tty tty)))
4175 (tramp-send-command vec "stty iutf8 2>/dev/null" t) 4176
4176 4177 ;; Dump stty settings in the traces.
4177 ;; Set `remote-tty' process property. 4178 (when (>= tramp-verbose 9)
4178 (let ((tty (tramp-send-command-and-read vec "echo \\\"`tty`\\\"" 'noerror))) 4179 (tramp-send-command vec "stty -a" t))
4179 (unless (zerop (length tty)) 4180
4180 (process-put proc 'remote-tty tty))) 4181 ;; Set the environment.
4181 4182 (tramp-message vec 5 "Setting default environment")
4182 ;; Dump stty settings in the traces. 4183
4183 (when (>= tramp-verbose 9) 4184 (let (unset vars)
4184 (tramp-send-command vec "stty -a" t)) 4185 (dolist (item (reverse
4185 4186 (append `(,(tramp-get-remote-locale vec))
4186 ;; Set the environment. 4187 (copy-sequence tramp-remote-process-environment))))
4187 (tramp-message vec 5 "Setting default environment") 4188 (setq item (split-string item "=" 'omit))
4188 4189 (setcdr item (mapconcat 'identity (cdr item) "="))
4189 (let (unset vars) 4190 (if (and (stringp (cdr item)) (not (string-equal (cdr item) "")))
4190 (dolist (item (reverse 4191 (push (format "%s %s" (car item) (cdr item)) vars)
4191 (append `(,(tramp-get-remote-locale vec)) 4192 (push (car item) unset)))
4192 (copy-sequence tramp-remote-process-environment)))) 4193 (when vars
4193 (setq item (split-string item "=" 'omit)) 4194 (tramp-send-command
4194 (setcdr item (mapconcat 'identity (cdr item) "=")) 4195 vec
4195 (if (and (stringp (cdr item)) (not (string-equal (cdr item) ""))) 4196 (format "while read var val; do export $var=$val; done <<'%s'\n%s\n%s"
4196 (push (format "%s %s" (car item) (cdr item)) vars) 4197 tramp-end-of-heredoc
4197 (push (car item) unset))) 4198 (mapconcat 'identity vars "\n")
4198 (when vars 4199 tramp-end-of-heredoc)
4199 (tramp-send-command 4200 t))
4200 vec 4201 (when unset
4201 (format "while read var val; do export $var=$val; done <<'%s'\n%s\n%s" 4202 (tramp-send-command
4202 tramp-end-of-heredoc 4203 vec (format "unset %s" (mapconcat 'identity unset " ")) t)))))
4203 (mapconcat 'identity vars "\n")
4204 tramp-end-of-heredoc)
4205 t))
4206 (when unset
4207 (tramp-send-command
4208 vec (format "unset %s" (mapconcat 'identity unset " ")) t))))
4209 4204
4210;; Old text from documentation of tramp-methods: 4205;; Old text from documentation of tramp-methods:
4211;; Using a uuencode/uudecode inline method is discouraged, please use one 4206;; Using a uuencode/uudecode inline method is discouraged, please use one
diff --git a/lisp/subr.el b/lisp/subr.el
index 8a1792ad8b7..fba43be9e34 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -1999,7 +1999,7 @@ this process is not associated with any buffer.
1999 1999
2000PROGRAM is the program file name. It is searched for in `exec-path' 2000PROGRAM is the program file name. It is searched for in `exec-path'
2001\(which see). If nil, just associate a pty with the buffer. Remaining 2001\(which see). If nil, just associate a pty with the buffer. Remaining
2002arguments are strings to give program as arguments. 2002arguments PROGRAM-ARGS are strings to give program as arguments.
2003 2003
2004If you want to separate standard output from standard error, use 2004If you want to separate standard output from standard error, use
2005`make-process' or invoke the command through a shell and redirect 2005`make-process' or invoke the command through a shell and redirect
diff --git a/lisp/vc/vc-cvs.el b/lisp/vc/vc-cvs.el
index 50198713b41..6a010b34f26 100644
--- a/lisp/vc/vc-cvs.el
+++ b/lisp/vc/vc-cvs.el
@@ -944,103 +944,32 @@ state."
944 (t 'edited)))))))) 944 (t 'edited))))))))
945 945
946(defun vc-cvs-after-dir-status (update-function) 946(defun vc-cvs-after-dir-status (update-function)
947 ;; Heavily inspired by vc-cvs-parse-status. AKA a quick hack. 947 (let ((result nil)
948 ;; This needs a lot of testing. 948 (translation '((?? . unregistered)
949 (let ((status nil) 949 (?A . added)
950 (status-str nil) 950 (?C . conflict)
951 (file nil) 951 (?M . edited)
952 (result nil) 952 (?P . needs-merge)
953 (missing nil) 953 (?R . removed)
954 (ignore-next nil) 954 (?U . needs-update))))
955 (subdir default-directory))
956 (goto-char (point-min)) 955 (goto-char (point-min))
957 (while 956 (while (not (eobp))
958 ;; Look for either a file entry, an unregistered file, or a 957 (if (looking-at "^[ACMPRU?] \\(.*\\)$")
959 ;; directory change. 958 (push (list (match-string 1)
960 (re-search-forward 959 (cdr (assoc (char-after) translation)))
961 "\\(^=+\n\\([^=c?\n].*\n\\|\n\\)+\\)\\|\\(\\(^?? .*\n\\)+\\)\\|\\(^cvs status: \\(Examining\\|nothing\\) .*\n\\)" 960 result)
962 nil t) 961 (cond
963 ;; FIXME: get rid of narrowing here. 962 ((looking-at "cvs update: warning: \\(.*\\) was lost")
964 (narrow-to-region (match-beginning 0) (match-end 0)) 963 ;; Format is:
965 (goto-char (point-min)) 964 ;; cvs update: warning: FILENAME was lost
966 ;; The subdir 965 ;; U FILENAME
967 (when (looking-at "cvs status: Examining \\(.+\\)") 966 (push (list (match-string 1) 'missing) result)
968 (setq subdir (expand-file-name (match-string 1)))) 967 ;; Skip the "U" line
969 ;; Unregistered files 968 (forward-line 1))
970 (while (looking-at "? \\(.*\\)") 969 ((looking-at "cvs update: New directory `\\(.*\\)' -- ignored")
971 (setq file (file-relative-name 970 (push (list (match-string 1) 'unregistered) result))))
972 (expand-file-name (match-string 1) subdir))) 971 (forward-line 1))
973 (push (list file 'unregistered) result) 972 (funcall update-function result)))
974 (forward-line 1))
975 (when (looking-at "cvs status: nothing known about")
976 ;; We asked about a non existent file. The output looks like this:
977
978 ;; cvs status: nothing known about `lisp/v.diff'
979 ;; ===================================================================
980 ;; File: no file v.diff Status: Unknown
981 ;;
982 ;; Working revision: No entry for v.diff
983 ;; Repository revision: No revision control file
984 ;;
985
986 ;; Due to narrowing in this iteration we only see the "cvs
987 ;; status:" line, so just set a flag so that we can ignore the
988 ;; file in the next iteration.
989 (setq ignore-next t))
990 ;; A file entry.
991 (when (re-search-forward "^File: \\(no file \\)?\\(.*[^ \t]\\)[ \t]+Status: \\(.*\\)" nil t)
992 (setq missing (match-string 1))
993 (setq file (file-relative-name
994 (expand-file-name (match-string 2) subdir)))
995 (setq status-str (match-string 3))
996 (setq status
997 (cond
998 ((string-match "Up-to-date" status-str) 'up-to-date)
999 ((string-match "Locally Modified" status-str) 'edited)
1000 ((string-match "Needs Merge" status-str) 'needs-merge)
1001 ((string-match "Needs \\(Checkout\\|Patch\\)" status-str)
1002 (if missing 'missing 'needs-update))
1003 ((string-match "Locally Added" status-str) 'added)
1004 ((string-match "Locally Removed" status-str) 'removed)
1005 ((string-match "File had conflicts " status-str) 'conflict)
1006 ((string-match "Unknown" status-str) 'unregistered)
1007 (t 'edited)))
1008 (if ignore-next
1009 (setq ignore-next nil)
1010 (unless (eq status 'up-to-date)
1011 (push (list file status) result))))
1012 (goto-char (point-max))
1013 (widen))
1014 (funcall update-function result))
1015 ;; Alternative implementation: use the "update" command instead of
1016 ;; the "status" command.
1017 ;; (let ((result nil)
1018 ;; (translation '((?? . unregistered)
1019 ;; (?A . added)
1020 ;; (?C . conflict)
1021 ;; (?M . edited)
1022 ;; (?P . needs-merge)
1023 ;; (?R . removed)
1024 ;; (?U . needs-update))))
1025 ;; (goto-char (point-min))
1026 ;; (while (not (eobp))
1027 ;; (if (looking-at "^[ACMPRU?] \\(.*\\)$")
1028 ;; (push (list (match-string 1)
1029 ;; (cdr (assoc (char-after) translation)))
1030 ;; result)
1031 ;; (cond
1032 ;; ((looking-at "cvs update: warning: \\(.*\\) was lost")
1033 ;; ;; Format is:
1034 ;; ;; cvs update: warning: FILENAME was lost
1035 ;; ;; U FILENAME
1036 ;; (push (list (match-string 1) 'missing) result)
1037 ;; ;; Skip the "U" line
1038 ;; (forward-line 1))
1039 ;; ((looking-at "cvs update: New directory `\\(.*\\)' -- ignored")
1040 ;; (push (list (match-string 1) 'unregistered) result))))
1041 ;; (forward-line 1))
1042 ;; (funcall update-function result)))
1043 )
1044 973
1045;; Based on vc-cvs-dir-state-heuristic from Emacs 22. 974;; Based on vc-cvs-dir-state-heuristic from Emacs 22.
1046;; FIXME does not mention unregistered files. 975;; FIXME does not mention unregistered files.
@@ -1077,16 +1006,12 @@ state."
1077Query all files in DIR if files is nil." 1006Query all files in DIR if files is nil."
1078 (let ((local (vc-cvs-stay-local-p dir))) 1007 (let ((local (vc-cvs-stay-local-p dir)))
1079 (if (and (not files) local (not (eq local 'only-file))) 1008 (if (and (not files) local (not (eq local 'only-file)))
1080 (vc-cvs-dir-status-heuristic dir update-function) 1009 (vc-cvs-dir-status-heuristic dir update-function))
1081 (if (not files) (setq files (vc-expand-dirs (list dir) 'CVS))) 1010 (vc-cvs-command (current-buffer) 'async
1082 (vc-cvs-command (current-buffer) 'async files "-f" "status") 1011 files
1083 ;; Alternative implementation: use the "update" command instead of 1012 "-f" "-n" "-q" "update")
1084 ;; the "status" command. 1013 (vc-run-delayed
1085 ;; (vc-cvs-command (current-buffer) 'async 1014 (vc-cvs-after-dir-status update-function))))
1086 ;; (file-relative-name dir)
1087 ;; "-f" "-n" "update" "-d" "-P")
1088 (vc-run-delayed
1089 (vc-cvs-after-dir-status update-function)))))
1090 1015
1091(defun vc-cvs-file-to-string (file) 1016(defun vc-cvs-file-to-string (file)
1092 "Read the content of FILE and return it as a string." 1017 "Read the content of FILE and return it as a string."
diff --git a/nt/INSTALL b/nt/INSTALL
index cd726cbecbb..7bf544cf6ea 100644
--- a/nt/INSTALL
+++ b/nt/INSTALL
@@ -634,12 +634,12 @@ build will run on Windows 9X and newer systems).
634 To support XPM images (required for color tool-bar icons), you will 634 To support XPM images (required for color tool-bar icons), you will
635 need the libXpm library. It is available from the ezwinports site, 635 need the libXpm library. It is available from the ezwinports site,
636 http://sourceforge.net/projects/ezwinports/files/ and from 636 http://sourceforge.net/projects/ezwinports/files/ and from
637 http://alpha.gnu.org/gnu/emacs/pretest/windows/. 637 http://ftp.gnu.org/gnu/emacs/windows/.
638 638
639 For PNG images, we recommend to use versions 1.4.x and later of 639 For PNG images, we recommend to use versions 1.4.x and later of
640 libpng, because previous versions had security issues. You can find 640 libpng, because previous versions had security issues. You can find
641 precompiled libraries and headers on the ezwinports site and on 641 precompiled libraries and headers on the ezwinports site and on
642 alpha.gnu. 642 ftp.gnu.org.
643 643
644 Versions 1.4.0 and later of libpng are binary incompatible with 644 Versions 1.4.0 and later of libpng are binary incompatible with
645 earlier versions, so Emacs will only look for libpng libraries which 645 earlier versions, so Emacs will only look for libpng libraries which
@@ -657,7 +657,7 @@ build will run on Windows 9X and newer systems).
657 giflib, as it is much enhanced wrt previous versions. You can find 657 giflib, as it is much enhanced wrt previous versions. You can find
658 precompiled binaries and headers for giflib on the ezwinports site, 658 precompiled binaries and headers for giflib on the ezwinports site,
659 http://sourceforge.net/projects/ezwinports/files/ and on 659 http://sourceforge.net/projects/ezwinports/files/ and on
660 http://alpha.gnu.org/gnu/emacs/pretest/windows/. 660 http://ftp.gnu.org/gnu/emacs/windows/.
661 661
662 Version 5.0.0 and later of giflib are binary incompatible with 662 Version 5.0.0 and later of giflib are binary incompatible with
663 previous versions (the signatures of several functions have 663 previous versions (the signatures of several functions have
@@ -671,7 +671,7 @@ build will run on Windows 9X and newer systems).
671 671
672 For JPEG images, you will need libjpeg 6b or later, which will be 672 For JPEG images, you will need libjpeg 6b or later, which will be
673 called libjpeg-N.dll, jpeg62.dll, libjpeg.dll, or jpeg.dll. You can 673 called libjpeg-N.dll, jpeg62.dll, libjpeg.dll, or jpeg.dll. You can
674 find these on the ezwinports site and on alpha.gnu. 674 find these on the ezwinports site and on ftp.gnu.org.
675 675
676 TIFF images require libTIFF 3.0 or later, which will be called 676 TIFF images require libTIFF 3.0 or later, which will be called
677 libtiffN.dll or libtiff-N.dll or libtiff.dll. These can be found on 677 libtiffN.dll or libtiff-N.dll or libtiff.dll. These can be found on
@@ -698,7 +698,7 @@ build will run on Windows 9X and newer systems).
698 because the compiler needs to see their header files when building 698 because the compiler needs to see their header files when building
699 Emacs. 699 Emacs.
700 700
701 http://alpha.gnu.org/gnu/emacs/pretest/windows/ 701 http://ftp.gnu.org/gnu/emacs/windows/
702 702
703 More fat ports, from the MSYS2 project. 703 More fat ports, from the MSYS2 project.
704 704
@@ -759,7 +759,7 @@ build will run on Windows 9X and newer systems).
759 759
760 You can get pre-built binaries (including any required DLL and the 760 You can get pre-built binaries (including any required DLL and the
761 header files) at http://sourceforge.net/projects/ezwinports/files/ 761 header files) at http://sourceforge.net/projects/ezwinports/files/
762 and on http://alpha.gnu.org/gnu/emacs/pretest/windows/. 762 and on http://ftp.gnu.org/gnu/emacs/windows/.
763 763
764* Optional libxml2 support 764* Optional libxml2 support
765 765
@@ -781,7 +781,7 @@ build will run on Windows 9X and newer systems).
781 (including any required DLL and the header files) is here: 781 (including any required DLL and the header files) is here:
782 782
783 http://sourceforge.net/projects/ezwinports/files/ 783 http://sourceforge.net/projects/ezwinports/files/
784 http://alpha.gnu.org/gnu/emacs/pretest/windows/ 784 http://ftp.gnu.org/gnu/emacs/windows/
785 785
786 For runtime support of libxml2, you will also need to install the 786 For runtime support of libxml2, you will also need to install the
787 libiconv "development" tarball, because the libiconv headers need to 787 libiconv "development" tarball, because the libiconv headers need to
@@ -797,7 +797,7 @@ build will run on Windows 9X and newer systems).
797 797
798 Emacs can decompress text if compiled with the zlib library. 798 Emacs can decompress text if compiled with the zlib library.
799 Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are 799 Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are
800 available from the ezwinports site and on alpha.gnu; see above for 800 available from the ezwinports site and on ftp.gnu.org; see above for
801 the URLs. 801 the URLs.
802 802
803 (This library is also a prerequisite for several image libraries, so 803 (This library is also a prerequisite for several image libraries, so
diff --git a/nt/README.W32 b/nt/README.W32
index e3f6094f9be..5bd87962650 100644
--- a/nt/README.W32
+++ b/nt/README.W32
@@ -140,8 +140,10 @@ See the end of the file for license conditions.
140 140
141 1. http://sourceforge.net/projects/ezwinports/files/ 141 1. http://sourceforge.net/projects/ezwinports/files/
142 -- up-to-date builds, self-contained archives, only for 32-bit Emacs 142 -- up-to-date builds, self-contained archives, only for 32-bit Emacs
143 2. Libraries from the MSYS2 project on alpha.gnu.org: 143 2. Libraries from the MSYS2 project on ftp.gnu.org:
144 http://alpha.gnu.org/gnu/emacs/pretest/windows/. 144 http://ftp.gnu.org/gnu/emacs/windows/emacs-NN-i686-deps.zip (32-bit)
145 http://ftp.gnu.org/gnu/emacs/windows/emacs-NN-x86_64-deps.zip (64-bit)
146 where NN is the Emacs version to which the libraries correspond.
145 3. The MSYS2 project -- for 64-bit Emacs: 147 3. The MSYS2 project -- for 64-bit Emacs:
146 http://msys2.github.io/ 148 http://msys2.github.io/
147 https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/ 149 https://sourceforge.net/projects/msys2/files/REPOS/MINGW/x86_64/
@@ -200,7 +202,7 @@ See the end of the file for license conditions.
200 202
201 You can get pre-built binaries (including any dependency DLLs) at 203 You can get pre-built binaries (including any dependency DLLs) at
202 http://sourceforge.net/projects/ezwinports/files/ and on 204 http://sourceforge.net/projects/ezwinports/files/ and on
203 http://alpha.gnu.org/gnu/emacs/pretest/windows/. 205 http://ftp.gnu.org/gnu/emacs/windows/
204 206
205* libxml2 support 207* libxml2 support
206 208
@@ -214,8 +216,7 @@ See the end of the file for license conditions.
214 216
215 You can get pre-built binaries (including any required DLL and the 217 You can get pre-built binaries (including any required DLL and the
216 header files) at http://sourceforge.net/projects/ezwinports/files/ and 218 header files) at http://sourceforge.net/projects/ezwinports/files/ and
217 http://alpha.gnu.org/gnu/emacs/pretest/windows/. 219 http://ftp.gnu.org/gnu/emacs/windows/
218
219 220
220* zlib support 221* zlib support
221 222
@@ -223,7 +224,7 @@ See the end of the file for license conditions.
223 the zlib-decompress-region primitive. 224 the zlib-decompress-region primitive.
224 225
225 Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are 226 Prebuilt binaries of zlib DLL (for 32-bit builds of Emacs) are
226 available from the ezwinports site and on alpha.gnu; see above for 227 available from the ezwinports site and on ftp.gnu.org; see above for
227 the URLs. For the 64-bit DLL, see the instructions below for 228 the URLs. For the 64-bit DLL, see the instructions below for
228 installing from MSYS2 site. 229 installing from MSYS2 site.
229 230