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

ALONZO H KELLY FFLAK at acad3.alaska.edu
Tue Nov 23 15:34:26 EST 1993

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
	< /* extern XtCallbackList _XtGetCallbackList(); */
	> extern XtCallbackList _XtGetCallbackList();
	<     XtCallbackList cblist;
	<     XtVaGetValues (widget, name, &cblist, NULL);
	<     return (cblist);
	< /*  commented out because _XtGetcallbackList() is not available on 
	< */

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 at 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:


>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 at acad3.alaska.edu

More information about the grass-dev mailing list