I've found an NT to try XEmacs on, and played with it continually for
about three hours. Thanks Fabrice for making it possible.
First, I'd like to congratulate all of the Windows developers for an
EXCELLENT piece of work. I don't say this to flatter you, or as a
prologue to start pointing out deficiencies. This is true. XEmacs on
Windows *rules*. I almost feel I could be able to work on Windows!
The fact is, I expected XEmacs on Windows to be less stable and less
like the Unix one. In reality, it is pretty stable, and when it
differs from the Unix version, it's usually better! It took me two
minutes to start up Gnus (a trivial patch to gnus-score.el), for
krissake.
During my three hour session with XEmacs on NT, I made a few notes,
some of them having to do with the differences between the Unix
version, and some being casual observations. The former may be
appreciated by NT users who have not used Unix XEmacs extensively.
Note that they are not in any particular order, so you may wish to
read them all before responding to a particular point.
* On Windows 95, XEmacs fails without a sign on life. Is that a
show-stopper?
* Pressing `C-x C-f' yields in `~' in the minibuffer, not `~\', as
would be expected. This is very annoying because I have a habit of
pressing TAB immediately after `C-x C-f'.
* Pressing `\' when the minibuffer ends in `/' does not do what one
might expect (try pressing `//' and you'll see what I mean).
minibuffer-electric-slash should be renamed to
minibuffer-electric-separator and be bound to the appropriate key.
* The toolbars are ugly black-and-white, with the ugly-looking
captions. However, my XEmacs does appear to have XPM support (I was
able to see gnus.xpm properly). Does anyone have a clue why this is
so?
* Continuation glyphs are characters instead of glyphs. This should
be quite easy to fix -- those glyphs are b&w.
* Toolbars are displaying balloon-help (tooltips) by default. This is
nice, but:
- Will it clash with the people currently using the `balloon-help'
Lisp package;
- Will it work when the text of balloon help contains, say,
extended characters? Is there a way to customize the balloon
color (a face)?
- Should we include device methods for balloon help, so that we
merge the Windows support, balloon-*.c, and eventually obsolete
balloon-help.el?
* Whoever thought of that default size should be @#$@!#$#@$! :-)
(frame-width) says 78, and (frame-height) says 18. Horrible.
* I noticed a bug in dynamic resizing. In the scratch buffer, type a
few newlines so that point ends up in the middle of window. Now
resize the frame to a very small size. The point ends up outside
the visible area of the screen. Bad! It should be brought back.
Even worse, when the resize stops, the point is still invisible.
Triply worse, I can actually *type* stuff and the point is *still*
not visible. The display gets buggy, of course.
* With the long Customize menus, removing them is sometimes buggy. To
test, try selecting this:
Options->Customize->Emacs->Applications->Gnus->Message->Message->
->Interface->Forwarding
Now you will be *very* deep in the menu hierarchy. Now move the
mouse quickly to, say, the `Options' menu. The many menu layers are
not cleared correctly. When you click outside the menus, everything
clears, though. I'm not sure if this is a Win32 bug or an XEmacs
bug.
* When you click on a menu (through menubar or button3), clicking
*outside* the menu is "seen" by XEmacs, and it changes the value of
point. I'm not sure if this is a good thing or not. It's somewhat
disconcerting to me, and it doesn't happen under Unix (the
mouseclick just unselects the menu).
* When I press and release Alt, the `File' menu is selected. This is
probably normal under Windows, but it's disconcerting to me. I
could get used to it, I guess.
* There is no sound! I want to have the default beep when I press C-g
and such. This may be a problem with my configuration.
* Certain menubar items don't work, or don't do anything useful. This
should be polished before the release. Examples:
- Options -> Open URLs with
- Strokes mode (why does this not work? appears to choke on
advice or whatever)
- Font menu
* button3 menu titles can be "selected". For instance, in scratch,
when I press button3 and pass the mouse over the "Lisp-Interaction"
title, it gets inverted.
* The docstrings were missing. This is probably a deficiency of
Fabrice's distribution. Also, I wasn't able to send out a mail due
to lack of `fakemail'.
* I started VM, and the toolbars were extremely ugly. Soon XEmacs
crashed with the following message:
The instruction at "0x77fd514" referenced memory at "0x702d6d76".
The memory could not be "written".
* In VM, the `XEmacs' toggle menu button was missing. This may or may
not be related to the crash.
* I got a "cannot open load file: mule" warning from skk or whatever.
This is probably related to installing all packages and building
with Mule.
* EFS refused to work. Only `/' triggered it at the beginning, and it
didn't appear to do anything useful. It didn't report an error,
either.
* In dired, clicking on the permission doesn't appear to *do*
anything. If these operations are not supported or don't make sense
under NT, we should avoid the highlighting.
* Scrolling to the end of buffer leaves the last line half-shown.
This would be correct if `scroll-on-clipped-lines' were nil, but it
wasn't.
* XEmacs had some problems backuping, so it always created "%backup%"
files in the invocation dir.
* `M-x shell' reports an error when run for the first time. This is
because (getenv "HOME") returns nil, and `shell-dirstack-message'
expects it to be a string. Either fix `shell-dirstack-message', or
setenv "HOME" to something meaningful!
* `C-x k RET' in a running shell buffer results in:
Signal number 1 not supported.
This is because some code tries to SIGHUP the shell buffer. I
consider it a bug.
* M-x find-function doesn't work -- it expects the Lisp files to be in
the invocation directory. I'm not sure if this is solvable easily.
* In file name prompts, `.\<TAB>' says "No match". It should complete
files in the current directory.
* `M-x grep' says "no matches found", when in fact grep was not found
at all. It doesn't check for availability of grep because under
Unix it is unthinkable not to have grep. Perhaps M-x grep should
check for
(memq t (mapcar (lambda (dir)
(file-executable-p (expand-file-name "grep" dir)))
(split-path (getenv "PATH"))))
...first time per invocation on NT, and signal a clear error when
there is no grep.
That's all, folks! Sorry for the length.
P.S.
I don't know what Geoff Voelker's NT Emacs looks like, but XEmacs
looks like it will kick ass. :-)
--
Hrvoje Niksic <hniksic(a)srce.hr> | Student at FER Zagreb, Croatia
--------------------------------+--------------------------------
Personifiers Unite! You have nothing to lose but Mr. Dignity!