On Sat, May 16, 1998 at 03:55:58PM +0200, Thomas Buerger wrote:
> > > I just built and installed 3.99.1 under Solaris 2.5.1, and the following
> > > script works under 3.1.1 but not 3.99.1
> > >
> > > (define s "hi there")
> > > (pack (entry '.e :textvariable 's))
> > >
> > > Under 3.1.1 the entry widget displays "hi there" and allows me to edit the
> > > string -- and if the variable s is changed, that change is reflected in the
> > > entry widget.
> > >
> > > Under 3.99.1 the widget displays "s" and doesn't allow it to be changed.
> > >
> > This little program works on my Linux box with the correct behaviour (i.e.
>
> Yes, it works, but it should not...
>
> > Perhaps you have something (e.g. a resource) which sets the entry in disabled
> > state. Just an idea.
>
> ... no, it's not the state: In the file tcl-glue.c the function
> "char *STk_tcl_getvar(char *name, char *env)" does not return
> a value. Patch it...
> $ diff tcl-glue.c.orig tcl-glue.c
> 192c192
> < STk_convert_for_Tcl(V, &dumb);
> ---
> > return STk_convert_for_Tcl(V, &dumb);
>
> ... and it works under Solaris. I do not know why it works without patch
> on Linux? Perhaps the Linux-Kernel is more intelligent and finds little
> errors like this ;-)
Probably has to due with the calling conventions used by the compiler (which
differ on different processors). If STk_convert...(...) leaves its return
value in a particular register, and it's still there when the calling
function returns, then it will be seen as the return value at that level
also.
I'm building a patched version under Solaris and will report results later...
--
Grant Edwards
Rosemount Inc.
grante_at_rosemount.com
Received on Mon May 18 1998 - 21:40:19 CEST