1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-24 10:38:38 +00:00

Fix bug #17986 with infloop in redisplay when default-directory is nil.

src/xdisp.c (decode_mode_spec): Call file-remote-p on the current
 buffer's default-directory only if it is a string.

 lisp/bindings.el (mode-line-remote): If default-directory is not a
 string, don't call file-remote-p on it; instead state in the
 help-echo that it is nil.
This commit is contained in:
Eli Zaretskii 2014-07-13 17:49:59 +03:00
parent fb02552638
commit b20759f920
4 changed files with 24 additions and 7 deletions

View File

@ -1,3 +1,9 @@
2014-07-13 Eli Zaretskii <eliz@gnu.org>
* bindings.el (mode-line-remote): If default-directory is not a
string, don't call file-remote-p on it; instead state in the
help-echo that it is nil. (Bug#17986)
2014-07-12 Paul Eggert <eggert@cs.ucla.edu>
Fix bug: C-x v v discarded existing log message (Bug#17884).

View File

@ -229,11 +229,13 @@ mnemonics of the following coding systems:
'help-echo (purecopy (lambda (window _object _point)
(format "%s"
(with-selected-window window
(concat
(if (file-remote-p default-directory)
"Current directory is remote: "
"Current directory is local: ")
default-directory)))))))
(if (stringp default-directory)
(concat
(if (file-remote-p default-directory)
"Current directory is remote: "
"Current directory is local: ")
default-directory)
"Current directory is nil")))))))
"Mode line construct to indicate a remote buffer.")
;;;###autoload
(put 'mode-line-remote 'risky-local-variable t)

View File

@ -1,3 +1,8 @@
2014-07-13 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (decode_mode_spec): Call file-remote-p on the current
buffer's default-directory only if it is a string. (Bug#17986)
2014-07-12 Eli Zaretskii <eliz@gnu.org>
* xdisp.c (display_line): Don't call FETCH_BYTE with argument less

View File

@ -22907,8 +22907,12 @@ decode_mode_spec (struct window *w, register int c, int field_width,
case '@':
{
ptrdiff_t count = inhibit_garbage_collection ();
Lisp_Object val = call1 (intern ("file-remote-p"),
BVAR (current_buffer, directory));
Lisp_Object curdir = BVAR (current_buffer, directory);
Lisp_Object val = Qnil;
if (STRINGP (curdir))
val = call1 (intern ("file-remote-p"), curdir);
unbind_to (count, Qnil);
if (NILP (val))