This file describes various problems that have been encountered
in compiling, installing and running GNU Emacs.
+* Underlines appear at the wrong position.
+
+This is caused by fonts having a wrong UNDERLINE_POSITION property.
+An example is the font 7x13 on XFree prior to version 4.1. To
+circumvent this problem, set x-use-underline-position-properties to
+nil in your .emacs.
+
* Building Emacs with GCC 2.9x fails in the `src' directory.
This may happen if you use a development version of GNU `cpp' from one
-of the GCC snapshots around Oct 2000 and later, or from a released
-version of GCC newer than 2.95.2. The preprocessor in those versions
-expands ".." into ". .", which breaks relative file names that
-reference the parent directory.
+of the GCC snapshots between Oct 2000 and Feb 2001, or from a released
+version of GCC newer than 2.95.2 which was prepared around those
+dates. The preprocessor in those versions expands ".." into ". .",
+which breaks relative file names that reference the parent directory.
The solution is to make sure the preprocessor is run with the
-`-traditional' option. (The `configure' script should do that
-automatically with Emacs 21 and later.)
+`-traditional' option. (The `configure' script does that
+automatically.)
Note that this problem does not pertain to the MS-Windows port of
Emacs, since it doesn't use the preprocessor to generate Makefile's.
-* Building the Windows port with Leim fails in the `leim' directory.
+* Building the MS-Windows port with Cygwin GCC can fail.
+
+Emacs may not build using recent Cygwin builds of GCC, such as Cygwin
+version 1.1.8, using the default configure settings. It appears to be
+necessary to specify the -mwin32 flag when compiling, and define
+__MSVCRT__, like so:
+
+ configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__
+
+* Building the MS-Windows port with Leim fails in the `leim' directory.
The error message might be something like this:
which can be used to unpack `.tar.gz' and `.zip' archives without
mangling them.
-* `put-image' and `insert-image' don't work with JPEG images
+* JPEG images aren't displayed.
-This can happen if Emacs is built with jpeg-6a library. Upgrading to
-jpeg-6b reportedly solves the problem.
+This has been reported when Emacs is built with jpeg-6a library.
+Upgrading to jpeg-6b solves the problem.
+
+* Building `ctags' for MS-Windows with the MinGW port of GCC fails.
+
+This might happen due to a bug in the MinGW header assert.h, which
+defines the `assert' macro with a trailing semi-colon. The following
+patch to assert.h should solve this:
+
+*** include/assert.h.orig Sun Nov 7 02:41:36 1999
+--- include/assert.h Mon Jan 29 11:49:10 2001
+***************
+*** 41,47 ****
+ /*
+ * If not debugging, assert does nothing.
+ */
+! #define assert(x) ((void)0);
+
+ #else /* debugging enabled */
+
+--- 41,47 ----
+ /*
+ * If not debugging, assert does nothing.
+ */
+! #define assert(x) ((void)0)
+
+ #else /* debugging enabled */
+
* When using Xaw3d scroll bars without arrows, the very first mouse
click in a scroll bar might be ignored by the scroll bar widget. This
a good way of implementing it with widgets). If Emacs is configured
--without-toolkit-scroll-bars, C-mouse-2 on the scroll bar does work.
+* Colors are not available on a tty or in xterm.
+
+Emacs 21 supports colors on character terminals and terminal
+emulators, but this support relies on the terminfo or termcap database
+entry to specify that the display supports color. Emacs looks at the
+"Co" capability for the terminal to find out how many colors are
+supported; it should be non-zero to activate the color support within
+Emacs. (Most color terminals support 8 or 16 colors.) If your system
+uses terminfo, the name of the capability equivalent to "Co" is
+"colors".
+
+In addition to the "Co" capability, Emacs needs the "op" (for
+``original pair'') capability, which tells how to switch the terminal
+back to the default foreground and background colors. Emacs will not
+use colors if this capability is not defined. If your terminal entry
+doesn't provide such a capability, try using the ANSI standard escape
+sequence \E[00m (that is, define a new termcap/terminfo entry and make
+it use your current terminal's entry plus \E[00m for the "op"
+capability).
+
+Finally, the "NC" capability (terminfo name: "ncv") tells Emacs which
+attributes cannot be used with colors. Setting this capability
+incorrectly might have the effect of disabling colors; try setting
+this capability to `0' (zero) and see if that helps.
+
+Emacs uses the database entry for the terminal whose name is the value
+of the environment variable TERM. With `xterm', a common terminal
+entry that supports color is `xterm-color', so setting TERM's value to
+`xterm-color' might activate the color support on an xterm-compatible
+emulator.
+
+Some modes do not use colors unless you turn on the Font-lock mode.
+Some people have long ago set their `~/.emacs' files to turn on
+Font-lock on X only, so they won't see colors on a tty. The
+recommended way of turning on Font-lock is by typing "M-x
+global-font-lock-mode RET" or by customizing the variable
+`global-font-lock-mode'.
+
* Problems in Emacs built with LessTif.
The problems seem to depend on the version of LessTif and the Motif
emulation for which it is set up.
-To the best of our knowledge, only the Motif 1.2 emulation seemed to
-be stable enough in LessTif. Lesstif 0.92-17's Motif 1.2 emulation
-seems to work okay on FreeBSD. On GNU/Linux systems, lesstif-0.92.6
-configured with "./configure --enable-build-12 --enable-default-12" is
-reported to be the most successful. By contrast,
-lesstif-0.92.0-1.i386.rpm was reported to have problems with menu
-placement, and should probably be avoided.
+Only the Motif 1.2 emulation seems to be stable enough in LessTif.
+Lesstif 0.92-17's Motif 1.2 emulation seems to work okay on FreeBSD.
+On GNU/Linux systems, lesstif-0.92.6 configured with "./configure
+--enable-build-12 --enable-default-12" is reported to be the most
+successful. The binary GNU/Linux package
+lesstif-devel-0.92.0-1.i386.rpm was reported to have problems with
+menu placement.
On some systems, even with Motif 1.2 emulation, Emacs occasionally
-locks up, grabbing all mouse and keyboard events. The mouse still
-moves, but will not go outside of the Emacs window (so you can't get
-it over the frame title barm, for instance). None of the menus are
-responsive. In addition, the keyboard will not respond. Keypresses
-are totally ignored, including Ctrl-Alt-F1 to Ctrl-Alt-F6. This means
-you can not even get to the virtual console.
-
-We still don't know what causes these problems; they are not
-reproducible on some systems, notably those used by Emacs developers.
-
-* Some accented ISO-8859-1 characters or umlauts are displayed as | or _.
+locks up, grabbing all mouse and keyboard events. We still don't know
+what causes these problems; they are not reproducible by Emacs
+developers.
+
+* Known problems with the MS-Windows port of Emacs 21.1.
+
+Emacs 21.1 built for MS-Windows doesn't support images, the tool bar,
+and tooltips. Support for these will be added in future versions.
+
+There are problems with display if the variable `redisplay-dont-pause'
+is set to nil (w32-win.el sets it to t by default, to avoid these
+problems). The problems include:
+
+ . No redisplay as long as help echo is displayed in the echo area,
+ e.g. if the mouse is on a mouse-sensitive part of the mode line.
+
+ . When the mode line is dragged with the mouse, multiple copies of the
+ mode line are left behind, until the mouse button is released and
+ the next input event occurs.
+
+ . Window contents are not updated when text is selected by dragging
+ the mouse, and the mouse is dragged below the bottom line of the
+ window. When the mouse button is released, the window display is
+ correctly updated.
+
+Again, these problems only occur if `redisplay-dont-pause' is nil.
+
+Emacs can sometimes abort when non-ASCII text, possibly with null
+characters, is copied and pasted into a buffer.
+
+An inactive cursor remains in an active window after the Windows
+Manager driven switch of the focus, until a key is pressed.
+
+Windows 2000 input methods are not recognized by Emacs (as of v21.1).
+These input methods cause the keyboard to send characters encoded in
+the appropriate coding system (e.g., ISO 8859-1 for Latin-1
+characters, ISO 8859-8 for Hebrew characters, etc.). To make this
+work, set the keyboard coding system to the appropriate value after
+you activate the Windows input method. For example, if you activate
+the Hebrew input method, type "C-x RET k iso-8859-8 RET". (Emacs
+ought to recognize the Windows language-change event and set up the
+appropriate keyboard encoding automatically, but it doesn't do that
+yet.)
+
+Multilingual text put into the Windows 2000 clipboard by Windows
+applications cannot be safely pasted into Emacs (as of v21.1). This
+is because Windows 2000 uses Unicode to represent multilingual text,
+but Emacs does not yet support Unicode well enough to decode it. This
+means that Emacs can only interchange non-ASCII text with other
+Windows 2000 programs if the characters are in the system codepage.
+Reportedly, a partial solution is to install the Mule-UCS package and
+set selection-coding-system to utf-16-le-dos.
+
+* The `configure' script doesn't find the jpeg library.
+
+This can happen because the linker by default only looks for shared
+libraries, but jpeg distribution by default doesn't build and doesn't
+install a shared version of the library, `libjpeg.so'. One system
+where this is known to happen is Compaq OSF/1 (`Tru64'), but it
+probably isn't limited to that system.
+
+You can configure the jpeg library with the `--enable-shared' option
+and then rebuild libjpeg. This produces a shared version of libjpeg,
+which you need to install. Finally, rerun the Emacs configure script,
+which should now find the jpeg library. Alternatively, modify the
+generated src/Makefile to link the .a file explicitly.
+
+(If you need the static version of the jpeg library as well, configure
+libjpeg with both `--enable-static' and `--enable-shared' options.)
+
+* Building Emacs over NFS fails with ``Text file busy''.
+
+This was reported to happen when building Emacs on a GNU/Linux system
+(RedHat Linux 6.2) using a build directory automounted from Solaris
+(SunOS 5.6) file server, but it might not be limited to that
+configuration alone. Presumably, the NFS server doesn't commit the
+files' data to disk quickly enough, and the Emacs executable file is
+left ``busy'' for several seconds after Emacs has finished dumping
+itself. This causes the subsequent commands which invoke the dumped
+Emacs excutable to fail with the above message.
+
+In some of these cases, a time skew between the NFS server and the
+machine where Emacs is built is detected and reported by GNU Make
+(it says that some of the files have modification time in the future).
+This might be a symptom of NFS-related problems.
+
+If the NFS server runs on Solaris, apply the Solaris patch 105379-05
+(Sunos 5.6: /kernel/misc/nfssrv patch). If that doesn't work, or if
+you have a different version of the OS or the NFS server, you can
+force the NFS server to use 1KB blocks, which was reported to fix the
+problem albeit at a price of slowing down file I/O. You can force 1KB
+blocks by specifying the "-o rsize=1024,wsize=1024" options to the
+`mount' command, or by adding ",rsize=1024,wsize=1024" to the mount
+options in the appropriate system configuration file, such as
+`/etc/auto.home'.
+
+Alternatively, when Make fails due to this problem, you could wait for
+a few seconds and then invoke Make again. In one particular case,
+waiting for 10 or more seconds between the two Make invocations seemed
+to work around the problem.
+
+* Accented ISO-8859-1 characters are displayed as | or _.
Try other font set sizes (S-mouse-1). If the problem persists with
other sizes as well, your text is corrupted, probably through software
* Crashes when displaying uncompressed GIFs with version
libungif-4.1.0 are resolved by using version libungif-4.1.0b1.
-* The W3 package (either from from the CVS sources or the last
-release) currently (2000-12-14) doesn't run properly with Emacs 21 and
-needs work. This patch is reported to make w3-4.0pre.46 work:
+* Interrupting Cygwin port of Bash from Emacs doesn't work.
+
+Cygwin 1.x builds of the ported Bash cannot be interrupted from the
+MS-Windows version of Emacs. This is due to some change in the Bash
+port or in the Cygwin library which apparently make Bash ignore the
+keyboard interrupt event sent by Emacs to Bash. (Older Cygwin ports
+of Bash, up to b20.1, did receive SIGINT from Emacs.)
+
+* The latest released version of the W3 package doesn't run properly
+with Emacs 21 and needs work. However, these problems are already
+fixed in W3's CVS. This patch is reported to make w3-4.0pre.46 work:
diff -aur --new-file w3-4.0pre.46-orig/lisp/w3-display.el w3-4.0pre.46-new/lisp/w3-display.el
--- w3-4.0pre.46-orig/lisp/w3-display.el Sun Nov 14 22:00:12 1999
* The PSGML package uses the obsolete variables
`before-change-function' and `after-change-function', which are no
-longer used by Emacs. These changes to PSGML 1.2.1 fix that.
+longer used by Emacs. These changes to PSGML 1.2.2 fix that.
---- psgml-edit.el 1999/12/17 10:55:07 1.1
-+++ psgml-edit.el 1999/12/17 11:36:37
-@@ -263,4 +263,4 @@
+--- psgml-edit.el 2001/03/03 00:23:31 1.1
++++ psgml-edit.el 2001/03/03 00:24:22
+@@ -264,4 +264,4 @@
; inhibit-read-only
- (before-change-function nil)
- (after-change-function nil))
+ (before-change-functions nil)
+ (after-change-functions nil))
(setq selective-display t)
-@@ -1474,3 +1474,3 @@
+@@ -1544,3 +1544,3 @@
(buffer-read-only nil)
- (before-change-function nil)
+ (before-change-functions nil)
(markup-index ; match-data index in tag regexp
-@@ -1526,3 +1526,3 @@
+@@ -1596,3 +1596,3 @@
(defun sgml-expand-shortref-to-text (name)
- (let (before-change-function
+ (let (before-change-functions
(entity (sgml-lookup-entity name (sgml-dtd-entities sgml-dtd-info))))
-@@ -1543,3 +1543,3 @@
+@@ -1613,3 +1613,3 @@
(re-found nil)
- before-change-function)
+ before-change-functions)
(goto-char sgml-markup-start)
-@@ -1576,3 +1576,3 @@
+@@ -1646,3 +1646,3 @@
(goto-char (sgml-element-end element))
- (let ((before-change-function nil))
+ (let ((before-change-functions nil))
(sgml-normalize-content element only-one)))
---- psgml-other.el 1999/12/17 10:40:02 1.1
-+++ psgml-other.el 1999/12/17 11:30:43
+--- psgml-other.el 2001/03/03 00:23:42 1.1
++++ psgml-other.el 2001/03/03 00:30:05
@@ -32,2 +32,3 @@
(require 'easymenu)
+(eval-when-compile (require 'cl))
+ new) nil)
+ new)))
(setq entries (nthcdr sgml-max-menu-size entries))
-@@ -113,7 +119,10 @@
+@@ -113,9 +119,10 @@
(let ((inhibit-read-only t)
- (after-change-function nil) ; obsolete variable
- (before-change-function nil) ; obsolete variable
(after-change-functions nil)
- (before-change-functions nil))
-- (put-text-property start end 'face face)))
+ (before-change-functions nil)
+ (modified (buffer-modified-p))
+ (buffer-undo-list t)
+ deactivate-mark)
-+ (put-text-property start end 'face face)
+ (put-text-property start end 'face face)
+- (when (< start end)
+- (put-text-property (1- end) end 'rear-nonsticky '(face)))))
+ (when (and (not modified) (buffer-modified-p))
-+ (set-buffer-modified-p nil))))
++ (set-buffer-modified-p nil))))
(t
---- psgml-parse.el 1999/12/17 10:32:45 1.1
-+++ psgml-parse.el 2000/12/05 17:12:34
+--- psgml-parse.el 2001/03/03 00:23:57 1.1
++++ psgml-parse.el 2001/03/03 00:29:56
@@ -40,2 +40,4 @@
+(eval-when-compile (require 'cl))
+
\f
-@@ -2474,8 +2476,8 @@
+@@ -2493,8 +2495,8 @@
(setq sgml-scratch-buffer nil))
- (when after-change-function ;***
- (message "OOPS: after-change-function not NIL in scratch buffer %s: %s"
+ (setq before-change-functions nil
+ after-change-functions nil))
(setq sgml-last-entity-buffer (current-buffer))
-@@ -2846,6 +2848,5 @@
+@@ -2878,6 +2880,5 @@
"Set initial state of parsing"
- (make-local-variable 'before-change-function)
- (setq before-change-function 'sgml-note-change-at)
+ (set (make-local-variable 'after-change-functions)
+ '(sgml-set-face-after-change))
(sgml-set-active-dtd-indicator (sgml-dtd-doctype dtd))
-@@ -3887,7 +3888,7 @@
-
+@@ -3925,7 +3926,7 @@
+ (sgml-need-dtd)
- (unless before-change-function
- (message "WARN: before-change-function has been lost, restoring (%s)"
+ (unless before-change-functions
+ (message "WARN: before-change-functions has been lost, restoring (%s)"
(current-buffer))
- (setq before-change-function 'sgml-note-change-at)
-- (setq after-change-function 'sgml-set-face-after-change)
+- (setq after-change-function 'sgml-set-face-after-change))
+ (setq before-change-functions '(sgml-note-change-at))
-+ (setq after-change-functions '(sgml-set-face-after-change))
- )
++ (setq after-change-functions '(sgml-set-face-after-change)))
+ (sgml-with-parser-syntax-ro
* The Calc package fails to build and signals errors with Emacs 21.
a vector of the actual parameter values, written as equations:
@cite{[a = 3, b = 2]}, in case you'd rather read them in a list
than pick them out of the formula. (You can type @kbd{t y}
-! to move this vector to the stack; @pxref{Trail Commands})
+! to move this vector to the stack; @pxref{Trail Commands}.)
Specifying a different independent variable name will affect the
resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}.
Specifying a different independent variable name will affect the
resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}.
+* Unicode characters are not unified with other Mule charsets.
+
+As of v21.1, Emacs charsets are still not unified. This means that
+characters which belong to charsets such as Latin-2, Greek, Hebrew,
+etc. and the same characters in the `mule-unicode-*' charsets are
+different characters, as far as Emacs is concerned. For example, text
+which includes Unicode characters from the Latin-2 locale cannot be
+encoded by Emacs with ISO 8859-2 coding system; and if you yank Greek
+text from a buffer whose buffer-file-coding-system is greek-iso-8bit
+into a mule-unicode-0100-24ff buffer, Emacs won't be able to save that
+buffer neither as ISO 8859-7 nor as UTF-8.
+
+To work around this, install some add-on package such as Mule-UCS.
+
+* The `oc-unicode' package doesn't work with Emacs 21.
+
+This package tries to define more private charsets than there are free
+slots now. If the built-in Unicode/UTF-8 support is insufficient,
+e.g. if you need more CJK coverage, use the current Mule-UCS package.
+Any files encoded as emacs-mule using oc-unicode won't be read
+correctly by Emacs 21.
* On systems with shared libraries you might encounter run-time errors
from the dynamic linker telling you that it is unable to find some
another system with Solaris 8 using apparently the same 5.0 compiler
and the default CFLAGS.
+* Attempting to visit remote files via ange-ftp fails.
+
+If the error message is "ange-ftp-file-modtime: Specified time is not
+representable", then this could happen when `lukemftp' is used as the
+ftp client. This was reported to happen on Debian GNU/Linux 2.4.3
+with `lukemftp' 1.5-5, but might happen on other systems as well. To
+avoid this problem, switch to using the standard ftp client. On a
+Debian system, type
+
+ update-alternatives --config ftpd
+
+and then choose /usr/bin/netkit-ftp.
+
* On Windows 95/98/ME, subprocesses do not terminate properly.
This is a limitation of the Operating System, and can cause problems
((consp (sgml-entity-text entity)) ; external id?
(let* ((extid (sgml-entity-text entity))
-* Running TeX from AUXTeX package with Emacs 20.3 gives a Lisp error
+* Emacs 21 freezes when visiting a TeX file with AUC TeX installed.
+
+Emacs 21 needs version 10 or later of AUC TeX; upgrading should solve
+these problems.
+
+* Running TeX from AUC TeX package with Emacs 20.3 gives a Lisp error
about a read-only tex output buffer.
This problem appeared for AUC TeX version 9.9j and some earlier
* When you run Ispell from Emacs, it reports a "misalignment" error.
-This can happen if you compiled Ispell to use ASCII characters only
-and then try to use it from Emacs with non-ASCII characters,
-specifically Latin-1. The solution is to recompile Ispell with
-Latin-1 support.
+This can happen if you compiled the Ispell program to use ASCII
+characters only and then try to use it from Emacs with non-ASCII
+characters, like Latin-1. The solution is to recompile Ispell with
+support for 8-bit characters.
+
+To see whether your Ispell program supports 8-bit characters, type
+this at your shell's prompt:
+
+ ispell -vv
+
+and look in the output for the string "NO8BIT". If Ispell says
+"!NO8BIT (8BIT)", your speller supports 8-bit characters; otherwise it
+does not.
-This can also happen if the version of Ispell installed on your
-machine is old.
+To rebuild Ispell with 8-bit character support, edit the local.h file
+in the Ispell distribution and make sure it does _not_ define NO8BIT.
+Then rebuild the speller.
+
+Another possible cause for "misalignment" error messages is that the
+version of Ispell installed on your machine is old. Upgrade.
+
+Yet another possibility is that you are trying to spell-check a word
+in a language that doesn't fit the dictionary you choose for use by
+Ispell. (Ispell can only spell-check one language at a time, because
+it uses a single dictionary.) Make sure that the text you are
+spelling and the dictionary used by Ispell conform to each other.
* On Linux-based GNU systems using libc versions 5.4.19 through
5.4.22, Emacs crashes at startup with a segmentation fault.
them into the Emacs executable `temacs'; then they will replace the
incorrect library functions.
+* When compiling with DJGPP on Windows NT, "config msdos" fails.
+
+If the error message is "VDM has been already loaded", this is because
+Windows has a program called `redir.exe' that is incompatible with a
+program by the same name supplied with DJGPP, which is used by
+config.bat. To resolve this, move the DJGPP's `bin' subdirectory to
+the front of your PATH environment variable.
+
* When compiling with DJGPP on Windows 95, Make fails for some targets
like make-docfile.