]> code.delx.au - gnu-emacs/blobdiff - etc/PROBLEMS
More info about fixing problems with colors on a tty.
[gnu-emacs] / etc / PROBLEMS
index a1f85a4c7b779697b7899bf4666ae866ffe22de2..4cd7f6beeb4fb5545bded0f8103e962c1a52c147 100644 (file)
@@ -1,17 +1,24 @@
 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.
@@ -47,6 +54,11 @@ in the `/gnu/emacs/windows' directory a program called `djtarnt.exe'
 which can be used to unpack `.tar.gz' and `.zip' archives without
 mangling them.
 
+* JPEG images aren't displayed.
+
+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
@@ -73,11 +85,6 @@ patch to assert.h should solve this:
   #else /* debugging enabled */
   
 
-* `put-image' and `insert-image' don't work with JPEG images
-
-This can happen if Emacs is built with jpeg-6a library.  Upgrading to
-jpeg-6b reportedly solves the problem.
-
 * 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
 is probably a bug in Xaw3d; when Xaw3d is compiled with arrows, the
@@ -89,29 +96,61 @@ This currently doesn't work with scroll-bar widgets (and we don't know
 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.
+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.
 
@@ -125,12 +164,12 @@ 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 mode line is dragged with the mouse, multiple copies of the
+  . 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 is not updated when text is selected by dragging
-    the mouse and the mouse is dragged below the bottom line of the
+  . 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.
 
@@ -142,28 +181,75 @@ 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/DEC Alpha OSF/1 v4.0, but it
-probably isn't limited to that system alone.
-
-It is possible to build Emacs linked statically, but that makes the
-binary much larger.
-
-If you want to avoid building a statically linked Emacs, 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.
-
-(If you need the static version of the jpeg library as well, you can
-configure libjpeg with both `--enable-static' and `--enable-shared'
-options.
-
-* Some accented ISO-8859-1 characters or umlauts are displayed as | or _.
+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
@@ -197,9 +283,9 @@ 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 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:
+* 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
@@ -232,39 +318,39 @@ Emacs so that it isn't compiled with `-O5'.
 
 * 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))
@@ -281,29 +367,30 @@ longer used by Emacs.  These changes to PSGML 1.2.1 fix that.
 +                                          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"
@@ -317,7 +404,7 @@ longer used by Emacs.  These changes to PSGML 1.2.1 fix that.
 +      (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)
@@ -327,18 +414,18 @@ longer used by Emacs.  These changes to PSGML 1.2.1 fix that.
 +  (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.
 
@@ -584,7 +671,7 @@ from Emacs 19.34 distribution:
   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}.
@@ -597,17 +684,27 @@ from Emacs 19.34 distribution:
   Specifying a different independent variable name will affect the
   resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}.
 
-* The `oc-unicode' package doesn't work with Emacs 21.
+* Unicode characters are not unified with other Mule charsets.
 
-It seems that `oc-unicode' introduces 5 2-dimensional charsets to
-cover the BMP (Basic Multilingual Plane) subset of Unicode.  However,
-Emacs 21 adds three mule-unicode-xxxx-yyyy charsets and one
-japanese-jisx0213-2 in the private charset area of the Mule character
-representation.  This leaves only one free slot left for additional
-dimension-2 charsets, which is not enough for `oc-unicode'.
+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.
 
-The solution is to modify `oc-unicode' to use the Emacs mule-unicode-*
-charsets.  We don't yet have a patch for that.
+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
@@ -632,6 +729,19 @@ release was reported to work without problems.  It worked OK on
 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
@@ -943,13 +1053,32 @@ in Emacs.
 
 * 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.
 
-This can also happen if the version of Ispell installed on your
-machine is old.
+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.
+
+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.
@@ -1293,6 +1422,14 @@ subdirectory: `is_exec.c' and `sigaction.c'.  Compile them and link
 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.