From xemacs-m  Tue Mar 25 11:10:59 1997
Received: from CNRI.Reston.VA.US (CNRI.Reston.VA.US [132.151.1.1])
	by xemacs.org (8.8.5/8.8.5) with SMTP id LAA04416
	for <xemacs-beta@xemacs.org>; Tue, 25 Mar 1997 11:10:58 -0600 (CST)
Received: from newcnri.cnri.reston.va.us by CNRI.Reston.VA.US id aa14570;
          25 Mar 97 12:13 EST
Received: from anthem.CNRI.Reston.Va.US by newcnri.CNRI.Reston.Va.US (SMI-8.6/SMI-SVR4)
	id MAA05831; Tue, 25 Mar 1997 12:13:38 -0500
Received: by anthem.CNRI.Reston.Va.US (SMI-8.6/SMI-SVR4)
	id MAA09682; Tue, 25 Mar 1997 12:13:36 -0500
Date: Tue, 25 Mar 1997 12:13:36 -0500
Message-Id: <199703251713.MAA09682@anthem.CNRI.Reston.Va.US>
From: "Barry A. Warsaw" <bwarsaw@CNRI.Reston.VA.US>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
To: xemacs-beta@xemacs.org
Subject: gnuclient backwards compatibility
X-Mailer: VM 6.22 under 19.15 XEmacs Lucid (beta104)
Reply-To: bwarsaw@python.org
X-Attribution: BAW
X-Oblique-Strategy: Put everything in one place
X-Url: http://www.python.org/~bwarsaw


I just hit a compatibility problem with gnuclient/gnuserv and want to
see if anybody has a suggestion for a fix.  Most of my fellow
XEmacsers are using 19.14 but since 19.15 is getting close, I wanted
to try to install it for the more adventurous type.  I left 19.14 as
the default via a symlink, so they have to explicitly type
`xemacs-19.15' to run the new version.

I'd forgotten about the ancillary bin files, most notably gnuclient.
It seems there is an incompatibility where if you invoke 19.15's
gnuclient, and it attaches to 19.14, you'll get the following error:

(1) (error/warning) Error in process filter: (wrong-number-of-arguments #<compiled-function (from "gnuserv.elc") (tty termtype list) "...(95)" [list ((1)) path line server-tty-find-file tty termtype server-make-window-visible current-client server-clients buffer old-clients goto-line server-buffer-clients message substitute-command-keys boundp infodock-version window-system Type {\[server-edit]} or select Frame/Delete to finish edit. When done with a buffer, type \[server-edit].] 5 For each (line-number . file) pair in LIST, edit the file at line-number.
Save enough information for (server-kill-buffer) to inform the client when
the edit is finished.> 4)

The reason is pretty clear.  In gnuclient.c:370, you see a call to
(server-tty-edit-files).  The 19.15 version of this lisp function
takes a different number of arguments from the 19.14 version.  There
may be other incompatibilities lurking around.

gnuclient ought to be backwards compatible with 19.14.  When it
connects to gnuserv, it would be nice if they exchanged a version
number that gnuclient could switch on.  There may be deeper reasons
why backwards compatibility is impossible; I guess I'm looking for
some wisdom from those who are more familiar with this code than I
am.

-Barry

