]> code.delx.au - gnu-emacs/blobdiff - etc/PROBLEMS
Fix typo.
[gnu-emacs] / etc / PROBLEMS
index de47457002995a812b2a49df30d494b9a16c259c..6204ccaafc0e07eb64e0e8efa646d6001aea987d 100644 (file)
@@ -27,6 +27,23 @@ the script).
 Note that this problem does not pertain to the MS-Windows port of
 Emacs, since it doesn't use the preprocessor to generate Makefiles.
 
+* Building Emacs with a system compiler fails to link because of an
+undefined symbol such as __eprintf which does not appear in Emacs.
+
+This can happen if some of the libraries linked into Emacs were built
+with GCC, but Emacs itself is being linked with a compiler other than
+GCC.  Object files compiled with GCC might need some helper functions
+from libgcc.a, the library which comes with GCC, but the system
+compiler does not instruct the linker to search libgcc.a during the
+link stage.
+
+A solution is to link with GCC, like this:
+
+       make CC=gcc
+
+Since the .o object files already exist, this will not recompile Emacs
+with GCC, but just restart by trying again to link temacs.
+
 * Building the MS-Windows port with Cygwin GCC can fail.
 
 Emacs may not build using recent Cygwin builds of GCC, such as Cygwin
@@ -40,7 +57,7 @@ __MSVCRT__, like so:
 
 The error message might be something like this:
 
- Converting d:/emacs-21.1/leim/CXTERM-DIC/4Corner.tit to quail-package...
+ Converting d:/emacs-21.3/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'
@@ -217,6 +234,34 @@ 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.
 
+* Emacs aborts inside the function `tparam1'.
+
+This can happen if Emacs was built without terminfo support, but the
+terminal's capabilities use format that is only supported by terminfo.
+If your system has ncurses installed, this might happen if your
+version of ncurses is broken; upgrading to a newer version of ncurses
+and reconfiguring and rebuilding Emacs should solve this.
+
+All modern systems support terminfo, so even if ncurses is not the
+problem, you should look for a way to configure Emacs so that it uses
+terminfo when built.
+
+* Error messages about undefined colors on X.
+
+The messages might say something like this:
+
+   Unable to load color "grey95"
+
+(typically, in the `*Messages*' buffer), or something like this:
+
+  Error while displaying tooltip: (error Undefined color lightyellow)
+
+These problems could happen if some other X program has used up too
+many colors of the X palette, leaving Emacs with insufficient system
+resources to load all the colors it needs.
+
+A solution is to exit the offending X programs before starting Emacs.
+
 * Colors are not available on a tty or in xterm.
 
 Emacs 21 supports colors on character terminals and terminal
@@ -248,6 +293,11 @@ 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.
 
+Beginning with version 21.3, Emacs supports the --color command-line
+option which may be used to force Emacs to use one of a few popular
+modes for getting colors on a tty.  For example, --color=ansi8 sets up
+for using the ANSI-standard escape sequences that support 8 colors.
+
 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
@@ -325,9 +375,9 @@ 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
+Windows input methods are not recognized by Emacs (as of v21.1).  Some
+of 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
@@ -336,12 +386,12 @@ 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
+Multilingual text put into the Windows clipboard by other 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
+is because Windows 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.
+Windows 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.
 
@@ -439,7 +489,7 @@ src/s/hpux10.h.
 * Crashes when displaying uncompressed GIFs with version
 libungif-4.1.0 are resolved by using version libungif-4.1.0b1.
 
-* Font Lock displays portions of the bufefr in incorrect faces.
+* Font Lock displays portions of the buffer in incorrect faces.
 
 By far the most frequent cause of this is a parenthesis `(' or a brace
 `{' in column zero.  Font Lock assumes that such a paren is outside of
@@ -504,10 +554,10 @@ confuses ange-ftp.
 
 The solution is to downgrade to an older version of the Cygwin DLL
 (version 1.3.2 was reported to solve the problem), or use the stock
-Windows FTP client, usually found in the `C:\WINDOWS' directory.  To
-force ange-ftp use the stock Windows client, set the variable
-`ange-ftp-ftp-program-name' to the absolute file name of the client's
-executable.  For example:
+Windows FTP client, usually found in the `C:\WINDOWS' or 'C:\WINNT'
+directory.  To force ange-ftp use the stock Windows client, set the
+variable `ange-ftp-ftp-program-name' to the absolute file name of the
+client's executable.  For example:
 
  (setq ange-ftp-ftp-program-name "c:/windows/ftp.exe")
 
@@ -555,171 +605,22 @@ so, you have hit a compiler bug.  Please make sure to re-configure
 Emacs so that it isn't compiled with `-O5'.
 
 * Compiling on AIX 4.3.x or 4.4 fails.
-This could happen if you use /bin/c89 as youir compiler, instead of
+
+This could happen if you use /bin/c89 as your compiler, instead of
 the default `cc'.  /bin/c89 treats certain warnings, such as benign
 redefinitions of macros, as errors, and fails the build.  A solution
 is to use the default compiler `cc'.
 
 * 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)))
-Index: psgml-other.el
---- 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
-Index: psgml-parse.el
---- 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
-
-* 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
+longer used by Emacs.  Please use PSGML 1.2.3 or later.
+
+* The LDAP support rely on ldapsearch program from OpenLDAP version 2.
+
+It can fail to work with ldapsearch program from OpenLDAP version 1.
+Version 1 of OpenLDAP is now deprecated.  If you are still using it,
+please upgrade to version 2.  As a temporary workaround, remove
+argument "-x" from the variable `ldap-ldapsearch-args'.
 
 * Unicode characters are not unified with other Mule charsets.
 
@@ -802,6 +703,26 @@ 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.
 
+On some systems, Emacs can crash due to problems with dynamic
+linking.  Specifically, on SGI Irix 6.5, crashes were reported with
+backtraces like this:
+
+  (dbx) where
+   0 strcmp(0xf49239d, 0x4031184, 0x40302b4, 0x12, 0xf0000000, 0xf4923aa, 0x0, 0x492ddb2) ["/xlv22/ficus-jan23/work/irix/lib/libc/libc_n32_M3_ns/strings/strcmp.s":35, 0xfb7e480]
+   1 general_find_symbol(0xf49239d, 0x0, 0x0, 0x0, 0xf0000000, 0xf4923aa, 0x0, 0x492ddb2)
+ ["/comp2/mtibuild/v73/workarea/v7.3/rld/rld.c":2140, 0xfb65a98]
+   2 resolve_symbol(0xf49239d, 0x4031184, 0x0, 0xfbdd438, 0x0, 0xf4923aa, 0x0, 0x492ddb2)
+ ["/comp2/mtibuild/v73/workarea/v7.3/rld/rld.c":1947, 0xfb657e4]
+   3 lazy_text_resolve(0xd18, 0x1a3, 0x40302b4, 0x12, 0xf0000000, 0xf4923aa, 0x0, 0x492ddb2)
+ ["/comp2/mtibuild/v73/workarea/v7.3/rld/rld.c":997, 0xfb64d44]
+   4 _rld_text_resolve(0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0)
+ ["/comp2/mtibuild/v73/workarea/v7.3/rld/rld_bridge.s":175, 0xfb6032c]
+
+(`rld' is the dynamic linker.)  We don't know yet why this
+happens, but setting the environment variable LD_BIND_NOW to 1 (which
+forces the dynamic linker to bind all shared objects early on) seems
+to work around the problem.
+
 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
@@ -927,6 +848,14 @@ when shutting down Windows. Ensure that all subprocesses are exited
 cleanly before exiting Emacs. For more details, see the FAQ at
 http://www.gnu.org/software/emacs/windows/.
 
+* Windows 95/98/ME crashes when Emacs invokes non-existent programs.
+
+When a program you are trying to run is not found on the PATH,
+Windows might respond by crashing or locking up your system.  In
+particular, this has been reported when trying to compile a Java
+program in JDEE when javac.exe is installed, but not on the system
+PATH.
+
 * 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
@@ -1341,7 +1270,8 @@ Under Windows, the AltGr key on international keyboards generates key
 events with the modifiers Right-Alt and Left-Ctrl.  Since Emacs cannot
 distinguish AltGr from an explicit Right-Alt and Left-Ctrl
 combination, whenever it sees Right-Alt and Left-Ctrl it assumes that
-AltGr has been pressed.
+AltGr has been pressed.  The variable `w32-recognize-altgr' can be set
+to nil to tell Emacs that AltGr is really Ctrl and Alt.
 
 * Under some Windows X-servers, Emacs' display is incorrect 
 
@@ -1636,24 +1566,6 @@ For Perl 4:
       }
       else {
 
-* Problems running DOS programs on Windows NT versions earlier than 3.51.
-
-Some DOS programs, such as pkzip/pkunzip will not work at all, while
-others will only work if their stdin is redirected from a file or NUL.
-
-When a DOS program does not work, a new process is actually created, but
-hangs.  It cannot be interrupted from Emacs, and might need to be killed
-by an external program if Emacs is hung waiting for the process to
-finish.  If Emacs is not waiting for it, you should be able to kill the
-instance of ntvdm that is running the hung process from Emacs, if you
-can find out the process id.
-
-It is safe to run most DOS programs using call-process (eg. M-! and
-M-|) since stdin is then redirected from a file, but not with
-start-process since that redirects stdin to a pipe.  Also, running DOS
-programs in a shell buffer prompt without redirecting stdin does not
-work.
-
 * Problems on MS-DOG if DJGPP v2.0 is used to compile Emacs:
 
 There are two DJGPP library bugs which cause problems:
@@ -1730,11 +1642,13 @@ your system works as before.
 This character seems to be trapped by the kernel in Windows 95.
 You can enter M-f6 by typing ESC f6.
 
-* Typing Alt-Shift has strange effects on Windows 95.
+* Typing Alt-Shift has strange effects on Windows.
 
 This combination of keys is a command to change keyboard layout.  If
 you proceed to type another non-modifier key before you let go of Alt
-and Shift, the Alt and Shift act as modifiers in the usual way.
+and Shift, the Alt and Shift act as modifiers in the usual way.  A
+more permanent work around is to change it to another key combination,
+or disable it in the keyboard control panel.
 
 * `tparam' reported as a multiply-defined symbol when linking with ncurses.