Well, I finally got xgrass to compile and link on our DG AViiON running

X11R5. Seems to work OK, but the Help menu on the display tool does not
work. Other help menus do work, but it makes me suspicious of the fix I
made to xgrass/libes/Xgi/Help.c shown below.

  $ diff Help.c Help.c.old
  1033c1033
  < /* extern XtCallbackList _XtGetCallbackList(); */
  ---
  > extern XtCallbackList _XtGetCallbackList();
  1039,1044d1038
  < XtCallbackList cblist;
  <
  < XtVaGetValues (widget, name, &cblist, NULL);
  < return (cblist);
  <
  < /* commented out because _XtGetcallbackList() is not available on
AViiON
  1048d1041
  < */

In addition to avoiding the call to _XtGetCallbackList(), I made the
following adjustments:
add #include <Xm/ManagerP.h> to Matrix.c, Caption.c, Interact.c
add #include <Xm/PrimitiveP.h> to Clip.c, Interact.c
define MAX in Help.c
define Max and Min in Matrix.c
add #define XmSCROLL_BAR_BIT XmSCROLLBAR_BIT to help.c
add a library: -lgen
edit xdigit/Gmakefile to put -lgen after -lXm

The following is the response I got to my earlier question regarding

_XtGetcallbackList(). It _does_ look like xgrass uses a lot of private
functions and

structures for something that is supposed to be portable.

Group comp.windows.x.intrinsics available: 2061 - 2078 unread: 16
article 2078 18-NOV-1993 17:11:18.50

fflak@acad3.alaska.edu (kelly alonzo h) writes:

I'm having trouble with an external reference in an X program I'm trying
to port to a new platform. The reference is to a function:

_XtGetCallbackList

which I don't find in any of my libraries or Xt docs or headers. This
looks like a private function, which probably shouldn't be called by
an application directly, but there it is in the code. It appears to return
the callback list for a particular widget.

Right. While I empathize with your predicament, let me take this opportunity
to emphasize that application and widget writers must not use Xt private
functions for just this reason. These functions can and do go away from
release to release, and even in patches. DON'T use them.

There should be a workaround
involving working through the Widget structure or using higher level
functions to accomplish this;

yes, use:

    XtCallbackList cb_list;

    XtVaGetValues (widget, XtN<callbacklistname>, &cb_list, NULL);

--

Kaleb Keithley
X Consortium

End article 2078 action:

Lon Kelly
fflak@acad3.alaska.edu