diff --git a/etc/NEWS b/etc/NEWS index 76b1cda9e26..c0cec91e77f 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -234,7 +234,7 @@ Eshell manual. +++ *** Eshell commands can now be explicitly-remote (or local). By prefixing a command name in Eshell with a remote identifier, like -"/ssh:user@remote:whoami", you can now runs commands on a particular +"/ssh:user@remote:whoami", you can now run commands on a particular host no matter your current directory. Likewise, you can run a command on your local system no matter your current directory via "/:whoami". For more information, see the "(eshell) Remote Access" diff --git a/src/xdisp.c b/src/xdisp.c index 79689e6cae1..c5a2c081b53 100644 --- a/src/xdisp.c +++ b/src/xdisp.c @@ -11651,6 +11651,8 @@ WINDOW. */) set_buffer_internal_1 (b); + ptrdiff_t base_line_pos = w->base_line_pos; + int end_valid = w->window_end_valid; if (!EQ (buffer, w->contents)) { wset_buffer (w, buffer); @@ -11663,6 +11665,11 @@ WINDOW. */) unbind_to (count, Qnil); + /* Restore original values. This is important if this function is + called from some ':eval' form in the middle of redisplay. */ + w->base_line_pos = base_line_pos; + w->window_end_valid = end_valid; + return value; }