I have some more fixes, but I''m not sure that they will fix all these. The
SelectionNotify thing looks very weird.
andy
At 01:06 AM 8/23/00 +0900, Stephen J. Turnbull wrote:
21.2.35, cvs updated about three hours ago.
>>>>> "Andy" == Andy Piper <andy(a)xemacs.org> writes:
Andy> This fixes the selection crash that people are seeing and
Andy> makes my selection optimisation work properly. The main
Andy> problems were XtNameToWidget not handling `.' and
Andy> Fset_window_configuration nuking the subwindow instance
Andy> cache.
Andy> There is still a redisplay glitch but that appears to be
Andy> something to do with the actual gutter/glyph redisplay code
Andy> rather than the glyph handling changes I have made
Andy> recently. I will fix when I can figure out what is going
Andy> wrong.
OK, I haven't yet generated a crash. That's good.
Famous last words. I just got a complete lockup, had to kill xemacs
by hand. Sorry, Andy.
This is all still very very bogus. :(
**** What I remember about my first run:
Editres tells me I have two tabs widgets with the same buffer list.
The lists are not kept in synch when new buffer in a different mode is
added. Only one of the two is affected.
This may be associated with the fact that I started up XEmacs with
several file arguments, so I had a split frame to start with.
Tab controls now obey the default face (impressive) but they wait
until you select them. Evidently code needs to be added to notify
them about face changes. A separate issue is that this also may take
several attempts, I assume because of the multiple tab widget synching
problem.
The synching problem shows up as "received an unexpected
SelectionNotify event" messages rather than a crash. I also see a
garbled tab control.
I'm also getting Didier's (wasn't it?) BadFont and BadGC errors. This
seems to be associated with the garbled tab control.
Once I got the garbled tab control, the first attempt to switch
buffers via C-x b resulted in the lock-up after a few dozen more BadGC
errors.
**** Second try (recorded as I do it):
`src/xemacs -vanilla &', then `Get Tree' in editres generates
"received an unexpected SelectionNotify event". Split the window with
C-x 4 b RET, do editres `Refresh Tree', and get another "unexpected
SelectionNotify" message, and now have two buffers tabs (with the same
name, "Buffers"). Split the lower window with C-x 2, and get the same
result, ie, now I have three tab control widgets named "Buffers".
Oops, this time changing the default face (Options | Font Size | 16,
then Options | Fonts | Lucidatypewriter) only took effect when a new
window was created. After a few `find-file's, coalescing the
horizontally split windows into one and then splitting again with C-x
2, I now have 4 top gutters and four buffer tab controls, two with 2
and two with 3 buffer tabs. Urk.
This time the "unexpected SelectionNotify" messages all seemed to be
associated with editres `Refresh Tree' commands.
I've managed to get garbled tab control again, but no BadFont/BadGC,
and no lockup. So apparently it's a different issue. Far too much
tab and buffer activity to make a recipe :(
I've noticed editres will never admit that any of the tabs themselves
are mapped, only the tab control parents, although it does show the
tabs in the widget tree.
Third try (recorded as I do it):
OK, maybe I've screwed up something. Everything I can see says my
build is fine, it's XEmacs that's sick, but.... cvs status said my
(locally autoconf'd) configure is different from the repository, rm it
and cvs up; everything else is Up-To-Date. config.status --recheck;
make beta; src/xemacs & ... yup, splitting windows still instantiates
a tab control every time. Yeech.
At this point, I don't have a recipe to reproduce the crash, but I'll
try and come up with one.
--------------------------------------------------------------------------------
Here's the visual evidence of garbled tab control:
--------------------------------------------------------------------------------
Here's my Installation:
uname -a: Linux tleepslib 2.2.10 #2 Thu Jun 24 19:22:23 JST 1999 i686 unknown
/coda/Projects/XEmacs/21.2-HEAD/configure
'--srcdir=/coda/Projects/XEmacs/21.2-HEAD' '--with-widgets=athena'
'--with-athena=3d' '--with-sound=none,nas' '--with-mule'
'--with-xim=xlib'
'--with-xfs' '--use-union-type' '--pdump'
XEmacs 21.2-b35 "Nike" configured for `i686-pc-linux'.
Compilation / Installation:
Source code location: /coda/Projects/XEmacs/21.2-HEAD
Installation prefix: /usr/local
Operating system description file: `s/linux.h'
Machine description file: `m/intel386.h'
Compiler: gcc -g -O3 -Wall -Wno-switch
-Wpointer-arith -Winline -Wmissing-prototypes -Wshadow
Relocating allocator for buffers: no
GNU version of malloc: yes
- Using Doug Lea's new malloc from the GNU C Library.
Window System:
Compiling in support for the X window system:
- X Windows headers location: /usr/X11R6/include
- X Windows libraries location: /usr/X11R6/lib
- Handling WM_COMMAND properly.
Compiling in support for the Athena widget set:
- Athena headers location: X11/Xaw3d
- Athena library to link: Xaw3d
Using Lucid menubars.
Using Lucid scrollbars.
Using Athena dialog boxes.
Using Athena native widgets.
TTY:
Compiling in support for ncurses.
Images:
Compiling in support for GIF images (builtin).
Compiling in support for XPM images.
Compiling in support for PNG images.
Compiling in support for JPEG images.
Compiling in support for TIFF images.
Sound:
Compiling in support for NAS (network audio system).
Databases:
Compiling in support for Berkeley database.
Compiling in support for PostgreSQL.
- Using PostgreSQL header file: postgresql/libpq-fe.h
- Using PostgreSQL V7 bindings.
Internationalization:
Compiling in support for Mule (multi-lingual Emacs).
Compiling in support for XIM (X11R5+ I18N input method).
- Using raw Xlib to provide XIM support.
- Using XFontSet to provide bilingual menubar.
Compiling in support for Canna on Mule.
Compiling in support for the WNN input method on Mule.
Mail:
Compiling in support for "dot-locking" mail spool file locking method.
Other Features:
Compiling in support for dynamic shared object modules.
Using the union type for Lisp_Objects.
Using the new portable dumper.
Compiling in support for extra debugging code.
WARNING: ---------------------------------------------------------
WARNING: Compiling in support for runtime error checking.
WARNING: XEmacs will run noticeably more slowly as a result.
WARNING: Error checking is on by default for XEmacs beta releases.
WARNING: ---------------------------------------------------------
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."
--------------------------------------------------------------
Dr Andy Piper
Principal Consultant, BEA Systems Ltd