Changeset 108

Show
Ignore:
Timestamp:
02/17/98 01:43:25 (11 years ago)
Author:
himi
Message:

FSF GNU Emacs 20.3 98/8/21 Release.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/GNU/Makefile.in

    r96 r108  
    300300        rm -f ${bindir}/$(EMACS) 
    301301        -ln ${bindir}/emacs-${version} ${bindir}/$(EMACS) 
    302         for f in `cd lib-src && echo fns-*.el`; do \ 
    303           ${INSTALL_DATA} lib-src/$$f ${archlibdir}/$$f; \ 
    304         done 
    305302 
    306303### Install the files that are machine-independent. 
     
    387384           fi; \ 
    388385           cd ${srcdir}/info ; \ 
    389            for f in ccmode* cl* dired-x* ediff* emacs* forms* gnus* info* message* mh-e* reftex* sc* vip* widget*; do \ 
     386           for f in ccmode* cl* customize* dired-x* ediff* emacs* forms* gnus* info* message* mh-e* reftex* sc* vip* widget*; do \ 
    390387             (cd $${thisdir}; \ 
    391388              ${INSTALL_DATA} ${srcdir}/info/$$f ${infodir}/$$f; \ 
     
    396393        if [ `(cd ${srcdir}/info && /bin/pwd)` != `(cd ${infodir} && /bin/pwd)` ]; \ 
    397394        then \ 
    398           for f in ccmode cl dired-x ediff emacs forms gnus info message mh-e reftex sc vip viper widget; do \ 
     395          for f in ccmode cl customize dired-x ediff emacs forms gnus info message mh-e reftex sc vip widget; do \ 
    399396            (cd $${thisdir}; \ 
    400397             ${INSTALL_INFO} --dir-file=${infodir}/dir --info-file=${infodir}/$$f); \ 
  • branches/GNU/README

    r96 r108  
    1 This directory tree holds version 20.3.5 of GNU Emacs, the extensible, 
     1This directory tree holds version 20.3 of GNU Emacs, the extensible, 
    22customizable, self-documenting real-time display editor. 
    33 
  • branches/GNU/etc/ChangeLog

    r96 r108  
    1 1999-01-19  Dave Love  <fx@gnu.org> 
    2  
    3         * MORE.STUFF: Revamped. 
    4  
    5 1999-01-14  Dave Love  <fx@gnu.org> 
    6  
    7         * FAQ: Merge posted updates. 
    8  
    9 1998-12-14  Dave Love  <fx@gnu.org> 
    10  
    11         * FAQ: Somewhat edited copy of the most recently posted version. 
    12  
    13 1998-11-04  Kenichi Handa  <handa@etl.go.jp> 
    14  
    15         * MACHINES (NEC EWS4800): New section. 
    16  
    17 1998-09-04  Karl Heuer  <kwzh@gnu.org> 
    18  
    19         * TUTORIAL: Use C-x C-l, not M-:, as example of disabled command. 
    20  
    2111998-08-19  Richard Stallman  <rms@psilocin.ai.mit.edu> 
    222 
  • branches/fsf/etc/PROBLEMS

    r106 r108  
    11This file describes various problems that have been encountered 
    22in compiling, installing and running GNU Emacs. 
    3  
    4 * Emacs pauses for several seconds when changing the default font 
    5  
    6 This has been reported for fvwm 2.2.5 and the window manager of KDE 
    7 2.1.  The reason for the pause is Xt waiting for a ConfigureNotify 
    8 event from the window manager, which the window manager doesn't send. 
    9 Xt stops waiting after a default timeout of usually 5 seconds. 
    10  
    11 A workaround for this is to add something like 
    12  
    13 emacs.waitForWM: false 
    14  
    15 to your X resources. or to add `(wait-for-wm . nil)' to a frame's 
    16 parameter list. 
    17  
    18 * Underlines appear at the wrong position. 
    19  
    20 This is caused by fonts having a wrong UNDERLINE_POSITION property. 
    21 An example is the font 7x13 on XFree prior to version 4.1.  To 
    22 circumvent this problem, set x-use-underline-position-properties to 
    23 nil in your .emacs. 
    24  
    25 * Building Emacs with GCC 2.9x fails in the `src' directory. 
    26  
    27 This may happen if you use a development version of GNU `cpp' from one 
    28 of the GCC snapshots between Oct 2000 and Feb 2001, or from a released 
    29 version of GCC newer than 2.95.2 which was prepared around those 
    30 dates.  The preprocessor in those versions expands ".." into ". .", 
    31 which breaks relative file names that reference the parent directory. 
    32  
    33 The solution is to make sure the preprocessor is run with the 
    34 `-traditional' option.  (The `configure' script does that 
    35 automatically.) 
    36  
    37 Note that this problem does not pertain to the MS-Windows port of 
    38 Emacs, since it doesn't use the preprocessor to generate Makefiles. 
    39  
    40 * Building the MS-Windows port with Cygwin GCC can fail. 
    41  
    42 Emacs may not build using recent Cygwin builds of GCC, such as Cygwin 
    43 version 1.1.8, using the default configure settings.  It appears to be 
    44 necessary to specify the -mwin32 flag when compiling, and define 
    45 __MSVCRT__, like so: 
    46  
    47   configure --with-gcc --cflags -mwin32 --cflags -D__MSVCRT__ 
    48  
    49 * Building the MS-Windows port with Leim fails in the `leim' directory. 
    50  
    51 The error message might be something like this: 
    52  
    53  Converting d:/emacs-21.1/leim/CXTERM-DIC/4Corner.tit to quail-package... 
    54  Invalid ENCODE: value in TIT dictionary 
    55  NMAKE : fatal error U1077: '"../src/obj-spd/i386/emacs.exe"' : return code 
    56        '0xffffffff' 
    57  Stop. 
    58  
    59 This can happen if the Leim distribution is unpacked with a program 
    60 which converts the `*.tit' files to DOS-style CR-LF text format.  The 
    61 `*.tit' files in the leim/CXTERM-DIC directory require Unix-style line 
    62 endings to compile properly, because Emacs reads them without any code 
    63 or EOL conversions. 
    64  
    65 The solution is to make sure the program used to unpack Leim does not 
    66 change the files' line endings behind your back.  The GNU FTP site has 
    67 in the `/gnu/emacs/windows' directory a program called `djtarnt.exe' 
    68 which can be used to unpack `.tar.gz' and `.zip' archives without 
    69 mangling them. 
    70  
    71 * JPEG images aren't displayed. 
    72  
    73 This has been reported when Emacs is built with jpeg-6a library. 
    74 Upgrading to jpeg-6b solves the problem. 
    75  
    76 * Building `ctags' for MS-Windows with the MinGW port of GCC fails. 
    77  
    78 This might happen due to a bug in the MinGW header assert.h, which 
    79 defines the `assert' macro with a trailing semi-colon.  The following 
    80 patch to assert.h should solve this: 
    81  
    82 *** include/assert.h.orig       Sun Nov  7 02:41:36 1999 
    83 --- include/assert.h    Mon Jan 29 11:49:10 2001 
    84 *************** 
    85 *** 41,47 **** 
    86   /* 
    87    * If not debugging, assert does nothing. 
    88    */ 
    89 ! #define assert(x)     ((void)0); 
    90    
    91   #else /* debugging enabled */ 
    92    
    93 --- 41,47 ---- 
    94   /* 
    95    * If not debugging, assert does nothing. 
    96    */ 
    97 ! #define assert(x)     ((void)0) 
    98    
    99   #else /* debugging enabled */ 
    100    
    101  
    102 * When using Xaw3d scroll bars without arrows, the very first mouse 
    103 click in a scroll bar might be ignored by the scroll bar widget.  This 
    104 is probably a bug in Xaw3d; when Xaw3d is compiled with arrows, the 
    105 problem disappears. 
    106  
    107 * Clicking C-mouse-2 in the scroll bar doesn't split the window. 
    108  
    109 This currently doesn't work with scroll-bar widgets (and we don't know 
    110 a good way of implementing it with widgets).  If Emacs is configured 
    111 --without-toolkit-scroll-bars, C-mouse-2 on the scroll bar does work. 
    112  
    113 * Colors are not available on a tty or in xterm. 
    114  
    115 Emacs 21 supports colors on character terminals and terminal 
    116 emulators, but this support relies on the terminfo or termcap database 
    117 entry to specify that the display supports color.  Emacs looks at the 
    118 "Co" capability for the terminal to find out how many colors are 
    119 supported; it should be non-zero to activate the color support within 
    120 Emacs.  (Most color terminals support 8 or 16 colors.)  If your system 
    121 uses terminfo, the name of the capability equivalent to "Co" is 
    122 "colors". 
    123  
    124 In addition to the "Co" capability, Emacs needs the "op" (for 
    125 ``original pair'') capability, which tells how to switch the terminal 
    126 back to the default foreground and background colors.  Emacs will not 
    127 use colors if this capability is not defined.  If your terminal entry 
    128 doesn't provide such a capability, try using the ANSI standard escape 
    129 sequence \E[00m (that is, define a new termcap/terminfo entry and make 
    130 it use your current terminal's entry plus \E[00m for the "op" 
    131 capability). 
    132  
    133 Finally, the "NC" capability (terminfo name: "ncv") tells Emacs which 
    134 attributes cannot be used with colors.  Setting this capability 
    135 incorrectly might have the effect of disabling colors; try setting 
    136 this capability to `0' (zero) and see if that helps. 
    137  
    138 Emacs uses the database entry for the terminal whose name is the value 
    139 of the environment variable TERM.  With `xterm', a common terminal 
    140 entry that supports color is `xterm-color', so setting TERM's value to 
    141 `xterm-color' might activate the color support on an xterm-compatible 
    142 emulator. 
    143  
    144 Some modes do not use colors unless you turn on the Font-lock mode. 
    145 Some people have long ago set their `~/.emacs' files to turn on 
    146 Font-lock on X only, so they won't see colors on a tty.  The 
    147 recommended way of turning on Font-lock is by typing "M-x 
    148 global-font-lock-mode RET" or by customizing the variable 
    149 `global-font-lock-mode'. 
    150  
    151 * Problems in Emacs built with LessTif. 
    152  
    153 The problems seem to depend on the version of LessTif and the Motif 
    154 emulation for which it is set up. 
    155  
    156 Only the Motif 1.2 emulation seems to be stable enough in LessTif. 
    157 Lesstif 0.92-17's Motif 1.2 emulation seems to work okay on FreeBSD. 
    158 On GNU/Linux systems, lesstif-0.92.6 configured with "./configure 
    159 --enable-build-12 --enable-default-12" is reported to be the most 
    160 successful.  The binary GNU/Linux package 
    161 lesstif-devel-0.92.0-1.i386.rpm was reported to have problems with 
    162 menu placement. 
    163  
    164 On some systems, even with Motif 1.2 emulation, Emacs occasionally 
    165 locks up, grabbing all mouse and keyboard events.  We still don't know 
    166 what causes these problems; they are not reproducible by Emacs 
    167 developers. 
    168  
    169 * Known problems with the MS-Windows port of Emacs 21.1. 
    170  
    171 Emacs 21.1 built for MS-Windows doesn't support images, the tool bar, 
    172 and tooltips.  Support for these will be added in future versions. 
    173  
    174 There are problems with display if the variable `redisplay-dont-pause' 
    175 is set to nil (w32-win.el sets it to t by default, to avoid these 
    176 problems).  The problems include: 
    177  
    178   . No redisplay as long as help echo is displayed in the echo area, 
    179     e.g. if the mouse is on a mouse-sensitive part of the mode line. 
    180  
    181   . When the mode line is dragged with the mouse, multiple copies of the 
    182     mode line are left behind, until the mouse button is released and 
    183     the next input event occurs. 
    184  
    185   . Window contents are not updated when text is selected by dragging 
    186     the mouse, and the mouse is dragged below the bottom line of the 
    187     window.  When the mouse button is released, the window display is 
    188     correctly updated. 
    189  
    190 Again, these problems only occur if `redisplay-dont-pause' is nil. 
    191  
    192 Emacs can sometimes abort when non-ASCII text, possibly with null 
    193 characters, is copied and pasted into a buffer. 
    194  
    195 An inactive cursor remains in an active window after the Windows 
    196 Manager driven switch of the focus, until a key is pressed. 
    197  
    198 Windows 2000 input methods are not recognized by Emacs (as of v21.1). 
    199 These input methods cause the keyboard to send characters encoded in 
    200 the appropriate coding system (e.g., ISO 8859-1 for Latin-1 
    201 characters, ISO 8859-8 for Hebrew characters, etc.).  To make this 
    202 work, set the keyboard coding system to the appropriate value after 
    203 you activate the Windows input method.  For example, if you activate 
    204 the Hebrew input method, type "C-x RET k iso-8859-8 RET".  (Emacs 
    205 ought to recognize the Windows language-change event and set up the 
    206 appropriate keyboard encoding automatically, but it doesn't do that 
    207 yet.) 
    208  
    209 Multilingual text put into the Windows 2000 clipboard by Windows 
    210 applications cannot be safely pasted into Emacs (as of v21.1).  This 
    211 is because Windows 2000 uses Unicode to represent multilingual text, 
    212 but Emacs does not yet support Unicode well enough to decode it.  This 
    213 means that Emacs can only interchange non-ASCII text with other 
    214 Windows 2000 programs if the characters are in the system codepage. 
    215 Reportedly, a partial solution is to install the Mule-UCS package and 
    216 set selection-coding-system to utf-16-le-dos. 
    217  
    218 * The `configure' script doesn't find the jpeg library. 
    219  
    220 This can happen because the linker by default only looks for shared 
    221 libraries, but jpeg distribution by default doesn't build and doesn't 
    222 install a shared version of the library, `libjpeg.so'.  One system 
    223 where this is known to happen is Compaq OSF/1 (`Tru64'), but it 
    224 probably isn't limited to that system. 
    225  
    226 You can configure the jpeg library with the `--enable-shared' option 
    227 and then rebuild libjpeg.  This produces a shared version of libjpeg, 
    228 which you need to install.  Finally, rerun the Emacs configure script, 
    229 which should now find the jpeg library.  Alternatively, modify the 
    230 generated src/Makefile to link the .a file explicitly. 
    231  
    232 (If you need the static version of the jpeg library as well, configure 
    233 libjpeg with both `--enable-static' and `--enable-shared' options.) 
    234  
    235 * Building Emacs over NFS fails with ``Text file busy''. 
    236  
    237 This was reported to happen when building Emacs on a GNU/Linux system 
    238 (RedHat Linux 6.2) using a build directory automounted from Solaris 
    239 (SunOS 5.6) file server, but it might not be limited to that 
    240 configuration alone.  Presumably, the NFS server doesn't commit the 
    241 files' data to disk quickly enough, and the Emacs executable file is 
    242 left ``busy'' for several seconds after Emacs has finished dumping 
    243 itself.  This causes the subsequent commands which invoke the dumped 
    244 Emacs excutable to fail with the above message. 
    245  
    246 In some of these cases, a time skew between the NFS server and the 
    247 machine where Emacs is built is detected and reported by GNU Make 
    248 (it says that some of the files have modification time in the future). 
    249 This might be a symptom of NFS-related problems. 
    250  
    251 If the NFS server runs on Solaris, apply the Solaris patch 105379-05 
    252 (Sunos 5.6: /kernel/misc/nfssrv patch).  If that doesn't work, or if 
    253 you have a different version of the OS or the NFS server, you can 
    254 force the NFS server to use 1KB blocks, which was reported to fix the 
    255 problem albeit at a price of slowing down file I/O.  You can force 1KB 
    256 blocks by specifying the "-o  rsize=1024,wsize=1024" options to the 
    257 `mount' command, or by adding ",rsize=1024,wsize=1024" to the mount 
    258 options in the appropriate system configuration file, such as 
    259 `/etc/auto.home'. 
    260  
    261 Alternatively, when Make fails due to this problem, you could wait for 
    262 a few seconds and then invoke Make again.  In one particular case, 
    263 waiting for 10 or more seconds between the two Make invocations seemed 
    264 to work around the problem. 
    265  
    266 * Accented ISO-8859-1 characters are displayed as | or _. 
    267  
    268 Try other font set sizes (S-mouse-1).  If the problem persists with 
    269 other sizes as well, your text is corrupted, probably through software 
    270 that is not 8-bit clean.  If the problem goes away with another font 
    271 size, it's probably because some fonts pretend to be ISO-8859-1 fonts 
    272 when they are really ASCII fonts. In particular the schumacher-clean 
    273 fonts have this bug in some versions of X. 
    274  
    275 To see what glyphs are included in a font, use `xfd', like this: 
    276  
    277   xfd -fn -schumacher-clean-medium-r-normal--12-120-75-75-c-60-iso8859-1 
    278  
    279 If this shows only ASCII glyphs, the font is indeed the source of the 
    280 problem. 
    281  
    282 The solution is to remove the corresponding lines from the appropriate 
    283 `fonts.alias' file, then run `mkfontdir' in that directory, and then run 
    284 `xset fp rehash'. 
    285  
    286 * Large file support is disabled on HP-UX.  See the comments in 
    287 src/s/hpux10.h. 
    288  
    289 * Crashes when displaying uncompressed GIFs with version 
    290 libungif-4.1.0 are resolved by using version libungif-4.1.0b1. 
    291  
    292 * Interrupting Cygwin port of Bash from Emacs doesn't work. 
    293  
    294 Cygwin 1.x builds of the ported Bash cannot be interrupted from the 
    295 MS-Windows version of Emacs.  This is due to some change in the Bash 
    296 port or in the Cygwin library which apparently make Bash ignore the 
    297 keyboard interrupt event sent by Emacs to Bash.  (Older Cygwin ports 
    298 of Bash, up to b20.1, did receive SIGINT from Emacs.) 
    299  
    300 * The latest released version of the W3 package doesn't run properly 
    301 with Emacs 21 and needs work.  However, these problems are already 
    302 fixed in W3's CVS.  This patch is reported to make w3-4.0pre.46 work: 
    303  
    304 diff -aur --new-file w3-4.0pre.46-orig/lisp/w3-display.el w3-4.0pre.46-new/lisp/w3-display.el 
    305 --- w3-4.0pre.46-orig/lisp/w3-display.el        Sun Nov 14 22:00:12 1999 
    306 +++ w3-4.0pre.46-new/lisp/w3-display.el Thu Dec 14 14:59:15 2000 
    307 @@ -181,7 +181,8 @@ 
    308                 (dispatch-event (next-command-event))) 
    309             (error nil)))) 
    310       (t 
    311 -      (if (and (not (sit-for 0)) (input-pending-p)) 
    312 +      ;; modified for GNU Emacs 21 by bob@rattlesnake.com on 2000 Dec 14 
    313 +      (if  (and (not (sit-for 0)) nil) 
    314           (condition-case () 
    315               (progn 
    316                 (setq w3-pause-keystroke 
    317 diff -aur --new-file w3-4.0pre.46-orig/lisp/w3-e21.el w3-4.0pre.46-new/lisp/w3-e21.el 
    318 --- w3-4.0pre.46-orig/lisp/w3-e21.el    Thu Jan  1 00:00:00 1970 
    319 +++ w3-4.0pre.46-new/lisp/w3-e21.el     Thu Dec 14 14:54:58 2000 
    320 @@ -0,0 +1,5 @@ 
    321 +;;; w3-e21.el ---   ** required for GNU Emacs 21 ** 
    322 +;; Added by bob@rattlesnake.com on 2000 Dec 14 
    323 + 
    324 +(require 'w3-e19) 
    325 +(provide 'w3-e21) 
    326  
    327  
    328 * On AIX, if linking fails because libXbsd isn't found, check if you 
    329 are compiling with the system's `cc' and CFLAGS containing `-O5'.  If 
    330 so, you have hit a compiler bug.  Please make sure to re-configure 
    331 Emacs so that it isn't compiled with `-O5'. 
    332  
    333 * The PSGML package uses the obsolete variables 
    334 `before-change-function' and `after-change-function', which are no 
    335 longer used by Emacs.  These changes to PSGML 1.2.2 fix that. 
    336  
    337 --- psgml-edit.el       2001/03/03 00:23:31     1.1 
    338 +++ psgml-edit.el       2001/03/03 00:24:22 
    339 @@ -264,4 +264,4 @@ 
    340                                         ; inhibit-read-only 
    341 -       (before-change-function nil) 
    342 -       (after-change-function nil)) 
    343 +       (before-change-functions nil) 
    344 +       (after-change-functions nil)) 
    345      (setq selective-display t) 
    346 @@ -1544,3 +1544,3 @@ 
    347         (buffer-read-only nil) 
    348 -       (before-change-function nil) 
    349 +       (before-change-functions nil) 
    350         (markup-index                   ; match-data index in tag regexp 
    351 @@ -1596,3 +1596,3 @@ 
    352  (defun sgml-expand-shortref-to-text (name) 
    353 -  (let (before-change-function 
    354 +  (let (before-change-functions 
    355         (entity (sgml-lookup-entity name (sgml-dtd-entities sgml-dtd-info)))) 
    356 @@ -1613,3 +1613,3 @@ 
    357         (re-found nil) 
    358 -       before-change-function) 
    359 +       before-change-functions) 
    360      (goto-char sgml-markup-start) 
    361 @@ -1646,3 +1646,3 @@ 
    362      (goto-char (sgml-element-end element))  
    363 -    (let ((before-change-function nil)) 
    364 +    (let ((before-change-functions nil)) 
    365        (sgml-normalize-content element only-one))) 
    366 --- psgml-other.el      2001/03/03 00:23:42     1.1 
    367 +++ psgml-other.el      2001/03/03 00:30:05 
    368 @@ -32,2 +32,3 @@ 
    369  (require 'easymenu) 
    370 +(eval-when-compile (require 'cl)) 
    371   
    372 @@ -61,4 +62,9 @@ 
    373                    (let ((submenu 
    374 -                         (subseq entries 0 (min (length entries) 
    375 -                                                sgml-max-menu-size)))) 
    376 +;;;                      (subseq entries 0 (min (length entries) 
    377 +;;;                                             sgml-max-menu-size)) 
    378 +                         (let ((new (copy-sequence entries))) 
    379 +                           (setcdr (nthcdr (1- (min (length entries) 
    380 +                                                    sgml-max-menu-size)) 
    381 +                                           new) nil) 
    382 +                           new))) 
    383                      (setq entries (nthcdr sgml-max-menu-size entries)) 
    384 @@ -113,9 +119,10 @@ 
    385        (let ((inhibit-read-only t) 
    386 -           (after-change-function nil) ; obsolete variable 
    387 -           (before-change-function nil) ; obsolete variable 
    388             (after-change-functions nil) 
    389 -           (before-change-functions nil)) 
    390 +           (before-change-functions nil) 
    391 +           (modified (buffer-modified-p)) 
    392 +           (buffer-undo-list t) 
    393 +           deactivate-mark) 
    394         (put-text-property start end 'face face) 
    395 -        (when (< start end) 
    396 -          (put-text-property (1- end) end 'rear-nonsticky '(face))))) 
    397 +       (when (and (not modified) (buffer-modified-p)) 
    398 +         (set-buffer-modified-p nil)))) 
    399       (t 
    400 --- psgml-parse.el      2001/03/03 00:23:57     1.1 
    401 +++ psgml-parse.el      2001/03/03 00:29:56 
    402 @@ -40,2 +40,4 @@ 
    403   
    404 +(eval-when-compile (require 'cl)) 
    405 + 
    406    
    407 @@ -2493,8 +2495,8 @@ 
    408        (setq sgml-scratch-buffer nil)) 
    409 -    (when after-change-function                ;*** 
    410 -      (message "OOPS: after-change-function not NIL in scratch buffer %s: %s" 
    411 +    (when after-change-functions               ;*** 
    412 +      (message "OOPS: after-change-functions not NIL in scratch buffer %s: %S" 
    413                (current-buffer) 
    414 -              after-change-function) 
    415 -      (setq before-change-function nil 
    416 -           after-change-function nil)) 
    417 +              after-change-functions) 
    418 +      (setq before-change-functions nil 
    419 +           after-change-functions nil)) 
    420      (setq sgml-last-entity-buffer (current-buffer)) 
    421 @@ -2878,6 +2880,5 @@ 
    422    "Set initial state of parsing" 
    423 -  (make-local-variable 'before-change-function) 
    424 -  (setq before-change-function 'sgml-note-change-at) 
    425 -  (make-local-variable 'after-change-function) 
    426 -  (setq after-change-function 'sgml-set-face-after-change) 
    427 +  (set (make-local-variable 'before-change-functions) '(sgml-note-change-at)) 
    428 +  (set (make-local-variable 'after-change-functions) 
    429 +       '(sgml-set-face-after-change)) 
    430    (sgml-set-active-dtd-indicator (sgml-dtd-doctype dtd)) 
    431 @@ -3925,7 +3926,7 @@ 
    432    (sgml-need-dtd) 
    433 -  (unless before-change-function 
    434 -    (message "WARN: before-change-function has been lost, restoring (%s)" 
    435 +  (unless before-change-functions 
    436 +    (message "WARN: before-change-functions has been lost, restoring (%s)" 
    437              (current-buffer)) 
    438 -    (setq before-change-function 'sgml-note-change-at) 
    439 -    (setq after-change-function 'sgml-set-face-after-change)) 
    440 +    (setq before-change-functions '(sgml-note-change-at)) 
    441 +    (setq after-change-functions '(sgml-set-face-after-change))) 
    442    (sgml-with-parser-syntax-ro 
    443  
    444 * The Calc package fails to build and signals errors with Emacs 21. 
    445  
    446 Apply the following patches which reportedly fix several problems: 
    447  
    448 --- calc-ext.el.~1~     Sun Apr  3 02:26:34 1994 
    449 +++ calc-ext.el Wed Sep 18 17:35:01 1996 
    450 @@ -1354,6 +1354,25 @@ 
    451    (calc-fancy-prefix 'calc-inverse-flag "Inverse..." n) 
    452  ) 
    453   
    454 +(defconst calc-fancy-prefix-map 
    455 +  (let ((map (make-sparse-keymap))) 
    456 +    (define-key map [t] 'calc-fancy-prefix-other-key) 
    457 +    (define-key map (vector meta-prefix-char t) 'calc-fancy-prefix-other-key) 
    458 +    (define-key map [switch-frame] nil) 
    459 +    (define-key map [?\C-u] 'universal-argument) 
    460 +    (define-key map [?0] 'digit-argument) 
    461 +    (define-key map [?1] 'digit-argument) 
    462 +    (define-key map [?2] 'digit-argument) 
    463 +    (define-key map [?3] 'digit-argument) 
    464 +    (define-key map [?4] 'digit-argument) 
    465 +    (define-key map [?5] 'digit-argument) 
    466 +    (define-key map [?6] 'digit-argument) 
    467 +    (define-key map [?7] 'digit-argument) 
    468 +    (define-key map [?8] 'digit-argument) 
    469 +    (define-key map [?9] 'digit-argument) 
    470 +    map) 
    471 +  "Keymap used while processing calc-fancy-prefix.") 
    472 + 
    473  (defun calc-fancy-prefix (flag msg n) 
    474    (let (prefix) 
    475      (calc-wrapper 
    476 @@ -1364,6 +1383,8 @@ 
    477       (message (if prefix msg ""))) 
    478      (and prefix 
    479          (not calc-is-keypad-press) 
    480 +        (if (boundp 'overriding-terminal-local-map) 
    481 +            (setq overriding-terminal-local-map calc-fancy-prefix-map) 
    482          (let ((event (calc-read-key t))) 
    483            (if (eq (setq last-command-char (car event)) ?\C-u) 
    484                (universal-argument) 
    485 @@ -1376,9 +1397,18 @@ 
    486              (if (or (not (integerp last-command-char)) 
    487                      (eq last-command-char ?-)) 
    488                  (calc-unread-command) 
    489 -              (digit-argument n)))))) 
    490 +              (digit-argument n))))))) 
    491  ) 
    492  (setq calc-is-keypad-press nil) 
    493 + 
    494 +(defun calc-fancy-prefix-other-key (arg) 
    495 +  (interactive "P") 
    496 +  (if (or (not (integerp last-command-char)) 
    497 +         (and (>= last-command-char 0) (< last-command-char ? ) 
    498 +              (not (eq last-command-char meta-prefix-char)))) 
    499 +      (calc-wrapper))  ; clear flags if not a Calc command. 
    500 +  (calc-unread-command) 
    501 +  (setq overriding-terminal-local-map nil)) 
    502   
    503  (defun calc-invert-func () 
    504    (save-excursion 
    505  
    506 --- Makefile.~1~        Sun Dec 15 23:50:45 1996 
    507 +++ Makefile    Thu Nov 30 15:09:45 2000 
    508 @@ -41,7 +41,7 @@ 
    509   
    510  # Other macros. 
    511  EFLAGS   = -batch 
    512 -MAINT   = -l calc-maint.elc 
    513 +MAINT   = -l calc-maint.el 
    514   
    515  # Control whether intermediate files are kept. 
    516  PURGE   = -rm -f 
    517 @@ -154,10 +154,7 @@ 
    518   
    519   
    520  # All this because "-l calc-maint" doesn't work. 
    521 -maint: calc-maint.elc 
    522 -calc-maint.elc: calc-maint.el 
    523 -       cp calc-maint.el calc-maint.elc 
    524 - 
    525 +maint: calc-maint.el 
    526   
    527  # Create an Emacs TAGS file 
    528  tags: TAGS 
    529  
    530 --- calc-aent.el.~1~    Sun Dec 15 23:50:36 1996 
    531 +++ calc-aent.el        Tue Nov 21 18:34:33 2000 
    532 @@ -385,7 +385,7 @@ 
    533           (calc-minibuffer-contains 
    534            "\\`\\([^\"]*\"[^\"]*\"\\)*[^\"]*\"[^\"]*\\'")) 
    535        (insert "`") 
    536 -    (setq alg-exp (buffer-string)) 
    537 +    (setq alg-exp (field-string)) 
    538      (and (> (length alg-exp) 0) (setq calc-previous-alg-entry alg-exp)) 
    539      (exit-minibuffer)) 
    540  ) 
    541 @@ -393,14 +393,14 @@ 
    542   
    543  (defun calcAlg-enter () 
    544    (interactive) 
    545 -  (let* ((str (buffer-string)) 
    546 +  (let* ((str (field-string)) 
    547          (exp (and (> (length str) 0) 
    548                    (save-excursion 
    549                      (set-buffer calc-buffer) 
    550                      (math-read-exprs str))))) 
    551      (if (eq (car-safe exp) 'error) 
    552         (progn 
    553 -         (goto-char (point-min)) 
    554 +         (goto-char (field-beginning)) 
    555           (forward-char (nth 1 exp)) 
    556           (beep) 
    557           (calc-temp-minibuffer-message 
    558 @@ -455,14 +455,14 @@ 
    559    (interactive) 
    560    (if (calc-minibuffer-contains ".*[@oh] *[^'m ]+[^'m]*\\'") 
    561        (calcDigit-key) 
    562 -    (setq calc-digit-value (buffer-string)) 
    563 +    (setq calc-digit-value (field-string)) 
    564      (exit-minibuffer)) 
    565  ) 
    566   
    567  (defun calcDigit-edit () 
    568    (interactive) 
    569    (calc-unread-command) 
    570 -  (setq calc-digit-value (buffer-string)) 
    571 +  (setq calc-digit-value (field-string)) 
    572    (exit-minibuffer) 
    573  ) 
    574   
    575 --- calc.el.~1~ Sun Dec 15 23:50:47 1996 
    576 +++ calc.el     Wed Nov 22 13:08:49 2000 
    577 @@ -2051,11 +2051,11 @@ 
    578    ;; Exercise for the reader:  Figure out why this is a good precaution! 
    579    (or (boundp 'calc-buffer) 
    580        (use-local-map minibuffer-local-map)) 
    581 -  (let ((str (buffer-string))) 
    582 +  (let ((str (field-string))) 
    583      (setq calc-digit-value (save-excursion 
    584                              (set-buffer calc-buffer) 
    585                              (math-read-number str)))) 
    586 -  (if (and (null calc-digit-value) (> (buffer-size) 0)) 
    587 +  (if (and (null calc-digit-value) (> (field-end) (field-beginning))) 
    588        (progn 
    589         (beep) 
    590         (calc-temp-minibuffer-message " [Bad format]")) 
    591 @@ -2071,7 +2071,7 @@ 
    592   
    593  (defun calc-minibuffer-contains (rex) 
    594    (save-excursion 
    595 -    (goto-char (point-min)) 
    596 +    (goto-char (field-end (point-min))) 
    597      (looking-at rex)) 
    598  ) 
    599   
    600 @@ -2158,10 +2158,8 @@ 
    601                                           (upcase last-command-char)))) 
    602                                 (and dig 
    603                                      (< dig radix))))))) 
    604 -             (save-excursion 
    605 -               (goto-char (point-min)) 
    606 -               (looking-at 
    607 -                "[-+]?\\(.*\\+/- *\\|.*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]?\\'"))) 
    608 +             (calc-minibuffer-contains 
    609 +                "[-+]?\\(.*\\+/- *\\|.*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]?\\'")) 
    610           (if (and (memq last-command-char '(?@ ?o ?h ?\' ?m)) 
    611                    (string-match " " calc-hms-format)) 
    612               (insert " ")) 
    613 @@ -2190,7 +2188,7 @@ 
    614         ((eq last-command 'calcDigit-start) 
    615          (erase-buffer)) 
    616         (t (backward-delete-char 1))) 
    617 -  (if (= (buffer-size) 0) 
    618 +  (if (= (field-beginning) (field-end)) 
    619        (progn 
    620         (setq last-command-char 13) 
    621         (calcDigit-nondigit))) 
    622  
    623 * TeX'ing the Calc manual fails. 
    624  
    625 The following patches allow to build the Calc manual using texinfo.tex 
    626 from Emacs 19.34 distribution: 
    627  
    628 *** calc-maint.e~0      Mon Dec 16 07:11:26 1996 
    629 --- calc-maint.el       Sun Dec 10 14:32:38 2000 
    630 *************** 
    631 *** 308,314 **** 
    632       (insert "@tex\n" 
    633             "\\global\\advance\\appendixno2\n" 
    634             "\\gdef\\xref#1.{See ``#1.''}\n") 
    635 !     (setq midpos (point)) 
    636       (insert "@end tex\n") 
    637       (insert-buffer-substring srcbuf sumpos endpos) 
    638       (insert "@bye\n") 
    639 --- 308,314 ---- 
    640       (insert "@tex\n" 
    641             "\\global\\advance\\appendixno2\n" 
    642             "\\gdef\\xref#1.{See ``#1.''}\n") 
    643 !     (setq midpos (point-marker)) 
    644       (insert "@end tex\n") 
    645       (insert-buffer-substring srcbuf sumpos endpos) 
    646       (insert "@bye\n") 
    647 *** Makefile.~0 Mon Dec 16 07:11:24 1996 
    648 --- Makefile    Sun Dec 10 14:44:00 2000 
    649 *************** 
    650 *** 98,106 **** 
    651   # Format the Calc manual as one printable volume using TeX. 
    652   tex: 
    653         $(REMOVE) calc.aux 
    654 !       $(TEX) calc.texinfo 
    655         $(TEXINDEX) calc.[cfkptv]? 
    656 !       $(TEX) calc.texinfo 
    657         $(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr 
    658         $(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs 
    659         $(PURGE) calc.toc 
    660 --- 98,106 ---- 
    661   # Format the Calc manual as one printable volume using TeX. 
    662   tex: 
    663         $(REMOVE) calc.aux 
    664 !       -$(TEX) calc.texinfo 
    665         $(TEXINDEX) calc.[cfkptv]? 
    666 !       -$(TEX) calc.texinfo 
    667         $(PURGE) calc.cp calc.fn calc.pg calc.tp calc.vr 
    668         $(PURGE) calc.cps calc.fns calc.kys calc.pgs calc.tps calc.vrs 
    669         $(PURGE) calc.toc 
    670 *** calc.texinfo.~1~    Thu Oct 10 18:18:56 1996 
    671 --- calc.texinfo        Mon Dec 11 08:25:00 2000 
    672 *************** 
    673 *** 12,17 **** 
    674 --- 12,19 ---- 
    675   % Because makeinfo.c exists, we can't just define new commands. 
    676   % So instead, we take over little-used existing commands. 
    677   % 
    678 + % Suggested by Karl Berry <karl@@freefriends.org> 
    679 + \gdef\!{\mskip-\thinmuskip} 
    680   % Redefine @cite{text} to act like $text$ in regular TeX. 
    681   % Info will typeset this same as @samp{text}. 
    682   \gdef\goodtex{\tex \let\rm\goodrm \let\t\ttfont \turnoffactive} 
    683 *************** 
    684 *** 23686,23692 **** 
    685   a vector of the actual parameter values, written as equations: 
    686   @cite{[a = 3, b = 2]}, in case you'd rather read them in a list 
    687   than pick them out of the formula.  (You can type @kbd{t y} 
    688 ! to move this vector to the stack; @pxref{Trail Commands}.) 
    689    
    690   Specifying a different independent variable name will affect the 
    691   resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}. 
    692 --- 23689,23695 ---- 
    693   a vector of the actual parameter values, written as equations: 
    694   @cite{[a = 3, b = 2]}, in case you'd rather read them in a list 
    695   than pick them out of the formula.  (You can type @kbd{t y} 
    696 ! to move this vector to the stack; see @ref{Trail Commands}.) 
    697    
    698   Specifying a different independent variable name will affect the 
    699   resulting formula: @kbd{a F 1 k RET} produces @kbd{3 + 2 k}. 
    700  
    701 * Unicode characters are not unified with other Mule charsets. 
    702  
    703 As of v21.1, Emacs charsets are still not unified.  This means that 
    704 characters which belong to charsets such as Latin-2, Greek, Hebrew, 
    705 etc. and the same characters in the `mule-unicode-*' charsets are 
    706 different characters, as far as Emacs is concerned.  For example, text 
    707 which includes Unicode characters from the Latin-2 locale cannot be 
    708 encoded by Emacs with ISO 8859-2 coding system; and if you yank Greek 
    709 text from a buffer whose buffer-file-coding-system is greek-iso-8bit 
    710 into a mule-unicode-0100-24ff buffer, Emacs won't be able to save that 
    711 buffer neither as ISO 8859-7 nor as UTF-8. 
    712  
    713 To work around this, install some add-on package such as Mule-UCS. 
    714  
    715 * The `oc-unicode' package doesn't work with Emacs 21. 
    716  
    717 This package tries to define more private charsets than there are free 
    718 slots now.  If the built-in Unicode/UTF-8 support is insufficient, 
    719 e.g. if you need more CJK coverage, use the current Mule-UCS package. 
    720 Any files encoded as emacs-mule using oc-unicode won't be read 
    721 correctly by Emacs 21. 
    722  
    723 * On systems with shared libraries you might encounter run-time errors 
    724 from the dynamic linker telling you that it is unable to find some 
    725 shared libraries, for instance those for Xaw3d or image support. 
    726 These errors mean Emacs has been linked with a library whose shared 
    727 library is not in the default search path of the dynamic linker. 
    728  
    729 On many systems, it is possible to set LD_LIBRARY_PATH in your 
    730 environment to specify additional directories where shared libraries 
    731 can be found. 
    732  
    733 Other systems allow to set LD_RUN_PATH in a similar way, but before 
    734 Emacs is linked.  With LD_RUN_PATH set, the linker will include a 
    735 specified run-time search path in the executable. 
    736  
    737 Please refer to the documentation of your dynamic linker for details. 
    738  
    739 * On Solaris 2.7, building Emacs with WorkShop Compilers 5.0 98/12/15 
    740 C 5.0 failed, apparently with non-default CFLAGS, most probably due to 
    741 compiler bugs.  Using Sun Solaris 2.7 Sun WorkShop 6 update 1 C 
    742 release was reported to work without problems.  It worked OK on 
    743 another system with Solaris 8 using apparently the same 5.0 compiler 
    744 and the default CFLAGS. 
    745  
    746 * Compiling syntax.c with the OPENSTEP 4.2 compiler gcc 2.7.2.1 fails. 
    747  
    748 The compiler was reported to crash while compiling syntax.c with the 
    749 following message: 
    750  
    751    cc: Internal compiler error: program cc1obj got fatal signal 11 
    752  
    753 To work around this, replace the macros UPDATE_SYNTAX_TABLE_FORWARD, 
    754 INC_BOTH, and INC_FROM with functions.  To this end, first define 3 
    755 functions, one each for every macro.  Here's an example: 
    756  
    757     static int update_syntax_table_forward(int from) 
    758     { 
    759         return(UPDATE_SYNTAX_TABLE_FORWARD(from)); 
    760     }/*update_syntax_table_forward*/ 
    761  
    762 Then replace all references to UPDATE_SYNTAX_TABLE_FORWARD in syntax.c 
    763 with a call to the function update_syntax_table_forward. 
    764  
    765 * Emacs 20 and later fails to load Lisp files at startup. 
    766  
    767 The typical error message might be like this: 
    768  
    769   "Cannot open load file: fontset" 
    770  
    771 This could happen if you compress the file lisp/subdirs.el.  That file 
    772 tells Emacs what are the directories where it should look for Lisp 
    773 files.  Emacs cannot work with subdirs.el compressed, since the 
    774 Auto-compress mode it needs for this will not be loaded until later, 
    775 when your .emacs file is processed.  (The package `fontset.el' is 
    776 required to set up fonts used to display text on window systems, and 
    777 its loaded very early in the startup procedure.) 
    778  
    779 Similarly, any other .el file for which there's no corresponding .elc 
    780 file could fail to load if it is compressed. 
    781  
    782 The solution is to uncompress all .el files which don't have a .elc 
    783 file. 
    784  
    785 * Attempting to visit remote files via ange-ftp fails. 
    786  
    787 If the error message is "ange-ftp-file-modtime: Specified time is not 
    788 representable", then this could happen when `lukemftp' is used as the 
    789 ftp client.  This was reported to happen on Debian GNU/Linux 2.4.3 
    790 with `lukemftp' 1.5-5, but might happen on other systems as well.  To 
    791 avoid this problem, switch to using the standard ftp client.  On a 
    792 Debian system, type 
    793  
    794   update-alternatives --config ftpd 
    795  
    796 and then choose /usr/bin/netkit-ftp. 
    797  
    798 * On Windows 95/98/ME, subprocesses do not terminate properly. 
    799  
    800 This is a limitation of the Operating System, and can cause problems 
    801 when shutting down Windows. Ensure that all subprocesses are exited 
    802 cleanly before exiting Emacs. For more details, see the FAQ at 
    803 ftp://ftp.gnu.org/gnu/windows/emacs/doc/index.html 
    804  
    805 * Mail sent through Microsoft Exchange in some encodings appears to be 
    806 mangled and is not seen correctly in Rmail or Gnus.  We don't know 
    807 exactly what happens, but it isn't an Emacs problem in cases we've 
    808 seen. 
    809  
    810 * On OSF/Dec Unix/Tru64/<whatever it is this year> under X locally or 
    811 remotely, M-SPC acts as a `compose' key with strange results.  See 
    812 keyboard(5). 
    813  
    814 Changing Alt_L to Meta_L fixes it: 
    815 % xmodmap -e 'keysym Alt_L = Meta_L Alt_L' 
    816 % xmodmap -e 'keysym Alt_R = Meta_R Alt_R'   
    817  
    818 * Error "conflicting types for `initstate'" compiling with GCC on Irix 6. 
    819  
    820 Install GCC 2.95 or a newer version, and this problem should go away. 
    821 It is possible that this problem results from upgrading the operating 
    822 system without reinstalling GCC; so you could also try reinstalling 
    823 the same version of GCC, and telling us whether that fixes the problem. 
    824  
    825 * On Solaris 7, Emacs gets a segmentation fault when starting up using X. 
    826  
    827 This results from Sun patch 107058-01 (SunOS 5.7: Patch for 
    828 assembler) if you use GCC version 2.7 or later. 
    829 To work around it, either install patch 106950-03 or later, 
    830 or uninstall patch 107058-01, or install the GNU Binutils. 
    831 Then recompile Emacs, and it should work. 
    832  
    833 * With X11R6.4, public-patch-3, Emacs crashes at startup. 
    834  
    835 Reportedly this patch in X fixes the problem. 
    836  
    837     --- xc/lib/X11/imInt.c~     Wed Jun 30 13:31:56 1999 
    838     +++ xc/lib/X11/imInt.c      Thu Jul  1 15:10:27 1999 
    839     @@ -1,4 +1,4 @@ 
    840     -/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $ */ 
    841     +/* $TOG: imInt.c /main/5 1998/05/30 21:11:16 kaleb $  */ 
    842      /****************************************************************** 
    843  
    844                 Copyright 1992, 1993, 1994 by FUJITSU LIMITED 
    845     @@ -166,8 +166,8 @@ 
    846      _XimMakeImName(lcd) 
    847          XLCd      lcd; 
    848      { 
    849     -    char* begin; 
    850     -    char* end; 
    851     +    char* begin = NULL; 
    852     +    char* end = NULL; 
    853          char* ret; 
    854          int    i = 0; 
    855          char* ximmodifier = XIMMODIFIER; 
    856     @@ -182,7 +182,11 @@ 
    857          } 
    858          ret = Xmalloc(end - begin + 2); 
    859          if (ret != NULL) { 
    860     -           (void)strncpy(ret, begin, end - begin + 1); 
    861     +   if (begin != NULL) { 
    862     +             (void)strncpy(ret, begin, end - begin + 1); 
    863     +        } else { 
    864     +     ret[0] = '\0'; 
    865     +   } 
    866             ret[end - begin + 1] = '\0'; 
    867          } 
    868          return ret; 
    869  
    870  
    871 * Emacs crashes on Irix 6.5 on the SGI R10K, when compiled with GCC. 
    872    
    873 This seems to be fixed in GCC 2.95. 
    874  
    875 * Emacs crashes in utmpname on Irix 5.3. 
    876  
    877 This problem is fixed in Patch 3175 for Irix 5.3. 
    878 It is also fixed in Irix versions 6.2 and up. 
    879  
    880 * The S-C-t key combination doesn't get passed to Emacs on X. 
    881  
    882 This happens because some X configurations assign the Ctrl-Shift-t 
    883 combination the same meaning as the Multi_key.  The offending 
    884 definition is in the file `...lib/X11/locale/iso8859-1/Compose'; there 
    885 might be other similar combinations which are grabbed by X for similar 
    886 purposes. 
    887  
    888 We think that this can be countermanded with the `xmodmap' utility, if 
    889 you want to be able to bind one of these key sequences within Emacs. 
    890  
    891 * On Solaris, CTRL-t is ignored by Emacs when you use 
    892 the fr.ISO-8859-15 locale (and maybe other related locales). 
    893  
    894 You can fix this by editing the file: 
    895  
    896         /usr/openwin/lib/locale/iso8859-15/Compose 
    897          
    898 Near the bottom there is a line that reads: 
    899  
    900         Ctrl<t> <quotedbl> <Y>                  : "\276"        threequarters 
    901  
    902 that should read: 
    903  
    904         Ctrl<T> <quotedbl> <Y>                  : "\276"        threequarters 
    905  
    906 Note the lower case <t>.  Changing this line should make C-t work. 
    907  
    908 * Emacs on Digital Unix 4.0 fails to build, giving error message 
    909      Invalid dimension for the charset-ID 160 
    910  
    911 This is due to a bug or an installation problem in GCC 2.8.0. 
    912