]> code.delx.au - gnu-emacs/blobdiff - etc/PROBLEMS
More info about fixing problems with colors on a tty.
[gnu-emacs] / etc / PROBLEMS
index a614fc2545691e91e174d089251adc0bd59f468b..4cd7f6beeb4fb5545bded0f8103e962c1a52c147 100644 (file)
@@ -1,6 +1,767 @@
 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 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 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 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:
+
+ Converting d:/emacs-21.1/leim/CXTERM-DIC/4Corner.tit to quail-package...
+ Invalid ENCODE: value in TIT dictionary
+ NMAKE : fatal error U1077: '"../src/obj-spd/i386/emacs.exe"' : return code
+       '0xffffffff'
+ Stop.
+
+This can happen if the Leim distribution is unpacked with a program
+which converts the `*.tit' files to DOS-style CR-LF text format.  The
+`*.tit' files in the leim/CXTERM-DIC directory require Unix-style line
+endings to compile properly, because Emacs reads them without any code
+or EOL conversions.
+
+The solution is to make sure the program used to unpack Leim does not
+change the files' line endings behind your back.  The GNU FTP site has
+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
+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
+is probably a bug in Xaw3d; when Xaw3d is compiled with arrows, the
+problem disappears.
+
+* Clicking C-mouse-2 in the scroll bar doesn't split the window.
+
+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.
+
+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.  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
+that is not 8-bit clean.  If the problem goes away with another font
+size, it's probably because some fonts pretend to be ISO-8859-1 fonts
+when they are really ASCII fonts. In particular the schumacher-clean
+fonts have this bug in some versions of X.
+
+To see what glyphs are included in a font, use `xfd', like this:
+
+  xfd -fn -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1
+
+If this shows only ASCII glyphs, the font is indeed the source of the
+problem.
+
+The solution is to remove the corresponding lines from the appropriate
+`fonts.alias' file, then run `mkfontdir' in that directory, and then run
+`xset fp rehash'.
+
+* Large file support is disabled on HP-UX.  See the comments in
+src/s/hpux10.h.
+
+* Crashes when displaying uncompressed GIFs with version
+libungif-4.1.0 are resolved by using version libungif-4.1.0b1.
+
+* 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
++++ w3-4.0pre.46-new/lisp/w3-display.el        Thu Dec 14 14:59:15 2000
+@@ -181,7 +181,8 @@
+               (dispatch-event (next-command-event)))
+           (error nil))))
+      (t
+-      (if (and (not (sit-for 0)) (input-pending-p))
++      ;; modified for GNU Emacs 21 by bob@rattlesnake.com on 2000 Dec 14
++      (if  (and (not (sit-for 0)) nil)
+         (condition-case ()
+             (progn
+               (setq w3-pause-keystroke
+diff -aur --new-file w3-4.0pre.46-orig/lisp/w3-e21.el w3-4.0pre.46-new/lisp/w3-e21.el
+--- w3-4.0pre.46-orig/lisp/w3-e21.el   Thu Jan  1 00:00:00 1970
++++ w3-4.0pre.46-new/lisp/w3-e21.el    Thu Dec 14 14:54:58 2000
+@@ -0,0 +1,5 @@
++;;; w3-e21.el ---   ** required for GNU Emacs 21 **
++;; Added by bob@rattlesnake.com on 2000 Dec 14
++
++(require 'w3-e19)
++(provide 'w3-e21)
+
+
+* On AIX, if linking fails because libXbsd isn't found, check if you
+are compiling with the system's `cc' and CFLAGS containing `-O5'.  If
+so, you have hit a compiler bug.  Please make sure to re-configure
+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.2 fix that.
+
+--- 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)
+@@ -1544,3 +1544,3 @@
+       (buffer-read-only nil)
+-      (before-change-function nil)
++      (before-change-functions nil)
+       (markup-index                   ; match-data index in tag regexp
+@@ -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))))
+@@ -1613,3 +1613,3 @@
+       (re-found nil)
+-      before-change-function)
++      before-change-functions)
+     (goto-char sgml-markup-start)
+@@ -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     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))
+@@ -61,4 +62,9 @@
+                  (let ((submenu
+-                        (subseq entries 0 (min (length entries)
+-                                               sgml-max-menu-size))))
++;;;                     (subseq entries 0 (min (length entries)
++;;;                                            sgml-max-menu-size))
++                        (let ((new (copy-sequence entries)))
++                          (setcdr (nthcdr (1- (min (length entries)
++                                                   sgml-max-menu-size))
++                                          new) nil)
++                          new)))
+                    (setq entries (nthcdr sgml-max-menu-size entries))
+@@ -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))
++          (before-change-functions nil)
++          (modified (buffer-modified-p))
++          (buffer-undo-list t)
++          deactivate-mark)
+       (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))))
+      (t
+--- 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
+@@ -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"
++    (when after-change-functions              ;***
++      (message "OOPS: after-change-functions not NIL in scratch buffer %s: %S"
+              (current-buffer)
+-             after-change-function)
+-      (setq before-change-function nil
+-          after-change-function nil))
++             after-change-functions)
++      (setq before-change-functions nil
++          after-change-functions nil))
+     (setq sgml-last-entity-buffer (current-buffer))
+@@ -2878,6 +2880,5 @@
+   "Set initial state of parsing"
+-  (make-local-variable 'before-change-function)
+-  (setq before-change-function 'sgml-note-change-at)
+-  (make-local-variable 'after-change-function)
+-  (setq after-change-function 'sgml-set-face-after-change)
++  (set (make-local-variable 'before-change-functions) '(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))
+@@ -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 before-change-functions '(sgml-note-change-at))
++    (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.
+
+Apply the following patches which reportedly fix several problems:
+
+--- calc-ext.el.~1~    Sun Apr  3 02:26:34 1994
++++ calc-ext.el        Wed Sep 18 17:35:01 1996
+@@ -1354,6 +1354,25 @@
+   (calc-fancy-prefix 'calc-inverse-flag "Inverse..." n)
+ )
++(defconst calc-fancy-prefix-map
++  (let ((map (make-sparse-keymap)))
++    (define-key map [t] 'calc-fancy-prefix-other-key)
++    (define-key map (vector meta-prefix-char t) 'calc-fancy-prefix-other-key)
++    (define-key map [switch-frame] nil)
++    (define-key map [?\C-u] 'universal-argument)
++    (define-key map [?0] 'digit-argument)
++    (define-key map [?1] 'digit-argument)
++    (define-key map [?2] 'digit-argument)
++    (define-key map [?3] 'digit-argument)
++    (define-key map [?4] 'digit-argument)
++    (define-key map [?5] 'digit-argument)
++    (define-key map [?6] 'digit-argument)
++    (define-key map [?7] 'digit-argument)
++    (define-key map [?8] 'digit-argument)
++    (define-key map [?9] 'digit-argument)
++    map)
++  "Keymap used while processing calc-fancy-prefix.")
++
+ (defun calc-fancy-prefix (flag msg n)
+   (let (prefix)
+     (calc-wrapper
+@@ -1364,6 +1383,8 @@
+      (message (if prefix msg "")))
+     (and prefix
+        (not calc-is-keypad-press)
++       (if (boundp 'overriding-terminal-local-map)
++           (setq overriding-terminal-local-map calc-fancy-prefix-map)
+        (let ((event (calc-read-key t)))
+          (if (eq (setq last-command-char (car event)) ?\C-u)
+              (universal-argument)
+@@ -1376,9 +1397,18 @@
+            (if (or (not (integerp last-command-char))
+                    (eq last-command-char ?-))
+                (calc-unread-command)
+-             (digit-argument n))))))
++             (digit-argument n)))))))
+ )
+ (setq calc-is-keypad-press nil)
++
++(defun calc-fancy-prefix-other-key (arg)
++  (interactive "P")
++  (if (or (not (integerp last-command-char))
++        (and (>= last-command-char 0) (< last-command-char ? )
++             (not (eq last-command-char meta-prefix-char))))
++      (calc-wrapper))  ; clear flags if not a Calc command.
++  (calc-unread-command)
++  (setq overriding-terminal-local-map nil))
+ (defun calc-invert-func ()
+   (save-excursion
+
+--- Makefile.~1~       Sun Dec 15 23:50:45 1996
++++ Makefile   Thu Nov 30 15:09:45 2000
+@@ -41,7 +41,7 @@
+ # Other macros.
+ EFLAGS   = -batch
+-MAINT  = -l calc-maint.elc
++MAINT  = -l calc-maint.el
+ # Control whether intermediate files are kept.
+ PURGE  = -rm -f
+@@ -154,10 +154,7 @@
+ # All this because "-l calc-maint" doesn't work.
+-maint: calc-maint.elc
+-calc-maint.elc: calc-maint.el
+-      cp calc-maint.el calc-maint.elc
+-
++maint: calc-maint.el
+ # Create an Emacs TAGS file
+ tags: TAGS
+
+--- calc-aent.el.~1~   Sun Dec 15 23:50:36 1996
++++ calc-aent.el       Tue Nov 21 18:34:33 2000
+@@ -385,7 +385,7 @@
+         (calc-minibuffer-contains
+          "\\`\\([^\"]*\"[^\"]*\"\\)*[^\"]*\"[^\"]*\\'"))
+       (insert "`")
+-    (setq alg-exp (buffer-string))
++    (setq alg-exp (field-string))
+     (and (> (length alg-exp) 0) (setq calc-previous-alg-entry alg-exp))
+     (exit-minibuffer))
+ )
+@@ -393,14 +393,14 @@
+ (defun calcAlg-enter ()
+   (interactive)
+-  (let* ((str (buffer-string))
++  (let* ((str (field-string))
+        (exp (and (> (length str) 0)
+                  (save-excursion
+                    (set-buffer calc-buffer)
+                    (math-read-exprs str)))))
+     (if (eq (car-safe exp) 'error)
+       (progn
+-        (goto-char (point-min))
++        (goto-char (field-beginning))
+         (forward-char (nth 1 exp))
+         (beep)
+         (calc-temp-minibuffer-message
+@@ -455,14 +455,14 @@
+   (interactive)
+   (if (calc-minibuffer-contains ".*[@oh] *[^'m ]+[^'m]*\\'")
+       (calcDigit-key)
+-    (setq calc-digit-value (buffer-string))
++    (setq calc-digit-value (field-string))
+     (exit-minibuffer))
+ )
+ (defun calcDigit-edit ()
+   (interactive)
+   (calc-unread-command)
+-  (setq calc-digit-value (buffer-string))
++  (setq calc-digit-value (field-string))
+   (exit-minibuffer)
+ )
+--- calc.el.~1~        Sun Dec 15 23:50:47 1996
++++ calc.el    Wed Nov 22 13:08:49 2000
+@@ -2051,11 +2051,11 @@
+   ;; Exercise for the reader:  Figure out why this is a good precaution!
+   (or (boundp 'calc-buffer)
+       (use-local-map minibuffer-local-map))
+-  (let ((str (buffer-string)))
++  (let ((str (field-string)))
+     (setq calc-digit-value (save-excursion
+                            (set-buffer calc-buffer)
+                            (math-read-number str))))
+-  (if (and (null calc-digit-value) (> (buffer-size) 0))
++  (if (and (null calc-digit-value) (> (field-end) (field-beginning)))
+       (progn
+       (beep)
+       (calc-temp-minibuffer-message " [Bad format]"))
+@@ -2071,7 +2071,7 @@
+ (defun calc-minibuffer-contains (rex)
+   (save-excursion
+-    (goto-char (point-min))
++    (goto-char (field-end (point-min)))
+     (looking-at rex))
+ )
+@@ -2158,10 +2158,8 @@
+                                         (upcase last-command-char))))
+                               (and dig
+                                    (< dig radix)))))))
+-            (save-excursion
+-              (goto-char (point-min))
+-              (looking-at
+-               "[-+]?\\(.*\\+/- *\\|.*mod *\\)?\\([0-9]+\\.?0*[@oh] *\\)?\\([0-9]+\\.?0*['m] *\\)?[0-9]*\\(\\.?[0-9]*\\(e[-+]?[0-3]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?\\)?\\|[0-9]:\\([0-9]+:\\)?[0-9]*\\)?[\"s]?\\'")))
++            (calc-minibuffer-contains
++               "[-+]?\\(.*\\+/- *\\|.*mod *\\)?\\([0-9]+\\.?0*[@oh] *\\)?\\([0-9]+\\.?0*['m] *\\)?[0-9]*\\(\\.?[0-9]*\\(e[-+]?[0-3]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[0-9]?\\)?\\|[0-9]:\\([0-9]+:\\)?[0-9]*\\)?[\"s]?\\'"))
+         (if (and (memq last-command-char '(?@ ?o ?h ?\' ?m))
+                  (string-match " " calc-hms-format))
+             (insert " "))
+@@ -2190,7 +2188,7 @@
+       ((eq last-command 'calcDigit-start)
+        (erase-buffer))
+       (t (backward-delete-char 1)))
+-  (if (= (buffer-size) 0)
++  (if (= (field-beginning) (field-end))
+       (progn
+       (setq last-command-char 13)
+       (calcDigit-nondigit)))
+
+* TeX'ing the Calc manual fails.
+
+The following patches allow to build the Calc manual using texinfo.tex
+from Emacs 19.34 distribution:
+
+*** calc-maint.e~0     Mon Dec 16 07:11:26 1996
+--- calc-maint.el      Sun Dec 10 14:32:38 2000
+***************
+*** 308,314 ****
+      (insert "@tex\n"
+           "\\global\\advance\\appendixno2\n"
+           "\\gdef\\xref#1.{See ``#1.''}\n")
+!     (setq midpos (point))
+      (insert "@end tex\n")
+      (insert-buffer-substring srcbuf sumpos endpos)
+      (insert "@bye\n")
+--- 308,314 ----
+      (insert "@tex\n"
+           "\\global\\advance\\appendixno2\n"
+           "\\gdef\\xref#1.{See ``#1.''}\n")
+!     (setq midpos (point-marker))
+      (insert "@end tex\n")
+      (insert-buffer-substring srcbuf sumpos endpos)
+      (insert "@bye\n")
+*** Makefile.~0        Mon Dec 16 07:11:24 1996
+--- Makefile   Sun Dec 10 14:44:00 2000
+***************
+*** 98,106 ****
+  # Format the Calc manual as one printable volume using TeX.
+  tex:
+       $(REMOVE) calc.aux
+!      $(TEX) calc.texinfo
+       $(TEXINDEX) calc.[cfkptv]?
+!      $(TEX) calc.texinfo
+       $(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr
+       $(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs
+       $(PURGE) calc.toc
+--- 98,106 ----
+  # Format the Calc manual as one printable volume using TeX.
+  tex:
+       $(REMOVE) calc.aux
+!      -$(TEX) calc.texinfo
+       $(TEXINDEX) calc.[cfkptv]?
+!      -$(TEX) calc.texinfo
+       $(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr
+       $(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs
+       $(PURGE) calc.toc
+*** calc.texinfo.~1~   Thu Oct 10 18:18:56 1996
+--- calc.texinfo       Mon Dec 11 08:25:00 2000
+***************
+*** 12,17 ****
+--- 12,19 ----
+  % Because makeinfo.c exists, we can't just define new commands.
+  % So instead, we take over little-used existing commands.
+  %
++ % Suggested by Karl Berry <karl@@freefriends.org>
++ \gdef\!{\mskip-\thinmuskip}
+  % Redefine @cite{text} to act like $text$ in regular TeX.
+  % Info will typeset this same as @samp{text}.
+  \gdef\goodtex{\tex \let\rm\goodrm \let\t\ttfont \turnoffactive}
+***************
+*** 23686,23692 ****
+  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}.)
+  
+  Specifying a different independent variable name will affect the
+  resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}.
+--- 23689,23695 ----
+  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; see @ref{Trail Commands}.)
+  
+  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
+shared libraries, for instance those for Xaw3d or image support.
+These errors mean Emacs has been linked with a library whose shared
+library is not in the default search path of the dynamic linker.
+
+On many systems, it is possible to set LD_LIBRARY_PATH in your
+environment to specify additional directories where shared libraries
+can be found.
+
+Other systems allow to set LD_RUN_PATH in a similar way, but before
+Emacs is linked.  With LD_RUN_PATH set, the linker will include a
+specified run-time search path in the executable.
+
+Please refer to the documentation of your dynamic linker for details.
+
+* On Solaris 2.7, building Emacs with WorkShop Compilers 5.0 98/12/15
+C 5.0 failed, apparently with non-default CFLAGS, most probably due to
+compiler bugs.  Using Sun Solaris 2.7 Sun WorkShop 6 update 1 C
+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
+when shutting down Windows. Ensure that all subprocesses are exited
+cleanly before exiting Emacs. For more details, see the FAQ at
+ftp://ftp.gnu.org/gnu/windows/emacs/doc/index.html
+
+* Mail sent through Microsoft Exchange in some encodings appears to be
+mangled and is not seen correctly in Rmail or Gnus.  We don't know
+exactly what happens, but it isn't an Emacs problem in cases we've
+seen.
+
+* On OSF/Dec Unix/Tru64/<whatever it is this year> under X locally or
+remotely, M-SPC acts as a `compose' key with strange results.  See
+keyboard(5).
+
+Changing Alt_L to Meta_L fixes it:
+% xmodmap -e 'keysym Alt_L = Meta_L Alt_L'
+% xmodmap -e 'keysym Alt_R = Meta_R Alt_R'  
+
 * Error "conflicting types for `initstate'" compiling with GCC on Irix 6.
 
 Install GCC 2.95 or a newer version, and this problem should go away.
@@ -63,6 +824,17 @@ This seems to be fixed in GCC 2.95.
 This problem is fixed in Patch 3175 for Irix 5.3.
 It is also fixed in Irix versions 6.2 and up.
 
+* The S-C-t key combination doesn't get passed to Emacs on X.
+
+This happens because some X configurations assign the Ctrl-Shift-t
+combination the same meaning as the Multi_key.  The offending
+definition is in the file `...lib/X11/locale/iso8859-1/Compose'; there
+might be other similar combinations which are grabbed by X for similar
+purposes.
+
+We think that this can be countermanded with the `xmodmap' utility, if
+you want to be able to bind one of these key sequences within Emacs.
+
 * On Solaris, CTRL-t is ignored by Emacs when you use
 the fr.ISO-8859-15 locale (and maybe other related locales).
 
@@ -111,12 +883,6 @@ gives the appearance of "double spacing".
 To prevent this,  turn off the Exceed's "automatic font substitution"
 feature (in the font part of the configuration window).
 
-* On Solaris 7 or later, the compiler complains about the struct member `_ptr'.
-
-This suggests that you are trying to build Emacs in 64 bit mode
-(e.g. with cc -xarch=v9).  Emacs does not yet support this on Solaris.
-Build Emacs in the default 32 bit mode instead.
-
 * Failure in unexec while dumping emacs on Digital Unix 4.0
 
 This problem manifests itself as an error message
@@ -179,7 +945,12 @@ earlier versions.
       ((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
@@ -282,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.
@@ -421,6 +1211,12 @@ You can remedy the problem by installing additional fonts.
 The intlfonts distribution includes a full spectrum of fonts that can
 display all the characters Emacs supports.
 
+Another cause of this for specific characters is fonts which have a
+missing glyph and no default character.  This is known ot occur for
+character number 160 (no-break space) in some fonts, such as Lucida
+but Emacs sets the display table for the unibyte and Latin-1 version
+of this character to display a space.
+
 * Under X11, some characters appear improperly aligned in their lines.
 
 You may have bad X11 fonts; try installing the intlfonts distribution.
@@ -626,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.