From: tomo Date: Sat, 1 Nov 2003 10:35:17 +0000 (+0000) Subject: This commit was generated by cvs2svn to compensate for changes in r7534, X-Git-Tag: r21-4-14-chise-0_21-release^2~1 X-Git-Url: http://git.chise.org/gitweb/?p=chise%2Fxemacs-chise.git.1;a=commitdiff_plain;h=1b70edcd9999965aafe4533453eb6b353b349898;hp=c9e87d29965ebd456d729a632bf426eba85e82ef This commit was generated by cvs2svn to compensate for changes in r7534, which included commits to RCS files with non-trunk default branches. --- diff --git a/PROBLEMS b/PROBLEMS index 30df425..7dca91c 100644 --- a/PROBLEMS +++ b/PROBLEMS @@ -2,7 +2,7 @@ This file describes various problems that have been encountered in compiling, installing and running XEmacs. It has been updated for -XEmacs 21.4. +XEmacs 21.5. This file is rather large, but we have tried to sort the entries by their respective relevance for XEmacs, but may have not succeeded @@ -17,7 +17,7 @@ Use `C-c C-f' to move to the next equal level of outline, and `C-c C-b' to move to previous equal level. `C-h m' will give more info about the Outline mode. -Also, try finding the things you need using one of the search commands +Also, Try finding the things you need using one of the search commands XEmacs provides (e.g. `C-s'). General advice: @@ -40,10 +40,11 @@ General advice: =============================== ** General + Much general information is in INSTALL. If it's covered in INSTALL, we don't repeat it here. -*** How does I configure to get the buffer tabs/progress bars? +*** How do I configure to get the buffer tabs/progress bars? These features depend on support for "native widgets". Use the --with-widgets option to configure. Configuration of widgets is @@ -59,60 +60,6 @@ library, you only need the shared library. To compile objects that link with it, you need the headers---and distros don't provide them with the libraries. You need the additional "development" package, too. -If you have installed it yourself in a non-system location, you may also -need to specify --site-includes, --site-libraries, or --site-prefixes. -Note that many packages, especially X11, expect to find includes in a -subdirectory. Eg, XEmacs #includes , not . See INSTALL. - -*** Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures -without also using `-fno-schedule-insns'. - -gcc will generate incorrect code otherwise, typically resulting in -crashes in the function skip-syntax-backward. - -*** egcs-1.1 - -There have been reports of egcs-1.1 not compiling XEmacs correctly on -Alpha Linux. There have also been reports that egcs-1.0.3a is O.K. - -*** Don't use -O2 or -O3 with Cygwin 1.0, CodeFusion-99070 or gcc 2.7.2 on x86 -without also using `-fno-strength-reduce'. - -gcc will generate incorrect code otherwise. This bug is present in at -least 2.6.x and 2.7.[0-2]. This bug has been fixed in GCC 2.7.2.1 and -later. This bug is O/S independent, but is limited to x86 architectures. - -This problem is known to be fixed in egcs (or pgcc) 1.0 or later. - -Unfortunately, later releases of Cygnus-released compilers (not the -Net-released ones) have a bug with the same `problem signature'. - -If you're lucky, you'll get an error while compiling that looks like: - -event-stream.c:3189: internal error--unrecognizable insn: -(insn 256 14 15 (set (reg/v:SI 24) - (minus:SI (reg/v:SI 25) - (const_int 2))) -1 (insn_list 11 (nil)) - (nil)) - 0 0 [main] - -If you're unlucky, your code will simply execute incorrectly. - -*** Don't use gcc-2.95.2 with -mcpu=ultrasparc on Solaris 2.6. - -gcc will assume a 64-bit operating system, even though you've -merely told it to assume a 64-bit instruction set. - -*** Don't use -O2 with gcc 2.7.2 under Intel architectures without also -using `-fno-caller-saves'. - -gcc will generate incorrect code otherwise. This bug is still -present in gcc 2.7.2.3. There have been no reports to indicate the -bug is present in egcs 1.0 (or pgcc 1.0) or later. This bug is O/S -independent, but limited to x86 architectures. - -This problem is known to be fixed in egcs (or pgcc) 1.0 or later. - *** When using gcc, you get the error message "undefined symbol __fixunsdfsi". When using gcc, you get the error message "undefined symbol __main". @@ -167,6 +114,41 @@ characters, you can fix them by running: This will rebuild all the needed .elc files. +** Intel Architecture General + +*** Don't use -O2 or -O3 with Cygwin 1.0, CodeFusion-99070 or gcc 2.7.2 on x86 +without also using `-fno-strength-reduce'. + +gcc will generate incorrect code otherwise. This bug is present in at +least 2.6.x and 2.7.[0-2]. This bug has been fixed in GCC 2.7.2.1 and +later. This bug is O/S independent, but is limited to x86 architectures. + +This problem is known to be fixed in egcs (or pgcc) 1.0 or later. + +Unfortunately, later releases of Cygnus-released compilers (not the +Net-released ones) have a bug with the same `problem signature'. + +If you're lucky, you'll get an error while compiling that looks like: + +event-stream.c:3189: internal error--unrecognizable insn: +(insn 256 14 15 (set (reg/v:SI 24) + (minus:SI (reg/v:SI 25) + (const_int 2))) -1 (insn_list 11 (nil)) + (nil)) + 0 0 [main] + +If you're unlucky, your code will simply execute incorrectly. + +*** Don't use -O2 with gcc 2.7.2 under Intel architectures without also +using `-fno-caller-saves'. + +gcc will generate incorrect code otherwise. This bug is still +present in gcc 2.7.2.3. There have been no reports to indicate the +bug is present in egcs 1.0 (or pgcc 1.0) or later. This bug is O/S +independent, but limited to x86 architectures. + +This problem is known to be fixed in egcs (or pgcc) 1.0 or later. + *** `compress' and `uncompress' not found and XFree86 XFree86 installs a very old version of libz.a by default ahead of where @@ -175,7 +157,167 @@ when attempting to link against libMagick. The fix is to remove the old libz.a in the X11 binary directory. +** Motif + +Motif is the X11 version of the Gnus torture test: if there's a way to +crash, Motif will find it. With the open source release of Motif, it +seems like a good idea to collect all Motif-related issues in one +place. + +You should also look in your OS's section, as it may not be Motif's +fault. + +*** XEmacs visibly repaints itty-bitty rectangles very slowly. + +This should only be visible on a slow X connection (ISDN, maybe T1). + +At least some versions of Motif apparently do not implement +XtExposeCompressMaximal properly, so it is disabled. If you wish to +experiment, you can remove the #ifdef LWLIB_NEEDS_MOTIF at line 238 +(or so) of src/EmacsFrame.c, leaving only the line + + /* compress_exposure */ XtExposeCompressMaximal | XtExposeNoRegion, + +and recompile. This enables exposure compression, giving a 10:1 or +better speedup for some users. However, on some Motif platforms (Red +Hat Linux 9.0 and Solaris 2.8, at least), this causes XEmacs to hang +while displaying the progress bar (eg, in font-lock). A workaround +for that problem is to setq `progress-feedback-use-echo-area' to `t'. + +*** XEmacs crashes on exit (#1). + +The backtrace is something like: + + (gdb) where + #0 0xfeb9a480 in _libc_kill () from /usr/lib/libc.so.1 + #1 0x000b0388 in fatal_error_signal () + #2 + #3 YowIter (ht=0xb, id=0x0, v=0x74682074, client=0x47e3c0) + at ImageCache.c:1159 + #4 0xff26cc5c in _LTHashTableForEachItem (ht=0x4725e8, + iter=0xff26dda0 , ClientData=0x47e3c0) at Hash.c:671 + #5 0xff2a4664 in destroy (w=0x496550) at Screen.c:352 + #6 0xfef92118 in Phase2Destroy () from /usr/openwin/lib/libXt.so.4 + #7 0xfef91940 in Recursive () from /usr/openwin/lib/libXt.so.4 + #8 0xfef91e44 in XtPhase2Destroy () from /usr/openwin/lib/libXt.so.4 + #9 0xfef91ae8 in _XtDoPhase2Destroy () from /usr/openwin/lib/libXt.so.4 + #10 0xfef918cc in XtDestroyWidget () from /usr/openwin/lib/libXt.so.4 + #11 0xfef91438 in CloseDisplay () from /usr/openwin/lib/libXt.so.4 + #12 0xfef91394 in XtCloseDisplay () from /usr/openwin/lib/libXt.so.4 + #13 0x0025b8b0 in x_delete_device () + #14 0x000940b0 in delete_device_internal () + #15 0x000806a0 in delete_console_internal () + +This is known to happen with Lesstif version 0.93.36. Similar +backtraces have also been observed on HP/UX and Solaris. There is a +patch for Lesstif. (This is not a solution; it just stops the crash. +It may or may not be harmless, but "it works for the author".) + +Note that this backtrace looks a lot like the one in the next item. +However, this one is invulnerable to the Solaris patches mentioned there. + +Frank McIngvale says: + + Ok, 0.93.34 works, and I tracked down the crash to a section + marked "experimental" in 0.93.36. Patch attached, "works for me". + +diff -u -r lesstif-0.93.36/lib/Xm/ImageCache.c lesstif-0.93.36-mod/lib/Xm/ImageCache.c +--- lesstif-0.93.36/lib/Xm/ImageCache.c 2002-08-05 14:53:24.000000000 -0500 ++++ lesstif-0.93.36-mod/lib/Xm/ImageCache.c 2002-11-11 11:13:12.000000000 -0600 +@@ -1166,5 +1166,4 @@ + DEBUGOUT(_LtDebug0(__FILE__, NULL, "_LtImageCacheScreenDestroy (XmGetPixmapByDepth) %p\n", + s)); + +- (void) _LTHashTableForEachItem(PixmapCache, YowIter, (XtPointer)s); + } + +*** XEmacs crashes on exit (#2) + +Especially frequent with multiple frames. Crashes that produce C +backtraces like this: + +#0 0xfec9a118 in _libc_kill () from /usr/lib/libc.so.1 +#1 0x77f48 in fatal_error_signal (sig=11) + at /codes/rpluim/xemacs-21.4/src/emacs.c:539 +#2 +#3 0xfee929f4 in XFindContext () from /usr/openwin/lib/libX11.so.4 +#4 0xfee92930 in XFindContext () from /usr/openwin/lib/libX11.so.4 +#5 0xff297e54 in DisplayDestroy () from /usr/dt/lib/libXm.so.4 +#6 0xfefbece0 in XtCallCallbackList () from /usr/openwin/lib/libXt.so.4 +#7 0xfefc486c in XtPhase2Destroy () from /usr/openwin/lib/libXt.so.4 +#8 0xfefc45d0 in _XtDoPhase2Destroy () from /usr/openwin/lib/libXt.so.4 +#9 0xfefc43b4 in XtDestroyWidget () from /usr/openwin/lib/libXt.so.4 +#10 0x15cf9c in x_delete_device (d=0x523f00) + +are caused by buggy Motif libraries. Installing the following patches +has been reported to solve the problem on Solaris 2.7: + +107081-40 107656-07 + +For information (although they have not been confirmed to work), the +equivalent patches for Solaris 2.8 are: + +108940-33 108652-25 + +*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running. + (also appears on AIX as reported in comp.emacs.xemacs) + +Marcus Thiessel + + Unfortunately, XEmacs releases prior to 21.0 don't work with + Motif2.1. It will compile but you will get excessive X11 errors like + + xemacs: X Error of failed request: BadGC (invalid GC parameter) + + and finally XEmacs gets killed. A workaround is to use the + Motif1.2_R6 libraries. You can the following line to your call to + configure: + + --x-libraries="/usr/lib/Motif1.2_R6 -L/usr/lib/X11R6" + + Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to + /usr/lib/Motif1.2_R6/libXm.3. + +*** On HP-UX 11.0: Object "" does not have windowed ancestor + +Marcus Thiessel + + XEmacs dies without core file and reports: + + Error: Object "" does not have windowed ancestor. + + This is a bug. Please apply the patch PHSS_19964 (check if + superseded). The other alternative is to link with Motif1.2_R6 (see + previous item). + +*** Motif dialog boxes lose on Irix. + +Larry Auton writes: +Beware of not specifying + + --with-dialogs=athena + +if it builds with the motif dialogs [boom!] you're a dead man. + + ** AIX +*** IBM compiler fails: "The character # is not a valid C source character." + +Most recently observed in 21.5.9, due to USE_KKCC ifdefs (they just +happen to tickle the implementation). + +Valdis Kletnieks says: + + The problem is that IBM defines a *MACRO* called 'memcpy', and we + have stuck a #ifdef/#endif inside the macro call. As a workaround, + try adding '-U__STR__' to your CFLAGS - this will cause string.h to + not do a #define for strcpy() to __strcpy() - it uses this for + automatic inlining support. + + (For the record, the same issue affects a number of other functions + defined in string.h - basically anything the compiler knows how to + inline.) + *** On AIX 4.3, you must specify --with-dialogs=athena with configure *** The libXt shipped with AIX 4.3 up to 4.3.2 is broken. This causes @@ -221,32 +363,16 @@ Valdis.Kletnieks@vt.edu writes: ** SunOS/Solaris -*** Crashes when using Motif libraries, especially with multiple frames. - -Crashes that produce C-backtraces like this: - -#0 0xfec9a118 in _libc_kill () from /usr/lib/libc.so.1 -#1 0x77f48 in fatal_error_signal (sig=11) - at /codes/rpluim/xemacs-21.4/src/emacs.c:539 -#2 -#3 0xfee929f4 in XFindContext () from /usr/openwin/lib/libX11.so.4 -#4 0xfee92930 in XFindContext () from /usr/openwin/lib/libX11.so.4 -#5 0xff297e54 in DisplayDestroy () from /usr/dt/lib/libXm.so.4 -#6 0xfefbece0 in XtCallCallbackList () from /usr/openwin/lib/libXt.so.4 -#7 0xfefc486c in XtPhase2Destroy () from /usr/openwin/lib/libXt.so.4 -#8 0xfefc45d0 in _XtDoPhase2Destroy () from /usr/openwin/lib/libXt.so.4 -#9 0xfefc43b4 in XtDestroyWidget () from /usr/openwin/lib/libXt.so.4 -#10 0x15cf9c in x_delete_device (d=0x523f00) - -are caused by buggy Motif libraries. Installing the following patches -has been reported to solve the problem on Solaris 2.7: +*** Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures +without also using `-fno-schedule-insns'. -107081-40 107656-07 +gcc will generate incorrect code otherwise, typically resulting in +crashes in the function skip-syntax-backward. -For information (although they have not been confirmed to work), the -equivalent patches for Solaris 2.8 are: +*** Don't use gcc-2.95.2 with -mcpu=ultrasparc on Solaris 2.6. -108940-33 108652-25 +gcc will assume a 64-bit operating system, even though you've +merely told it to assume a 64-bit instruction set. *** Dumping error when using GNU binutils / GNU ld on a Sun. @@ -273,10 +399,6 @@ normally held in /usr/ccs/bin. This can be done by one of: - uninstalling GNU ld. -- configuring XEmacs with these environment settings (suggested by - Goran Koruga ): - LD=/usr/ccs/bin/ld AS=/usr/ccs/bin/as configure - The Solaris2 FAQ claims: When you install gcc, don't make the mistake of installing @@ -372,6 +494,14 @@ The solution is to install Patch-ID# 100267-03 from Sun. broken. Use the ones in /usr/openwin/{include,lib} instead. ** Linux + +See also Intel Architecture General, above. + +*** egcs-1.1 on Alpha Linux + +There have been reports of egcs-1.1 not compiling XEmacs correctly on +Alpha Linux. There have also been reports that egcs-1.0.3a is O.K. + *** Under Linux, you get "too many arguments to function `getpgrp'". You have probably installed LessTiff under `/usr/local' and `libXm.so' @@ -395,6 +525,46 @@ an earlier version. The solution is to upgrade your old library. ** IRIX +*** More coredumping in Irix (6.5 known to be vulnerable) + +No fix is known yet. Here's the best information we have: + +Valdis Kletnieks writes: + + Were xemacs and [any 3rd party, locally-compiled] libraries [you use] + all compiled with the same ABI ( -o32, -n32, -64) and + mips2/mips3/mips4 flags, and are they appropriate for the machine in + question? I know the IP30 implies an Octane, so it should be an R10K + chipset and above such nonsense, but I've seen the most astoundingly + bizzare crashes when somebody managed to compile with -mips4 and get + it to run on an R4400 or R5K system. ;) + + Also, since you're using gcc, try re-running fixincludes and *then* + rebuilding xemacs and [any] libraries - mismatched headers can do that + sort of thing to you with little or no clue what's wrong (often you + get screwed when one routine does an malloc(sizeof(foo_struct)) and + passes the result to something that things foo_struct is a bit bigger, + trashing memory.... + +Here's typical crash backtrace. With --pdump, this occurs usually at +startup under X windows and xemacs -nw at least starts, while without +--pdump a similar crash is observed during build. + +#0 0x0fa460b8 in kill () at regcomp.c:637 +637 regcomp.c: No such file or directory. + in regcomp.c +(gdb) where +#0 0x0fa460b8 in kill () at regcomp.c:637 +#1 0x10087f34 in fatal_error_signal () +(gdb) quit + +This is confusing because there is no such file in the XEmacs +distribution. This is seen on (at least) the following configurations: + +uname -a: IRIX64 oct202 6.5 01091821 IP30 +XEmacs 21.4.9 "Informed Management" configured for `mips-sgi-irix6.5'. +XEmacs 21.5-b9 "brussels sprouts" configured for `mips-sgi-irix6.5'. + *** On Irix 6.5, the MIPSpro compiler gets an internal compiler error The MIPSpro Compiler (at least version 7.2.1) can't seem to handle the @@ -516,37 +686,6 @@ Marcus Thiessel This might be a sed problem. For your own safety make sure to use GNU sed while dumping XEmacs. -*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running. - (also appears on AIX as reported in comp.emacs.xemacs) - -Marcus Thiessel - - Unfortunately, XEmacs releases prior to 21.0 don't work with - Motif2.1. It will compile but you will get excessive X11 errors like - - xemacs: X Error of failed request: BadGC (invalid GC parameter) - - and finally XEmacs gets killed. A workaround is to use the - Motif1.2_R6 libraries. You can the following line to your call to - configure: - - --x-libraries="/usr/lib/Motif1.2_R6 -L/usr/lib/X11R6" - - Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to - /usr/lib/Motif1.2_R6/libXm.3. - -*** On HP-UX 11.0: Object "" does not have windowed ancestor - -Marcus Thiessel - - XEmacs dies without core file and reports: - - Error: Object "" does not have windowed ancestor. - - This is a bug. Please apply the patch PHSS_19964 (check if - superseded). The other alternative is to link with Motif1.2_R6 (see - previous item). - ** SCO OpenServer *** Native cc on SCO OpenServer 5 is now OK. Icc may still throw you @@ -616,8 +755,44 @@ to take advantage of the keyboard map in emacskeys.sco. Note: Much of the above entry is probably not valid for XEmacs 21.0 and later. +** Windows + +*** XEmacs complains "No such file or directory, diff" + +or "ispell" or other commands that seem related to whatever you just +tried to do. + +There are a large number of common (in the sense that "everyone has +these, really") Unix utilities that are not provided with XEmacs. The +GNU Project's implementations are available for Windows in the the +Cygwin distribution (http://www.cygwin.com/), which also provides a +complete Unix emulation environment (and thus makes ports of Unix +utilities nearly trivial). Another implementation is that from MinGW +(http://www.mingw.org/msys.shtml). + +*** Weird crashes in pdump load or shortly after pdump load. + +This can happen with incremental linking. Check if you have set +SUPPORT_EDIT_AND_CONTINUE to non-zero in config.inc, which must allow +incremental linking to be enabled (otherwise it's disabled). Either turn +this off, execute `nmake -f xemacs.mak clean', or manually remove +`temacs.exe' and `xemacs.exe'. + ** Cygwin +See also Intel Architecture General, above. + +*** Signal 11 when building or running a dumped XEmacs. + +This appears to happen when using the traditional dumping mechanism and +the system malloc. Andy Piper writes: + + Traditional dumping on Cygwin relies on using gmalloc (there are specific + hacks in our version of gmalloc to support this), I suspect using sysmalloc + is the problem. + +Try configuring with pdump or without system malloc. + *** In general use etc/check_cygwin_setup.sh to trap environment problems. The script etc/check_cygwin_setup.sh will attempt to detect whether @@ -627,10 +802,12 @@ correctly if you are using ash instead of bash (see below). *** Syntax errors running configure scripts, make failing with exit code 127 in inexplicable situations, etc. -This may be because you are using the default cygwin shell. The -default cygwin shell (/bin/sh.exe) is ash which appears to work in -most circumstances but has some weird failure modes. You need to -replace the symlink with bash.exe. +[[ This may be because you are using the default Cygwin shell, under old +versions of Cygwin. The default Cygwin shell (/bin/sh.exe) is ash, which +appears to work in most circumstances but has some weird failure modes. +You may need to replace the symlink with bash.exe. ]] This doesn't appear +to affect Cygwin any longer, and /bin/sh.exe is no longer a symlink in +any case. *** Lots of compile errors, esp. on lines containing macro definitions terminated by backslashes. @@ -645,107 +822,63 @@ registry. *** Errors from make like /c:not found. -make sure you set the environment variable MAKE_MODE to UNIX in your +Make sure you set the environment variable MAKE_MODE to UNIX in your .bashrc, Control Panel (Windows 2000/NT), or AUTOEXEC.BAT (Windows 98/95). -*** X11 not detected. - -This is usually because xmkmf is not in your path or because you are -using the default cygwin shell. The default cygwin shell (/bin/sh.exe) -is ash which appears to work in most circumstances but has some weird -failure modes. I recommend replacing sh.exe with bash.exe, this will -mean configure is slower but more reliable. - -*** Subprocesses do not work. - -You do not have "tty" in your CYGWIN environment variable. This must -be set in your autoexec.bat (win95) or the system properties (winnt) -as it must be read before the cygwin DLL initializes. - -*** ^G does not work on hung subprocesses. - -This is a known problem. It can be remedied with cygwin b20 or greater -by defining BROKEN_SIGIO in src/s/cygwin32.h, however this currently -leads to instability in XEmacs. - *** The info files will not build. -makeinfo that ships with cygwin (all versions) is a noop. You need to -obtain makeinfo from somewhere or build it yourself. +makeinfo that ships with old versions of Cygwin doesn't work. +Upgrade to the latest Cygwin version. -*** I have no graphics. +*** XEmacs hangs while attempting to rebuild the .elc files. -You need to obtain the various graphics libraries. Pre-built versions -of these and the X libraries are located on the XEmacs website in -ftp://ftp.xemacs.org/pub/aux/cygwin/. +Check to make sure you're not configuring with rel-alloc. The relocating +allocator does not currently work under Cygwin due to bugs in Cygwin's +mmap(). -*** There are no images in the toolbar buttons. +*** Trying to build with X, but X11 not detected. -You need version 4.71 of commctrl.dll which does not ship with windows -95. You can get this by installing IE 4.0 or downloading it from the -microsoft website. +This is usually because xmkmf is not in your path or because you are +using the default Cygwin shell. (See above.) * Problems with running XEmacs ============================== ** General -*** XEmacs crashes mysteriously. - -Check whether XEmacs was configured --use-union-type. Many compilers -are known to treat union types incompatibly with proper functioning of -the Lisp_Object type. (Whether this is a compiler bug or nonstandard- -conforming code in XEmacs is a moot point.) Especially with ---with-mule, --pdump, and/or non-null --error-checking, this is known -to produce an unreliable build with many versions of MS VC++ and GCC, -and similar problems are likely to occur with other compilers. - -Symptoms are similar to garbage collection and other "wild pointer" -bugs, ie, stack-smashing and other hard-to-debug crashes in unrelated -code. Try reconfiguring and building without --use-union-type. - ---use-union-type _is_ useful to get improved _static_ type checking of -Lisp objects. It is theoretically possible that it might help with -aliasing bugs under optimization and improve runtime stability, but in -practice exactly the opposite seems to be true. If you don't work on -XEmacs C code directly, then avoid --use-union-type entirely for now. +*** XEmacs consistently crashes in a particular strange place. -*** XEmacs crashes mysteriously in regexp-intensive applications (eg, Gnus) +One known case is on Red Hat Linux, compiled with GCC, attempting to +render PNG images. The problem is that XEmacs code is not compliant +with ANSI rules about aliasing. Adding -fno-strict-aliasing to CFLAGS +may help (or the equivalent for your compiler). (Some versions of +XEmacs may already do this automatically, but if you specify CFLAGS or +--cflags yourself, you will have to add this flag by hand.) -The regexp implementation used in XEmacs uses alloca by default for -efficiency. alloca provides no reliable way to check for out of -memory (in this case, stack). Normally not a problem, except for -systems with very small default stack allocations, and applications -that use multi-line regular expressions (ie, explicitly including ?\n) -in moderately large files (> 100kB or so). +If you diagnose this bug for some other symptoms or systems, please +let us know (if you can send mail from the affected system, use M-x +report-xemacs-bug) so we can update this entry. -You may get relief by increasing the amount of stack space allocated -to your XEmacs process (a system-dependent operation, ask your -administrator or local experts for help), or by recompiling the regexp -module regex.c with REGEX_MALLOC defined, relinking, and redumping. +*** Changes made to .el files do not take effect. -*** At startup I get a warning on stderr about missing charsets: +You may have forgotten to recompile them into .elc files. Then the +old .elc files will be loaded, and your changes will not be seen. To +fix this, do `M-x byte-recompile-directory' and specify the directory +that contains the Lisp files. - Warning: Missing charsets in String to FontSet conversion +Note that you will get a warning when loading a .elc file that is +older than the corresponding .el file. -You need to specify appropriate charsets for your locale (usually the -value of the LANG environment variable) in .Xresources. See -etc/Emacs.ad for the relevant resources (mostly menubar fonts and -fontsets). Do not edit this file, it's purely informative. +*** VM appears to hang in large folders. -If you have no satisfactory fonts for iso-8859-1, XEmacs will crash. +This is normal (trust us) when upgrading to VM-6.22 from earlier +versions. Let VM finish what it is doing and all will be well. -It looks like XFree86 4.x (the usual server on Linux and *BSD) has -some braindamage where .UTF-8 locales will always generate this -message, because the XFree86 (font)server doesn't know that UTF-8 will -use the ISO10646-1 font registry (or a Cmap or something). +*** Starting with 21.4.x, killing text is absurdly slow. -If you are not using a .UTF-8 locale and see this warning for a -character set not listed in the default in Emacs.ad, please let -xemacs-beta@xemacs.org know about it, so we can add fonts to the -appropriate fontsets and stifle this warning. (Unfortunately it's -buried in Xlib, so we can't easily get rid of it otherwise.) +See FAQ Q3.10.6. Should be available on the web near +http://www.xemacs.org/faq/xemacs-faq.html#SEC160. *** Whenever I try to retrieve a remote file, I have problems. @@ -767,11 +900,7 @@ One program known to set TMPDIR and manifest this problem is exmh. You can defeat the use of TMPDIR by unsetting USE_TMPDIR at the top of gnuserv.h at build time. -*** C-z just refreshes the screen instead of suspending Emacs. - -You are probably using a shell that doesn't support job control, even -though the system itself is capable of it. Try using a different -shell. +** General Unix *** You type Control-H (Backspace) expecting to delete characters. @@ -794,6 +923,28 @@ which moves help to Meta-? (ESC ?): (global-set-key "\M-?" 'help-command) +*** At startup I get a warning on stderr about missing charsets: + + Warning: Missing charsets in String to FontSet conversion + +You need to specify appropriate charsets for your locale (usually the +value of the LANG environment variable) in .Xresources. See +etc/Emacs.ad for the relevant resources (mostly menubar fonts and +fontsets). Do not edit this file, it's purely informative. + +If you have no satisfactory fonts for iso-8859-1, XEmacs will crash. + +It looks like XFree86 4.x (the usual server on Linux and *BSD) has +some braindamage where .UTF-8 locales will always generate this +message, because the XFree86 (font)server doesn't know that UTF-8 will +use the ISO10646-1 font registry (or a Cmap or something). + +If you are not using a .UTF-8 locale and see this warning for a +character set not listed in the default in Emacs.ad, please let +xemacs-beta@xemacs.org know about it, so we can add fonts to the +appropriate fontsets and stifle this warning. (Unfortunately it's +buried in Xlib, so we can't easily get rid of it otherwise.) + *** Mail agents (VM, Gnus, rmail) cannot get new mail rmail and VM get new mail from /usr/spool/mail/$USER using a program @@ -824,21 +975,6 @@ installed copy of movemail is usually in the directory mode of the installed copy; changing the group and mode of the build directory copy is ineffective. -*** VM appears to hang in large folders. - -This is normal (trust us) when upgrading to VM-6.22 from earlier -versions. Let VM finish what it is doing and all will be well. - -*** Changes made to .el files do not take effect. - -You may have forgotten to recompile them into .elc files. Then the -old .elc files will be loaded, and your changes will not be seen. To -fix this, do `M-x byte-recompile-directory' and specify the directory -that contains the Lisp files. - -Note that you will get a warning when loading a .elc file that is -older than the corresponding .el file. - *** Things which should be bold or italic (such as the initial copyright notice) are not. @@ -897,7 +1033,7 @@ directory. Try using that one. *** My X resources used to work, and now some of them are being ignored. Check the resources in .../etc/Emacs.ad (which is the same as the file -sample.Xdefaults). Perhaps some of the default resources built in to +sample.Xresources). Perhaps some of the default resources built in to emacs are now overriding your existing resources. Copy and edit the resources in Emacs.ad as necessary. @@ -1108,7 +1244,7 @@ Some compilers have trouble with gmalloc.c and ralloc.c; try recompiling without optimization. If that doesn't work, try recompiling with SYSTEM_MALLOC defined, and/or with REL_ALLOC undefined. -*** A position you specified in .Xdefaults is ignored, using twm. +*** A position you specified in .Xresources is ignored, using twm. twm normally ignores "program-specified" positions. You can tell it to obey them with this command in your `.twmrc' file: @@ -1242,7 +1378,7 @@ happen in a non-login shell. *** The popup menu appears at the bottom/right of my screen. -You probably have something like the following in your ~/.Xdefaults +You probably have something like the following in your ~/.Xresources Emacs.geometry: 81x56--9--1 @@ -1250,6 +1386,27 @@ Use the following instead Emacs*EmacsFrame.geometry: 81x56--9--1 +*** When I try to use the PostgreSQL functions, I get a message about +undefined symbols. + +The only known case in which this happens is if you are using gcc, you +configured with --error-checking=all and --with-modules, and you +compiled with no optimization. If you encounter this problem in any +other situation, please inform xemacs-beta@xemacs.org. + +This problem stems from a gcc bug. With no optimization, functions +declared `extern inline' sometimes are not completely compiled away. An +undefined symbol with the function's name is put into the resulting +object file. In this case, when the postgresql module is loaded, the +linker is unable to resolve that symbol, so the module load fails. The +workaround is to recompile the module with optimization turned on. Any +optimization level, including -Os, appears to work. + +*** C-z just refreshes the screen instead of suspending Emacs. + +You are probably using a shell that doesn't support job control, even +though the system itself is capable of it. Try using a different +shell. ** MacOS/X, Darwin *** XEmacs crashes on MacOS within font-lock, or when dealing @@ -1268,7 +1425,7 @@ Workarounds: ** AIX *** Your Delete key sends a Backspace to the terminal, using an AIXterm. -The solution is to include in your .Xdefaults the lines: +The solution is to include in your .Xresources the lines: *aixterm.Translations: #override BackSpace: string(0x7f) aixterm*ttyModes: erase ^? @@ -1467,106 +1624,24 @@ affected virtually all ioctl() calls. ** Linux -*** XEmacs crashes on exit. - -This is known to happen with Lesstif version 0.93.36. It is -apparently due to breakage in Lesstif. There is a patch for Lesstif. - -Frank McIngvale says: - - Ok, 0.93.34 works, and I tracked down the crash to a section - marked "experimental" in 0.93.36. Patch attached, "works for me". - -diff -u -r lesstif-0.93.36/lib/Xm/ImageCache.c lesstif-0.93.36-mod/lib/Xm/ImageCache.c ---- lesstif-0.93.36/lib/Xm/ImageCache.c 2002-08-05 14:53:24.000000000 -0500 -+++ lesstif-0.93.36-mod/lib/Xm/ImageCache.c 2002-11-11 11:13:12.000000000 -0600 -@@ -1166,5 +1166,4 @@ - DEBUGOUT(_LtDebug0(__FILE__, NULL, "_LtImageCacheScreenDestroy (XmGetPixmapByDepth) %p\n", - s)); - -- (void) _LTHashTableForEachItem(PixmapCache, YowIter, (XtPointer)s); - } - - *** XEmacs crashes on startup, in make-frame. Typically the Lisp backtrace includes make-frame(nil #) -somewhere near the top. One problem is due to an improvement in GNU +somewhere near the top. The problem is due to an improvement in GNU ld that sorts the ELF reloc sections in the executable, giving dramatic speedups in startup for large executables. It also confuses the traditional unexec code in XEmacs, leading to the core dump. The -solution is to use either the `--ldflags="-z nocombreloc" or the -"--pdump" option to configure. "--pdump" is recommended. - -Recent 21.4 and 21.5 versions of XEmacs autodetect this feature of ld -in configure. Unfortunately, Red Hat and SuSE (at least) distributed -prerelease versions of ld (numbered around 2.11.90.x.y, nicknamed -"Hannibal Lecter" at XEmacs.ORG) where autodetection fails but the -feature is enabled by default. The recommended procedure is to -upgrade to binutils >= 2.12 and rerun configure. Otherwise you must -apply the flags by hand. - -Andrew Jaffe reported a problem on Red Hat 7.3 with identical -symptoms, except that ld was already being invoked with -z -nocombreloc. Switching dialogs and widgets from Motif to Athena -eliminated the problem. Both LessTif and OpenMotif were installed, -and a bad interaction is suspected. This problem has not yet been -fully analyzed. - -*** Debian -**** XEmacs warns "Symbol `toggleClassRec' has different size in shared - object, consider re-linking / Symbol `labelClassRec' has different - size in shared object, consider re-linking / Warning: Representation - size 4 must match superclass's to override value" - -Sometimes this results in segfaults when using the tab control widget -or a progress bar widget. - -Some versions of Debian install 3D versions of the Athena widget -library as /usr/X11R6/lib/libXaw.so. We have not yet solved the -problem of identifying the actual library in use in ./configure, so it -is possible for XEmacs to be compiled with reference to headers for -"flat" Xaw but find a "3D" Xaw when loading. - -The straightforward solution is to rebuild XEmacs with additional -configure options: --with-widgets=athena --with-athena=3d. - -There are several 3D Athena widget sets available; to see which ones -are supported by XEmacs, use ./configure --usage. +solution is to use the --pdump or --ldflags='-z nocombreloc' options +to configure. Recent 21.4 and 12.5 autodetect this in configure. -*** Mandrake - -The Mandrake Linux distribution is attempting to comprehensively -update the user interface, and make it consistent across -applications. This is very difficult, and will occasionally cause -conflicts with applications like Emacs with their own long-established -interfaces. Known issues specific to Mandrake or especially common: - -Some versions of XEmacs (21.1.9 is known) distributed with Mandrake -were patched to make the Meta and Alt keysyms synonymous. These -normally work as expected in the Mandrake environment. However, -custom-built XEmacsen (including all 21.2 betas) will "inexplicably" -not respect the "Alt-invokes-Meta-commands" convention. See "I want -XEmacs to use the Alt key" below. - -The color-gcc wrapper (see below) is in common use on the Mandrake -platform. - -*** XEmacs configured with ESD crashes with a segmentation violation - -This often occurs when a progress bar pops up. - -The problem is that the ESD sound daemon manipulates interrupts in a -way that disagrees with XEmacs. The currently available workaround is -not very satisfactory: remove ESD support. Rebuild after -reconfiguring with the option --with-sound=none[,native][,nas] - -The funny syntax (requiring the initial "none") is for backward -compatibility, and may change. Native sound and NAS do not cause the -problem, so they may be added to the option to get some sound support. +Red Hat and SuSE (at least) distributed a prerelease version of ld +(versions around 2.11.90.x.y) where autodetection is impossible. The +recommended procedure is to upgrade to binutils >= 2.12 and rerun +configure. Otherwise you must apply the flags by hand. --pdump is +recommended. *** I want XEmacs to use the Alt key, not the XXX key, for Meta commands @@ -1658,9 +1733,10 @@ file is not necessary with this approach. A newer problem is due to XEmacs changing to use the modern getaddrinfo() interface from the older gethostbyname() interface. The solution above is insufficient, because getaddrinfo() by default tries -to get IPv6 information for localhost (including the local X server). -This always involves a dns lookup to get the CNAME, and the strategies -above don't work. It then falls back to IPv4 behavior. +to get IPv6 information for localhost. This always involves a dns +lookup to get the CNAME, and the strategies above don't work. It then +falls back to IPv4 behavior. This is good[tm] according the people at +WIDE who know about IPv6. ***** Robust network case @@ -1676,20 +1752,26 @@ IPv4 behavior. Explicitly setting DISPLAY=127.0.0.1:0.0 (or whatever is appropriate) works in most cases. If you cannot or do not want to do that, you can hard code IPv4 -behavior in src/process-unix.c. Add `--with-ipv6-cname=no" to your -configure options and rebuild XEmacs. +behavior in src/process-unix.c. This is bad[tm], on your own head be +it. Use the configure option `--with-ipv6-cname=no'. + +*** Mandrake -*** XEmacs disappears after several sound events in succession +The Mandrake Linux distribution is attempting to comprehensively +update the user interface, and make it consistent across +applications. This is very difficult, and will occasionally cause +conflicts with applications like Emacs with their own long-established +interfaces. Known issues specific to Mandrake or especially common: -If esd is not running (e.g. you unchecked the run esd checkbox in the -GNOME Configuration tool), every sound event will cause the esound -client library to signal SIGUSR1. It is not that difficult (hold down -PgUp or PgDn, for example) to cause XEmacs to generate additional -SIGUSR1 signals before the first handler has a chance to reset, so the -second SIGUSR1 causes the default behavior of ending the process. +Some versions of XEmacs (21.1.9 is known) distributed with Mandrake +were patched to make the Meta and Alt keysyms synonymous. These +normally work as expected in the Mandrake environment. However, +custom-built XEmacsen (including all 21.2 betas) will "inexplicably" +not respect the "Alt-invokes-Meta-commands" convention. See "I want +XEmacs to use the Alt key" below. -The solution is either to build XEmacs with -sound=native,noesd or to make sure -that esd is in fact running. +The color-gcc wrapper (see below) is in common use on the Mandrake +platform. *** You get crashes in a non-C locale with Linux GNU Libc 2.0. @@ -1714,7 +1796,7 @@ character doesn't appear--you get a solid box instead. One user on a Linux system reported that this problem went away with installation of a new X server. The failing server was XFree86 3.1.1. XFree86 3.1.2 works. - + ** IRIX *** On Irix, I don't see the toolbar icons and I'm getting lots of entries in the warnings buffer. @@ -1730,15 +1812,6 @@ The program mkpts (which may be in `/usr/adm' or `/usr/sbin') needs to be set-UID to root, or non-root programs like Emacs will not be able to allocate ptys reliably. -*** Motif dialog boxes lose on Irix. - -Larry Auton writes: -Beware of not specifying - - --with-dialogs=athena - -if it builds with the motif dialogs [boom!] you're a dead man. - *** Beware of the default image & graphics library on Irix Richard Cognot writes: @@ -1947,14 +2020,126 @@ GCC. ** Windows -*** In general, the Windows code is less mature than the Unix code. +*** Conflicts with FSF NTEmacs + +Depending on how it is installed, FSF NTEmacs may setup various EMACS* +variables in your environment. The presence of these variables may +cause XEmacs to fail at startup, cause you to see corrupted +doc-strings, or cause other random problems. + +You should remove these variables from your environment. These +variables are not required to run FSF NTEmacs if you start it by +running emacs.bat. + +*** XEmacs can't find my init file + +XEmacs looks for your init in your "home" directory -- either in +`~/.xemacs/init.el' or `~/.emacs'. XEmacs decides that your "home" +directory is, in order of preference: + +- The value of the HOME environment variable, if the variable exists. +- The value of the registry entry SOFTWARE\XEmacs\XEmacs\HOME, + if it exists. +- The value of the HOMEDRIVE and HOMEPATH environment variables, if + these variables both exist. +- C:\. -The Windows code base is still changing quickly. If you are -experiencing problems, try the latest beta version to see if the -problem still exists. Also ask on xemacs-nt@xemacs.org. +To determine what XEmacs thinks your home directory is, try opening +a file in the `~' directory, and you should see its expansion in the +modeline. If this doesn't work, type ESC : (user-home-directory). + +*** XEmacs can't find any packages + +XEmacs looks for your packages in subdirectories of a directory which +is set at compile-time (see `config.inc'), and whose default is +`C:\Program Files\XEmacs'. XEmacs also looks in `~/.xemacs', where +`~' refers to your home directory (see previous entry). The variable +`configure-package-path' holds the actual path that was compiled into +your copy of XEmacs. + +The compile-time default location can be overridden by the EMACSPACKAGEPATH +environment variable or by the SOFTWARE\XEmacs\XEmacs\EMACSPACKAGEPATH +registry entry. You should check that these variables, if they exist, +point to the actual location of your package tree. + +*** XEmacs doesn't die when shutting down Windows 95 or 98 + +When shutting down Windows 95 or 98 you may see a dialog that says + "xemacs / You must quit this program before you quit Windows". +It is safe to + "Click OK to quit the program and Windows", +but you won't be offered a chance to save any modified XEmacs buffers. + +*** Key bindings + +The C-z, C-x, C-c, and C-v keystrokes have traditional uses in both +emacs and Windows programs. XEmacs binds these keys to their +traditional emacs uses, and provides Windows 3.x style bindings for +the Cut, Copy and Paste functions. + + Function XEmacs binding + -------- -------------- + Undo C-_ + Cut Sh-Del + Copy C-Insert + Paste Sh-Insert + +You can rebind keys to make XEmacs more Windows-compatible; for +example, to bind C-z to undo: + + (global-set-key [(control z)] 'undo) + +Rebindind C-x and C-c is trickier because by default these are prefix +keys in XEmacs. See the "Key Bindings" node in the XEmacs manual. + +*** Behavior of selected regions + +Use the pending-del package to enable the standard Windows behavior of +self-inserting deletes region. + +*** Limitations on the use of the AltGr key. + +In some locale and OS combinations you can't generate M-AltGr-key or +C-M-AltGr-key sequences at all. + +To generate C-AltGr-key or C-M-AltGr-key sequences you must use the +right-hand Control key and you must press it *after* AltGr. + +These limitations arise from fundamental problems in the way that the +win32 API reports AltGr key events. There isn't anything that XEmacs +can do to work round these problems that it isn't already doing. + +You may want to create alternative bindings if any of the standard +XEmacs bindings require you to use some combination of Control or Meta +and AltGr. + +*** Limited support for subprocesses under Windows 9x + +Attempting to use call-process to run a 16bit program gives a +"Spawning child process: Exec format error". For example shell-command +fails under Windows 95 and 98 if you use command.com or any other +16bit program as your shell. + +XEmacs may incorrectly quote your call-process command if it contains +double quotes, backslashes or spaces. + +start-process and functions that rely on it are supported under Windows 95, +98 and NT. However, starting a 16bit program that requires keyboard input +may cause XEmacs to hang or crash under Windows 95 and 98, and will leave +the orphaned 16bit program consuming all available CPU time. + +Sending signals to subprocesses started by call-process or by +start-process fails with a "Cannot send signal to process" error under +Windows 95 and 98. As a side effect of this, quitting XEmacs while it +is still running subprocesses causes it to crash under Windows 95 and +98. ** Cygwin +*** Signal 11 when building or running a dumped XEmacs. + +See the section on Cygwin above, under building. + *** XEmacs fails to start because cygXpm-noX4.dll was not found. Andy Piper sez: @@ -1964,7 +2149,7 @@ Andy Piper sez: cygwin setup again and select this package. *** Subprocesses do not work. - + You do not have "tty" in your CYGWIN environment variable. This must be set in your autoexec.bat (win95) or the system properties (winnt) as it must be read before the cygwin DLL initializes. @@ -1986,7 +2171,7 @@ AUTOEXEC.BAT (Windows 98/95). You need version 4.71 of commctrl.dll which does not ship with windows 95. You can get this by installing IE 4.0 or downloading it from the microsoft website. - + * Compatibility problems (with Emacs 18, GNU Emacs, or previous XEmacs/lemacs) ============================================================================== diff --git a/configure.usage b/configure.usage index dc9e691..0983d73 100644 --- a/configure.usage +++ b/configure.usage @@ -129,8 +129,8 @@ Select the widget set used to implement components, Lucid, Motif, or Athena. If `--with-gtk', `--with-gnome', or `--with-msw' are used or implied, treat component options as Bool. The `lucid' widgets are a homebrew set, emulating Motif but faster. Lucid toolbars, menubars, and scrollbars are implemented -in Xt. Lucid dialogs and misc widgets wrap and enhance Athena (maybe Motif; -platform-dependent). Several enhanced (eg, 3d) Athena libraries may be used, +in Xt. Lucid dialogs and misc widgets wrap and enhance Motif (or Athena if +Motif is not found). Several enhanced (eg, 3d) Athena libraries may be used, but the default is the X11R6 `libXaw' (flat) widgets. Use `--with-athena' to explicitly specify which library to link against. @@ -138,8 +138,8 @@ explicitly specify which library to link against. --with-menubars=TYPE (Enum) Types: `lucid'(*), `motif', or `no'. *WARNING* The Motif menubar is currently broken. --with-scrollbars=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'. ---with-dialogs=TYPE (Enum) Types: `motif'(*), `lucid'(*), `athena', or `no'. ---with-widgets=TYPE (Enum) Types: `motif'(*), `lucid', `athena', or `no'. +--with-dialogs=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'. +--with-widgets=TYPE (Enum) Types: `lucid'(*), `motif', `athena', or `no'. --with-athena=TYPE (Enum) Link with the TYPE Athena library. Types: `xaw' [flat], `3d', `next', `95', or `xpm'. --with-dragndrop (*) Support generic drag and drop API. (EXPERIMENTAL) @@ -237,7 +237,8 @@ Memory allocation options: it in the standard C library. --with-system-malloc (Bool) Use the system malloc, instead of GNU malloc. --with-debug-malloc (Bool) Use the debugging malloc package. - +--use-regex-malloc=no (Bool) Use malloc (not alloca) for regex fail stack. + Setting this to 'yes' allows unpreventable crashes. Debugging options: diff --git a/etc/PACKAGES b/etc/PACKAGES index cb6a7ae..fddf29b 100644 --- a/etc/PACKAGES +++ b/etc/PACKAGES @@ -9,7 +9,7 @@ For general XEmacs navigation tips: Press C-h t Description of available packages ================================= -Up-to-date as of May 15, 2001. +Up-to-date as of Jul 31, 2003. ** Normal Packages ================== @@ -28,10 +28,10 @@ A Portable Emacs Library. Used by XEmacs MIME support. Basic TeX/LaTeX support. *** bbdb -The Big Brother Data Base +The Big Brother Data Base. *** build -Build XEmacs using custom widgets. +Build XEmacs from within (UNIX, Windows). *** c-support Basic single-file add-ons for editing C code. @@ -43,7 +43,10 @@ Emacs calculator. Calendar and diary support. *** cc-mode -C, C++ and Java language support. +C, C++, Objective-C, Java, CORBA IDL, Pike and AWK language support. + +*** clearcase +New Clearcase Version Control for XEmacs (UNIX, Windows). *** cookie Spook and Yow (Zippy quotes). @@ -54,19 +57,30 @@ Crisp/Brief emulation. *** debug GUD, gdb, dbx debugging support. +*** dictionary +Interface to RFC2229 dictionary servers. + *** dired The DIRectory EDitor is for manipulating, and running commands on files in a directory. +*** docbookide +DocBook editing support. + +*** ecb +Emacs source code browser. + +*** ecrypto +Crypto functionality in Emacs Lisp. + *** edebug -A Lisp debugger. +An Emacs Lisp debugger. *** ediff -Interface over patch. +Interface over GNU patch. *** edit-utils -Single file lisp packages for various XEmacs goodies. Load this and -weed out the junk you don't want. +Miscellaneous editor extensions, you probably need this. *** edt DEC EDIT/EDT emulation. @@ -74,24 +88,23 @@ DEC EDIT/EDT emulation. *** efs Treat files on remote systems the same as local files. -*** eicq -ICQ Client developed and tested on Linux x86; -only supported on that platform - *** eieio -Enhanced Implementation of Emacs Interpreted Objects +Enhanced Implementation of Emacs Interpreted Objects. *** elib Portable Emacs Lisp utilities library. *** emerge -Another interface over patch. +Another interface over GNU patch. *** eshell Command shell implemented entirely in Emacs Lisp. +*** ess +ESS: Emacs Speaks Statistics. + *** eterm -Terminal emulator. +Terminal emulation. *** eudc Emacs Unified Directory Client (LDAP, PH). @@ -100,10 +113,13 @@ Emacs Unified Directory Client (LDAP, PH). Footnoting in mail message editing modes. *** forms -Forms editing support (obsolete, use the built-in Widget instead). +Forms editing support (obsolete, use Widget instead). + +*** fortran-modes +Fortran support. *** frame-icon -Provide a WM icon based on major mode. +Set up mode-specific icons for each frame under XEmacs. *** fsf-compat FSF Emacs compatibility files. @@ -117,9 +133,18 @@ XEmacs bug reports. *** gnus The Gnus Newsreader and Mailreader. +*** haskell-mode +Haskell editing support. + *** hm--html-menus HTML editing. +*** hyperbole +Hyperbole: The Everyday Info Manager. + +*** ibuffer +Advanced replacement for buffer-menu. + *** idlwave Editing and Shell mode for the Interactive Data Language. @@ -130,10 +155,13 @@ Enhanced front-end for Grep. Front-end for Inferior Lisp. *** ispell -Spell-checking with ispell. +Spell-checking with GNU ispell. *** jde -Java language and development support. +Integrated Development Environment for Java. + +*** liece +IRC (Internet Relay Chat) client for Emacs. *** mail-lib Fundamental lisp files for providing email support. @@ -148,14 +176,22 @@ Messaging in an Emacs World. Front end support for MH. *** mine -Minehunt. +Minehunt Game. *** misc-games Other amusements and diversions. +*** mmm-mode +Multiple major modes in a single buffer. + *** net-utils -Miscellaneous Networking Utilities. This is a single-file package and -files may be deleted at will. +Miscellaneous Networking Utilities. + +*** ocaml +Objective Caml editing support. + +*** oo-browser +OO-Browser: The Multi-Language Object-Oriented Code Browser. *** os-utils Miscellaneous single-file O/S utilities, for printing, archiving, @@ -170,26 +206,44 @@ CVS frontend. *** pcomplete Provides programmatic completion. +*** perl-modes +Perl support. + +*** pgg +Emacs interface to various PGP implementations. + *** prog-modes -Miscellaneous single-file lisp files for various programming languages. +Support for various programming languages. -*** ps-print-nomule -Old, but no-Mule safe ps-print. +*** ps-print +Printing functions and utilities. *** psgml Validated HTML/SGML editing. +*** psgml-dtds +Deprecated collection of DTDs for psgml. + +*** python-modes +Python support. + *** reftex Emacs support for LaTeX cross-references, citations. *** rmail An obsolete Emacs mailer. If you do not already use it don't start. +*** ruby-modes +Ruby support. + +*** sasl +Simple Authentication and Security Layer (SASL) library. + *** scheme Front-end support for Inferior Scheme. *** semantic -Semantic bovinator. +Semantic bovinator (Yacc/Lex for XEmacs). Includes Senator. *** sgml SGML/Linuxdoc-SGML editing. @@ -197,9 +251,15 @@ SGML/Linuxdoc-SGML editing. *** sh-script Support for editing shell scripts. +*** sieve +Manage Sieve email filtering scripts. + *** slider User interface tool. +*** sml-mode +SML editing support. + *** sounds-au XEmacs Sun sound files. @@ -213,22 +273,22 @@ Provides a separate frame with convenient references. Mouse enhancement utility. *** supercite -An Emacs citation tool. Useful with all Emacs Mailers and Newsreaders. +An Emacs citation tool for News & Mail messages. *** texinfo XEmacs TeXinfo support. *** text-modes -Various single file lisp packages for editing text files. +Miscellaneous support for editing text files. *** textools -Single-file TeX support. +Miscellaneous TeX support. *** time Display time & date on the modeline. *** tm -Emacs MIME support. Not needed for Gnus >= 5.8.0 +Emacs MIME support. Not needed for gnus >= 5.8.0. *** tooltalk Support for building with Tooltalk. @@ -236,12 +296,14 @@ Support for building with Tooltalk. *** tpu DEC EDIT/TPU support. +*** tramp +Remote shell-based file editing. + *** vc Version Control for Free systems. *** vc-cc -Version Control for ClearCase. This package will shortly be -replaced with clearcase.el +Version Control for ClearCase (UnFree) systems. *** vhdl Support for VHDL. @@ -252,22 +314,26 @@ A Unix process browsing tool. *** viper VI emulation support. - *** vm An Emacs mailer. *** w3 A Web browser. +*** x-symbol +Semi WYSIWYG for LaTeX, HTML, etc, using additional fonts. + *** xemacs-base -Fundamental XEmacs support. Install this unless you wish a totally -naked XEmacs. +Fundamental XEmacs support, you almost certainly need this. *** xemacs-devel XEmacs Lisp developer support. This package contains utilities for supporting Lisp development. It is a single-file package so it may be tailored. +*** xslide +XSL editing support. + *** xslt-process A minor mode for (X)Emacs which allows running an XSLT processor on a buffer. @@ -283,26 +349,30 @@ To use these packages your XEmacs must be compiled with Mule support. *** edict -Lisp Interface to EDICT, Kanji Dictionary. +MULE: Lisp Interface to EDICT, Kanji Dictionary. *** egg-its -Wnn (4.2 and 6) support. SJ3 support. Must be installed prior to -XEmacs build. +MULE: Wnn (4.2 and 6) support. SJ3 support. + +*** latin-unity +MULE: find single ISO 8859 character set to encode a buffer. *** leim -Quail. Used for everything other than English and Japanese. +MULE: Quail. All non-English and non-Japanese language support. *** locale -Used for localized menubars (French and Japanese) and localized splash -screens (Japanese). +MULE: Localized menubars and localized splash screens. *** lookup -Dictionary support +MULE: Dictionary support. *** mule-base -Basic Mule support. Must be installed prior to building with Mule. +MULE: Basic Mule support, required for building with Mule. + +*** mule-ucs +MULE: Extended coding systems (including Unicode) for XEmacs. *** skk -Another Japanese Language Input Method. Can be used without a -separate process running as a dictionary server. +MULE: Another Japanese Language Input Method. Can be used +without a separate process running as a dictionary server. diff --git a/etc/README.HYPERBOLE b/etc/README.HYPERBOLE index 5b0fd2e..4559926 100644 --- a/etc/README.HYPERBOLE +++ b/etc/README.HYPERBOLE @@ -1,6 +1,12 @@ Hyperbole is a suite of tools for enhancing productivity. -The latest working version of this package with major enhancements -is available together with professional support exclusively from their -developer, BeOpen Inc. See http://www.beopen.com for product -and service details. +Hyperbole has been packaged as of 2003-07-01, and is available in an +XEmacs package archive mirror near you. If this file has not been +updated recently, please ask about status on xemacs-beta@xemacs.org, +and remind us to update this file. + +The most recent upstream version of this package is available from +SourceForge, http://projects.sourceforge.net/hyperbole/. There +apparently is no longer any commercial support, but you might query +the owner of the SourceForge project (at the time of this writing, Bob +Weiner ). diff --git a/etc/README.OO-BROWSER b/etc/README.OO-BROWSER index f480ee4..24315ba 100644 --- a/etc/README.OO-BROWSER +++ b/etc/README.OO-BROWSER @@ -1,6 +1,12 @@ The OO-Browser is a tool for examining object oriented code. -The latest working version of this package with major enhancements -is available together with professional support exclusively from their -developer, BeOpen Inc. See http://www.beopen.com for product -and service details. +The OO-Browser is a candidate for XEmacs packaging as of 2003-07-01, +and may be available in an XEmacs package archive mirror near you. If +this file has not been updated recently, please ask about status on +xemacs-beta@xemacs.org, and remind us to update this file. + +The most recent upstream version of this package is available from +SourceForge, http://projects.sourceforge.net/oo-browser/. There +apparently is no longer any commercial support, but you might query +the owner of the SourceForge project (at the time of this writing, Bob +Weiner ). diff --git a/etc/sample.Xdefaults b/etc/sample.Xdefaults index 091e8fc..2b512a4 100644 --- a/etc/sample.Xdefaults +++ b/etc/sample.Xdefaults @@ -204,8 +204,27 @@ Emacs*toolBarShadowThickness: 2 ! Note that the menubar resources do not use the `face' syntax, since they ! are X toolkit widgets and thus outside the domain of XEmacs proper. ! -Emacs*menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* -Emacs*popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +! When X Font Sets are enabled with ./configure --with-xfs (eg, for +! multilingual menubars and XIM), some .font resources (those specific to +! the Lucid widget set) are ignored in favor of .fontSet resources. +! Note that you need to use fontSet (or FontSet) in that case even if you +! want to specify one font: +! +! *menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +! +! There is no harm in having both resources set, except for the confusion +! you suffer. Sorry; that's the price of backward compatibility. +! +*menubar*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +*popup*Font: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-* +*menubar*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ + -*-*-*-*-*-*-*-120-*-iso10646-1, \ + -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \ + -*-*-*-*-*-*-*-120-*-jisx0201.1976-0 +*popup*FontSet: -*-helvetica-bold-r-*-*-*-120-*-*-*-*-iso8859-*, \ + -*-*-*-*-*-*-*-120-*-iso10646-1, \ + -*-*-*-*-*-*-*-120-*-jisx0208.1983-0, \ + -*-*-*-*-*-*-*-120-*-jisx0201.1976-0 ! Font in the Motif dialog boxes. ! (Motif uses `fontList' while most other things use `font' - if you don't diff --git a/lib-src/ChangeLog b/lib-src/ChangeLog index 33320e9..2a80629 100644 --- a/lib-src/ChangeLog +++ b/lib-src/ChangeLog @@ -1,3 +1,12 @@ +2003-09-03 Vin Shelton + + * XEmacs 21.4.14 is released + +2003-06-30 Andrew Begel + + * make-docfile.c (write_c_args): Escape newlines that arise in the + C argument list. + 2003-05-25 XEmacs Build Bot * XEmacs 21.4.13 is released diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c index aeee24a..4cbe8c2 100644 --- a/lib-src/make-docfile.c +++ b/lib-src/make-docfile.c @@ -477,6 +477,12 @@ write_c_args (FILE *out, const char *func, char *buff, int minargs, in_ident = 0; just_spaced = 0; } + /* If the character is carriage return, escape it for the C compiler. */ + else if (c == '\n') + { + putc('\\', out); + putc('\n', out); + } else if (c != ' ' || ! just_spaced) { if (c >= 'a' && c <= 'z') diff --git a/lisp/about.el b/lisp/about.el index 635b2a1..b55845f 100644 --- a/lisp/about.el +++ b/lisp/about.el @@ -167,14 +167,14 @@ (defvar about-current-release-maintainers ;; this list should not necessarily be in sorted order. - '(turnbull adrian ben hniksic jason martin piper sperber youngs)) + '(vin turnbull adrian ben martin piper sperber youngs)) (defvar about-other-current-hackers ;; to sort this list or the one below, use: ;; M-x sort-regexp-fields RET [a-z]+ RET \(.*\) RET - '(aj alastair cgw craig daiki dan dv fabrice golubev gunnar hisashi - jan jareth jmiller jonathan kazz kirill larsi morioka mta ograf - olivier oscar pittman tomonori tuck vin wmperry yoshiki)) + '(aj alastair cgw craig daiki dan dv fabrice golubev gunnar hisashi hniksic + jan jareth jmiller jason jonathan kazz kirill larsi morioka mta ograf + olivier oscar pittman tomonori tuck wmperry yoshiki)) (defvar about-once-and-future-hackers '(ajc baw bw chr cthomp darrylo devin dkindred dmoore eb hbs hmuller @@ -1347,14 +1347,12 @@ Stephen lives with his Japanese wife and children in Tsukuba, Japan, where he is a professor of economics at the University of Tsukuba.\n")) (vin (widget-insert "\ -I own and operate my own consulting firm, EtherSoft. Shhh, don't -tell anyone, but it's named after an Ultimate team I used to play -with in Austin, Texas - the Ether Bunnies. I'm getting too old -to play competitive Ultimate any more, so now I've gotten roped -into serving on the board of directors of the Ultimate Players -Association. See ") - (about-url-link 'vin nil "Visit the UPA homepage") - (widget-insert ".\n")) +I'm a software engineer and manager for Teradyne in Boston. I used +to play a lot of Ultimate - see ") + (about-url-link 'vin nil "Visit the Ultimate Players Association homepage") + (widget-insert " for more details. +Nowadays I'm a family man, so I spend a lot of time with my wife, +Becky, and my son, Noah.\n")) (vladimir (widget-insert "\ Former technical lead for XEmacs at Sun. He is now writing a book on @@ -1759,12 +1757,11 @@ Responsible for getting the current release of XEmacs out the door.\n")) (vin (widget-insert "\ -Vin helps maintain the older, more mature (read: moldy) versions of -XEmacs. Vin maintains the XEmacs patch pages in order to bring a more -stable XEmacs. (Actually, he does it 'cause it's fun and he's been -using emacs for a long, long time.) Vin also contributed the detached -minibuffer code as well as a few minor enhancements to the menubar -options.\n")) +Vin maintains the stable version of XEmacs. This involves reviewing +a lot of other peoples' patches and testing and applying them. +He also gets to generate his own patches from time to time. Being +release manager is a fun way to contribute to the XEmacs project. +Write me at acs@xemacs.org if you're interested in learning more.\n")) (vladimir (widget-insert "\ Former technical lead for XEmacs at Sun.\n")) diff --git a/lisp/byte-optimize.el b/lisp/byte-optimize.el index 22e62ce..8ae9d24 100644 --- a/lisp/byte-optimize.el +++ b/lisp/byte-optimize.el @@ -357,7 +357,9 @@ (byte-compile-warn "attempt to open-code %s with too many arguments" name)) form) - (setq body (mapcar 'byte-optimize-form body)) + ;; This line, introduced in v1.10, can cause an infinite + ;; recursion when inlining recursive defsubst's +; (setq body (mapcar 'byte-optimize-form body)) (let ((newform (if bindings (cons 'let (cons (nreverse bindings) body)) diff --git a/lisp/cl-macs.el b/lisp/cl-macs.el index 05d88da..fc2c48a 100644 --- a/lisp/cl-macs.el +++ b/lisp/cl-macs.el @@ -149,26 +149,47 @@ ARGLIST allows full Common Lisp conventions." (defvar cl-macro-environment nil) (defvar bind-block) (defvar bind-defs) (defvar bind-enquote) (defvar bind-inits) (defvar bind-lets) (defvar bind-forms) +(defvar arglist-visited) ;; npak@ispras.ru (defun cl-upcase-arg (arg) - ;; Changes all non-keyword sysmbols in `arg' to symbols + ;; Changes all non-keyword symbols in `ARG' to symbols ;; with name in upper case. - ;; arg is either symbol or list of symbols or lists - (cond ((symbolp arg) - (if (memq arg lambda-list-keywords) - ;; Do not upcase &optional, &key etc. - arg + ;; ARG is either symbol or list of symbols or lists + (cond ;;((null arg) 'NIL) + ((symbolp arg) + ;; Do not upcase &optional, &key etc. + (if (memq arg lambda-list-keywords) arg (intern (upcase (symbol-name arg))))) ((listp arg) - (mapcar 'cl-upcase-arg arg)))) + (if (memq arg arglist-visited) (error 'circular-list '(arg))) + (cl-push arg arglist-visited) + (let ((arg (copy-list arg)) junk) + ;; Clean the list + (let ((p (last arg))) (if (cdr p) (setcdr p (list '&rest (cdr p))))) + (if (setq junk (cadr (memq '&cl-defs arg))) + (setq arg (delq '&cl-defs (delq junk arg)))) + (if (memq '&cl-quote arg) + (setq arg (delq '&cl-quote arg))) + (mapcar 'cl-upcase-arg arg))) + (t arg) ; May be we are in initializer + )) ;; npak@ispras.ru -(defun cl-function-arglist (function agrlist) +(defun cl-function-arglist (name arglist) "Returns string with printed representation of arguments list. Supports Common Lisp lambda lists." - (prin1-to-string - (cons function (cl-upcase-arg agrlist)))) + (if (not (or (listp arglist) (symbolp arglist))) "Not available" + (setq arglist-visited nil) + (condition-case nil + (prin1-to-string + (cons (if (eq name 'cl-none) 'lambda name) + (cond ((null arglist) nil) + ((listp arglist) (cl-upcase-arg arglist)) + ((symbolp arglist) + (cl-upcase-arg (list '&rest arglist))) + (t (wrong-type-argument 'listp arglist))))) + (t "Not available")))) (defun cl-transform-lambda (form bind-block) (let* ((args (car form)) (body (cdr form)) @@ -177,12 +198,13 @@ Supports Common Lisp lambda lists." (header nil) (simple-args nil) (doc "")) ;; Add CL lambda list to documentation. npak@ispras.ru - (if (stringp (car body)) + (if (and (stringp (car body)) + (cdr body)) (setq doc (cl-pop body))) - (cl-push (concat "\nCommon Lisp lambda list:\n" + (cl-push (concat doc + "\nCommon Lisp lambda list:\n" " " (cl-function-arglist bind-block args) - "\n\n" - doc) + "\n\n") header) (while (or (stringp (car body)) (eq (car-safe (car body)) 'interactive)) diff --git a/lisp/code-process.el b/lisp/code-process.el index 09279c8..1b493d5 100644 --- a/lisp/code-process.el +++ b/lisp/code-process.el @@ -1,6 +1,7 @@ ;;; code-process.el --- Process coding functions for XEmacs. -;; Copyright (C) 1985-1987, 1993, 1994, 1997 Free Software Foundation, Inc. +;; Copyright (C) 1985-1987, 1993, 1994, 1997, 2003 +;; Free Software Foundation, Inc. ;; Copyright (C) 1995 Ben Wing ;; Copyright (C) 1997 MORIOKA Tomohiko @@ -11,8 +12,6 @@ ;; This file is part of XEmacs. -;; This file is very similar to code-process.el - ;; XEmacs is free software; you can redistribute it and/or modify it ;; under the terms of the GNU General Public License as published by ;; the Free Software Foundation; either version 2, or (at your option) @@ -28,6 +27,10 @@ ;; Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ;; 02111-1307, USA. +;;; Commentary: + +;; This file has some similarities to code-files.el. + ;;; Code: (defvar process-coding-system-alist nil @@ -60,7 +63,12 @@ If BUFFER is 0, `call-process' returns immediately with value nil. Otherwise it waits for PROGRAM to terminate and returns a numeric exit status or a signal description string. If you quit, the process is killed with SIGINT, or SIGKILL if you - quit again." + quit again. + +Coding systems are taken from `coding-system-for-read' for input and +`coding-system-for-write' for output if those variables are bound. +Otherwise they are looked up in `process-coding-system-alist'. If not +found, they default to `nil' for both input and output." (let* ((coding-system-for-read (or coding-system-for-read (let (ret) @@ -105,7 +113,12 @@ If BUFFER is 0, returns immediately with value nil. Otherwise waits for PROGRAM to terminate and returns a numeric exit status or a signal description string. If you quit, the process is first killed with SIGINT, then with SIGKILL if -you quit again before the process exits." +you quit again before the process exits. + +Coding systems are taken from `coding-system-for-read' for input and +`coding-system-for-write' for output if those variables are bound. +Otherwise they are looked up in `process-coding-system-alist'. If not +found, they default to `nil' for both input and output." (let ((temp (make-temp-name (concat (file-name-as-directory (temp-directory)) "emacs")))) @@ -151,8 +164,12 @@ BUFFER is the buffer or (buffer-name) to associate with the process. with any buffer Third arg is program file name. It is searched for as in the shell. Remaining arguments are strings to give program as arguments. -INCODE and OUTCODE specify the coding-system objects used in input/output - from/to the process." + +Coding systems are taken from `coding-system-for-read' for input and +`coding-system-for-write' for output if those variables are bound. +Otherwise they are looked up in `process-coding-system-alist'. If not +found, they default to `undecided' for input and `nil' (binary) for +output." (let (cs-r cs-w) (let (ret) (catch 'found diff --git a/lisp/font-lock.el b/lisp/font-lock.el index 5ee4072..1734010 100644 --- a/lisp/font-lock.el +++ b/lisp/font-lock.el @@ -1982,7 +1982,7 @@ Each keyword has the form (MATCHER HIGHLIGHT ...). See `font-lock-keywords'." "\\)\\)\\>" ;; Any whitespace and declared object. "[ \t'\(]*" - "\\([^ \t\n\)]+\\)?") + "\\([^ \t\n\(\)]+\\)?") '(1 font-lock-keyword-face) '(8 (cond ((match-beginning 3) 'font-lock-variable-name-face) ((match-beginning 6) 'font-lock-type-face) @@ -2710,32 +2710,34 @@ The name is assumed to begin with a capital letter.") ;; the cursor to fontify more identifiers. (defun font-lock-match-java-declarations (limit) "Match and skip over variable definitions." - (if (looking-at "\\s *\\(\\[\\s *\\]\\s *\\)*") - (goto-char (match-end 0))) - (and - (looking-at java-font-lock-identifier-regexp) - (save-match-data - (not (string-match java-font-lock-type-regexp - (buffer-substring (match-beginning 1) - (match-end 1))))) - (save-match-data - (save-excursion - (goto-char (match-beginning 1)) - (not (looking-at - (concat java-font-lock-class-name-regexp - "\\s *\\(\\[\\s *\\]\\s *\\)*\\<"))))) - (save-match-data - (condition-case nil - (save-restriction - (narrow-to-region (point-min) limit) - (goto-char (match-end 0)) - ;; Note: Both `scan-sexps' and the second goto-char can - ;; generate an error which is caught by the - ;; `condition-case' expression. - (while (not (looking-at "\\s *\\(\\(,\\)\\|;\\|$\\)")) - (goto-char (or (scan-sexps (point) 1) (point-max)))) - (goto-char (match-end 2))) ; non-nil - (error t))))) + (save-restriction + (narrow-to-region (point-min) limit) + + (if (looking-at "\\s *\\(\\[\\s *\\]\\s *\\)*") + (goto-char (match-end 0))) + (and + (looking-at java-font-lock-identifier-regexp) + (save-match-data + (not (string-match java-font-lock-type-regexp + (buffer-substring (match-beginning 1) + (match-end 1))))) + (save-match-data + (save-excursion + (goto-char (match-beginning 1)) + (not (looking-at + (concat java-font-lock-class-name-regexp + "\\s *\\(\\[\\s *\\]\\s *\\)*\\<"))))) + (save-match-data + (condition-case nil + (progn + (goto-char (match-end 0)) + ;; Note: Both `scan-sexps' and the second goto-char can + ;; generate an error which is caught by the + ;; `condition-case' expression. + (while (not (looking-at "\\s *\\(\\(,\\)\\|;\\|$\\)")) + (goto-char (or (scan-sexps (point) 1) (point-max)))) + (goto-char (match-end 2))) ; non-nil + (error t)))))) (defvar tex-font-lock-keywords diff --git a/lisp/keydefs.el b/lisp/keydefs.el index b7296d0..2f23834 100644 --- a/lisp/keydefs.el +++ b/lisp/keydefs.el @@ -651,13 +651,13 @@ Keymap for characters following C-c.") (define-key global-map 'kp-8 'self-insert-command) (define-key global-map 'kp-9 'self-insert-command) -(define-key global-map 'select 'function-key-error) -(define-key global-map 'print 'function-key-error) +;(define-key global-map 'select 'function-key-error) +;(define-key global-map 'print 'function-key-error) (define-key global-map 'execute 'execute-extended-command) -(define-key global-map 'clearline 'function-key-error) +;(define-key global-map 'clearline 'function-key-error) (define-key global-map 'insertline 'open-line) (define-key global-map 'deleteline 'kill-line) -(define-key global-map 'insertchar 'function-key-error) +;(define-key global-map 'insertchar 'function-key-error) (define-key global-map 'deletechar 'delete-char) ;;; keydefs.el ends here diff --git a/lisp/lisp-mode.el b/lisp/lisp-mode.el index 00f8c30..ac05da6 100644 --- a/lisp/lisp-mode.el +++ b/lisp/lisp-mode.el @@ -260,6 +260,16 @@ All commands in `shared-lisp-mode-map' are inherited by this map.") ;; doesn't need them. ) +;; XEmacs: add docstrings to the hooks +(defvar emacs-lisp-mode-hook nil + "Hook to run when entering emacs-lisp-mode.") + +(defvar lisp-mode-hook nil + "Hook to run when entering lisp-mode.") + +(defvar lisp-interaction-mode-hook nil + "Hook to run when entering lisp-interaction-mode.") + (defun emacs-lisp-byte-compile () "Byte compile the file containing the current buffer." (interactive) diff --git a/lwlib/ChangeLog b/lwlib/ChangeLog index 4020bc0..24b7bc7 100644 --- a/lwlib/ChangeLog +++ b/lwlib/ChangeLog @@ -1,3 +1,7 @@ +2003-09-03 Vin Shelton + + * XEmacs 21.4.14 is released + 2003-05-25 XEmacs Build Bot * XEmacs 21.4.13 is released diff --git a/man/ChangeLog b/man/ChangeLog index 0eb82fa..d332342 100644 --- a/man/ChangeLog +++ b/man/ChangeLog @@ -1,3 +1,38 @@ +2003-09-03 Vin Shelton + + * XEmacs 21.4.14 is released + +2003-07-31 René Kyllingstad + + * lispref/display.texi (Invisible Text): + mention line-move-ignore-invisible. + * lispref/extents.texi (Extent Properties): + end-glyph will still be displayed when invisible is set. + * lispref/extents.texi (Extents and Events): + only begin-glyph is highlighted. + +2003-08-12 Stephen J. Turnbull + + * xemacs-faq.texi (Q1.3.8): Fix typo, note errorneous recognition. + +2003-08-05 Stephen J. Turnbull + + * lispref/packaging.texi (Creating Packages): + * xemacs/packages.texi (Creating Packages): + Style guideline for package-info.in description. + +2003-06-30 Stephen J. Turnbull + + * xemacs-faq.texi (Q3.2.2): Fix typo. + +2003-06-17 Vin Shelton + + * xemacs-faq.texi: Sync up with latest version from 21.5. + +2003-04-28 Stephen J. Turnbull + + * xemacs-faq.texi (Q6.4.3): New: auxiliary programs for Windows. + 2003-05-25 XEmacs Build Bot * XEmacs 21.4.13 is released diff --git a/man/lispref/display.texi b/man/lispref/display.texi index 2efc741..3263dbe 100644 --- a/man/lispref/display.texi +++ b/man/lispref/display.texi @@ -518,7 +518,9 @@ by a visible newline, it displays an ellipsis. Ordinarily, commands that operate on text or move point do not care whether the text is invisible. However, the user-level line motion -commands explicitly ignore invisible newlines. +commands explicitly ignore invisible newlines. Since this causes a +slow-down of these commands it is turned off by default, controlled by +the variable @code{line-move-ignore-invisible}. @node Selective Display @section Selective Display diff --git a/man/lispref/extents.texi b/man/lispref/extents.texi index bbe777d..ac56b6a 100644 --- a/man/lispref/extents.texi +++ b/man/lispref/extents.texi @@ -574,7 +574,8 @@ this extent attached at a time. @xref{Duplicable Extents}. @item invisible (Boolean) If @code{t}, text under this extent will not be displayed -- -it will look as if the text is not there at all. +it will look as if the text and the begin-glyph is not there at all. +The end-glyph will still be displayed. @item keymap (keymap or @code{nil}) This keymap is consulted for mouse clicks on this @@ -894,8 +895,9 @@ overlaps the new range, the extent will simply be extended and the @section Interaction of Extents with Keyboard and Mouse Events If an extent has the @code{mouse-face} property set, it will be -highlighted when the mouse passes over it. Highlighting is accomplished -by merging the extent's face with the face or faces specified by the +highlighted when the mouse passes over it. This includes the +begin-glyph, but not the end-glyph. Highlighting is accomplished by +merging the extent's face with the face or faces specified by the @code{mouse-face} property. The effect is as if a pseudo-extent with the @code{mouse-face} face were inserted after the extent in the display order (@pxref{Extent Endpoints}, display order). diff --git a/man/xemacs-faq.texi b/man/xemacs-faq.texi index 524dc3e..a56aca7 100644 --- a/man/xemacs-faq.texi +++ b/man/xemacs-faq.texi @@ -7,7 +7,7 @@ @finalout @titlepage @title XEmacs FAQ -@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2002/12/04 14:04:08 $ +@subtitle Frequently asked questions about XEmacs @* Last Modified: $Date: 2003/05/02 06:00:43 $ @sp 1 @author Tony Rossini @author Ben Wing @@ -84,6 +84,7 @@ library directory>/info/}. For example in * Miscellaneous:: The Miscellaneous Stuff. * MS Windows:: XEmacs on Microsoft Windows. * Current Events:: What the Future Holds. +* Legacy Versions:: New information about old XEmacsen. @detailmenu @@ -149,8 +150,8 @@ Installation and Trouble Shooting * Q2.0.10:: After I run configure I find a coredump, is something wrong? * Q2.0.11:: XEmacs can't resolve host names. * Q2.0.12:: Why can't I strip XEmacs? -* Q2.0.13:: I don't need no steenkin' packages. Do I? (NEW) -* Q2.0.14:: How do I figure out which packages to install? (NEW) +* Q2.0.13:: I don't need no steenkin' packages. Do I? +* Q2.0.14:: How do I figure out which packages to install? * Q2.0.15:: EFS fails with "500 AUTH not understood" (NEW) * Q2.0.16:: Cygwin XEmacs won't start: cygXpm-noX4.dll was not found (NEW) @@ -178,8 +179,8 @@ Trouble Shooting: * Q2.1.21:: [This question intentionally left blank] * Q2.1.22:: XEmacs seems to take a really long time to do some things. * Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. -* Q2.1.24:: XEmacs won't start without network. (NEW) -* Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW) +* Q2.1.24:: XEmacs won't start without network. +* Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! Customization and Options @@ -269,7 +270,7 @@ Text Selections: * Q3.10.3:: Can I turn off the highlight during isearch? * Q3.10.4:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)? * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling. -* Q3.10.6:: Why is killing so slow? (NEW) +* Q3.10.6:: Why is killing so slow? Major Subsystems @@ -389,7 +390,7 @@ General Info: * Q6.0.5:: I'd like to help out. What do I do? * Q6.0.6:: What are Cygwin and MinGW, and do I need them to run XEmacs? * Q6.0.7:: What exactly are all the different ways to build XEmacs under Windows? - + Building XEmacs on MS Windows: * Q6.1.1:: What compiler/libraries do I need to compile XEmacs? * Q6.1.2:: How do I compile the native port? @@ -405,7 +406,6 @@ Customization and User Interface: * Q6.2.3:: Where do I put my @file{init.el}/@file{.emacs} file? * Q6.2.4:: How do I get Windows Explorer to associate a file type with XEmacs? * Q6.2.5:: Is it possible to print from XEmacs? - Miscellaneous: * Q6.3.1:: Does XEmacs rename all the @samp{win32-*} symbols to @samp{w32-*}? @@ -416,14 +416,22 @@ Miscellaneous: Troubleshooting: * Q6.4.1:: XEmacs won't start on Windows. * Q6.4.2:: Why do I get a blank toolbar on Windows 95? +* Q6.4.3:: XEmacs complains "No such file or directory, diff" + +What the Future Holds -Current Events: * Q7.0.1:: What new features will be in XEmacs soon? * Q7.0.2:: What's new in XEmacs 21.4? * Q7.0.3:: What's new in XEmacs 21.1? * Q7.0.4:: What's new in XEmacs 20.4? * Q7.0.5:: What's new in XEmacs 20.3? * Q7.0.6:: What's new in XEmacs 20.2? + +New information about old XEmacsen. + +XEmacs 21.1: +* Q8.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1. + @end detailmenu @end menu @@ -794,7 +802,7 @@ developers responsible for recent releases are: @end html -@item @email{turnbull@@sk.tsukuba.ac.jp, Steven Turnbull} +@item @email{stephen@@xemacs.org, Stephen Turnbull} @item @email{ben@@xemacs.org, Ben Wing} @@ -912,10 +920,12 @@ crash some time ago. @unnumberedsubsec Q1.3.1: What is the status of internationalization support aka MULE (including Asian language support? Both the stable and development versions of XEmacs include -internationalization support (aka MULE). MULE currently works on UNIX -and Linux systems; work for supporting MULE on Windows operating systems -is in progress. Binaries compiled without MULE support run faster than -MULE capable XEmacsen. +internationalization support (aka MULE). MULE currently (21.4) works on +UNIX and Linux systems. It is possible to build with MULE on Windows +systems, but if you really need MULE on Windows, it is recommended that +you build and use the development (21.5) version, and deal with the +instability of the development tree. Binaries compiled without MULE +support run faster than MULE capable XEmacsen. @node Q1.3.2, Q1.3.3, Q1.3.1, Introduction @unnumberedsubsec Q1.3.2: How can I help with internationalization? @@ -925,20 +935,31 @@ If you would like to help, you may want to join the people who speak/write languages other than English, who are willing to use XEmacs/MULE regularly, and have some experience with Elisp. +Translations of the TUTORIAL and man page are welcome, and XEmacs does +support multilingual menus, but we have few current translations. + @xref{Q1.1.2}. @node Q1.3.3, Q1.3.4, Q1.3.2, Introduction @unnumberedsubsec Q1.3.3: How do I type non-ASCII characters? -See question 3.5.7 (@pxref{Q3.5.7}) in part 3 of this FAQ. +See question 3.5.7 (@pxref{Q3.5.7}) in part 3 of this FAQ for some +simple methods that also work in non-MULE builds of XEmacs (but only for +one-octet coded character sets, and mostly for ISO 8859/1). Many of the +methods available for Cyrillic (@pxref{Q1.3.7}) work without MULE. +MULE has more general capabilities. @xref{Q1.3.5}. + +@xref{Q3.2.7}, which covers display of non-ASCII characters. @node Q1.3.4, Q1.3.5, Q1.3.3, Introduction @unnumberedsubsec Q1.3.4: Can XEmacs messages come out in a different language? -The message-catalog support has mostly been written but doesn't -currently work. The first release of XEmacs 20 will @emph{not} support -it. However, menubar localization @emph{does} work. To -enable it, add to your @file{Emacs} file entries like this: +The message-catalog support was written but is badly bit-rotted. XEmacs +20 and 21 did @emph{not} support it, and early releases of XEmacs 22 +will not either. + +However, menubar localization @emph{does} work. To enable it, add to +your @file{Emacs} file entries like this: @example Emacs*XlwMenu.resourceLabels: True @@ -952,30 +973,73 @@ removing punctuation and capitalizing as above. @node Q1.3.5, Q1.3.6, Q1.3.4, Introduction @unnumberedsubsec Q1.3.5: Please explain the various input methods in MULE/XEmacs -@email{morioka@@jaist.ac.jp, MORIOKA Tomohiko} writes: +Mule supports a wide variety of input methods. There are three basic +classes: Lisp implementations, generic platform support, and library +interfaces. + +@emph{Lisp implementations} include Quail, which provides table-driven input +methods for almost all the character sets that Mule supports (including +all of the ISO 8859 family, the Indic languages, Thai, and so on), and +SKK, for Japanese. (SKK also supports an interface to an external +"dictionary server" process.) Quail supports both typical "dead-key" +methods (eg, in the "latin-1-prefix" method, @kbd{" a} produces ä, LATIN +SMALL LETTER A WITH DIAERESIS), and the complex dictionary-based phonetic +methods used for Asian ideographic languages like Chinese. + +Lisp implementations can be less powerful (but they are not perceptibly +inefficient), and of course are not portable to non-Emacs applications. +The incompatibility can be very annoying. On the other hand, they +require no special platform support or external libraries, so if you can +display the characters, Mule can input them for you and you can edit, +anywhere. + +@emph{Generic platform support} is currently limited to the X Input +Method (XIM) framework, although support for MSIME (for MS Windows) is +planned, and IIIMF (Sun's Internet-Intranet Input Method Framework) +support is extremely desirable. XIM is enabled at build time by use of +the @samp{--with-xim} flag to @code{configure}. For use of XIM, see +your platform documentation. However, normally the input method you use +is specified via the @samp{LANG} and @samp{XMODIFIERS} environment +variables. -@quotation -Original Mule supports the following input methods: Wnn4, Wnn6, Canna, SJ3 -and XIM. Interfaces for Wnn and SJ3 uses the @code{egg} user -interface. Interface for Canna does not use @samp{egg}. I don't know -about XIM. It is to support ATOK, of course, it may work for another -servers. +Of course, input skills are portable across most applications. However, +especially in modern GUI systems the habit of using bucky bits has +fallen into sad disuse, and many XIM systems are poorly configured for +use with Emacs. For example, the kinput2 input manager (a separate +process providing an interface between Japanese dictionary servers such +as Canna and Wnn, and the application) tends to gobble up keystrokes +generating Meta characters. This means that to edit while using an XIM +input method, you must toggle the input method off every time you want +to use @kbd{M-f}. Your mileage may vary. + +@emph{Library interfaces} are most common for Japanese, although Wnn +supports Chinese (traditional and simplified) and Korean. There are +Chinese and Korean input servers available, but we do not know of any +patches for XEmacs to use them directly. You can use them via +IM-enabled terminals, by manipulating the terminal coding systems. We +describe only the Japanese-oriented systems here. The advantage of +these systems is that they are very powerful, and on platforms where +they are available there is typically a wide range of applications that +support them. Thus your input skills are portable across applications. + +Mule provides built-in interfaces to the following input methods: Wnn4, +Wnn6, Canna, and SJ3. These can be configured at build time. There are +patches available (no URL, sorry) to support the SKK server, as well. +Wnn and SJ3 use the @code{egg} user interface. The interface for Canna +is specialized to Canna. Wnn supports Japanese, Chinese and Korean. It is made by OMRON and Kyôto -university. It is a powerful and complex system. Wnn4 is free and Wnn6 -is not free. +University. It is a powerful and complex system. Wnn4 is free and Wnn6 +is not. Wnn uses grammatical hints and probability of word association, +so in principle Wnn can be cleverer than other methods. -Canna supports only Japanese. It is made by NEC. It is a simple and -powerful system. Canna uses only grammar (Wnn uses grammar and -probability between words), so I think Wnn is cleverer than Canna, -however Canna users made a good grammar and dictionary. So for standard -modern Japanese, Canna seems cleverer than Wnn4. In addition, the UNIX -version of Canna is free (now there is a Microsoft Windows version). +Canna, made by NEC, supports only Japanese. It is a simple and powerful +system. Canna uses only grammar, but its grammar and dictionary are +quite sophisticated. So for standard modern Japanese, Canna seems +cleverer than Wnn4. In addition, the UNIX version of Canna is free (now +there is a Microsoft Windows version). -SJ3 supports only Japanese. It is made by Sony. XIM supports was made -to use ATOK (a major input method in personal computer world). XIM is -the standard for accessing input methods bundled in Japanese versions of -Solaris. (XEmacs 20 will support XIM input). +SJ3, by Sony, supports only Japanese. Egg consists of following parts: @@ -986,35 +1050,50 @@ It translates ASCII inputs to Kana/PinYin/Hangul characters. @item Kana/PinYin/Hangul to Kanji transfer layer. -It is interface layer for network Kana-Kanji server (Wnn and Sj3). +The interface layer to network Kana-Kanji server (Wnn and Sj3). @end enumerate -These input methods are modal, namely there are mode, alphabet mode and -Kana-Kanji transfer mode. However there are mode-less input methods for -Egg and Canna. @samp{Boiled-egg} is a mode-less input method running on -Egg. For Canna, @samp{canna.el} has a tiny boiled-egg like command, -@code{(canna-boil)}, and there are some boiled-egg like utilities. In -addition, it was planned to make an abstraction for all transfer type -input methods. However authors of input methods are busy, so maybe this -plan is stopped. Perhaps after Mule merged GNU Emacs will be released, -it will be continued. -@end quotation +These input methods are modal. They have a raw (alphabet) mode, a +phonetic input mode, and Kana-Kanji transfer mode. However there are +mode-less input methods for Egg and Canna. @samp{boiled-egg} is a +mode-less input method running on Egg. For Canna, @samp{canna.el} has a +tiny boiled-egg-like command, @code{(canna-boil)}, and there are some +boiled-egg-like utilities. + +Much of this information was provided by @email{morioka@@jaist.ac.jp, +MORIOKA Tomohiko}. @node Q1.3.6, Q1.3.7, Q1.3.5, Introduction @unnumberedsubsec Q1.3.6: How do I portably code for MULE/XEmacs? +MULE has evolved rapidly over the last few years, and the original third +party patch (for GNU Emacs 19), GNU Emacs 20+, and XEmacs 20+ have quite +different implementations. The APIs also vary although recent versions +of XEmacs have tended to converge to the GNU Emacs standard. + +MULE implementations are going to continue to evolve. Both GNU Emacs +and XEmacs are working hard on Unicode support, which will involve new +APIs and probably variations on old ones. For XEmacs 22, the old ISO +2022-based system for recognizing encodings will be replaced by a much +more flexible system, which should improve accuracy of automatic coding +detections, but will also involve new APIs. + @email{morioka@@jaist.ac.jp, MORIOKA Tomohiko} writes: @quotation -MULE and XEmacs are quite different. So the application -implementor must write separate code for these mule variants. +The application implementor must write separate code for these mule +variants. [Please don't hesitate to report these variants to us; they +are not, strictly speaking, bugs, but they give third-party developers +the same kind of creepy-crawly feeling. We'll do what we can. -- Ed.] MULE and the next version of Emacs are similar but the symbols are very different---requiring separate code as well. Namely we must support 3 kinds of mule variants and 4 or 5 or 6 kinds of emacs variants... (;_;) I'm shocked, so I wrote a wrapper package called -@code{emu} to provide a common interface. +@code{emu} to provide a common interface. [There is an XEmacs package +of APEL which provides much more comprehensive coverage. Be careful, +however; APEL has problems of its own. -- Ed.] I have the following suggestions about dealing with mule variants: @@ -1092,17 +1171,23 @@ XEmacs) is @uref{http://www.ibiblio.org/sergei/Software/Software.html} Partially, as an external encoding for files, processes, and terminals. It does not yet support Unicode fonts @ref{Q1.3.9, Does XEmacs support -Unicode Fonts?}. +Unicode Fonts?} To get Unicode support, you need a Mule-enabled XEmacs. Install Mule-UCS from packages in the usual way. Put +@example (require 'un-define) (set-coding-priority-list '(utf-8)) -(set-coding-category-system 'utf-8 utf-8) +(set-coding-category-system 'utf-8 'utf-8) +@end example + +in your init file to enable the UTF-8 coding system. You may wish to +view the documentation of @code{set-coding-priority-list} if you find +that files that are not UTF-8 are being mis-recognized as UTF-8. Install standard national fonts (not Unicode fonts) for all -character sets you use. +character sets you use. See @ref{Q1.3.9}. Mule-UCS also supports 16-bit forms of Unicode (UTF-16). It does not support 31-bit forms of Unicode (UTF-32 or UCS-4). @@ -1273,8 +1358,8 @@ Installation: * Q2.0.10:: After I run configure I find a coredump, is something wrong? * Q2.0.11:: XEmacs can't resolve host names. * Q2.0.12:: Why can't I strip XEmacs? -* Q2.0.13:: I don't need no steenkin' packages. Do I? (NEW) -* Q2.0.14:: I don't want to install a million .els one at a time! (NEW) +* Q2.0.13:: I don't need no steenkin' packages. Do I? +* Q2.0.14:: I don't want to install a million .els one at a time! * Q2.0.15:: EFS fails with "500 AUTH not understood" (NEW) * Q2.0.16:: Cygwin XEmacs won't start: cygXpm-noX4.dll was not found (NEW) @@ -1302,8 +1387,8 @@ Trouble Shooting: * Q2.1.21:: [This question intentionally left blank] * Q2.1.22:: XEmacs seems to take a really long time to do some things. * Q2.1.23:: Movemail on Linux does not work for XEmacs 19.15 and later. -* Q2.1.24:: XEmacs won't start without network. (NEW) -* Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW) +* Q2.1.24:: XEmacs won't start without network. +* Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! @end menu @node Q2.0.1, Q2.0.2, Installation, Installation @@ -1337,7 +1422,7 @@ the packages you'll never want to use. Remove the TexInfo manuals. Remove the Info (and use just hardcopy versions of the manual). Remove most of the stuff in etc. Remove or gzip all the source code. Gzip or remove the C source code. Configure it so that copies are not made of -the support lisp. +the support lisp. These are all Emacs Lisp source code and bytecompiled object code. You may safely gzip everything named *.el here. You may remove any package @@ -1429,6 +1514,11 @@ There have been a variety of reports of crashes due to compilers with buggy optimizers. Please see the @file{PROBLEMS} file that comes with XEmacs to read what it says about your platform. +If you compiled XEmacs using @samp{--use-union-type} (or the option +@samp{USE_UNION_TYPE} in @file{config.inc} under Windows), try +recompiling again without it. The union type has been known to trigger +compiler errors in a number of cases. + @node Q2.0.7, Q2.0.8, Q2.0.6, Installation @unnumberedsubsec Q2.0.7: Libraries in non-standard locations @@ -1508,6 +1598,9 @@ site @* @end iftex @uref{ftp://ftp.xemacs.org/pub/xemacs/aux/}. +[These tarballs and this FAQ are wa-a-ay out of date. Sorry, I'm not +currently network-capable, and I will probably forgot to update this +before submitting the patch. -- Ed.] @c Changed June Link above, was dead. @c This list is a pain in the you-know-what to keep in synch with the @@ -1642,7 +1735,7 @@ cp lib-src/DOC-19.16-XEmacs @end quotation @node Q2.0.13, Q2.0.14, Q2.0.12, Installation -@unnumberedsubsec Q2.0.13: I don't need no steenkin' packages. Do I? (NEW) +@unnumberedsubsec Q2.0.13: I don't need no steenkin' packages. Do I? Strictly speaking, no. XEmacs will build and install just fine without any packages installed. However, only the most basic editing functions @@ -1650,7 +1743,7 @@ will be available with no packages installed, so installing packages is an essential part of making your installed XEmacs _useful_. @node Q2.0.14, Q2.0.15, Q2.0.13, Installation -@unnumberedsubsec Q2.0.14: How do I figure out which packages to install? (NEW) +@unnumberedsubsec Q2.0.14: How do I figure out which packages to install? Many people really liked the old way that packages were bundled and do not want to mess with packages at all. You can grab all the packages at @@ -1728,18 +1821,29 @@ Now, XEmacs is not perfect, and there may occasionally be times, or particular sequences of actions, that cause it to crash. If you can come up with a reproducible way of doing this (or even if you have a pretty good memory of exactly what you were doing at the time), the -maintainers would be very interested in knowing about it. Post a -message to comp.emacs.xemacs or send mail to @email{crashes@@xemacs.org}. -Please note that the @samp{crashes} address is exclusively for crash +maintainers would be very interested in knowing about it. The best way +to report a bug is using @kbd{M-x report-emacs-bug} (or by selecting +@samp{Send Bug Report...} from the Help menu). If that won't work +(e.g. you can't get XEmacs working at all), send ordinary mail to +@email{crashes@@xemacs.org}. @emph{MAKE SURE} to include the output from +the crash, especially including the Lisp backtrace, as well as the +XEmacs configuration from @kbd{M-x describe-installation} (or +equivalently, the file @file{Installation} in the top of the build +tree). Please note that the @samp{crashes} address is exclusively for +crash reports. The best way to report bugs in general is through the +@kbd{M-x report-emacs-bug} interface just mentioned, or if necessary by +emailing @email{xemacs-beta@@xemacs.org}. Note that the developers do +@emph{not} usually follow @samp{comp.emacs.xemacs} on a regular basis; +thus, this is better for general questions about XEmacs than bug reports. -If at all possible, include a stack backtrace of the core dump that was -produced. This shows where exactly things went wrong, and makes it much -easier to diagnose problems. To do this, you need to locate the core -file (it's called @file{core}, and is usually sitting in the directory -that you started XEmacs from, or your home directory if that other -directory was not writable). Then, go to that directory and execute a -command like: +If at all possible, include a C stack backtrace of the core dump that +was produced. This shows where exactly things went wrong, and makes it +much easier to diagnose problems. To do this under Unix, you need to +locate the core file (it's called @file{core}, and is usually sitting in +the directory that you started XEmacs from, or your home directory if +that other directory was not writable). Then, go to that directory and +execute a command like: @example gdb `which xemacs` core @@ -1755,6 +1859,13 @@ out of luck. Go complain to your system administrator and tell him not to disable core files by default. Also see @ref{Q2.1.15}, for tips and techniques for dealing with a debugger. +If you're under Microsoft Windows, you're out of luck unless you happen +to have a debugging aid installed on your system, for example Visual +C++. In this case, the crash will result in a message giving you the +option to enter a debugger (for example, by pressing @samp{Cancel}). Do +this and locate the stack-trace window. (If your XEmacs was built +without debugging information, the stack trace may not be very useful.) + When making a problem report make sure that: @enumerate @@ -1772,14 +1883,20 @@ What version of XEmacs you are running. What build options you are using. @item -If the problem is related to graphics, we will also need to know what -version of the X Window System you are running, and what window manager -you are using. +If the problem is related to graphics and you are running Unix, we will +also need to know what version of the X Window System you are running, +and what window manager you are using. @item -If the problem happened on a tty, please include the terminal type. +If the problem happened on a TTY, please include the terminal type. @end enumerate +Much of the information above is automatically generated by @kbd{M-x +report-emacs-bug}. Even more, and often useful, information can be +generated by redirecting the output of @code{make} and @code{make check} +to a file (@file{beta.err} is the default used by @code{build-report}), +and executing @kbd{M-x build-report}. + @node Q2.1.2, Q2.1.3, Q2.1.1, Installation @unnumberedsubsec Q2.1.2: Cryptic Minibuffer messages. @@ -2110,7 +2227,7 @@ it does. @end quotation @node Q2.1.15, Q2.1.16, Q2.1.14, Installation -@unnumberedsubsec Q2.1.15: How to Debug an XEmacs problem with a debugger +@unnumberedsubsec Q2.1.15: How to debug an XEmacs problem with a debugger If XEmacs does crash on you, one of the most productive things you can do to help get the bug fixed is to poke around a bit with the debugger. @@ -2123,18 +2240,22 @@ strongly recompiling your XEmacs with debugging symbols and with no optimization (e.g. with GCC use the compiler flags @samp{-g -O0} -- that's an "oh" followed by a zero), and with the configure options @samp{--debug=yes} and @samp{--error-checking=all}. This will make your -XEmacs run somewhat slower but make it a lot more likely to catch the -problem earlier (closer to its source), and a lot easier to determine -what's going on with a debugger. +XEmacs run somewhat slower, but you are a lot more likely to catch the +problem earlier (closer to its source). It makes it a lot easier to +determine what's going on with a debugger. + +@item +If it's not a true crash (@emph{i.e.}, XEmacs is hung, or a zombie +process), or it's inconvenient to run XEmacs again because XEmacs is +already running or is running in batch mode as part of a bunch of +scripts, you may be able to attach to the existing process with your +debugger. Most debuggers let you do this by substituting the process ID +for the core file when you invoke the debugger from the command line, or +by using the @code{attach} command or something similar. @item -If you're able to run XEmacs under a debugger and reproduce the crash -(if it's inconvenient to do this because XEmacs is already running or is -running in batch mode as part of a bunch of scripts, consider attaching -to the existing process with your debugger; most debuggers let you do -this by substituting the process ID for the core file when you invoke -the debugger from the command line, or by using the @code{attach} -command or something similar), here are some things you can do: +If you're able to run XEmacs under a debugger and reproduce the crash, +here are some things you can do: @item If XEmacs is hitting an assertion failure, put a breakpoint on @@ -2151,32 +2272,32 @@ If XEmacs is outputting lots of X errors, put a breakpoint on @item Internally, you will probably see lots of variables that hold objects of -type @code{Lisp_Object}. These are exactly what they appear to be, -i.e. references to Lisp objects. Printing them out with the debugger -probably won't be too useful---you'll likely just see a number. To -decode them, do this: +type @code{Lisp_Object}. These are references to Lisp objects. +Printing them out with the debugger probably won't be too +useful---you'll likely just see a number. To decode them, do this: @example -call debug_print (OBJECT) +call dp (OBJECT) @end example where @var{OBJECT} is whatever you want to decode (it can be a variable, -a function call, etc.). This will print out a readable representation -on the TTY from which the xemacs process was invoked. +a function call, etc.). This uses the Lisp printing routines to out a +readable representation on the TTY from which the xemacs process was +invoked. @item If you want to get a Lisp backtrace showing the Lisp call stack, do this: @example -call debug_backtrace () +call db () @end example @item -Using @code{debug_print} and @code{debug_backtrace} has two -disadvantages - it can only be used with a running xemacs process, and -it cannot display the internal C structure of a Lisp Object. Even if -all you've got is a core dump, all is not lost. +Using @code{dp} and @code{db} has two disadvantages - they can only be +used with a running (including hung or zombie) xemacs process, and they +do not display the internal C structure of a Lisp Object. Even if all +you've got is a core dump, all is not lost. If you're using GDB, there are some macros in the file @file{src/.gdbinit} in the XEmacs source distribution that should make @@ -2196,12 +2317,14 @@ Print the Lisp type of a lisp object. @item lbt Usage: lbt @* Print the current Lisp stack trace. -Requires a running xemacs process. +Requires a running xemacs process. (It works by calling the db +routine described above.) @item ldp Usage: ldp lisp_object @* Print a Lisp Object value using the Lisp printer. -Requires a running xemacs process. +Requires a running xemacs process. (It works by calling the dp +routine described above.) @item run-temacs Usage: run-temacs @* @@ -2239,8 +2362,8 @@ fatal signal occurred mangled; if you can obtain a stack trace while running the XEmacs process under a debugger, the stack trace should be clean. -@email{1CMC3466@@ibm.mtsac.edu, Curtiss} suggests upgrading to ld.so version 1.8 -if dynamic linking and debugging is a problem on Linux. +@email{1CMC3466@@ibm.mtsac.edu, Curtiss} suggests upgrading to ld.so +version 1.8 if dynamic linking and debugging is a problem on Linux. @item If you're using a debugger to get a C stack backtrace and you're @@ -2257,16 +2380,20 @@ space, and makes debugging much much harder. Your stack is getting trashed. Debugging this is hard; you have to do a binary-search type of narrowing down where the crash occurs, until you figure out exactly which line is causing the problem. Of course, this -only works if the bug is highly reproducible. +only works if the bug is highly reproducible. Also, in many cases if +you run XEmacs from the debugger, the debugger can protect the stack +somewhat. However, if the stack is being smashed, it is typically the +case that there is a wild pointer somewhere in the program, often quite +far from where the crash occurs. @item If your stack trace has exactly one frame in it, with address 0x0, this could simply mean that XEmacs attempted to execute code at that address, e.g. through jumping to a null function pointer. Unfortunately, under those circumstances, GDB under Linux doesn't know how to get a stack -trace. (Yes, this is the third Linux-related problem I've mentioned. I +trace. (Yes, this is the fourth Linux-related problem I've mentioned. I have no idea why GDB under Linux is so bogus. Complain to the GDB -authors, or to comp.os.linux.development.system). Again, you'll have to +authors, or to comp.os.linux.development.system.) Again, you'll have to use the narrowing-down process described above. @item @@ -2285,6 +2412,10 @@ In versions of XEmacs before 21.2.27, @file{src/.gdbinit} was named @file{src/gdbinit}. This had the disadvantage of not being sourced automatically by gdb, so you had to set that up yourself. +@item +If you are running Microsoft Windows, the the file @file{nt/README} for +further information about debugging XEmacs. + @end itemize @node Q2.1.16, Q2.1.17, Q2.1.15, Installation @@ -2418,7 +2549,7 @@ and uncomment the line that reads: @end quotation @node Q2.1.24, Q2.1.25, Q2.1.23, Installation -@unnumberedsubsec Q2.1.24: XEmacs won't start without network. (NEW) +@unnumberedsubsec Q2.1.24: XEmacs won't start without network. If XEmacs starts when you're on the network, but fails when you're not on the network, you may be missing a "localhost" entry in your @@ -2431,7 +2562,7 @@ on the network, you may be missing a "localhost" entry in your Add that line, and XEmacs will be happy. @node Q2.1.25, , Q2.1.24, Installation -@unnumberedsubsec Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! (NEW) +@unnumberedsubsec Q2.1.25:: After upgrading, XEmacs won't do `foo' any more! You have been used to doing `foo', but now when you invoke it (or click the toolbar button or select the menu item), nothing (or an error) @@ -2477,6 +2608,7 @@ Textual Fonts & Colors: * Q3.2.4:: How can I limit color map usage? * Q3.2.5:: My tty supports color, but XEmacs doesn't use them. * Q3.2.6:: Can I have pixmap backgrounds in XEmacs? +* Q3.2.7:: How do I display non-ASCII characters? The Modeline: * Q3.3.1:: How can I make the modeline go away? @@ -2536,7 +2668,7 @@ Text Selections: * Q3.10.3:: Can I turn off the highlight during isearch? * Q3.10.4:: How do I turn off highlighting after @kbd{C-x C-p} (mark-page)? * Q3.10.5:: The region disappears when I hit the end of buffer while scrolling. -* Q3.10.6:: Why is killing so slow? +* Q3.10.6:: Why is killing so slow? @end menu @node Q3.0.1, Q3.0.2, Customization, Customization @@ -2709,13 +2841,13 @@ Try it out with @kbd{M-x customize-browse} Search through the @file{NEWS} file for @samp{X Resources}. A fairly comprehensive list is given after it. -In addition, an @file{app-defaults} file is supplied, -@file{etc/Emacs.ad} listing the defaults. The file -@file{etc/sample.Xdefaults} gives a set of defaults that you might -consider. It is essentially the same as @file{etc/Emacs.ad} but some -entries are slightly altered. Be careful about installing the contents -of this file into your @file{.Xdefaults} or @file{.Xresources} file if -you use GNU Emacs under X11 as well. +In addition, an @file{app-defaults} file @file{etc/Emacs.ad} is +supplied, listing the defaults. The file @file{etc/sample.Xresources} +gives a different set of defaults that you might consider for +installation in your @file{~/.Xresources} file. It is nearly the same +as @file{etc/Emacs.ad}, but a few entries are altered. Be careful about +installing the contents of this file into your @file{.Xresources} (or +legacy @file{.Xdefaults}) file if you use GNU Emacs under X11 as well. @node Q3.1.2, Q3.1.3, Q3.1.1, Customization @unnumberedsubsec Q3.1.2: How can I detect a color display? @@ -2842,7 +2974,7 @@ bugs... @unnumberedsubsec Q3.2.1: How can I set color options from @file{init.el}/@file{.emacs}? How can I set the most commonly used color options from my -@file{init.el}/@file{.emacs} instead of from my @file{.Xdefaults}? +@file{init.el}/@file{.emacs} instead of from my @file{.Xresources}? Like this: @@ -2876,7 +3008,7 @@ Like this: Note that you should use @samp{Emacs.} and not @samp{Emacs*} when setting face values. -In @file{.Xdefaults}: +In @file{.Xresources}: @example Emacs.default.attributeFont: -*-*-medium-r-*-*-*-120-*-*-m-*-*-* @@ -2884,12 +3016,16 @@ Emacs*menubar*font: fixed Emacs.modeline.attributeFont: fixed @end example -This is confusing because modeline is a face, and can be found listed -with all faces in the current mode by using @kbd{M-x set-face-font -(enter) ?}. It uses the face specification of @code{attributeFont}, -while menubar is a normal X thing that uses the specification -@code{font}. With Motif it may be necessary to use @code{fontList} -instead of @code{font}. +This is confusing because @samp{default} and @samp{modeline} are face +names, and can be found listed with all faces in the current mode by +using @kbd{M-x set-face-font (enter) ?}. They use the face-specific +resource @samp{attributeFont}. + +On the other hand, @samp{menubar} is a normal X thing that uses the +resource @samp{font}. With Motif it @emph{may be} necessary to use +@samp{fontList} @emph{instead of} @samp{font}. In @emph{non-Motif} +configurations with Mule it @emph{is} necessary to use @samp{fontSet} +instead of @samp{font}. (Sorry, there just is no simple recipe here.) @node Q3.2.3, Q3.2.4, Q3.2.2, Customization @unnumberedsubsec Q3.2.3: How can I set the colors when highlighting a region? @@ -2898,7 +3034,7 @@ How can I set the background/foreground colors when highlighting a region? You can change the face @code{zmacs-region} either in your -@file{.Xdefaults}: +@file{.Xresources}: @example Emacs.zmacs-region.attributeForeground: firebrick @@ -2939,7 +3075,7 @@ Right Thing using this Lisp code: (set-device-class nil 'color)) @end lisp -@node Q3.2.6, Q3.3.1, Q3.2.5, Customization +@node Q3.2.6, Q3.2.7, Q3.2.5, Customization @unnumberedsubsec Q3.2.6: Can I have pixmap backgrounds in XEmacs? @c New @email{jvillaci@@wahnsinnig.extreme.indiana.edu, Juan Villacis} writes: @@ -2967,7 +3103,34 @@ and so on. You can also do this interactively via @kbd{M-x edit-faces}. @end quotation -@node Q3.3.1, Q3.3.2, Q3.2.6, Customization +@node Q3.2.7, Q3.3.1, Q3.2.6, Customization +@unnumberedsubsec Q3.2.7: How do I display non-ASCII characters? +@c New + +If you're using a Mule-enabled XEmacs, then display is automatic. If +you're not seeing the characters you expect, either (1) you don't have +appropriate fonts available or (2) XEmacs did not correctly detect the +coding system (@pxref{Recognize Coding, , , xemacs}). In case (1), +install fonts as is customary for your platform. In case (2), you +need to tell XEmacs explicitly what coding systems you're using. +@ref{Specify Coding, , , xemacs}. + +If your XEmacs is not Mule-enabled, and for some reason getting a +Mule-enabled XEmacs seems like the wrong thing to do, all is not lost. +You can arrange it by brute force. In @file{event-Xt.c} (suppress the +urge to look in this file---play Doom instead, because you'll survive +longer), it is written: + +@quotation +In a non-Mule world, a user can still have a multi-lingual editor, by +doing @code{(set-face-font "-*-iso8859-2" (current-buffer))} for all +their Latin-2 buffers, etc. +@end quotation + +For the related problem of @emph{inputting} non-ASCII characters in a +non-Mule XEmacs, @xref{Q3.5.7}. + +@node Q3.3.1, Q3.3.2, Q3.2.7, Customization @unnumberedsec 3.3: The Modeline @unnumberedsubsec Q3.3.1: How can I make the modeline go away? @@ -2978,7 +3141,7 @@ and so on. You can also do this interactively via @kbd{M-x edit-faces}. @c Starting with XEmacs 19.14 the modeline responds to mouse clicks, so if @c you haven't liked or used the modeline in the past, you might want to @c try the new version out. -@c +@c @node Q3.3.2, Q3.3.3, Q3.3.1, Customization @unnumberedsubsec Q3.3.2: How do you have XEmacs display the line number in the modeline? @@ -3029,19 +3192,19 @@ etc. are given in the modeline. How can I turn this off? It's not AUC TeX, it comes from @code{func-menu} in @file{func-menu.el}. @c Add this code to your @file{init.el}/@file{.emacs} to turn it off: -@c +@c @c @lisp @c (setq fume-display-in-modeline-p nil) @c @end lisp -@c +@c @c Or just add a hook to @code{TeX-mode-hook} to turn it off only for TeX @c mode: -@c +@c @c @lisp @c (add-hook 'TeX-mode-hook @c '(lambda () (setq fume-display-in-modeline-p nil))) @c @end lisp -@c +@c @email{dhughes@@origin-at.co.uk, David Hughes} writes: @quotation @@ -3326,6 +3489,9 @@ etc. Running @samp{xmodmap -pk} will list all of the defined keysyms. @end quotation +For the related problem of @emph{displaying} non-ASCII characters in a +non-Mule XEmacs, @xref{Q3.2.7}. + @node Q3.5.8, Q3.5.9, Q3.5.7, Customization @unnumberedsubsec Q3.5.8: [This question intentionally left blank] @@ -3575,13 +3741,13 @@ delay for a second if you let it. @c If you are running XEmacs 19.13 or earlier, add this command to your @c @file{init.el}/@file{.emacs}. -@c +@c @c @lisp @c (set-menubar nil) @c @end lisp -@c +@c @c Starting with XEmacs 19.14 the preferred method is: -@c +@c @lisp (set-specifier menubar-visible-p nil) @end lisp @@ -3622,16 +3788,19 @@ type @kbd{M-x customize @key{RET} buffers-menu @key{RET}}. I am trying to use a resource like @code{Emacs*menubar*font} to set the font of the menubar but it's not working. -If you are using the real Motif menubar, this resource is not -recognized; you have to say: +In Motif, the use of @samp{font} resources is obsoleted in order to +support internationalization. If you are using the real Motif menubar, +this resource is not recognized at all; you have to say: @example Emacs*menubar*fontList: FONT @end example -If you are using the Lucid menubar, the former resource will be -recognized only if the latter resource is unset. This means that the -resource +If you are using the Lucid menubar, for backward compatibility with +existing user configurations, the @samp{font} resource is recognized. +Since this is not supported by Motif itself, the code is a kludge and +the @samp{font} resource will be recognized only if the @samp{fontList} +resource resource is unset. This means that the resource @example *fontList: FONT @@ -3645,6 +3814,16 @@ Emacs*menubar*font: FONT even though the latter is more specific. +In non-Motif configurations using @samp{--with-mule} and +@samp{--with-xfs} it @emph{is} necessary to use the @code{fontSet} +resource @emph{instead of} the @code{font} resource. The backward +compatibility kludge was never implemented for non-Motif builds. +Example: + +@example +*fontSet: FONT +@end example + @node Q3.8.5, Q3.9.1, Q3.8.4, Customization @unnumberedsubsec Q3.8.5: How can I bind a key to a function to toggle the toolbar? @@ -3671,7 +3850,7 @@ code. @unnumberedsubsec Q3.9.1: How can I disable the scrollbar? To disable them for all frames, add the following line to -your @file{.Xdefaults}: +your @file{.Xresources}: @example Emacs.scrollBarWidth: 0 @@ -3694,9 +3873,9 @@ turn the scrollbars off only in a single buffer: @lisp (set-specifier scrollbar-width 0 (current-buffer)) @end lisp -@c +@c @c In XEmacs versions prior to 19.14, you had to use the hairier construct: -@c +@c @c @lisp @c (set-specifier scrollbar-width (cons (selected-frame) 0)) @c @end lisp @@ -3793,7 +3972,7 @@ To get this behavior, add the following lines to your @file{init.el}/@file{.emac (pending-delete-on t))) @end lisp -Note that this will work with both Backspace and Delete. This code is a +Note that this will work with both Backspace and Delete. This code is a tad more complicated than it has to be for XEmacs in order to make it more portable. @@ -3905,23 +4084,28 @@ that the situation is not going to improve. There are a number of workarounds. The most effective is to use a special command to do selection ownership only when you intend to paste to another application. Useful commands are @code{kill-primary-selection} -and @code{copy-primary-selection'}. These work only on text selected +and @code{copy-primary-selection}. These work only on text selected with the mouse (probably; experiment), and are bound by default to the -Cut and Copy, respectively, buttons on the toolbar. +@kbd{Cut} and @kbd{Copy}, respectively, buttons on the toolbar. +@code{copy-primary-selection} is also bound to @kbd{C-Insert}. You can +yank the clipboard contents with @code{yank-primary-selection}, bound to +the @kbd{Paste} toolbar button and @kbd{Sh-Insert}. If you are communicating by cut and paste with applications that use the -primary selection, then you can customize @code{interprogram-cut-function} -to @code{nil}, restoring the XEmacs version 20 behavior. How can you -tell if a program will support this? Motifly-correct programs require -the clipboard; you lose. For others, only by trying it. You usually -don't need to customize the complementary @code{interprogram-paste-function} -to @code{nil}; presumably you're willing to wait for a paste from another -program if delays only happen when you specifically request a paste. - -You can get some relief on Motif by setting +primary selection, then you can customize +@code{interprogram-cut-function} to @code{nil}, restoring the XEmacs +version 20 behavior. How can you tell if a program will support this? +Motifly-correct programs require the clipboard; you lose. For others, +only by trying it. You also need to customize the complementary +@code{interprogram-paste-function} to @code{nil}. (Otherwise +XEmacs-to-XEmacs pastes will not work correctly.) + +You may get some relief on Motif by setting @code{x-selection-strict-motif-ownership} to nil, but this means you will only intermittently be able to paste XEmacs kills to Motif applications. +Thanks to Jeff Mincy and Glynn Clements for corrections. + @node Subsystems, Miscellaneous, Customization, Top @unnumbered 4 Major Subsystems @@ -4924,15 +5108,15 @@ Use the following code in your @file{init.el}/@file{.emacs}: @c In versions of XEmacs prior to 19.14, you had to use a kludgy solution @c like this: -@c +@c @c @lisp @c (setq c-font-lock-keywords c-font-lock-keywords-2 @c c++-font-lock-keywords c++-font-lock-keywords-2 @c lisp-font-lock-keywords lisp-font-lock-keywords-2) @c @end lisp -@c +@c @c It will work for C, C++ and Lisp. -@c +@c See also @code{Syntax Highlighting} from the @code{Options} menu. Remember to save options. @@ -5644,7 +5828,7 @@ in your @file{init.el}/@file{.emacs}: @c The sound support in XEmacs 19.14 was greatly improved over previous @c versions. -@c +@c @node Q5.2.3, Q5.2.4, Q5.2.2, Miscellaneous @unnumberedsubsec Q5.2.3: What's NAS, how do I get it? @@ -6033,17 +6217,16 @@ Hrvoje Niksic and others. This section is devoted to the MS Windows port of XEmacs. @menu - -General Info: +General Info * Q6.0.1:: What is the status of the XEmacs port to Windows? -* Q6.0.2:: What flavors of MS Windows are supported? -* Q6.0.3:: Where are the XEmacs on MS Windows binaries? +* Q6.0.2:: What flavors of MS Windows are supported? The list name implies NT only. +* Q6.0.3:: Are binaries available? * Q6.0.4:: Can I build XEmacs on MS Windows with X support? Do I need to? * Q6.0.5:: I'd like to help out. What do I do? * Q6.0.6:: What are Cygwin and MinGW, and do I need them to run XEmacs? * Q6.0.7:: What exactly are all the different ways to build XEmacs under Windows? - -Building XEmacs on MS Windows + +Building XEmacs on MS Windows: * Q6.1.1:: What compiler/libraries do I need to compile XEmacs? * Q6.1.2:: How do I compile the native port? * Q6.1.3:: What do I need for Cygwin? @@ -6051,16 +6234,16 @@ Building XEmacs on MS Windows * Q6.1.5:: How do I compile using MinGW (aka @samp{the -mno-cygwin flag to gcc})? * Q6.1.6:: I decided to run with X. Where do I get an X server? * Q6.1.7:: How do I compile with X support? - -Customization and User Interface + +Customization and User Interface: * Q6.2.1:: How does the port cope with differences in the Windows user interface? * Q6.2.2:: How do I change fonts in XEmacs on MS Windows? * Q6.2.3:: Where do I put my @file{init.el}/@file{.emacs} file? * Q6.2.4:: How do I get Windows Explorer to associate a file type with XEmacs? * Q6.2.5:: Is it possible to print from XEmacs? - -Miscellaneous -* Q6.3.1:: Does XEmacs rename all the win32-* symbols to w32-*? + +Miscellaneous: +* Q6.3.1:: Does XEmacs rename all the @samp{win32-*} symbols to @samp{w32-*}? * Q6.3.2:: What are the differences between the various MS Windows emacsen? * Q6.3.3:: XEmacs 21.1 on Windows used to spawn an ugly console window on every startup. Has that been fixed? * Q6.3.4:: What is the porting team doing at the moment? @@ -6068,6 +6251,8 @@ Miscellaneous Troubleshooting: * Q6.4.1:: XEmacs won't start on Windows. * Q6.4.2:: Why do I get a blank toolbar on Windows 95? +* Q6.4.3:: XEmacs complains "No such file or directory, diff" + @end menu @node Q6.0.1, Q6.0.2, MS Windows, MS Windows @@ -6380,22 +6565,23 @@ are available somewhere, we don't know of it. @unnumberedsec 6.2: Customization and User Interface @unnumberedsubsec Q6.2.1: How does the port cope with differences in the Windows user interface? -XEmacs (and Emacs in general) UI is pretty different from what is -expected of a typical MS Windows program. How does the MS Windows port -cope with it? +The XEmacs (and Emacs in general) user interface is pretty different +from what is expected of a typical MS Windows program. How does the MS +Windows port cope with it? As a general rule, we follow native MS Windows conventions as much as -possible. In cases where there's a clear UI conflict, we currently use -normal Unix XEmacs behavior by default, but make sure the MS Windows -"look and feel" (mark via shift-arrow, self-inserting deletes region, -Alt selects menu items, etc.) is easily configurable (respectively: -using the variable @code{shifted-motion-keys-select-region} in 21.4 and -above [it's in fact the default in these versions], or the -@file{pc-select} package; using the @file{pending-del} package; and -setting the variable @code{menu-accelerator-enabled} to -@code{menu-force} in 21.4 and above). In fact, if you use the sample -@file{init.el} file as your init file, you will get all these behaviors -automatically turned on. +possible. 21.4 is a fairly complete Windows application, supporting +native printing, system file dialog boxes, tool tips, etc. In cases +where there's a clear UI conflict, we currently use normal Unix XEmacs +behavior by default, but make sure the MS Windows "look and feel" (mark +via shift-arrow, self-inserting deletes region, Alt selects menu items, +etc.) is easily configurable (respectively: using the variable +@code{shifted-motion-keys-select-region} in 21.4 and above [it's in fact +the default in these versions], or the @file{pc-select} package; using +the @file{pending-del} package; and setting the variable +@code{menu-accelerator-enabled} to @code{menu-force} in 21.4 and above). +In fact, if you use the sample @file{init.el} file as your init file, +you will get all these behaviors automatically turned on. In future versions, some of these features might be turned on by default in the MS Windows environment. @@ -6404,8 +6590,8 @@ default in the MS Windows environment. @node Q6.2.2, Q6.2.3, Q6.2.1, MS Windows @unnumberedsubsec Q6.2.2: How do I change fonts in XEmacs on MS Windows? -In 21.4 and above, use the font menu. In all versions, you can change -font manually. For example: +In 21.4 and above, you can use the "Options" menu to change the font. +You can also do it in your init file, e.g. like this: @display (set-face-font 'default "Lucida Console:Regular:10") @@ -6523,6 +6709,7 @@ provide generic interfaces that apply to all window systems. @c with our convention, but we provide the GNU Emacs names as @c compatibility aliases. + @node Q6.3.2, Q6.3.3, Q6.3.1, MS Windows @unnumberedsubsec Q6.3.2: What are the differences between the various MS Windows emacsen? @@ -6542,7 +6729,7 @@ XEmacs Beginning with XEmacs 19.12, XEmacs' architecture was redesigned in such a way to allow clean support of multiple window systems. At this time the TTY support was added, making X and TTY the first two -"window systems" XEmacs supported. The 19.12 design is the basis for +"window systems" supported by XEmacs. The 19.12 design is the basis for the current native MS Windows code. @item @@ -6557,34 +6744,9 @@ people have contributed, including Kirill M. Katsnelson (contributed support for menubars, subprocesses and network, as well as loads of other code), Andy Piper (ported XEmacs to Cygwin environment, contributed Windows unexec, Windows-specific glyphs and toolbars code, -and more), Ben Wing (loads of improvements; currently the most active MS -Windows developer), Jeff Sparkes (contributed scrollbars support) and -many others. -@end itemize - -@item -U Emacs for DOS - -@itemize @minus - -@item -GNU Emacs features support for MS-DOS and DJGPP (D. J. Delorie's DOS -port of GCC). Such an Emacs is heavily underfeatured, because it does -not supports long file names, lacks proper subprocesses support, and -is far too big compared with typical DOS editors. -@end itemize - -@item -GNU Emacs compiled with Win32 - -@itemize @minus - -@item -Starting with version 19.30, it has been possible to compile GNU Emacs -under MS Windows using the DJGPP compiler and X libraries. The result -is very similar to GNU Emacs compiled under MS DOS, except that it -supports longer file names, etc. This "port" is similar to the "X" -flavor of XEmacs on MS Windows. +and more), Ben Wing (loads of improvements; primary MS Windows developer +since 2000), Jeff Sparkes (contributed scrollbars support) and many +others. @end itemize @item @@ -6603,7 +6765,7 @@ found at @iftex @* @end iftex -@uref{http://www.cs.washington.edu/homes/voelker/ntemacs.html}. +@uref{http://www.gnu.org/software/emacs/windows/ntemacs.html}. @end itemize @item @@ -6625,9 +6787,9 @@ GNU Emacs for DOS @item GNU Emacs features support for MS-DOS and DJGPP (D.J. Delorie's DOS -port of Gcc). Such an Emacs is heavily underfeatured, because it does +port of GCC). Such an Emacs is heavily underfeatured, because it does not support long file names, lacks proper subprocesses support, and -is far too big compared to typical DOS editors. +is far too big compared with typical DOS editors. @end itemize @item @@ -6638,9 +6800,9 @@ GNU Emacs compiled with Win32 @item Starting with version 19.30, it has been possible to compile GNU Emacs under MS Windows using the DJGPP compiler and X libraries. The result -is is very similar to GNU Emacs compiled under MS DOS, only it -supports longer file names, etc. This "port" is similar to the "X" -flavor of XEmacs on MS Windows. +is very similar to GNU Emacs compiled under MS DOS, only it works +somewhat better because it runs in 32-bit mode, makes use of all the +system memory, supports long file names, etc. @end itemize @end itemize @@ -6709,6 +6871,7 @@ support for dialog boxes, buttons, edit fields, and similar UI elements). + @node Q6.4.1, Q6.4.2, Q6.3.4, MS Windows @unnumberedsec 6.3: Troubleshooting @unnumberedsubsec Q6.4.1 XEmacs won't start on Windows. @@ -6730,7 +6893,7 @@ eliminates the problem altogether. We recommend you use the 21.4 binaries, but you can use the 21.1 binaries if you are very paranoid about stability. @xref{Q6.0.3}. -@node Q6.4.2, , Q6.4.1, MS Windows +@node Q6.4.2, Q6.4.3, Q6.4.1, MS Windows @unnumberedsubsec Q6.4.2 Why do I get a blank toolbar on Windows 95? You need at least version 4.71 of the system file @file{comctl32.dll}. @@ -6739,8 +6902,24 @@ you are avoiding IE you can also download it from the Microsoft web site. Go into support and search for @file{comctl32.dll}. The download is a self-installing executable. +@node Q6.4.3, , Q6.4.2, MS Windows +@unnumberedsubsec Q6.4.3 XEmacs complains "No such file or directory, diff" + +or "ispell" or other commands that seem related to whatever you just +tried to do (M-x ediff or M-$, for example). + +There are a large number of common (in the sense that "everyone has +these, they really do") Unix utilities that are not provided with +XEmacs. The GNU Project's implementations are available for Windows in +the the Cygwin distribution (@uref{http://www.cygwin.com/}), which also +provides a complete Unix emulation environment (and thus makes ports of +Unix utilities nearly trivial). Another implementation is that from +MinGW (@uref{http://www.mingw.org/msys.shtml}). If you know of others, +please let us know! + -@node Current Events, , MS Windows, Top + +@node Current Events, Legacy Versions, MS Windows, Top @unnumbered 7 What the Future Holds This is part 7 of the XEmacs Frequently Asked Questions list. This @@ -6953,7 +7132,7 @@ searches exact tag matches before inexact ones; function @code{user-full-name} with no arguments returns the var @code{user-full-name}; a prefix arg to @kbd{M-:} and @kbd{C-h c} inserts the result in the current buffer. - + @item @strong{Other changes}: Under X, new application class @samp{XEmacs}; byte-compilation of user-specs now works. @@ -7072,4 +7251,60 @@ considered unstable. For older news, see the file @file{ONEWS} in the @file{etc} directory of the XEmacs distribution. + + +@node Legacy Versions, , Current Events, Top +@unnumbered 8 New information about old XEmacsen + +This is part 8 of the XEmacs Frequently Asked Questions list. It will +occasionally be updated to reflect new information about versions which +are no longer being revised by the XEmacs Project. The primary purpose +is advice on compatibility of older XEmacsen with new packages and +updated versions of packages, but bug fixes (which will not be applied +to released XEmacsen, but users can apply themselves) are also accepted. + + +@menu +* Q8.0.1:: Gnus 5.10 won't display smileys in XEmacs 21.1. +@end menu + +@node Q8.0.1, , , Legacy Versions +@unnumberedsubsec Q8.0.1: Gnus 5.10 won't display smileys in XEmacs 21.1. + +@email{eeide@@cs.utah.edu, Eric Eide} wrote: + +@quotation +Previously I wrote: + + Eric> Summary: with Gnus 5.10.1 in XEmacs 21.1.14, I don't see + Eric> any smileys :-(. + +After a bit of sleuthing, I discovered the essence of the problem. +For me, the form: + +@lisp + (with-temp-buffer + (insert-file-contents "foo.xpm") + (buffer-string)) +@end lisp + +returns the empty string. This is because something somewhere +replaces the XPM data with a glyph --- I haven't figured out where +this occurs. +@end quotation + +@email{kyle_jones@@wonderworks.com, Kyle Jones} replies: + +@quotation +Do this: + +@lisp + (setq format-alist nil) +@end lisp + +The image-mode stuff is gone from format-alist in the 21.4 +branch, praise be. +@end quotation + + @bye diff --git a/man/xemacs/packages.texi b/man/xemacs/packages.texi index fef6391..32adac7 100644 --- a/man/xemacs/packages.texi +++ b/man/xemacs/packages.texi @@ -565,7 +565,7 @@ infrastructure. priority high category CATEGORY dump nil - description "description" ; a one-line description string + description "DESCRIPTION" ; one-line period-terminated string filename FILENAME md5sum MD5SUM size SIZE @@ -580,11 +580,13 @@ the name of your package as an unquoted symbol. Normally it is the name of the main Lisp file or principal feature provided. The allowed values for distribution are @code{xemacs} and @code{mule}. Write them as unquoted symbols. The @code{description} is a quoted Lisp string; use -the usual conventions. The value for @code{provides} is a list of -feature symbols (written unquoted). All of the features provided by -libraries in your package should be elements of this list. Implementing -an automatic method for generating the @file{provides} line is -desirable, but as yet undone. +the usual conventions. The first letter should be capitalized, and the +string should end in a period. It need not be a complete sentence +grammatically. The value for @code{provides} is a list of feature +symbols (written unquoted). All of the features provided by libraries +in your package should be elements of this list. Implementing an +automatic method for generating the @file{provides} line is desirable, +but as yet undone. The variables in upper-case are references to variables set in the @file{Makefile} or automatically generated. Do not change them; they diff --git a/nt/ChangeLog b/nt/ChangeLog index d13f415..d568d0b 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,7 @@ +2003-09-03 Vin Shelton + + * XEmacs 21.4.14 is released + 2003-05-25 XEmacs Build Bot * XEmacs 21.4.13 is released diff --git a/src/EmacsFrame.c b/src/EmacsFrame.c index 8e4909d..e73f743 100644 --- a/src/EmacsFrame.c +++ b/src/EmacsFrame.c @@ -235,7 +235,11 @@ EmacsFrameClassRec emacsFrameClassRec = { /* resource_count */ XtNumber (resources), /* xrm_class */ NULLQUARK, /* compress_motion */ TRUE, +#ifdef LWLIB_USES_MOTIF + /* compress_exposure */ TRUE, +#else /* compress_exposure */ XtExposeCompressMaximal | XtExposeNoRegion, +#endif /* compress_enterleave */ TRUE, /* visible_interest */ FALSE, /* destroy */ NULL, diff --git a/src/event-msw.c b/src/event-msw.c index 09bfe6d..bf87090 100644 --- a/src/event-msw.c +++ b/src/event-msw.c @@ -981,6 +981,9 @@ mswindows_enqueue_mouse_button_event (HWND hwnd, UINT msg, POINTS where, int downp = (msg == WM_LBUTTONDOWN || msg == WM_MBUTTONDOWN || msg == WM_RBUTTONDOWN); + /* Wheel rotation amount: positive is away from user, negative towards user */ + int delta = (short) HIWORD (mods); + /* We always use last message time, because mouse button events may get delayed, and XEmacs double click recognition will fail */ @@ -993,7 +996,9 @@ mswindows_enqueue_mouse_button_event (HWND hwnd, UINT msg, POINTS where, event->timestamp = when; event->event.button.button = (msg==WM_LBUTTONDOWN || msg==WM_LBUTTONUP) ? 1 : - ((msg==WM_RBUTTONDOWN || msg==WM_RBUTTONUP) ? 3 : 2); + (msg==WM_MBUTTONDOWN || msg==WM_MBUTTONUP) ? 2 : + (msg==WM_RBUTTONDOWN || msg==WM_RBUTTONUP) ? 3 : + (msg==WM_MOUSEWHEEL && delta>0) ? 4 : 5; event->event.button.x = where.x; event->event.button.y = where.y; event->event.button.modifiers = mswindows_modifier_state (NULL, mods, 0); @@ -2950,13 +2955,18 @@ mswindows_wnd_proc (HWND hwnd, UINT message_, WPARAM wParam, LPARAM lParam) int keys = LOWORD (wParam); /* Modifier key flags */ int delta = (short) HIWORD (wParam); /* Wheel rotation amount */ - if (mswindows_handle_mousewheel_event (mswindows_find_frame (hwnd), + /* enqueue button4/5 events if mswindows_handle_mousewheel_event + doesn't handle the event, such as when the scrollbars are not + displayed */ + if (!mswindows_handle_mousewheel_event (mswindows_find_frame (hwnd), keys, delta, MAKEPOINTS (lParam))) - /* We are not in a modal loop so no pumping is necessary. */ - break; - else - goto defproc; + mswindows_enqueue_mouse_button_event (hwnd, message_, + MAKEPOINTS (lParam), + wParam, + GetMessageTime()); + /* We are not in a modal loop so no pumping is necessary. */ + break; } #endif diff --git a/src/process.c b/src/process.c index 78e381a..b5f7103 100644 --- a/src/process.c +++ b/src/process.c @@ -1,5 +1,5 @@ /* Asynchronous subprocess control for XEmacs. - Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 1995 + Copyright (C) 1985, 1986, 1987, 1988, 1992, 1993, 1994, 1995, 2003 Free Software Foundation, Inc. Copyright (C) 1995 Sun Microsystems, Inc. Copyright (C) 1995, 1996 Ben Wing. @@ -564,8 +564,8 @@ BUFFER is the buffer or (buffer-name) to associate with the process. with any buffer Third arg is program file name. It is searched for as in the shell. Remaining arguments are strings to give program as arguments. -INCODE and OUTCODE specify the coding-system objects used in input/output - from/to the process. +If bound, `coding-system-for-read' and `coding-system-for-write' specify + the coding-system objects used in input from and output to the process. */ (int nargs, Lisp_Object *args)) { diff --git a/src/sysdll.c b/src/sysdll.c index bc911c4..fc1d877 100644 --- a/src/sysdll.c +++ b/src/sysdll.c @@ -32,6 +32,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA /* Thankfully, most systems follow the ELFish dlopen() method. */ + #if defined(HAVE_DLOPEN) #include @@ -49,6 +50,7 @@ dll_init (const char *arg) return 0; } + dll_handle dll_open (const char *fname) { @@ -151,7 +153,7 @@ dll_error (dll_handle h) return "Generic shared library error"; } -#elif defined(HAVE_INIT_DLD) +#elif defined(HAVE_DLD_INIT) #include int dll_init (const char *arg) @@ -242,8 +244,85 @@ dll_error (dll_handle h) { return "Windows DLL Error"; } +#elif defined(HAVE_DYLD) + +/* + This section supports MacOSX dynamic libraries. Dynamically + loadable libraries must be compiled as bundles, not dynamiclibs. +*/ + +#include + +int +dll_init (const char *arg) +{ + return 0; +} + +dll_handle +dll_open (const char *fname) +{ + NSObjectFileImage file; + NSObjectFileImageReturnCode ret = + NSCreateObjectFileImageFromFile(fname, &file); + if (ret != NSObjectFileImageSuccess) { + return NULL; + } + return (dll_handle)NSLinkModule(file, fname, + NSLINKMODULE_OPTION_BINDNOW | + NSLINKMODULE_OPTION_PRIVATE | + NSLINKMODULE_OPTION_RETURN_ON_ERROR); +} + +int +dll_close (dll_handle h) +{ + return NSUnLinkModule((NSModule)h, NSUNLINKMODULE_OPTION_NONE); +} + +dll_func +dll_function (dll_handle h, const char *n) +{ + NSSymbol sym; +#ifdef DLSYM_NEEDS_UNDERSCORE + char *buf = alloca_array (char, strlen (n) + 2); + *buf = '_'; + strcpy (buf + 1, n); + n = buf; +#endif + sym = NSLookupSymbolInModule((NSModule)h, n); + if (sym == 0) return 0; + return (dll_func)NSAddressOfSymbol(sym); +} + +dll_var +dll_variable (dll_handle h, const char *n) +{ + NSSymbol sym; +#ifdef DLSYM_NEEDS_UNDERSCORE + char *buf = alloca_array (char, strlen (n) + 2); + *buf = '_'; + strcpy (buf + 1, n); + n = buf; +#endif + sym = NSLookupSymbolInModule((NSModule)h, n); + if (sym == 0) return 0; + return (dll_var)NSAddressOfSymbol(sym); +} + +const char * +dll_error (dll_handle h) +{ + NSLinkEditErrors c; + int errorNumber; + const char *fileNameWithError, *errorString; + NSLinkEditError(&c, &errorNumber, &fileNameWithError, &errorString); + return errorString; +} + + #else -/* Catchall if we don't know about this systems method of dynamic loading */ +/* Catchall if we don't know about this system's method of dynamic loading */ int dll_init (const char *arg) { diff --git a/tests/ChangeLog b/tests/ChangeLog index d42766f..0fc8e1c 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,3 +1,15 @@ +2003-09-03 Vin Shelton + + * XEmacs 21.4.14 is released + +2003-08-11 Stephen J. Turnbull + + * automated/regexp-tests.el (stale matches): Reverse bogus tests. + +2003-03-21 Stephen J. Turnbull + + * automated/regexp-tests.el: Comment that word boundary bug is fixed. + 2003-05-25 XEmacs Build Bot * XEmacs 21.4.13 is released diff --git a/version.sh b/version.sh index 73fefe3..7faed11 100644 --- a/version.sh +++ b/version.sh @@ -2,8 +2,8 @@ emacs_is_beta= emacs_major_version=21 emacs_minor_version=4 -emacs_beta_version=13 -xemacs_codename="Rational FORTRAN" +emacs_beta_version=14 +xemacs_codename="Reasonable Discussion" emacs_kit_version= infodock_major_version=4 infodock_minor_version=0