h.g. muller wrote:
The problem is that for me this seems to work, which makes debugging hard.
When this problem occurs, did you start up XBoard with the
engine-output window
open or closed. If my theory is correct, when the window has never
been opened,
this code should not be executed. (But once opened, closing just hides
it, and
the contents will be updated.) If the crash occurs without
engine-output window,
it must have a different cause.
It might be prudent to determine why we aren't getting the same
behavior. Perhaps git is different than your tree, or it's related to
some config setting required that isn't being used on mine because of
whatever the resources issue is I'm having.
But otherwise, in xengineoutput.c there is the code
void InsertIntoMemo( int which, char * text, int where )
{
Arg arg; XawTextBlock t; Widget edit;
if(t.ptr = strchr(text, '\r')) *t.ptr = ' ';
t.ptr = text; t.firstPos = 0; t.length = strlen(text);
t.format = XawFmt8Bit;
edit = XtNameToWidget(engineOutputShell, which ? "*form2.text"
: "*form.text");
XawTextReplace(edit, where, where, &t);
// XtSetArg(arg, XtNstring, (XtArgVal) text);
// XtSetValues(outputField[which][nMemo], &arg, 1);
}
which is new in two respects: the parameter 'where' used to be a hard
zero,
and the if to suppress the '\r' was added. So perhaps you could test
what happens
when you
1) comment out the if() statement
2) replace it by "where = 0;"
The latter should be always valid as parameter to XawTextReplace.
These changes made no difference.
_______________________________________________
Bug-XBoard mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/bug-xboard