>>>> "Ben" == Ben Wing <ben(a)xemacs.org>
Ben> This fixes a long-standing problem identified by Jeff Miller.
Ben> Apparently back when I did the big Mule patch, I tried to fix
Ben> a bug in set-window-point and make it more like it seemed
Ben> like it was trying to do. This, however, introduced some
Ben> problems. The FSF behavior is different from either our old
Ben> or new behavior, and perhaps more logical, so I'm adopting
Ben> Not committed yet because CVS commit is broken.
Ben, CVS at least works for Ville and myself.
Please try something like the following and send output to
C:\>ssh -2 -l xemacs sunsite.dk
Enter passphrase for key '/cygdrive/c/Users/AichnerAd/.ssh/id_dsa':
M Concurrent Versions System (CVS) 1.11.1p1 (client/server)
E cvs [server aborted]: received interrupt signal
Connection to sunsite.dk closed.
Ben, you'll have to use -1 instead of -2 above until you send us your
Ben> src/ChangeLog addition:
Ben> 2002-12-15 Ben Wing <ben(a)xemacs.org>
Ben> * window.c (Fset_window_point): Correct to FSF behavior. This
Ben> fixes some bugs in GNUS reported by Jeff Miller.
Ben> latest source patch:
Ben> Diff command: bash -ci "cvs-diff -no-changelog "
Ben> Files affected: src/window.c
Ben> Index: src/window.c
Ben> RCS file: /pack/xemacscvs/XEmacs/xemacs/src/window.c,v
Ben> retrieving revision 1.69
Ben> diff -u -r1.69 window.c
Ben> --- src/window.c 2002/12/08 10:25:11 1.69
Ben> +++ src/window.c 2002/12/15 12:09:25
Ben> ＠＠ -1809,20 +1809,24 ＠＠
Ben> DEFUN ("set-window-point", Fset_window_point, 2, 2, 0, /*
Ben> Make point value in WINDOW be at position POS in WINDOW's buffer.
Ben> -If WINDOW is the selected window, this actually changes the buffer's
Ben> -instead of the window's point. (The equivalence of the selected
Ben> -point with its buffer's point is maintained throughout XEmacs.)
Ben> +If WINDOW is the selected window, and window's buffer is the current
Ben> +buffer, this actually changes the buffer's point instead of the
Ben> +point. (The equivalence of the selected window's point with its
Ben> +point is maintained throughout XEmacs. However, enforcing the additional
Ben> +restriction on the current buffer is "bug compatible" with FSF and
Ben> +perhaps more logical.)
Ben> (window, pos))
Ben> struct window *w = decode_window (window);
Ben> CHECK_INT_COERCE_MARKER (pos);
Ben> /* Don't dereference selected-window because there may not
Ben> be one -- e.g. at startup */
Ben> - if (EQ (wrap_window (w), Fselected_window (Qnil)))
Ben> - /* Even though window selected, buffer may not be current */
Ben> - Fgoto_char (pos, w->buffer);
Ben> + if (EQ (wrap_window (w), Fselected_window (Qnil))
Ben> + && EQ (w->buffer, Fcurrent_buffer ()))
Ben> + Fgoto_char (pos, Qnil);
Ben> set_marker_restricted (w->pointm[CURRENT_DISP], pos, w->buffer);