diff options
| author | Paul Eggert | 2016-10-23 02:48:50 -0700 |
|---|---|---|
| committer | Paul Eggert | 2016-10-23 02:48:50 -0700 |
| commit | 6df147c61a2f3fbabe6e47349d4e826cc7414ea2 (patch) | |
| tree | 5164b234cd1018c7997f49f24a95ddcaf5a67dfd | |
| parent | e892e1158619f546182e990f927abea02cdf5db3 (diff) | |
| parent | 8ad0d7da0a84750e1884a89a212963f81ae26816 (diff) | |
| download | emacs-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.25 | 14 | ||||
| -rw-r--r-- | lisp/emacs-lisp/autoload.el | 7 | ||||
| -rw-r--r-- | lisp/net/tramp-sh.el | 247 | ||||
| -rw-r--r-- | lisp/subr.el | 2 | ||||
| -rw-r--r-- | lisp/vc/vc-cvs.el | 137 | ||||
| -rw-r--r-- | nt/INSTALL | 16 | ||||
| -rw-r--r-- | nt/README.W32 | 13 |
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. | |||
| 20 | This is a bug-fix release with (almost) no new features. | 20 | This 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. |
| 28 | The Info-quoted and tex-verbatim faces now default to inheriting from | 28 | The 'Info-quoted' and 'tex-verbatim' faces now default to inheriting |
| 29 | it. | 29 | from 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 | |||
| 38 | variable to nil to disable the new behavior and get back the old | 38 | variable to nil to disable the new behavior and get back the old |
| 39 | behavior. | 39 | behavior. |
| 40 | 40 | ||
| 41 | +++ | ||
| 42 | ** 'electric-quote-mode' is no longer suppressed in a buffer whose | ||
| 43 | whose coding system cannot represent curved quote characters. | ||
| 44 | Instead, users can deal with the unrepresentable characters in the | ||
| 45 | usual way when they save the buffer. | ||
| 46 | |||
| 41 | --- | 47 | --- |
| 42 | ** New variable 'inhibit-compacting-font-caches'. | 48 | ** New variable 'inhibit-compacting-font-caches'. |
| 43 | Set this variable to a non-nil value to speed up display of characters | 49 | Set 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 | ||
| 2000 | PROGRAM is the program file name. It is searched for in `exec-path' | 2000 | PROGRAM 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 |
| 2002 | arguments are strings to give program as arguments. | 2002 | arguments PROGRAM-ARGS are strings to give program as arguments. |
| 2003 | 2003 | ||
| 2004 | If you want to separate standard output from standard error, use | 2004 | If 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." | |||
| 1077 | Query all files in DIR if files is nil." | 1006 | Query 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 | ||