#!/bin/sh #### Patch script - GNU Emacs - version 20.4 to 20.5. #### This file contains patches to turn version 20.4 of GNU Emacs into #### 20.5. To apply them, cd to the top of the Emacs source tree, and #### then type 'sh '. #### After this script applies the patches, it will attempt to use an #### existing Emacs to recompile the changed Emacs Lisp files. (You may #### use the environment variable $emacs to specify the location of the #### binary, if it's not in your search path.) When this is finished, #### you can build the new Emacs version. #### We don't include patches for Info files since you can #### regenerate them from the Texinfo files that we do include. #### To update the changed info files, do #### (cd man; make) if [ "$0" = sh -o ! -f "$0" ]; then echo "use \`sh PATCHKIT', not \`sh &2 exit 1 fi if [ -d lisp ] ; then me=$0 elif [ -d emacs-20.4/lisp ] ; then cd emacs-20.4 case $0 in /*) me=$0;; *) me=../$0;; esac else (echo "$0: In order to apply this patch, the current directory" echo "must be the top of the Emacs distribution tree.") >&2 exit 1 fi ### moves and renames #none tail +66 $me | patch -p1 cd lisp for e in $emacs ../src/emacs emacs emacs20 emacs-20 ''; do if [ -n "$e" ]; then v=`$e --version /dev/null | sed -e 's/.* //' -e 's/\.[0-9]*$//'` case $v in 20.4*) break;; esac fi done if [ -z "$e" ]; then (echo "I can't find an Emacs to execute." echo "You'll have to byte-compile the lisp directory by hand.") >&2 exit 0 fi echo "byte compiling with $e (version $v)..." >&2 loadpath=${TMPDIR-/tmp}/$$.el trap "rm -f $loadpath; exit 1" 1 2 3 15 echo "(setq load-path (cons \"`pwd`\" load-path))" >$loadpath # First do the new files, and any older files that might need to be compiled # in a particular order. Then do the rest of the directory. list= for f in $list; do echo Compiling $f... $e -batch -l $loadpath -f batch-byte-compile $f done $e -batch -l $loadpath -f batch-byte-recompile-directory . rm $loadpath exit 0 diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/ChangeLog emacs-20.5/ChangeLog *** emacs-20.4/ChangeLog Mon Jul 12 19:47:36 1999 --- emacs-20.5/ChangeLog Fri Dec 10 17:24:47 1999 *************** *** 1,2 **** --- 1,18 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + + 1999-11-28 Dave Love + + * configure.in: Recognize sparc64-*-linux-gnu*. + + 1999-11-11 Erik Naggum + + * configure.in (bitmapdir): Allow for both "bitmaps" directories. + + 1999-08-04 Eli Zaretskii + + * config.bat: Make --no-debug work again by removing -gcoff. + 1999-07-12 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/README emacs-20.5/README *** emacs-20.4/README Wed Jul 14 18:49:31 1999 --- emacs-20.5/README Fri Dec 3 08:34:46 1999 *************** *** 1,3 **** ! This directory tree holds version 20.4 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. --- 1,3 ---- ! This directory tree holds version 20.5 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/config.bat emacs-20.5/config.bat *** emacs-20.4/config.bat Tue Mar 30 18:27:22 1999 --- emacs-20.5/config.bat Wed Aug 4 12:20:08 1999 *************** rm -f makefile.tmp *** 164,168 **** if "%nodebug%" == "" goto src6 ! sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp sed -e "/^LDFLAGS *=/s/=/=-s/" Makefile rm -f makefile.tmp --- 164,168 ---- if "%nodebug%" == "" goto src6 ! sed -e "/^CFLAGS *=/s/ *-gcoff//" makefile.tmp sed -e "/^LDFLAGS *=/s/=/=-s/" Makefile rm -f makefile.tmp *************** sed -f ../msdos/sed3v2.inp makefile.tmp sed -e "/^ALL_CFLAGS *=/s/=/= -s/" Makefile rm -f makefile.tmp --- 183,187 ---- rm -f makefile.new junk.c if "%nodebug%" == "" goto libsrc3 ! sed -e "/^CFLAGS *=/s/ *-gcoff//" makefile.tmp sed -e "/^ALL_CFLAGS *=/s/=/= -s/" Makefile rm -f makefile.tmp *************** cd oldxmenu *** 194,198 **** sed -f ../msdos/sed5x.inp Makefile if "%nodebug%" == "" goto oldx2 ! sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp mv -f makefile.tmp Makefile :oldx2 --- 194,198 ---- sed -f ../msdos/sed5x.inp Makefile if "%nodebug%" == "" goto oldx2 ! sed -e "/^CFLAGS *=/s/ *-gcoff//" makefile.tmp mv -f makefile.tmp Makefile :oldx2 diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/configure emacs-20.5/configure *** emacs-20.4/configure Mon Jun 7 03:53:20 1999 --- emacs-20.5/configure Fri Dec 3 08:41:15 1999 *************** case "${canonical}" in *** 1331,1335 **** ## Suns ! sparc-*-linux-gnu* ) machine=sparc opsys=gnu-linux ;; --- 1331,1335 ---- ## Suns ! sparc-*-linux-gnu* | sparc64-*-linux-gnu* ) machine=sparc opsys=gnu-linux ;; *************** else *** 2885,2889 **** if test -d "${bmd}/X11/bitmaps"; then bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" ! elif test -d "${bmd}/bitmaps"; then bmd_acc="${bmd_acc}:${bmd}/bitmaps" fi --- 2885,2890 ---- if test -d "${bmd}/X11/bitmaps"; then bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" ! fi ! if test -d "${bmd}/bitmaps"; then bmd_acc="${bmd_acc}:${bmd}/bitmaps" fi *************** echo "checking the machine- and system-d *** 2939,2943 **** - which libraries the lib-src programs will want, and - whether the GNU malloc routines are usable" 1>&6 ! echo "configure:2942: checking the machine- and system-dependent files to find out - which libraries the lib-src programs will want, and - whether the GNU malloc routines are usable" >&5 --- 2940,2944 ---- - which libraries the lib-src programs will want, and - whether the GNU malloc routines are usable" 1>&6 ! echo "configure:2943: checking the machine- and system-dependent files to find out - which libraries the lib-src programs will want, and - whether the GNU malloc routines are usable" >&5 *************** GNU_MALLOC=yes *** 3069,3078 **** doug_lea_malloc=yes echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6 ! echo "configure:3072: checking for malloc_get_state" >&5 if eval "test \"`echo '$''{'ac_cv_func_malloc_get_state'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3073: checking for malloc_get_state" >&5 if eval "test \"`echo '$''{'ac_cv_func_malloc_get_state'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_malloc_get_state=yes" --- 3098,3102 ---- ; return 0; } EOF ! if { (eval echo configure:3101: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_malloc_get_state=yes" *************** fi *** 3118,3127 **** echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6 ! echo "configure:3121: checking for malloc_set_state" >&5 if eval "test \"`echo '$''{'ac_cv_func_malloc_set_state'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3122: checking for malloc_set_state" >&5 if eval "test \"`echo '$''{'ac_cv_func_malloc_set_state'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_malloc_set_state=yes" --- 3147,3151 ---- ; return 0; } EOF ! if { (eval echo configure:3150: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_malloc_set_state=yes" *************** fi *** 3167,3176 **** echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6 ! echo "configure:3170: checking whether __after_morecore_hook exists" >&5 if eval "test \"`echo '$''{'emacs_cv_var___after_morecore_hook'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3171: checking whether __after_morecore_hook exists" >&5 if eval "test \"`echo '$''{'emacs_cv_var___after_morecore_hook'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_var___after_morecore_hook=yes --- 3180,3184 ---- ; return 0; } EOF ! if { (eval echo configure:3183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_var___after_morecore_hook=yes *************** LIBS="$libsrc_libs $LIBS" *** 3229,3233 **** echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 ! echo "configure:3232: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 3230,3234 ---- echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6 ! echo "configure:3233: checking for dnet_ntoa in -ldnet" >&5 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 3237,3241 **** LIBS="-ldnet $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 3249,3253 ---- ; return 0; } EOF ! if { (eval echo configure:3252: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 3277,3281 **** echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 ! echo "configure:3280: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 3278,3282 ---- echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6 ! echo "configure:3281: checking for main in -lXbsd" >&5 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 3285,3289 **** LIBS="-lXbsd $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 3293,3297 ---- ; return 0; } EOF ! if { (eval echo configure:3296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 3314,3318 **** echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 ! echo "configure:3317: checking for cma_open in -lpthreads" >&5 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 3315,3319 ---- echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6 ! echo "configure:3318: checking for cma_open in -lpthreads" >&5 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 3322,3326 **** LIBS="-lpthreads $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 3334,3338 ---- ; return 0; } EOF ! if { (eval echo configure:3337: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 3362,3366 **** echo $ac_n "checking for XFree86 in /usr/X386""... $ac_c" 1>&6 ! echo "configure:3365: checking for XFree86 in /usr/X386" >&5 if test -d /usr/X386/include; then HAVE_XFREE386=yes --- 3363,3367 ---- echo $ac_n "checking for XFree86 in /usr/X386""... $ac_c" 1>&6 ! echo "configure:3366: checking for XFree86 in /usr/X386" >&5 if test -d /usr/X386/include; then HAVE_XFREE386=yes *************** if test "${HAVE_X11}" = "yes"; then *** 3391,3397 **** if test "${opsys}" = "gnu-linux"; then echo $ac_n "checking whether X on GNU/Linux needs -b to link""... $ac_c" 1>&6 ! echo "configure:3394: checking whether X on GNU/Linux needs -b to link" >&5 cat > conftest.$ac_ext <&6 ! echo "configure:3395: checking whether X on GNU/Linux needs -b to link" >&5 cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* xlinux_first_failure=no --- 3401,3405 ---- ; return 0; } EOF ! if { (eval echo configure:3404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* xlinux_first_failure=no *************** rm -f conftest* *** 3420,3424 **** LIBS="$LIBS -b i486-linuxaout" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* xlinux_second_failure=no --- 3428,3432 ---- ; return 0; } EOF ! if { (eval echo configure:3431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* xlinux_second_failure=no *************** XScreenNumberOfScreen XSetWMProtocols *** 3457,3466 **** do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:3460: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3461: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 3486,3490 ---- ; return 0; } EOF ! if { (eval echo configure:3489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" *************** fi *** 3513,3522 **** if test "${window_system}" = "x11"; then echo $ac_n "checking X11 version 6""... $ac_c" 1>&6 ! echo "configure:3516: checking X11 version 6" >&5 if eval "test \"`echo '$''{'emacs_cv_x11_version_6'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 3514,3523 ---- if test "${window_system}" = "x11"; then echo $ac_n "checking X11 version 6""... $ac_c" 1>&6 ! echo "configure:3517: checking X11 version 6" >&5 if eval "test \"`echo '$''{'emacs_cv_x11_version_6'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** fail; *** 3528,3532 **** ; return 0; } EOF ! if { (eval echo configure:3531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_x11_version_6=yes --- 3529,3533 ---- ; return 0; } EOF ! if { (eval echo configure:3532: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_x11_version_6=yes *************** fi *** 3553,3562 **** if test "${window_system}" = "x11"; then echo $ac_n "checking X11 version 5""... $ac_c" 1>&6 ! echo "configure:3556: checking X11 version 5" >&5 if eval "test \"`echo '$''{'emacs_cv_x11_version_5'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 3554,3563 ---- if test "${window_system}" = "x11"; then echo $ac_n "checking X11 version 5""... $ac_c" 1>&6 ! echo "configure:3557: checking X11 version 5" >&5 if eval "test \"`echo '$''{'emacs_cv_x11_version_5'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** fail; *** 3568,3572 **** ; return 0; } EOF ! if { (eval echo configure:3571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_x11_version_5=yes --- 3569,3573 ---- ; return 0; } EOF ! if { (eval echo configure:3572: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_x11_version_5=yes *************** if test x"${USE_X_TOOLKIT}" = xmaybe; th *** 3596,3605 **** if test x"${HAVE_X11R5}" = xyes; then echo $ac_n "checking X11 version 5 with Xaw""... $ac_c" 1>&6 ! echo "configure:3599: checking X11 version 5 with Xaw" >&5 if eval "test \"`echo '$''{'emacs_cv_x11_version_5_with_xaw'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3600: checking X11 version 5 with Xaw" >&5 if eval "test \"`echo '$''{'emacs_cv_x11_version_5_with_xaw'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_x11_version_5_with_xaw=yes --- 3611,3615 ---- ; return 0; } EOF ! if { (eval echo configure:3614: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_x11_version_5_with_xaw=yes *************** X_TOOLKIT_TYPE=$USE_X_TOOLKIT *** 3638,3647 **** if test "${USE_X_TOOLKIT}" != "none"; then echo $ac_n "checking X11 toolkit version""... $ac_c" 1>&6 ! echo "configure:3641: checking X11 toolkit version" >&5 if eval "test \"`echo '$''{'emacs_cv_x11_toolkit_version_6'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 3639,3648 ---- if test "${USE_X_TOOLKIT}" != "none"; then echo $ac_n "checking X11 toolkit version""... $ac_c" 1>&6 ! echo "configure:3642: checking X11 toolkit version" >&5 if eval "test \"`echo '$''{'emacs_cv_x11_toolkit_version_6'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** fail; *** 3653,3657 **** ; return 0; } EOF ! if { (eval echo configure:3656: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_x11_toolkit_version_6=yes --- 3654,3658 ---- ; return 0; } EOF ! if { (eval echo configure:3657: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_x11_toolkit_version_6=yes *************** EOF *** 3683,3687 **** fi echo $ac_n "checking for XmuConvertStandardSelection in -lXmu""... $ac_c" 1>&6 ! echo "configure:3686: checking for XmuConvertStandardSelection in -lXmu" >&5 ac_lib_var=`echo Xmu'_'XmuConvertStandardSelection | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 3684,3688 ---- fi echo $ac_n "checking for XmuConvertStandardSelection in -lXmu""... $ac_c" 1>&6 ! echo "configure:3687: checking for XmuConvertStandardSelection in -lXmu" >&5 ac_lib_var=`echo Xmu'_'XmuConvertStandardSelection | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 3691,3695 **** LIBS="-lXmu $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 3703,3707 ---- ; return 0; } EOF ! if { (eval echo configure:3706: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 3734,3743 **** if test "${USE_X_TOOLKIT}" = "MOTIF"; then echo $ac_n "checking for Motif version 2.1""... $ac_c" 1>&6 ! echo "configure:3737: checking for Motif version 2.1" >&5 if eval "test \"`echo '$''{'emacs_cv_motif_version_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 3735,3744 ---- if test "${USE_X_TOOLKIT}" = "MOTIF"; then echo $ac_n "checking for Motif version 2.1""... $ac_c" 1>&6 ! echo "configure:3738: checking for Motif version 2.1" >&5 if eval "test \"`echo '$''{'emacs_cv_motif_version_2_1'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** Motif version prior to 2.1. *** 3750,3754 **** ; return 0; } EOF ! if { (eval echo configure:3753: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* emacs_cv_motif_version_2_1=yes --- 3751,3755 ---- ; return 0; } EOF ! if { (eval echo configure:3754: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then rm -rf conftest* emacs_cv_motif_version_2_1=yes *************** EOF *** 3770,3774 **** echo $ac_n "checking for XpCreateContext in -lXp""... $ac_c" 1>&6 ! echo "configure:3773: checking for XpCreateContext in -lXp" >&5 ac_lib_var=`echo Xp'_'XpCreateContext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 3771,3775 ---- echo $ac_n "checking for XpCreateContext in -lXp""... $ac_c" 1>&6 ! echo "configure:3774: checking for XpCreateContext in -lXp" >&5 ac_lib_var=`echo Xp'_'XpCreateContext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 3778,3782 **** LIBS="-lXp $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 3790,3794 ---- ; return 0; } EOF ! if { (eval echo configure:3793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 3821,3830 **** # If netdb.h doesn't declare h_errno, we must declare it by hand. echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 ! echo "configure:3824: checking whether netdb declares h_errno" >&5 if eval "test \"`echo '$''{'emacs_cv_netdb_declares_h_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 3822,3831 ---- # If netdb.h doesn't declare h_errno, we must declare it by hand. echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6 ! echo "configure:3825: checking whether netdb declares h_errno" >&5 if eval "test \"`echo '$''{'emacs_cv_netdb_declares_h_errno'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** return h_errno; *** 3833,3837 **** ; return 0; } EOF ! if { (eval echo configure:3836: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_netdb_declares_h_errno=yes --- 3834,3838 ---- ; return 0; } EOF ! if { (eval echo configure:3837: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_netdb_declares_h_errno=yes *************** fi *** 3856,3865 **** # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! echo "configure:3859: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < --- 3857,3866 ---- # for constant arguments. Useless! echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6 ! echo "configure:3860: checking for working alloca.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < *************** char *p = alloca(2 * sizeof(int)); *** 3868,3872 **** ; return 0; } EOF ! if { (eval echo configure:3871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes --- 3869,3873 ---- ; return 0; } EOF ! if { (eval echo configure:3872: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_header_alloca_h=yes *************** fi *** 3889,3898 **** echo $ac_n "checking for alloca""... $ac_c" 1>&6 ! echo "configure:3892: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3893: checking for alloca" >&5 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes --- 3918,3922 ---- ; return 0; } EOF ! if { (eval echo configure:3921: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* ac_cv_func_alloca_works=yes *************** EOF *** 3949,3958 **** echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6 ! echo "configure:3952: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3953: checking whether alloca needs Cray hooks" >&5 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3982: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:3983: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 4008,4012 ---- ; return 0; } EOF ! if { (eval echo configure:4011: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" *************** fi *** 4034,4038 **** echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:4037: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4035,4039 ---- echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6 ! echo "configure:4038: checking stack direction for C alloca" >&5 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** else *** 4042,4046 **** else cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 --- 4062,4066 ---- } EOF ! if { (eval echo configure:4065: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then ac_cv_c_stack_direction=1 *************** fi *** 4086,4090 **** # On HPUX 9.01, -lm does not contain logb, so check for sqrt. echo $ac_n "checking for sqrt in -lm""... $ac_c" 1>&6 ! echo "configure:4089: checking for sqrt in -lm" >&5 ac_lib_var=`echo m'_'sqrt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 4087,4091 ---- # On HPUX 9.01, -lm does not contain logb, so check for sqrt. echo $ac_n "checking for sqrt in -lm""... $ac_c" 1>&6 ! echo "configure:4090: checking for sqrt in -lm" >&5 ac_lib_var=`echo m'_'sqrt | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 4094,4098 **** LIBS="-lm $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 4106,4110 ---- ; return 0; } EOF ! if { (eval echo configure:4109: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 4135,4139 **** # Check for mail-locking functions in a "mail" library echo $ac_n "checking for maillock in -lmail""... $ac_c" 1>&6 ! echo "configure:4138: checking for maillock in -lmail" >&5 ac_lib_var=`echo mail'_'maillock | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 4136,4140 ---- # Check for mail-locking functions in a "mail" library echo $ac_n "checking for maillock in -lmail""... $ac_c" 1>&6 ! echo "configure:4139: checking for maillock in -lmail" >&5 ac_lib_var=`echo mail'_'maillock | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 4143,4147 **** LIBS="-lmail $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 4155,4159 ---- ; return 0; } EOF ! if { (eval echo configure:4158: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** EOF *** 4176,4185 **** do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4179: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4180: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 4205,4209 ---- ; return 0; } EOF ! if { (eval echo configure:4208: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" *************** do *** 4232,4246 **** ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4235: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4245: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 4233,4247 ---- ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'` echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6 ! echo "configure:4236: checking for $ac_hdr" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4246: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then *************** utimes setrlimit setpgid getcwd shutdown *** 4280,4289 **** do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 ! echo "configure:4283: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4284: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" --- 4309,4313 ---- ; return 0; } EOF ! if { (eval echo configure:4312: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" *************** done *** 4338,4342 **** # than to expect to find it in ncurses. echo $ac_n "checking for tparm in -lncurses""... $ac_c" 1>&6 ! echo "configure:4341: checking for tparm in -lncurses" >&5 ac_lib_var=`echo ncurses'_'tparm | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 4339,4343 ---- # than to expect to find it in ncurses. echo $ac_n "checking for tparm in -lncurses""... $ac_c" 1>&6 ! echo "configure:4342: checking for tparm in -lncurses" >&5 ac_lib_var=`echo ncurses'_'tparm | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 4346,4350 **** LIBS="-lncurses $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 4358,4362 ---- ; return 0; } EOF ! if { (eval echo configure:4361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 4388,4392 **** # to return localized messages. echo $ac_n "checking for dgettext in -lintl""... $ac_c" 1>&6 ! echo "configure:4391: checking for dgettext in -lintl" >&5 ac_lib_var=`echo intl'_'dgettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then --- 4389,4393 ---- # to return localized messages. echo $ac_n "checking for dgettext in -lintl""... $ac_c" 1>&6 ! echo "configure:4392: checking for dgettext in -lintl" >&5 ac_lib_var=`echo intl'_'dgettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then *************** else *** 4396,4400 **** LIBS="-lintl $LIBS" cat > conftest.$ac_ext < conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" --- 4408,4412 ---- ; return 0; } EOF ! if { (eval echo configure:4411: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" *************** fi *** 4436,4440 **** echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 ! echo "configure:4439: checking whether localtime caches TZ" >&5 if eval "test \"`echo '$''{'emacs_cv_localtime_cache'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 --- 4437,4441 ---- echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6 ! echo "configure:4440: checking whether localtime caches TZ" >&5 if eval "test \"`echo '$''{'emacs_cv_localtime_cache'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 *************** emacs_cv_localtime_cache=yes *** 4446,4450 **** else cat > conftest.$ac_ext < --- 4447,4451 ---- else cat > conftest.$ac_ext < *************** main() *** 4481,4485 **** } EOF ! if { (eval echo configure:4484: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then emacs_cv_localtime_cache=no --- 4482,4486 ---- } EOF ! if { (eval echo configure:4485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null then emacs_cv_localtime_cache=no *************** fi *** 4509,4518 **** if test "x$HAVE_TIMEVAL" = xyes; then echo $ac_n "checking whether gettimeofday can accept two arguments""... $ac_c" 1>&6 ! echo "configure:4512: checking whether gettimeofday can accept two arguments" >&5 if eval "test \"`echo '$''{'emacs_cv_gettimeofday_two_arguments'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4513: checking whether gettimeofday can accept two arguments" >&5 if eval "test \"`echo '$''{'emacs_cv_gettimeofday_two_arguments'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_gettimeofday_two_arguments=yes --- 4537,4541 ---- ; return 0; } EOF ! if { (eval echo configure:4540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* emacs_cv_gettimeofday_two_arguments=yes *************** fi *** 4559,4568 **** ok_so_far=yes echo $ac_n "checking for socket""... $ac_c" 1>&6 ! echo "configure:4562: checking for socket" >&5 if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&6 ! echo "configure:4563: checking for socket" >&5 if eval "test \"`echo '$''{'ac_cv_func_socket'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_socket=yes" --- 4588,4592 ---- ; return 0; } EOF ! if { (eval echo configure:4591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then rm -rf conftest* eval "ac_cv_func_socket=yes" *************** if test $ok_so_far = yes; then *** 4610,4624 **** ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6 ! echo "configure:4613: checking for netinet/in.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4623: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 4611,4625 ---- ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6 ! echo "configure:4614: checking for netinet/in.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4624: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then *************** if test $ok_so_far = yes; then *** 4646,4660 **** ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6 ! echo "configure:4649: checking for arpa/inet.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4659: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then --- 4647,4661 ---- ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6 ! echo "configure:4650: checking for arpa/inet.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" ! { (eval echo configure:4660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out` if test -z "$ac_err"; then diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/configure.in emacs-20.5/configure.in *** emacs-20.4/configure.in Sat May 29 21:26:03 1999 --- emacs-20.5/configure.in Sun Nov 28 19:18:39 1999 *************** case "${canonical}" in *** 774,778 **** ## Suns ! sparc-*-linux-gnu* ) machine=sparc opsys=gnu-linux ;; --- 774,778 ---- ## Suns ! sparc-*-linux-gnu* | sparc64-*-linux-gnu* ) machine=sparc opsys=gnu-linux ;; *************** else *** 1191,1195 **** if test -d "${bmd}/X11/bitmaps"; then bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" ! elif test -d "${bmd}/bitmaps"; then bmd_acc="${bmd_acc}:${bmd}/bitmaps" fi --- 1191,1196 ---- if test -d "${bmd}/X11/bitmaps"; then bmd_acc="${bmd_acc}:${bmd}/X11/bitmaps" ! fi ! if test -d "${bmd}/bitmaps"; then bmd_acc="${bmd_acc}:${bmd}/bitmaps" fi diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/etc/ChangeLog emacs-20.5/etc/ChangeLog *** emacs-20.4/etc/ChangeLog Mon Jul 12 19:50:17 1999 --- emacs-20.5/etc/ChangeLog Fri Dec 10 17:27:06 1999 *************** *** 1,2 **** --- 1,10 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + + 1999-11-30 Paul Eggert + + * PROBLEMS: Update Solaris 2.6 and 7 problems. + 1999-07-12 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/etc/FAQ emacs-20.5/etc/FAQ *** emacs-20.4/etc/FAQ Thu May 27 14:54:28 1999 --- emacs-20.5/etc/FAQ Mon Aug 2 14:33:08 1999 *************** Status of Emacs *** 890,894 **** 24: What is the latest version of Emacs? ! Emacs 20.4 is the current version as of this writing. 25: What is different about Emacs 20? --- 890,894 ---- 24: What is the latest version of Emacs? ! Emacs 20.5 is the current version as of this writing. 25: What is different about Emacs 20? *************** Difficulties Building/Installing/Porting *** 2159,2169 **** available at ! ftp://ftp.gnu.org/pub/gnu/emacs/emacs-20.4.tar.gz The above will obviously change as new versions of Emacs come out. For ! instance, when Emacs 20.5 is released, it will most probably be ! available at ! ftp://ftp.gnu.org/pub/gnu/emacs/emacs-20.5.tar.gz Again, you should use one of the mirror sites in question 92 (and --- 2159,2168 ---- available at ! ftp://ftp.gnu.org/pub/gnu/emacs/emacs-20.5.tar.gz The above will obviously change as new versions of Emacs come out. For ! instance, Emacs 20.6 would most probably be available at ! ftp://ftp.gnu.org/pub/gnu/emacs/emacs-20.6.tar.gz Again, you should use one of the mirror sites in question 92 (and *************** Difficulties Building/Installing/Porting *** 2175,2182 **** sources, you will probably be able to uncompress them with the command ! gunzip --verbose emacs-20.4.tar.gz ! changing the Emacs version (20.4), as necessary. Once gunzip has ! finished doing its job, a file by the name of "emacs-20.4.tar" should be in your build directory. --- 2174,2181 ---- sources, you will probably be able to uncompress them with the command ! gunzip --verbose emacs-20.5.tar.gz ! changing the Emacs version (20.5), as necessary. Once gunzip has ! finished doing its job, a file by the name of "emacs-20.5.tar" should be in your build directory. *************** Difficulties Building/Installing/Porting *** 2187,2191 **** look like ! tar -xvvf emacs-20.4.tar The `x' indicates that we want to extract files from this tarfile, the --- 2186,2190 ---- look like ! tar -xvvf emacs-20.5.tar The `x' indicates that we want to extract files from this tarfile, the *************** Difficulties Building/Installing/Porting *** 2196,2200 **** combine this step and the previous one by using the command ! tar -zxvvf emacs-20.4.tar.gz The additional `z' at the beginning of the options list tells GNU tar --- 2195,2199 ---- combine this step and the previous one by using the command ! tar -zxvvf emacs-20.5.tar.gz The additional `z' at the beginning of the options list tells GNU tar *************** Difficulties Building/Installing/Porting *** 2203,2211 **** At this point, the Emacs sources (all 25+ megabytes of them) should be ! sitting in a directory called "emacs-20.4". On most common Unix and Unix-like systems, you should be able to compile Emacs (with X Windows support) with the following commands: ! cd emacs-20.4 [ change directory to emacs-20.4 ] ./configure [ configure Emacs for your particular system ] make [ use Makefile to build components, then Emacs ] --- 2202,2210 ---- At this point, the Emacs sources (all 25+ megabytes of them) should be ! sitting in a directory called "emacs-20.5". On most common Unix and Unix-like systems, you should be able to compile Emacs (with X Windows support) with the following commands: ! cd emacs-20.5 [ change directory to emacs-20.5 ] ./configure [ configure Emacs for your particular system ] make [ use Makefile to build components, then Emacs ] *************** Difficulties Building/Installing/Porting *** 2233,2237 **** Emacs places nearly everything in version-specific directories (e.g., ! /usr/local/share/emacs/20.4), so the only files that can be overwritten when installing a new release are /usr/local/bin/emacs and the Emacs Info documentation in /usr/local/info. Back up these files before you install --- 2232,2236 ---- Emacs places nearly everything in version-specific directories (e.g., ! /usr/local/share/emacs/20.5), so the only files that can be overwritten when installing a new release are /usr/local/bin/emacs and the Emacs Info documentation in /usr/local/info. Back up these files before you install *************** Finding/Getting Emacs and Related Packag *** 2423,2427 **** can do some clever tricks with X Windows, such as putting arbitrary graphics in a buffer; similar facilities have been implemented for Emacs, ! which will be integrated after version 20.4. Emacs and XEmacs each come with some Lisp packages that are lacking or more up-to-date in the other; RMS says that the FSF would include more packages that come with XEmacs, --- 2422,2426 ---- can do some clever tricks with X Windows, such as putting arbitrary graphics in a buffer; similar facilities have been implemented for Emacs, ! which will be integrated after version 20.5. Emacs and XEmacs each come with some Lisp packages that are lacking or more up-to-date in the other; RMS says that the FSF would include more packages that come with XEmacs, diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/etc/HELLO emacs-20.5/etc/HELLO *** emacs-20.4/etc/HELLO Tue Apr 21 06:01:13 1998 --- emacs-20.5/etc/HELLO Mon Sep 20 04:15:13 1999 *************** Thai (,T@RIRd7B(B) ,TJ(B0,TGQ(B *** 32,36 **** Tibetan (2$(7"70"](B1$(7"2$(8!;(B2$(7%P`"Q(B1$(7"2$(8!;(B) $(7"7(B2$(7$P`"Q(B1$(8!;(B2$(7"E0"S(B1$(7"G$(8!;$(7"7(B2$(7"20"[(B1$(8!;(B2$(7"D0"[(B1$(7"#"G!>(B Tigrigna ($(3"8#r!N"^(B) $(3!Q!,!<"8(B ! Turkish (T,A|(Brk,Ag(Be) Merhaba Vietnamese (Ti,1*(Bng Vi,1.(Bt) Ch,1`(Bo b,1U(Bn --- 32,36 ---- Tibetan (2$(7"70"](B1$(7"2$(8!;(B2$(7%P`"Q(B1$(7"2$(8!;(B) $(7"7(B2$(7$P`"Q(B1$(8!;(B2$(7"E0"S(B1$(7"G$(8!;$(7"7(B2$(7"20"[(B1$(8!;(B2$(7"D0"[(B1$(7"#"G!>(B Tigrigna ($(3"8#r!N"^(B) $(3!Q!,!<"8(B ! Turkish (T,M|(Brk,Mg(Be) Merhaba Vietnamese (Ti,1*(Bng Vi,1.(Bt) Ch,1`(Bo b,1U(Bn diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/etc/MACHINES emacs-20.5/etc/MACHINES *** emacs-20.4/etc/MACHINES Mon Jan 25 22:53:07 1999 --- emacs-20.5/etc/MACHINES Mon Aug 2 14:56:48 1999 *************** Microport *** 1228,1234 **** MSDOS ! For installation on MSDOS, see the file etc/INSTALL and search for ! `MSDOG'. See the file etc/MSDOS for information about using Emacs ! on MSDOS. SCO Unix --- 1228,1234 ---- MSDOS ! For installation on MSDOS, see the file INSTALL (search for `MSDOG', ! near the end of the file). See the "MS-DOS" chapter of the manual ! for information about using Emacs on MSDOS. SCO Unix diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/etc/MORE.STUFF emacs-20.5/etc/MORE.STUFF *** emacs-20.4/etc/MORE.STUFF Tue Jun 1 17:58:41 1999 --- emacs-20.5/etc/MORE.STUFF Thu Sep 9 21:17:56 1999 *************** *** 1,8 **** More Neat Stuff for your Emacs -*-mode: text; outline-minor-mode: t-*- ! This file describes GNU Emacs programs and resources that are maintained ! by other people. Some of these may become part of the Emacs ! distribution in the future. Also included are sites where development ! versions of some packages distributed with Emacs may be found. You might also look at the Emacs web page --- 1,11 ---- More Neat Stuff for your Emacs -*-mode: text; outline-minor-mode: t-*- ! This file describes GNU Emacs programs and resources that are ! maintained by other people. Some of these may become part of the ! Emacs distribution in the future. Others we unfortunately can't ! distribute, even though they are free software, because we lack legal ! papers for copyright purposes. Also included are sites where ! development versions of some packages distributed with Emacs may be ! found. You might also look at the Emacs web page *************** engine) or retrievable from general Usen *** 48,53 **** You might find bug-fixes or enhancements in these places. ! * Autorevert: ! * Battery and Info Look: --- 51,58 ---- You might find bug-fixes or enhancements in these places. ! * Ada: ! ! * Autorevert and Follow: ! * Battery and Info Look: *************** You might find bug-fixes or enhancements *** 66,71 **** - * Elint: - * Expand: --- 71,74 ---- *************** You might find bug-fixes or enhancements *** 83,88 **** (And some addons for it.) - * Follow: - * Ispell: --- 86,89 ---- *************** the future. *** 169,176 **** From GNU distribution mirrors. ! * ILISP: Provides an interactive environment for manipulating an inferior ! process running some form of Lisp. Reported to have a problem with ! Emacs 20. * JDE: --- 170,176 ---- From GNU distribution mirrors. ! * ILISP: Provides an interactive environment for manipulating an inferior ! process running some form of Lisp. * JDE: *************** the future. *** 178,182 **** * MULE-UCS: Universal enCoding System ! : Extended coding systems for MULE, specifically for reading and writing UTF-8 encoded Unicode. --- 178,182 ---- * MULE-UCS: Universal enCoding System ! : Extended coding systems for MULE, specifically for reading and writing UTF-8 encoded Unicode. *************** the future. *** 185,189 **** PGP and GPG support. PGP isn't free software, but GPG, the GNU ! Privacy Guard, is under development as a free replacement. * Pointers to MIME packages: --- 185,190 ---- PGP and GPG support. PGP isn't free software, but GPG, the GNU ! Privacy Guard, is under development as a free replacement ! . * Pointers to MIME packages: *************** the future. *** 198,203 **** * VM (View Mail): Alternative ! mail reader. Apparently not currently supported under Emacs 20. ! There is a VM newsgroup: * W3: --- 199,203 ---- * VM (View Mail): Alternative ! mail reader. There is a VM newsgroup: * W3: *************** the future. *** 208,212 **** * Unpacked Emacs sources ! Erik Naggum maintains an unpacked copy of the Emacs distribution ! , which may be useful for checking ! something in a later release without downloading the whole distribution. --- 208,211 ---- * Unpacked Emacs sources ! An unpacked current source tree is available from ! . diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/etc/NEWS emacs-20.5/etc/NEWS *** emacs-20.4/etc/NEWS Mon Jul 12 19:31:17 1999 --- emacs-20.5/etc/NEWS Mon Nov 29 15:20:47 1999 *************** Please send Emacs bug reports to bug-gnu *** 6,9 **** --- 6,14 ---- For older news, see the file ONEWS. + * Emacs 20.5 is a bug-fix release with no user-visible changes. + + ** Not new, but not mentioned before: + M-w when Transient Mark mode is enabled disables the mark. + * Changes in Emacs 20.4 diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/etc/PROBLEMS emacs-20.5/etc/PROBLEMS *** emacs-20.4/etc/PROBLEMS Wed Jul 7 18:45:29 1999 --- emacs-20.5/etc/PROBLEMS Wed Dec 1 09:19:31 1999 *************** This file describes various problems tha *** 2,5 **** --- 2,28 ---- in compiling, installing and running GNU Emacs. + * 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. + It is possible that this problem results from upgrading the operating + system without reinstalling GCC; so you could also try reinstalling + the same version of GCC, and telling us whether that fixes the problem. + + * On Solaris 7, Emacs gets a segmentation fault when starting up using X. + + This results from Sun patch 107058-01 (SunOS 5.7: Patch for + assembler) if you use GCC version 2.7 or later. + To work around it, either install patch 106950-03 or later, + or uninstall patch 107058-01, or install the GNU Binutils. + Then recompile Emacs, and it should work. + + * With some fonts--especially Courier fonts--lines sometimes appear + "too tall". + + Emacs calculates line height based on the maximum bounds of the font, + if that is bigger than the font's recommended height. The reason is + to ensure there is no overlap between one line and the next. It does + not look quite as good, but it works reliably. + * With X11R6.4, public-patch-3, Emacs crashes at startup. *************** Reportedly this patch in X fixes the pro *** 40,60 **** - * On Solaris 2.7, the Compose key does not work *except* when the - system is quite heavily loaded. - - This is a bug in Motif in Solaris. Supposedly it has been fixed for - the next major release of Solaris. However, if someone with Sun - support complains to Sun about the bug, they may release a patch for - Solaris 2.7. If you do this, mention Sun bug #4188711. - * Emacs crashes on Irix 6.5 on the SGI R10K, when compiled with GCC. ! ! This seems to be due a bug in GCC; no fix has been identified ! as yet, and no version of GCC seems to be free of the bug. ! It may be that the problem happens on any Irix version with this ! hardware. ! ! People are working on the problem; in the mean time, it is ! necessary to use some other compiler. * Emacs crashes in utmpname on Irix 5.3. --- 63,69 ---- * Emacs crashes on Irix 6.5 on the SGI R10K, when compiled with GCC. ! ! This seems to be fixed in GCC 2.95. * Emacs crashes in utmpname on Irix 5.3. *************** On Solaris 2.6, Emacs is said to work wi *** 342,346 **** 105284-18 might fix it again. ! * On Solaris 2.6, the Compose key does not work. One workaround is to use a locale that allows non-ASCII characters. --- 351,360 ---- 105284-18 might fix it again. ! * On Solaris 2.6 and 7, the Compose key does not work. ! ! This is a bug in Motif in Solaris. Supposedly it has been fixed for ! the next major release of Solaris. However, if someone with Sun ! support complains to Sun about the bug, they may release a patch. ! If you do this, mention Sun bug #4188711. One workaround is to use a locale that allows non-ASCII characters. *************** lists the supported locales; any locale *** 350,358 **** should do. ! pen@lysator.liu.se says (Feb 1998) that this is a bug in the Solaris ! 2.6 X libraries, and that the Compose key does work if you link with ! the MIT X11 libraries instead. ! ! Sun has accepted this as a bug; see Sun bug 4188711. * Emacs does not know your host's fully-qualified domain name. --- 364,370 ---- should do. ! pen@lysator.liu.se says (Feb 1998) that the Compose key does work ! if you link with the MIT X11 libraries instead of the Solaris X11 ! libraries. * Emacs does not know your host's fully-qualified domain name. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/info/dir emacs-20.5/info/dir *** emacs-20.4/info/dir Sat May 16 20:48:48 1998 --- emacs-20.5/info/dir Wed Sep 1 05:34:24 1999 *************** File: dir Node: Top This is the top of t *** 31,32 **** --- 31,35 ---- * CC mode: (ccmode). The GNU Emacs mode for editing C, C++, Objective-C and Java code. + * RefTeX: (reftex). Emacs support for LaTeX cross-references and citations. + * Widget: (widget). Documenting the "widget" package used by the + Emacs Custom facility. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lib-src/ChangeLog emacs-20.5/lib-src/ChangeLog *** emacs-20.4/lib-src/ChangeLog Mon Jul 12 19:46:57 1999 --- emacs-20.5/lib-src/ChangeLog Fri Dec 10 17:25:36 1999 *************** *** 1,2 **** --- 1,15 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + + 1999-11-13 Gerd Moellmann + + * Makefile.in (b2m): Add dependency on GETOPTDEPS. + + 1999-11-03 Gerd Moellmann + + * emacsclient.c, etags.c: Change email address to send bugs + to. + 1999-07-12 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lib-src/Makefile.in emacs-20.5/lib-src/Makefile.in *** emacs-20.4/lib-src/Makefile.in Wed Jun 30 18:38:44 1999 --- emacs-20.5/lib-src/Makefile.in Sat Nov 13 23:41:47 1999 *************** sorted-doc: ${srcdir}/sorted-doc.c ${ALL *** 380,384 **** $(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c ${ALLOCA} $(LOADLIBES) -o sorted-doc ! b2m: ${srcdir}/b2m.c ../src/config.h $(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c -DVERSION="\"${version}\"" \ $(GETOPTOBJS) $(LOADLIBES) -o b2m --- 380,384 ---- $(CC) ${ALL_CFLAGS} ${srcdir}/sorted-doc.c ${ALLOCA} $(LOADLIBES) -o sorted-doc ! b2m: ${srcdir}/b2m.c ../src/config.h $(GETOPTDEPS) $(CC) ${ALL_CFLAGS} ${srcdir}/b2m.c -DVERSION="\"${version}\"" \ $(GETOPTOBJS) $(LOADLIBES) -o b2m diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lib-src/emacsclient.c emacs-20.5/lib-src/emacsclient.c *** emacs-20.4/lib-src/emacsclient.c Thu Apr 29 22:26:02 1999 --- emacs-20.5/lib-src/emacsclient.c Wed Nov 3 14:12:46 1999 *************** print_help_and_exit () *** 109,113 **** progname); fprintf (stderr, ! "Report bugs to bug-gnu-emacs@prep.ai.mit.edu.\n"); exit (1); } --- 109,113 ---- progname); fprintf (stderr, ! "Report bugs to bug-gnu-emacs@gnu.org.\n"); exit (1); } diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lib-src/etags.c emacs-20.5/lib-src/etags.c *** emacs-20.4/lib-src/etags.c Wed Jun 23 11:20:27 1999 --- emacs-20.5/lib-src/etags.c Wed Nov 3 14:12:51 1999 *************** are. Relative ones are stored relative *** 618,622 **** puts (""); ! puts ("Report bugs to bug-gnu-emacs@prep.ai.mit.edu"); exit (GOOD); --- 618,622 ---- puts (""); ! puts ("Report bugs to bug-gnu-emacs@gnu.org"); exit (GOOD); diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/ChangeLog emacs-20.5/lisp/ChangeLog *** emacs-20.4/lisp/ChangeLog Wed Jul 14 17:14:06 1999 --- emacs-20.5/lisp/ChangeLog Fri Dec 10 17:25:02 1999 *************** *** 1,2 **** --- 1,240 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + + 1999-12-03 Kenichi Handa + + * international/mule-util.el (truncate-string-to-width): Docsting + fixed. + + 1999-12-02 Gerd Moellmann + + * vc.el (vc-update-change-log): Look for rcs2log under + exec-directory. + + 1999-12-02 Ken'ichi Handa + + * international/mule.el (charsetp): Fix typo in docstring. + + * international/mule-diag.el (list-coding-categories): Fix typo; + automatic -> autoload. + + 1999-12-02 Gerd Moellmann + + * calendar/appt.el (appt-convert-time): Handle "12:MMam", + remove extraneous string-match. + + 1999-12-01 Kenichi Handa + + * international/mule-cmds.el (select-safe-coding-system): Use + display-buffer to show the current buffer instead of showing + it in the selected window. Check existence of "*Warning*" buffer + before deleting it. + + 1999-12-02 Gerd Moellmann + + * finder.el (finder-commentary): Activate Finder mode. + + 1999-11-30 Anders Lindgren + + * autorevert.el (auto-revert-buffers): Auto-revert mode was turned + off when reverting buffers that contained mode specifiers. + `revert-buffer' is now called with non-nil PRESERVE-MODES + argument. + + 1999-11-29 Dave Love + + * dired.el (dired-move-to-filename-regexp): Make it work + for LANG=de_DE.iso88591 on HPUX 11.0. + + 1999-11-26 Gerd Moellmann + + * progmodes/f90.el (f90-abbrev-start): Use `eq' instead of `='. + + 1999-11-26 Kenichi Handa + + * international/mule.el (set-auto-coding): Call set-auto-coding-1 + with save-match-data. + (set-auto-coding-1): New function. + + 1999-11-24 Gerd Moellmann + + * locate.el (locate-with-filter): Doc fix. + + 1999-11-23 Andrew Innes + + * w32-win.el (w32-drag-n-drop): Load files in current window, if + drop coords aren't over a specific window. + + 1999-11-23 Gerd Moellmann + + * emacs-lisp/advice.el (ad-special-forms): Check whether track-mouse + is defined. + + 1999-11-19 Ken'ichi Handa + + * ps-mule.el (ps-mule-font-info-database-bdf): BDF font for + chinese-sisheng charset is 7bit encoding, not 8bit. + + 1999-11-18 Richard M. Stallman + + * mail/rmailedit.el (rmail-cease-edit): Run rmail-mode-hook. + + 1999-11-12 Andrew Innes + + * select.el (x-set-selection): Call buffer-substring, not + substring. Also fix docstring + + 1999-11-11 Gerd Moellmann + + * replace.el (perform-replace): Temporarily disable + case-fold-search if search argument contains uppercase + characters. + + 1999-11-10 Gerd Moellmann + + * mail/mh-comp.el (mh-smail-batch): If `to' is nil use an + empty string as to-address. + + 1999-11-07 Andrew Innes + + * dos-w32.el (direct-print-region-helper): Quote arguments in case + they contain spaces. + + 1999-11-01 Edward M. Reingold + + * calendar.el (redraw-calendar): Move to nearest date before + redrawing. + + * diary-lib.el (simple-diary-display): Reset modeline even if + there are no diary entries since the diary buffer may be displayed. + + 1999-10-26 Kenichi Handa + + * international/mule-cmds.el (read-input-method-name): Handle the + case that the arg DEFAULT is symbol. + + * international/mule-diag.el (mule-diag): Handle the case that + default-input-method is symbol. + + 1999-09-29 Kenichi Handa + + * language/cyrillic.el (cyrillic-koi8-r-decode-table): Map 8-bit + code not used by KOI8 to the same 8-bit code instead of mapping to + SPC. + (cyrillic-alternativnyj-decode-table): Likewise. + + * ps-mule.el (ps-mule-begin-job): Fix malformed regexp. + (ps-mule-font-info-database-ps): Typo fixed (normat->normal). Use + correct font names for Korean (Munhwa-Regular-KSC-EUC-H and + Munhwa-Bold-KSC-EUC-H). + + 1999-09-25 Dave Love + + * paren.el (show-paren-mode): Add autoload cookie. + + 1999-09-20 Kenichi Handa + + * language/european.el ("Turkish"): New language environment. + + 1999-09-20 Richard M. Stallman + + * info.el (Info-directory-list): Don't test existence of ALTERNATIVE + if we know for some other reason it should not be used. + + 1999-09-11 Andreas Schwab + + * vc.el (vc-backend-merge-news): Fix regexp to also match P marker + from cvs update. + + 1999-09-10 Richard Stallman + + * simple.el (shell-command-on-region): EXIT-STATUS can be a string. + + * info.el (Info-search): Don't lose with empty regexp. + + 1999-09-10 Dave Love + + * help.el (describe-variable): Fix test for customizability. + + 1999-09-09 Dave Love + + * font-lock.el (global-font-lock-mode): Add autoload cookie and + :initialize method. + + 1999-09-08 Richard Stallman + + * gud.el (gud-make-debug-menu): Make a child for the + local menu, for its menu bar, and the debug menu. + + 1999-09-07 Edward M. Reingold + + * diary-lib.el (list-diary-entries): Make sure two-digit years + have leading zeros. + + 1999-09-06 Richard Stallman + + * vc.el (vc-annotate-display): Use < 69 not < 70 + to distinguish 20YY from 19YY. + + * timezone.el (timezone-parse-date): Use < 69 not < 70 + to distinguish 20YY from 19YY. + + * mail/rmail.el (rmail-retry-failure): Unconditionally move + to beginning of message. + + 1999-09-06 Eli Zaretskii + + * dired.el (dired-re-dir, dired-re-sym): Don't match DOS drive + letters with a colon after d or l. + + 1999-09-05 Richard Stallman + + * vc.el (vc-annotate-display): Treat 2-digit years under 70 as 20YY. + + 1999-08-31 Dave Love + + * help.el (help-make-xrefs): Don't lose on non-empty blank line + after key table. + + 1999-08-24 Dave Love + + * timezone.el (timezone-parse-date): Assume 2-digit dates <70 are + 2000+. + + 1999-08-23 Dave Love + + * auto-show.el (auto-show-mode): Fix :set. + + * man.el (Man-softhyphen-to-minus): Fix for multibyte case; do + nothing in Latin-N environment. + + 1999-08-01 Eli Zaretskii + + * international/mule.el (set-auto-coding): Allow whitespace before + and after the "variable: value" pair. + + 1999-07-25 Richard M. Stallman + + * cus-edit.el (custom-save-delete): Avoid error for empty .emacs. + + 1999-07-23 Richard M. Stallman + + * emacs-lisp/edebug.el: Delete compatibility code. + (edebug-next-token-class): If . is followed by a digit, + return `symbol' for the token class. + + * startup.el (command-line): If we don't find the user's init file, + set user-init-file to nil. + + 1999-07-21 Kenichi Handa + + * international/encoded-kb.el + (encoded-kbd-self-insert-iso2022-7bit): Don't insert the character + but push it to unread-command-events. + (encoded-kbd-self-insert-iso2022-8bit): Likewise. + (encoded-kbd-self-insert-sjis): Likewise. + (encoded-kbd-self-insert-big5): Likewise. + 1999-07-14 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/auto-show.el emacs-20.5/lisp/auto-show.el *** emacs-20.4/lisp/auto-show.el Tue Jun 29 19:22:51 1999 --- emacs-20.5/lisp/auto-show.el Mon Oct 18 10:56:24 1999 *************** This variable is automatically local in *** 50,54 **** Setting this variable directly does not take effect; use either \\[customize] or the function `auto-show-mode'." ! :set (lambda (symbol value) (auto-show-mode value)) :require 'auto-show :initialize 'custom-initialize-default --- 50,56 ---- Setting this variable directly does not take effect; use either \\[customize] or the function `auto-show-mode'." ! :set (lambda (symbol value) ! (setq-default auto-show-mode t) ! (auto-show-mode (if value 1 0))) :require 'auto-show :initialize 'custom-initialize-default diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/autorevert.el emacs-20.5/lisp/autorevert.el *** emacs-20.4/lisp/autorevert.el Mon Jun 8 00:59:07 1998 --- emacs-20.5/lisp/autorevert.el Wed Dec 1 17:23:46 1999 *************** *** 1,10 **** ;;; autorevert --- revert buffers when files on disk change ! ;; Copyright (C) 1997, 1998 Free Software Foundation, Inc. ! ;; Author: Anders Lindgren ;; Keywords: convenience ! ;; Created: 1 Jun 1997 ! ;; Date: 3 Jul 1997 ;; This file is part of GNU Emacs. --- 1,10 ---- ;;; autorevert --- revert buffers when files on disk change ! ;; Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc. ! ;; Author: Anders Lindgren ;; Keywords: convenience ! ;; Created: 1997-06-01 ! ;; Date: 1999-11-30 ;; This file is part of GNU Emacs. *************** the timer when no buffers need to be che *** 348,352 **** (if auto-revert-verbose (message "Reverting buffer `%s'." buf)) ! (revert-buffer t t))) ;; Remove dead buffer from `auto-revert-buffer-list'. (setq auto-revert-buffer-list --- 348,352 ---- (if auto-revert-verbose (message "Reverting buffer `%s'." buf)) ! (revert-buffer t t t))) ;; Remove dead buffer from `auto-revert-buffer-list'. (setq auto-revert-buffer-list diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/calendar/appt.el emacs-20.5/lisp/calendar/appt.el *** emacs-20.4/lisp/calendar/appt.el Wed Mar 17 06:15:30 1999 --- emacs-20.5/lisp/calendar/appt.el Thu Dec 2 08:54:04 1999 *************** The time should be in either 24 hour for *** 615,623 **** ;; convert the time appointment time into 24 hour time ! (if (and (string-match "[p][m]" time2conv) (< hr 12)) ! (progn ! (string-match "[0-9]?[0-9]:" time2conv) ! (setq hr (+ 12 hr)))) ! ;; convert the actual time ;; into minutes for comparison --- 615,623 ---- ;; convert the time appointment time into 24 hour time ! (cond ((and (string-match "pm" time2conv) (< hr 12)) ! (setq hr (+ 12 hr))) ! ((and (string-match "am" time2conv) (= hr 12)) ! (setq hr 0))) ! ;; convert the actual time ;; into minutes for comparison diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/calendar/calendar.el emacs-20.5/lisp/calendar/calendar.el *** emacs-20.4/lisp/calendar/calendar.el Sun Jun 27 23:22:24 1999 --- emacs-20.5/lisp/calendar/calendar.el Sun Nov 7 14:38:41 1999 *************** the inserted text. Value is always t." *** 1849,1853 **** "Redraw the calendar display." (interactive) ! (let ((cursor-date (calendar-cursor-to-date))) (generate-calendar-window displayed-month displayed-year) (calendar-cursor-to-visible-date cursor-date))) --- 1849,1853 ---- "Redraw the calendar display." (interactive) ! (let ((cursor-date (calendar-cursor-to-nearest-date))) (generate-calendar-window displayed-month displayed-year) (calendar-cursor-to-visible-date cursor-date))) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/calendar/diary-lib.el emacs-20.5/lisp/calendar/diary-lib.el *** emacs-20.4/lisp/calendar/diary-lib.el Sat May 22 21:44:40 1999 --- emacs-20.5/lisp/calendar/diary-lib.el Sun Nov 7 14:38:58 1999 *************** These hooks have the following distinct *** 291,295 **** "\\*\\|0*" (int-to-string year) (if abbreviated-calendar-year ! (concat "\\|" (int-to-string (% year 100))) ""))) (regexp --- 291,295 ---- "\\*\\|0*" (int-to-string year) (if abbreviated-calendar-year ! (concat "\\|" (format "%02d" (% year 100))) ""))) (regexp *************** changing the variable `diary-include-str *** 392,395 **** --- 392,399 ---- (concat date-string (if holiday-list ":" "")) (mapconcat 'identity holiday-list "; ")))) + (calendar-set-mode-line + (concat "Diary for " date-string + (if holiday-list ": " "") + (mapconcat 'identity holiday-list "; "))) (if (or (not diary-entries-list) (and (not (cdr diary-entries-list)) *************** changing the variable `diary-include-str *** 407,414 **** (display-buffer holiday-buffer) (message "No diary entries for %s" date-string)) - (calendar-set-mode-line - (concat "Diary for " date-string - (if holiday-list ": " "") - (mapconcat 'identity holiday-list "; "))) (display-buffer (find-buffer-visiting d-file)) (message "Preparing diary...done")))) --- 411,414 ---- diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/cus-edit.el emacs-20.5/lisp/cus-edit.el *** emacs-20.4/lisp/cus-edit.el Thu Apr 8 18:39:55 1999 --- emacs-20.5/lisp/cus-edit.el Thu Oct 21 23:31:45 1999 *************** Leave point at the location of the call, *** 3102,3106 **** (set-buffer (find-file-noselect (custom-file)))) (goto-char (point-min)) ! (save-excursion (forward-sexp (buffer-size))) ; Test for scan errors. (catch 'found (while t --- 3102,3109 ---- (set-buffer (find-file-noselect (custom-file)))) (goto-char (point-min)) ! ;; Skip all whitespace and comments. ! (while (forward-comment 1)) ! (or (eobp) ! (save-excursion (forward-sexp (buffer-size)))) ; Test for scan errors. (catch 'found (while t diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/dired.el emacs-20.5/lisp/dired.el *** emacs-20.4/lisp/dired.el Tue Mar 9 04:04:27 1999 --- emacs-20.5/lisp/dired.el Mon Nov 29 16:04:12 1999 *************** directory name and the cdr is the actual *** 218,223 **** ;; Important: the match ends just after the marker." (defvar dired-re-maybe-mark "^. ") ! (defvar dired-re-dir (concat dired-re-maybe-mark dired-re-inode-size "d")) ! (defvar dired-re-sym (concat dired-re-maybe-mark dired-re-inode-size "l")) (defvar dired-re-exe;; match ls permission string of an executable file (mapconcat (function --- 218,225 ---- ;; Important: the match ends just after the marker." (defvar dired-re-maybe-mark "^. ") ! ;; The [^:] part after "d" and "l" is to avoid confusion with the ! ;; DOS/Windows-style drive letters in directory names, like in "d:/foo". ! (defvar dired-re-dir (concat dired-re-maybe-mark dired-re-inode-size "d[^:]")) ! (defvar dired-re-sym (concat dired-re-maybe-mark dired-re-inode-size "l[^:]")) (defvar dired-re-exe;; match ls permission string of an executable file (mapconcat (function *************** DIR must be a directory name, not a file *** 1357,1361 **** ;; In some locales, month abbreviations are as short as 2 letters, ;; and they can be padded on the right with spaces. ! (month (concat l l "+ *")) ;; Recognize any non-ASCII character. ;; The purpose is to match a Kanji character. --- 1359,1365 ---- ;; In some locales, month abbreviations are as short as 2 letters, ;; and they can be padded on the right with spaces. ! ;; weiand: changed: month ends potentially with . or , or ., ! ;;old (month (concat l l "+ *")) ! (month (concat l l "+[.]?,? *")) ;; Recognize any non-ASCII character. ;; The purpose is to match a Kanji character. *************** DIR must be a directory name, not a file *** 1365,1372 **** (yyyy "[0-9][0-9][0-9][0-9]") (mm "[ 0-1][0-9]") ! (dd "[ 0-3][0-9]") (HH:MM "[ 0-2][0-9]:[0-5][0-9]") (western (concat "\\(" month s dd "\\|" dd s month "\\)" ! s "\\(" HH:MM "\\|" s yyyy "\\|" yyyy s "\\)")) (japanese (concat mm k s dd k s "\\(" s HH:MM "\\|" yyyy k "\\)"))) ;; The "[0-9]" below requires the previous column to end in a digit. --- 1369,1379 ---- (yyyy "[0-9][0-9][0-9][0-9]") (mm "[ 0-1][0-9]") ! ;;old (dd "[ 0-3][0-9]") ! (dd "[ 0-3][0-9][.]?") (HH:MM "[ 0-2][0-9]:[0-5][0-9]") (western (concat "\\(" month s dd "\\|" dd s month "\\)" ! ;; weiand: changed: year potentially unaligned ! ;;old s "\\(" HH:MM "\\|" s yyyy "\\|" yyyy s "\\)")) ! s "\\(" HH:MM "\\|" s "?" yyyy "\\|" yyyy s "\\)")) (japanese (concat mm k s dd k s "\\(" s HH:MM "\\|" yyyy k "\\)"))) ;; The "[0-9]" below requires the previous column to end in a digit. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/dos-w32.el emacs-20.5/lisp/dos-w32.el *** emacs-20.4/lisp/dos-w32.el Thu Jul 1 21:41:20 1999 --- emacs-20.5/lisp/dos-w32.el Mon Nov 8 15:42:26 1999 *************** filesystem mounted on drive Z:, FILESYST *** 339,343 **** (let ((w32-quote-process-args nil)) (call-process "command.com" nil errbuf nil "/c" ! (format "copy /b %s %s" tempfile printer)))) ;; write directly to the printer port (t --- 339,345 ---- (let ((w32-quote-process-args nil)) (call-process "command.com" nil errbuf nil "/c" ! (format "copy /b %s %s" ! (shell-quote-argument tempfile) ! (shell-quote-argument printer))))) ;; write directly to the printer port (t diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/emacs-lisp/advice.el emacs-20.5/lisp/emacs-lisp/advice.el *** emacs-20.4/lisp/emacs-lisp/advice.el Wed Jun 23 00:45:59 1999 --- emacs-20.5/lisp/emacs-lisp/advice.el Tue Nov 23 23:10:35 1999 *************** will clear the cache." *** 2474,2483 **** (defvar ad-special-forms (mapcar 'symbol-function ! '(and catch cond condition-case defconst defmacro ! defun defvar function if interactive let let* ! or prog1 prog2 progn quote save-current-buffer ! save-excursion save-restriction save-window-excursion ! setq setq-default track-mouse unwind-protect while ! with-output-to-temp-buffer))) (defmacro ad-special-form-p (definition) --- 2474,2484 ---- (defvar ad-special-forms (mapcar 'symbol-function ! (append '(and catch cond condition-case defconst defmacro ! defun defvar function if interactive let let* ! or prog1 prog2 progn quote save-current-buffer ! save-excursion save-restriction save-window-excursion ! setq setq-default unwind-protect while ! with-output-to-temp-buffer) ! (if (fboundp 'track-mouse) '(track-mouse))))) (defmacro ad-special-form-p (definition) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/emacs-lisp/edebug.el emacs-20.5/lisp/emacs-lisp/edebug.el *** emacs-20.4/lisp/emacs-lisp/edebug.el Tue Jan 19 16:40:56 1999 --- emacs-20.5/lisp/emacs-lisp/edebug.el Mon Aug 2 03:11:38 1999 *************** *** 57,67 **** (defconst edebug-version (concat "In Emacs version " emacs-version)) - - (require 'backquote) - - ;; Emacs 18 doesn't have defalias. - (eval-and-compile - (or (fboundp 'defalias) (fset 'defalias 'fset))) - ;;; Bug reporting --- 57,60 ---- *************** or if an error occurs, leave point after *** 754,758 **** ;; or symbol. (edebug-skip-whitespace) ! (aref edebug-read-syntax-table (following-char))) --- 747,757 ---- ;; or symbol. (edebug-skip-whitespace) ! (if (and (eq (following-char) ?.) ! (save-excursion ! (forward-char 1) ! (and (>= (following-char) ?0) ! (<= (following-char) ?9)))) ! 'symbol ! (aref edebug-read-syntax-table (following-char)))) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/files.el emacs-20.5/lisp/files.el *** emacs-20.4/lisp/files.el Tue Jul 13 05:39:19 1999 --- emacs-20.5/lisp/files.el Thu Oct 21 23:32:02 1999 *************** For example, if you specify `*.c', that *** 894,897 **** --- 894,898 ---- whose names match the pattern." :group 'files + :version "20.4" :type 'boolean) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/finder.el emacs-20.5/lisp/finder.el *** emacs-20.4/lisp/finder.el Fri Jan 29 19:25:22 1999 --- emacs-20.5/lisp/finder.el Thu Dec 2 00:45:45 1999 *************** FILE should be in a form suitable for pa *** 264,267 **** --- 264,268 ---- (set-buffer-modified-p nil) (shrink-window-if-larger-than-buffer) + (finder-mode) (finder-summary))) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/font-lock.el emacs-20.5/lisp/font-lock.el *** emacs-20.4/lisp/font-lock.el Sat May 29 21:18:18 1999 --- emacs-20.5/lisp/font-lock.el Thu Oct 21 23:32:19 1999 *************** turned on in a buffer if its major mode *** 839,842 **** --- 839,843 ---- ;; whether Global Font Lock mode was turned on or not. As a `defcustom' with ;; special `:set' and `:require' forms, we can provide custom mode control. + ;;;###autoload (defcustom global-font-lock-mode nil "Toggle Global Font Lock mode. *************** use either \\[customize] or the function *** 847,850 **** --- 848,852 ---- :set (lambda (symbol value) (global-font-lock-mode (or value 0))) + :initialize 'custom-initialize-default :type 'boolean :group 'font-lock diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/gud.el emacs-20.5/lisp/gud.el *** emacs-20.4/lisp/gud.el Fri May 7 11:44:53 1999 --- emacs-20.5/lisp/gud.el Thu Oct 21 23:32:28 1999 *************** Obeying it means displaying in another w *** 2366,2375 **** If it doesn't, replace it with a new map that inherits it, and create such a submap in that new map." ! (if (and (current-local-map) ! (lookup-key (current-local-map) [menu-bar debug])) ! nil ! (use-local-map (gud-new-keymap (current-local-map))) ! (define-key (current-local-map) [menu-bar debug] ! (cons "Gud" (gud-new-keymap gud-menu-map))))) ;;; Code for parsing expressions out of C code. The single entry point is --- 2366,2374 ---- If it doesn't, replace it with a new map that inherits it, and create such a submap in that new map." ! (use-local-map (gud-new-keymap (current-local-map))) ! (define-key (current-local-map) [menu-bar] ! (gud-new-keymap (lookup-key (current-local-map) [menu-bar]))) ! (define-key (current-local-map) [menu-bar debug] ! (cons "Gud" (gud-new-keymap gud-menu-map)))) ;;; Code for parsing expressions out of C code. The single entry point is diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/help.el emacs-20.5/lisp/help.el *** emacs-20.4/lisp/help.el Sat Jun 12 05:53:39 1999 --- emacs-20.5/lisp/help.el Thu Oct 21 23:32:34 1999 *************** Returns the documentation as a string, a *** 769,775 **** ;; because those are only present after the var's definition ;; has been loaded. ! (if (or (user-variable-p variable) ! (get variable 'custom-loads) ! (get variable 'custom-type)) (let ((customize-label "customize")) (terpri) --- 769,775 ---- ;; because those are only present after the var's definition ;; has been loaded. ! (if (or (get variable 'custom-type) ; after defcustom ! (get variable 'custom-loads) ; from loaddefs.el ! (get variable 'standard-value)) ; from cus-start.el (let ((customize-label "customize")) (terpri) *************** that." *** 1037,1041 **** ;; Ignore single blank lines in table, but not ;; double ones, which should terminate it. ! (and (not (looking-at "\n\n")) (progn (and (eolp) (forward-line)) --- 1037,1041 ---- ;; Ignore single blank lines in table, but not ;; double ones, which should terminate it. ! (and (not (looking-at "\n\\s-*\n")) (progn (and (eolp) (forward-line)) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/info.el emacs-20.5/lisp/info.el *** emacs-20.4/lisp/info.el Mon Apr 26 07:46:19 1999 --- emacs-20.5/lisp/info.el Mon Oct 25 15:21:39 1999 *************** The Lisp code is executed when the node *** 91,95 **** (setq alternative source)) ; uninstalled, builddir != srcdir (if (or (member alternative Info-default-directory-list) - (not (file-exists-p alternative)) ;; On DOS/NT, we use movable executables always, ;; and we must always find the Info dir at run time. --- 91,94 ---- *************** The Lisp code is executed when the node *** 100,104 **** (not (string= exec-directory (expand-file-name "lib-src/" ! installation-directory))))) Info-default-directory-list ;; `alternative' contains the Info files that came with this --- 99,104 ---- (not (string= exec-directory (expand-file-name "lib-src/" ! installation-directory)))) ! (not (file-exists-p alternative))) Info-default-directory-list ;; `alternative' contains the Info files that came with this *************** In standalone mode, \\\\[ *** 959,1016 **** (setq regexp Info-last-search) (setq Info-last-search regexp)) ! (let ((found ()) current ! (onode Info-current-node) ! (ofile Info-current-file) ! (opoint (point)) ! (ostart (window-start)) ! (osubfile Info-current-subfile)) ! (save-excursion ! (save-restriction ! (widen) ! (if (null Info-current-subfile) ! (progn (re-search-forward regexp) (setq found (point))) ! (condition-case err (progn (re-search-forward regexp) (setq found (point))) ! (search-failed nil))))) ! (if (not found) ;can only happen in subfile case -- else would have erred ! (unwind-protect ! (let ((list ())) ! (save-excursion ! (set-buffer (marker-buffer Info-tag-table-marker)) ! (goto-char (point-min)) ! (search-forward "\n\^_\nIndirect:") ! (save-restriction ! (narrow-to-region (point) ! (progn (search-forward "\n\^_") ! (1- (point)))) (goto-char (point-min)) ! (search-forward (concat "\n" osubfile ": ")) ! (beginning-of-line) ! (while (not (eobp)) ! (re-search-forward "\\(^.*\\): [0-9]+$") ! (goto-char (+ (match-end 1) 2)) ! (setq list (cons (cons (read (current-buffer)) ! (buffer-substring ! (match-beginning 1) (match-end 1))) ! list)) ! (goto-char (1+ (match-end 0)))) ! (setq list (nreverse list) ! current (car (car list)) ! list (cdr list)))) ! (while list ! (message "Searching subfile %s..." (cdr (car list))) ! (Info-read-subfile (car (car list))) ! (setq list (cdr list)) ! ;; (goto-char (point-min)) ! (if (re-search-forward regexp nil t) ! (setq found (point) list ()))) ! (if found ! (message "") ! (signal 'search-failed (list regexp)))) ! (if (not found) ! (progn (Info-read-subfile osubfile) ! (goto-char opoint) ! (Info-select-node) ! (set-window-start (selected-window) ostart))))) (widen) (goto-char found) --- 959,1017 ---- (setq regexp Info-last-search) (setq Info-last-search regexp)) ! (when regexp ! (let ((found ()) current ! (onode Info-current-node) ! (ofile Info-current-file) ! (opoint (point)) ! (ostart (window-start)) ! (osubfile Info-current-subfile)) ! (save-excursion ! (save-restriction ! (widen) ! (if (null Info-current-subfile) (progn (re-search-forward regexp) (setq found (point))) ! (condition-case err ! (progn (re-search-forward regexp) (setq found (point))) ! (search-failed nil))))) ! (if (not found) ;can only happen in subfile case -- else would have erred ! (unwind-protect ! (let ((list ())) ! (save-excursion ! (set-buffer (marker-buffer Info-tag-table-marker)) (goto-char (point-min)) ! (search-forward "\n\^_\nIndirect:") ! (save-restriction ! (narrow-to-region (point) ! (progn (search-forward "\n\^_") ! (1- (point)))) ! (goto-char (point-min)) ! (search-forward (concat "\n" osubfile ": ")) ! (beginning-of-line) ! (while (not (eobp)) ! (re-search-forward "\\(^.*\\): [0-9]+$") ! (goto-char (+ (match-end 1) 2)) ! (setq list (cons (cons (read (current-buffer)) ! (buffer-substring ! (match-beginning 1) (match-end 1))) ! list)) ! (goto-char (1+ (match-end 0)))) ! (setq list (nreverse list) ! current (car (car list)) ! list (cdr list)))) ! (while list ! (message "Searching subfile %s..." (cdr (car list))) ! (Info-read-subfile (car (car list))) ! (setq list (cdr list)) ! ;;; (goto-char (point-min)) ! (if (re-search-forward regexp nil t) ! (setq found (point) list ()))) ! (if found ! (message "") ! (signal 'search-failed (list regexp)))) ! (if (not found) ! (progn (Info-read-subfile osubfile) ! (goto-char opoint) ! (Info-select-node) ! (set-window-start (selected-window) ostart))))) (widen) (goto-char found) *************** In standalone mode, \\\\[ *** 1020,1024 **** (equal ofile Info-current-file)) (setq Info-history (cons (list ofile onode opoint) ! Info-history))))) ;; Extract the value of the node-pointer named NAME. --- 1021,1025 ---- (equal ofile Info-current-file)) (setq Info-history (cons (list ofile onode opoint) ! Info-history)))))) ;; Extract the value of the node-pointer named NAME. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/international/encoded-kb.el emacs-20.5/lisp/international/encoded-kb.el *** emacs-20.4/lisp/international/encoded-kb.el Wed Feb 24 01:03:10 1999 --- emacs-20.5/lisp/international/encoded-kb.el Mon Aug 2 03:12:32 1999 *************** The following key sequence may cause mul *** 196,206 **** (or (aref encoded-kbd-iso2022-invocations 2) (aref encoded-kbd-iso2022-invocations 0)))) ! (last-command-char ! (if (= (charset-dimension charset) 1) ! (make-char charset last-command-char) ! (make-char charset last-command-char (read-char-exclusive))))) ! (self-insert-command 1) (aset encoded-kbd-iso2022-invocations 2 nil) ! )) (defun encoded-kbd-self-insert-iso2022-8bit () --- 196,204 ---- (or (aref encoded-kbd-iso2022-invocations 2) (aref encoded-kbd-iso2022-invocations 0)))) ! (char (if (= (charset-dimension charset) 1) ! (make-char charset last-command-char) ! (make-char charset last-command-char (read-char-exclusive))))) (aset encoded-kbd-iso2022-invocations 2 nil) ! (setq unread-command-events (cons char unread-command-events)))) (defun encoded-kbd-self-insert-iso2022-8bit () *************** The following key sequence may cause mul *** 209,235 **** (or (aref encoded-kbd-iso2022-invocations 2) (aref encoded-kbd-iso2022-invocations 1)))) ! (last-command-char ! (if (= (charset-dimension charset) 1) ! (make-char charset last-command-char) ! (make-char charset last-command-char (read-char-exclusive))))) ! (self-insert-command 1) (aset encoded-kbd-iso2022-invocations 2 nil) ! )) (defun encoded-kbd-self-insert-sjis () (interactive) ! (let ((last-command-char ! (if (or (< last-command-char ?\xA0) (>= last-command-char ?\xE0)) ! (decode-sjis-char (+ (ash last-command-char 8) ! (read-char-exclusive))) ! (make-char 'katakana-jisx0201 last-command-char)))) ! (self-insert-command 1))) (defun encoded-kbd-self-insert-big5 () (interactive) ! (let ((last-command-char ! (decode-big5-char (+ (ash last-command-char 8) ! (read-char-exclusive))))) ! (self-insert-command 1))) ;; Input mode at the time Encoded-kbd mode is turned on is saved here. --- 207,229 ---- (or (aref encoded-kbd-iso2022-invocations 2) (aref encoded-kbd-iso2022-invocations 1)))) ! (char (if (= (charset-dimension charset) 1) ! (make-char charset last-command-char) ! (make-char charset last-command-char (read-char-exclusive))))) (aset encoded-kbd-iso2022-invocations 2 nil) ! (setq unread-command-events (cons char unread-command-events)))) (defun encoded-kbd-self-insert-sjis () (interactive) ! (let ((char (if (or (< last-command-char ?\xA0) (>= last-command-char ?\xE0)) ! (decode-sjis-char (+ (ash last-command-char 8) ! (read-char-exclusive))) ! (make-char 'katakana-jisx0201 last-command-char)))) ! (setq unread-command-events (cons char unread-command-events)))) (defun encoded-kbd-self-insert-big5 () (interactive) ! (let ((char (decode-big5-char (+ (ash last-command-char 8) ! (read-char-exclusive))))) ! (setq unread-command-events (cons char unread-command-events)))) ;; Input mode at the time Encoded-kbd mode is turned on is saved here. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/international/mule-cmds.el emacs-20.5/lisp/international/mule-cmds.el *** emacs-20.4/lisp/international/mule-cmds.el Thu Jun 17 14:09:43 1999 --- emacs-20.5/lisp/international/mule-cmds.el Thu Dec 2 08:42:38 1999 *************** and TO is ignored." *** 510,515 **** (when show-position ;; At first, be sure to show the current buffer. ! (set-window-buffer (selected-window) (current-buffer)) ! (set-window-start (selected-window) show-position)) ;; Then, show a helpful message. (with-output-to-temp-buffer "*Warning*" --- 510,516 ---- (when show-position ;; At first, be sure to show the current buffer. ! (let ((win (or (get-buffer-window (current-buffer)) ! (display-buffer (current-buffer))))) ! (set-window-start win show-position))) ;; Then, show a helpful message. (with-output-to-temp-buffer "*Warning*" *************** Please select one from the following saf *** 560,564 **** (coding-system-eol-type default-coding-system)))) last-coding-system-specified)) ! (kill-buffer "*Warning*") (while overlays (delete-overlay (car overlays)) --- 561,566 ---- (coding-system-eol-type default-coding-system)))) last-coding-system-specified)) ! (if (get-buffer "*Warning*") ! (kill-buffer "*Warning*")) (while overlays (delete-overlay (car overlays)) *************** The return value is a string." *** 890,893 **** --- 892,897 ---- nil t nil 'input-method-history default))) + (if (and input-method (symbolp input-method)) + (setq input-method (symbol-name input-method))) (if (> (length input-method) 0) input-method diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/international/mule-diag.el emacs-20.5/lisp/international/mule-diag.el *** emacs-20.4/lisp/international/mule-diag.el Thu Jun 17 14:09:44 1999 --- emacs-20.5/lisp/international/mule-diag.el Thu Dec 2 12:37:48 1999 *************** but still contains full information abou *** 527,531 **** (setq bases (cdr bases))))) ! ;;;###automatic (defun list-coding-categories () "Display a list of all coding categories." --- 527,531 ---- (setq bases (cdr bases))))) ! ;;;###autoload (defun list-coding-categories () "Display a list of all coding categories." *************** system which uses fontsets)." *** 784,788 **** (insert "\n") (if default-input-method ! (insert "Default input method: " default-input-method "\n") (insert "No default input method is specified\n")) --- 784,788 ---- (insert "\n") (if default-input-method ! (insert (format "Default input method: %s\n" default-input-method)) (insert "No default input method is specified\n")) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/international/mule-util.el emacs-20.5/lisp/international/mule-util.el *** emacs-20.4/lisp/international/mule-util.el Thu Jun 17 14:09:44 1999 --- emacs-20.5/lisp/international/mule-util.el Fri Dec 3 11:22:20 1999 *************** TYPE should be `list' or `vector'." *** 76,84 **** (defun truncate-string-to-width (str end-column &optional start-column padding) "Truncate string STR to end at column END-COLUMN. ! The optional 2nd arg START-COLUMN, if non-nil, specifies the starting column; that means to return the characters occupying columns START-COLUMN ... END-COLUMN of STR. ! The optional 3rd arg PADDING, if non-nil, specifies a padding character to add at the end of the result if STR doesn't reach column END-COLUMN, or if END-COLUMN comes in the middle of a character in STR. --- 76,84 ---- (defun truncate-string-to-width (str end-column &optional start-column padding) "Truncate string STR to end at column END-COLUMN. ! The optional 3rd arg START-COLUMN, if non-nil, specifies the starting column; that means to return the characters occupying columns START-COLUMN ... END-COLUMN of STR. ! The optional 4th arg PADDING, if non-nil, specifies a padding character to add at the end of the result if STR doesn't reach column END-COLUMN, or if END-COLUMN comes in the middle of a character in STR. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/international/mule.el emacs-20.5/lisp/international/mule.el *** emacs-20.4/lisp/international/mule.el Wed May 26 10:04:28 1999 --- emacs-20.5/lisp/international/mule.el Thu Dec 2 12:25:27 1999 *************** Return t if file exists." *** 110,114 **** (defsubst charsetp (object) ! "T is OBJECT is a charset." (and (symbolp object) (vectorp (get object 'charset)))) --- 110,114 ---- (defsubst charsetp (object) ! "T if OBJECT is a charset." (and (symbolp object) (vectorp (get object 'charset)))) *************** or nil if nothing specified. *** 931,934 **** --- 931,937 ---- The variable `set-auto-coding-function' (which see) is set to this function by default." + (save-match-data (set-auto-coding-1 filename size))) + + (defun set-auto-coding-1 (filename size) (let ((coding-system (auto-coding-alist-lookup filename))) *************** function by default." *** 990,1003 **** (let* ((prefix (regexp-quote (match-string 1))) (suffix (regexp-quote (match-string 2))) ! (re-coding (concat ! "^" prefix ! "coding[ \t]*:[ \t]*\\([^ \t]+\\)[ \t]*" ! suffix "$")) ! (re-unibyte (concat ! "^" prefix ! "unibyte[ \t]*:[ \t]*\\([^ \t]+\\)[ \t]*" ! suffix "$")) ! (re-end (concat ! "^" prefix "end *:[ \t]*" suffix "$")) (pos (point))) (re-search-forward re-end tail-end 'move) --- 993,1008 ---- (let* ((prefix (regexp-quote (match-string 1))) (suffix (regexp-quote (match-string 2))) ! (re-coding ! (concat ! "^" prefix ! "[ \t]*coding[ \t]*:[ \t]*\\([^ \t]+\\)[ \t]*" ! suffix "$")) ! (re-unibyte ! (concat ! "^" prefix ! "[ \t]*unibyte[ \t]*:[ \t]*\\([^ \t]+\\)[ \t]*" ! suffix "$")) ! (re-end ! (concat "^" prefix "[ \t]*end *:[ \t]*" suffix "$")) (pos (point))) (re-search-forward re-end tail-end 'move) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/language/cyrillic.el emacs-20.5/lisp/language/cyrillic.el *** emacs-20.4/lisp/language/cyrillic.el Tue Jul 13 20:52:15 1999 --- emacs-20.5/lisp/language/cyrillic.el Fri Oct 1 03:56:29 1999 *************** *** 72,77 **** 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 ! 32 32 32 ?,Lq(B 32 32 32 32 32 32 32 32 32 32 32 32 ! 32 32 32 ?,L!(B 32 32 32 32 32 32 32 32 32 32 32 32 ?,Ln(B ?,LP(B ?,LQ(B ?,Lf(B ?,LT(B ?,LU(B ?,Ld(B ?,LS(B ?,Le(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B ?,L_(B ?,Lo(B ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,LV(B ?,LR(B ?,Ll(B ?,Lk(B ?,LW(B ?,Lh(B ?,Lm(B ?,Li(B ?,Lg(B ?,Lj(B --- 72,77 ---- 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 ! 160 161 162 ?,Lq(B 164 165 166 167 168 169 170 171 172 173 174 175 ! 176 177 178 ?,L!(B 180 181 182 183 184 185 186 187 188 189 190 191 ?,Ln(B ?,LP(B ?,LQ(B ?,Lf(B ?,LT(B ?,LU(B ?,Ld(B ?,LS(B ?,Le(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B ?,L_(B ?,Lo(B ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,LV(B ?,LR(B ?,Ll(B ?,Lk(B ?,LW(B ?,Lh(B ?,Lm(B ?,Li(B ?,Lg(B ?,Lj(B *************** *** 173,181 **** ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,LD(B ?,LE(B ?,LF(B ?,LG(B ?,LH(B ?,LI(B ?,LJ(B ?,LK(B ?,LL(B ?,LM(B ?,LN(B ?,LO(B ?,LP(B ?,LQ(B ?,LR(B ?,LS(B ?,LT(B ?,LU(B ?,LV(B ?,LW(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B ?,L_(B ! 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 ! 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 ! 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 32 ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,Ld(B ?,Le(B ?,Lf(B ?,Lg(B ?,Lh(B ?,Li(B ?,Lj(B ?,Lk(B ?,Ll(B ?,Lm(B ?,Ln(B ?,Lo(B ! ?,L!(B ?,Lq(B 32 32 32 32 32 32 32 32 32 32 32 32 32 ?,Lp(B] "Cyrillic ALTERNATIVNYJ decoding table.") --- 173,181 ---- ?,L@(B ?,LA(B ?,LB(B ?,LC(B ?,LD(B ?,LE(B ?,LF(B ?,LG(B ?,LH(B ?,LI(B ?,LJ(B ?,LK(B ?,LL(B ?,LM(B ?,LN(B ?,LO(B ?,LP(B ?,LQ(B ?,LR(B ?,LS(B ?,LT(B ?,LU(B ?,LV(B ?,LW(B ?,LX(B ?,LY(B ?,LZ(B ?,L[(B ?,L\(B ?,L](B ?,L^(B ?,L_(B ! 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 ! 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 ! 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 ?,L`(B ?,La(B ?,Lb(B ?,Lc(B ?,Ld(B ?,Le(B ?,Lf(B ?,Lg(B ?,Lh(B ?,Li(B ?,Lj(B ?,Lk(B ?,Ll(B ?,Lm(B ?,Ln(B ?,Lo(B ! ?,L!(B ?,Lq(B 242 243 244 245 246 247 248 249 250 251 252 253 254 ?,Lp(B] "Cyrillic ALTERNATIVNYJ decoding table.") diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/language/european.el emacs-20.5/lisp/language/european.el *** emacs-20.4/lisp/language/european.el Sat Feb 6 06:45:18 1999 --- emacs-20.5/lisp/language/european.el Mon Sep 20 04:19:25 1999 *************** but default input method is set to \"ger *** 253,255 **** --- 253,271 ---- (provide 'slovenian) + ;; For Turkish, the character set ISO-8859-9 (Latin-5) is used. But, + ;; before the introduction of ISO-8859-9 in 1988, ISO-8859-3 (Latin-3) + ;; was used for Turkish. Those who use Latin-3 for Turkish should use + ;; "Latin-3" language environment. + + (set-language-info-alist + "Turkish" '((charset ascii latin-iso8859-9) + (coding-system iso-latin-5) + (coding-priority iso-latin-5) + (nonascii-translation . latin-iso8859-9) + (unibyte-syntax . "latin-5") + (unibyte-display . iso-latin-5) + (input-method . "turkish-postfix") + (sample-text . "Turkish (T,M|(Brk,Mg(Be) Merhaba") + (documentation . t))) + ;;; european.el ends here diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/locate.el emacs-20.5/lisp/locate.el *** emacs-20.4/lisp/locate.el Wed Jun 3 18:38:59 1998 --- emacs-20.5/lisp/locate.el Wed Nov 24 17:16:28 1999 *************** *** 198,202 **** ;;;###autoload (defun locate-with-filter (search-string filter) ! "Run the locate command with a filter." (interactive (list (read-from-minibuffer "Locate: " nil nil --- 198,205 ---- ;;;###autoload (defun locate-with-filter (search-string filter) ! "Run the locate command with a filter. ! ! The filter is a regular expression. Only results matching the filter are ! shown; this is often useful to constrain a big search." (interactive (list (read-from-minibuffer "Locate: " nil nil diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/mail/mh-comp.el emacs-20.5/lisp/mail/mh-comp.el *** emacs-20.4/lisp/mail/mh-comp.el Mon Mar 1 04:41:52 1999 --- emacs-20.5/lisp/mail/mh-comp.el Wed Nov 10 11:41:58 1999 *************** Users should use `\\[mh-smail]' to compo *** 234,238 **** (mh-find-path) (let ((mh-error-if-no-draft t)) ! (mh-send to "" subject))) --- 234,238 ---- (mh-find-path) (let ((mh-error-if-no-draft t)) ! (mh-send (or to "") "" subject))) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/mail/rmail.el emacs-20.5/lisp/mail/rmail.el *** emacs-20.4/lisp/mail/rmail.el Wed Jul 7 18:35:48 1999 --- emacs-20.5/lisp/mail/rmail.el Mon Sep 6 23:38:41 1999 *************** specifying headers which should not be c *** 3062,3067 **** ;; Narrow down to just the quoted original message (if pruned ! (rmail-toggle-header 0) ! (rmail-beginning-of-message)) (let* ((case-fold-search t) (top (point)) --- 3062,3067 ---- ;; Narrow down to just the quoted original message (if pruned ! (rmail-toggle-header 0)) ! (rmail-beginning-of-message) (let* ((case-fold-search t) (top (point)) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/mail/rmailedit.el emacs-20.5/lisp/mail/rmailedit.el *** emacs-20.4/lisp/mail/rmailedit.el Tue Jul 14 00:03:56 1998 --- emacs-20.5/lisp/mail/rmailedit.el Thu Nov 18 14:08:07 1999 *************** to return to regular RMAIL: *** 135,138 **** --- 135,139 ---- (rmail-show-message) (rmail-toggle-header (if rmail-old-pruned 1 0)))) + (run-hooks 'rmail-mode-hook) (setq buffer-read-only t)) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/man.el emacs-20.5/lisp/man.el *** emacs-20.4/lisp/man.el Thu Jul 1 21:44:05 1999 --- emacs-20.5/lisp/man.el Thu Oct 21 23:33:00 1999 *************** See the variable `Man-notify-method' for *** 661,671 **** (defun Man-softhyphen-to-minus () ! ;; \255 is some kind of dash in Latin-1. ! (goto-char (point-min)) ! (if enable-multibyte-characters ! (while (search-forward "\255" nil t) ! (if (= (preceding-char) ?\255) ! (replace-match "-"))) ! (while (search-forward "\255" nil t) (replace-match "-")))) (defun Man-fontify-manpage () --- 661,673 ---- (defun Man-softhyphen-to-minus () ! ;; \255 is some kind of dash in Latin-N. Versions of Debian man, at ! ;; least, emit it even when not in a Latin-N locale. ! (unless (eq t (compare-strings "latin-" 0 nil ! current-language-environment 0 6 t)) ! (goto-char (point-min)) ! (let ((str "\255")) ! (if enable-multibyte-characters ! (setq str (string-as-multibyte str))) ! (while (search-forward str nil t) (replace-match "-"))))) (defun Man-fontify-manpage () diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/paren.el emacs-20.5/lisp/paren.el *** emacs-20.4/lisp/paren.el Tue Apr 27 21:09:38 1999 --- emacs-20.5/lisp/paren.el Thu Oct 21 23:33:19 1999 *************** *** 41,44 **** --- 41,45 ---- (defvar show-paren-overlay-1 nil) + ;;;###autoload (defcustom show-paren-mode nil "Toggle Show Paren mode. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/progmodes/f90.el emacs-20.5/lisp/progmodes/f90.el *** emacs-20.4/lisp/progmodes/f90.el Tue Jan 5 15:16:18 1999 --- emacs-20.5/lisp/progmodes/f90.el Fri Nov 26 14:50:26 1999 *************** Any other key combination is executed no *** 1659,1663 **** (setq c (read-event))) ;; insert char if not equal to `?' ! (if (or (= c ??) (eq c help-char)) (f90-abbrev-help) (if (string-match "XEmacs" emacs-version) --- 1659,1663 ---- (setq c (read-event))) ;; insert char if not equal to `?' ! (if (or (eq c ??) (eq c help-char)) (f90-abbrev-help) (if (string-match "XEmacs" emacs-version) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/ps-mule.el emacs-20.5/lisp/ps-mule.el *** emacs-20.4/lisp/ps-mule.el Thu May 13 08:48:16 1999 --- emacs-20.5/lisp/ps-mule.el Sat Nov 20 01:10:12 1999 *************** See also the variable `ps-font-info-data *** 209,213 **** (bold-italic builtin "GothicBBB-Medium.Katakana" ps-mule-encode-7bit 1)) (latin-jisx0201 ! (normat builtin "Ryumin-Light.Hankaku" ps-mule-encode-7bit 1) (bold builtin "GothicBBB-Medium.Hankaku" ps-mule-encode-7bit 1)) (japanese-jisx0208 --- 209,213 ---- (bold-italic builtin "GothicBBB-Medium.Katakana" ps-mule-encode-7bit 1)) (latin-jisx0201 ! (normal builtin "Ryumin-Light.Hankaku" ps-mule-encode-7bit 1) (bold builtin "GothicBBB-Medium.Hankaku" ps-mule-encode-7bit 1)) (japanese-jisx0208 *************** See also the variable `ps-font-info-data *** 215,220 **** (bold builtin "GothicBBB-Medium-H" ps-mule-encode-7bit 2)) (korean-ksc5601 ! (normal builtin "Batang-Medium-KSC-H" ps-mule-encode-7bit 2) ! (bold builtin " Gulim-Medium-KSC-H" ps-mule-encode-7bit 2)) ) "Sample setting of the `ps-mule-font-info-database' to use builtin PS font. --- 215,220 ---- (bold builtin "GothicBBB-Medium-H" ps-mule-encode-7bit 2)) (korean-ksc5601 ! (normal builtin "Munhwa-Regular-KSC-EUC-H" ps-mule-encode-7bit 2) ! (bold builtin " Munhwa-Bold-KSC-EUC-H" ps-mule-encode-7bit 2)) ) "Sample setting of the `ps-mule-font-info-database' to use builtin PS font. *************** Currently, data for Japanese and Korean *** 273,277 **** (normal bdf "taipei24.bdf" chinese-big5 2)) (chinese-sisheng ! (normal bdf ("sish24-etl.bdf" "etl24-sisheng.bdf") ps-mule-encode-8bit 1)) (ipa (normal bdf ("ipa24-etl.bdf" "etl24-ipa.bdf") ps-mule-encode-8bit 1)) --- 273,277 ---- (normal bdf "taipei24.bdf" chinese-big5 2)) (chinese-sisheng ! (normal bdf ("sish24-etl.bdf" "etl24-sisheng.bdf") ps-mule-encode-7bit 1)) (ipa (normal bdf ("ipa24-etl.bdf" "etl24-ipa.bdf") ps-mule-encode-8bit 1)) *************** This checks if all multi-byte characters *** 1191,1195 **** ((eq ps-print-control-characters 'control) (string-as-multibyte "[^\040-\176\200-\377]")) ! (t (string-as-multibyte "[^\000-\011\013\015-\377")))))) ;;;###autoload --- 1191,1195 ---- ((eq ps-print-control-characters 'control) (string-as-multibyte "[^\040-\176\200-\377]")) ! (t (string-as-multibyte "[^\000-\011\013\015-\377]")))))) ;;;###autoload diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/replace.el emacs-20.5/lisp/replace.el *** emacs-20.4/lisp/replace.el Wed Oct 14 14:43:37 1998 --- emacs-20.5/lisp/replace.el Thu Nov 11 16:40:19 1999 *************** which will run faster and probably do ex *** 704,707 **** --- 704,710 ---- (string-equal from-string (downcase from-string))))) + (case-fold-search (and case-fold-search + (string-equal from-string + (downcase from-string)))) (literal (not regexp-flag)) (search-function (if regexp-flag 're-search-forward 'search-forward)) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/select.el emacs-20.5/lisp/select.el *** emacs-20.4/lisp/select.el Mon Aug 4 09:46:03 1997 --- emacs-20.5/lisp/select.el Fri Nov 12 14:04:47 1999 *************** can alter the effective value of the sel *** 52,59 **** The data may also be a vector of valid non-vector selection values. ! Interactively, the text of the region is used as the selection value." (interactive (if (not current-prefix-arg) (list 'PRIMARY (read-string "Set text for pasting: ")) ! (list 'PRIMARY (substring (region-beginning) (region-end))))) ;; This is for temporary compatibility with pre-release Emacs 19. (if (stringp type) --- 52,60 ---- The data may also be a vector of valid non-vector selection values. ! Interactively, the text of the region is used as the selection value ! if the prefix arg is set." (interactive (if (not current-prefix-arg) (list 'PRIMARY (read-string "Set text for pasting: ")) ! (list 'PRIMARY (buffer-substring (region-beginning) (region-end))))) ;; This is for temporary compatibility with pre-release Emacs 19. (if (stringp type) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/simple.el emacs-20.5/lisp/simple.el *** emacs-20.4/lisp/simple.el Sat Jun 12 05:55:49 1999 --- emacs-20.5/lisp/simple.el Thu Oct 21 23:33:29 1999 *************** specifies the value of ERROR-BUFFER." *** 1328,1332 **** buffer) nil shell-command-switch command))) ! (setq success (and exit-status (zerop exit-status))) ;; Report the amount of output. (let ((lines (save-excursion --- 1328,1332 ---- buffer) nil shell-command-switch command))) ! (setq success (and exit-status (equal 0 exit-status))) ;; Report the amount of output. (let ((lines (save-excursion diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/startup.el emacs-20.5/lisp/startup.el *** emacs-20.4/lisp/startup.el Mon Jul 5 17:50:32 1999 --- emacs-20.5/lisp/startup.el Mon Aug 2 03:12:00 1999 *************** or `CVS', and any subdirectory that cont *** 725,728 **** --- 725,733 ---- (setq user-init-file t) (load user-init-file-1 t t) + ;; If we did not find the user's init file, + ;; set user-init-file conclusively to nil; + ;; don't let it be set from default.el. + (if (eq user-init-file t) + (setq user-init-file nil)) (or inhibit-default-init (let ((inhibit-startup-message nil)) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/term/w32-win.el emacs-20.5/lisp/term/w32-win.el *** emacs-20.4/lisp/term/w32-win.el Tue May 4 00:15:22 1999 --- emacs-20.5/lisp/term/w32-win.el Wed Nov 24 15:32:30 1999 *************** Switch to a buffer editing the last file *** 157,163 **** (interactive "e") (save-excursion ! (set-frame-selected-window nil (posn-window (event-start event))) ! (mapcar 'find-file (car (cdr (cdr event))))) ! (raise-frame)) (defun w32-drag-n-drop-other-frame (event) --- 157,171 ---- (interactive "e") (save-excursion ! ;; Make sure the drop target has positive co-ords ! ;; before setting the selected frame - otherwise it ! ;; won't work. ! (let* ((window (posn-window (event-start event))) ! (coords (posn-x-y (event-start event))) ! (x (car coords)) ! (y (cdr coords))) ! (if (and (> x 0) (> y 0)) ! (set-frame-selected-window nil window)) ! (mapcar 'find-file (car (cdr (cdr event))))) ! (raise-frame))) (defun w32-drag-n-drop-other-frame (event) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/timezone.el emacs-20.5/lisp/timezone.el *** emacs-20.4/lisp/timezone.el Thu May 6 23:23:52 1999 --- emacs-20.5/lisp/timezone.el Tue Sep 7 00:06:02 1999 *************** *** 1,5 **** ;;; timezone.el --- time zone package for GNU Emacs ! ;; Copyright (C) 1990, 1991, 1992, 1993, 1996 Free Software Foundation, Inc. ;; Author: Masanobu Umeda --- 1,5 ---- ;;; timezone.el --- time zone package for GNU Emacs ! ;; Copyright (C) 1990, 1991, 1992, 1993, 1996, 1999 Free Software Foundation, Inc. ;; Author: Masanobu Umeda *************** Understands the following styles: *** 201,210 **** (setq year (substring date (match-beginning year) (match-end year))) ! ;; It is now Dec 1992. 8 years before the end of the World. ! (if (= (length year) 1) ! (setq year (concat "190" (substring year -1 nil))) ! (if (< (length year) 4) ! (setq year (concat "19" (substring year -2 nil))))) ! (setq month (if (= (aref date (+ (match-beginning month) 2)) ?-) ;; Handle numeric months, spanning exactly two digits. --- 201,213 ---- (setq year (substring date (match-beginning year) (match-end year))) ! ;; Guess ambiguous years. Assume years < 69 don't predate the ! ;; Unix Epoch, so are 2000+. Three-digit years -- do they ever ! ;; occur? -- are (arbitrarily) assumed to be 21st century. ! (if (< (length year) 4) ! (let ((y (string-to-int year))) ! (if (< y 69) ! (setq y (+ y 100))) ! (setq year (int-to-string (+ 1900 y))))) ! (setq month (if (= (aref date (+ (match-beginning month) 2)) ?-) ;; Handle numeric months, spanning exactly two digits. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/vc.el emacs-20.5/lisp/vc.el *** emacs-20.4/lisp/vc.el Wed Jun 30 09:17:34 1999 --- emacs-20.5/lisp/vc.el Thu Dec 2 15:28:54 1999 *************** *** 6,10 **** ;; Maintainer: Andre Spiegel ! ;; $Id: vc.el,v 1.250 1999/06/30 07:16:14 spiegel Exp $ ;; This file is part of GNU Emacs. --- 6,10 ---- ;; Maintainer: Andre Spiegel ! ;; Id: vc.el,v 1.256 1999/10/02 10:53:18 *** with changes ;; This file is part of GNU Emacs. *************** default directory." *** 2263,2267 **** ;; Presumably not portable to non-Unixy systems, along with rcs2log: (tempfile (make-temp-name ! (expand-file-name "vc" temporary-file-directory))) (full-name (or add-log-full-name (user-full-name) --- 2263,2268 ---- ;; Presumably not portable to non-Unixy systems, along with rcs2log: (tempfile (make-temp-name ! (expand-file-name "vc" ! temporary-file-directory))) (full-name (or add-log-full-name (user-full-name) *************** default directory." *** 2281,2299 **** (progn (cd odefault) ! (if (eq 0 (apply 'call-process "rcs2log" nil ! (list t tempfile) nil ! "-c" changelog ! "-u" (concat (vc-user-login-name) ! "\t" full-name ! "\t" mailing-address) ! (mapcar ! (function ! (lambda (f) ! (file-relative-name ! (if (file-name-absolute-p f) ! f ! (concat odefault f))))) ! args))) ! "done" (pop-to-buffer (set-buffer (get-buffer-create "*vc*"))) --- 2282,2302 ---- (progn (cd odefault) ! (if (eq 0 (apply 'call-process ! (expand-file-name "rcs2log" exec-directory) ! nil ! (list t tempfile) nil ! "-c" changelog ! "-u" (concat (vc-user-login-name) ! "\t" full-name ! "\t" mailing-address) ! (mapcar ! (function ! (lambda (f) ! (file-relative-name ! (if (file-name-absolute-p f) ! f ! (concat odefault f))))) ! args))) ! "done" (pop-to-buffer (set-buffer (get-buffer-create "*vc*"))) *************** THRESHOLD, nil otherwise" *** 2473,2477 **** (month (cdr (assoc (match-string 2) local-month-numbers))) (year-tmp (string-to-number (match-string 3))) ! (year (+ (if (> 100 year-tmp) 1900 0) year-tmp)) ; Possible millenium problem (high (- (car (current-time)) (car (encode-time 0 0 0 day month year)))) --- 2476,2485 ---- (month (cdr (assoc (match-string 2) local-month-numbers))) (year-tmp (string-to-number (match-string 3))) ! ;; Years 0..68 are 2000..2068. ! ;; Years 69..99 are 1969..1999. ! (year (+ (cond ((> 69 year-tmp) 2000) ! ((> 100 year-tmp) 1900) ! (t 0)) ! year-tmp)) (high (- (car (current-time)) (car (encode-time 0 0 0 day month year)))) *************** THRESHOLD, nil otherwise" *** 2589,2611 **** (unwind-protect (progn ! (apply 'vc-do-command ! nil 0 "/bin/sh" file 'MASTER "-c" ! ;; Some shells make the "" dummy argument into $0 ! ;; while others use the shell's name as $0 and ! ;; use the "" as $1. The if-statement ! ;; converts the latter case to the former. ! (format "if [ x\"$1\" = x ]; then shift; fi; \ ! umask %o; exec >\"$1\" || exit; \ ! shift; umask %o; exec get \"$@\"" ! (logand 511 (lognot vc-modes)) ! (logand 511 (lognot (default-file-modes)))) ! "" ; dummy argument for shell's $0 ! filename ! (if writable "-e") ! "-p" ! (and rev ! (concat "-r" (vc-lookup-triple file rev))) ! switches) ! (setq failed nil)) (and failed (file-exists-p filename) (delete-file filename)))) --- 2597,2616 ---- (unwind-protect (progn ! (let ((coding-system-for-read 'no-conversion) ! (coding-system-for-write 'no-conversion)) ! (with-temp-file filename ! (apply 'vc-do-command ! (current-buffer) 0 "get" file 'MASTER ! "-s" ;; suppress diagnostic output ! (if writable "-e") ! "-p" ! (and rev ! (concat "-r" ! (vc-lookup-triple file rev))) ! switches))) ! (set-file-modes filename ! (logior (file-modes (vc-name file)) ! (if writable 128 0))) ! (setq failed nil)) (and failed (file-exists-p filename) (delete-file filename)))) *************** THRESHOLD, nil otherwise" *** 2623,2641 **** (unwind-protect (progn ! (apply 'vc-do-command ! nil 0 "/bin/sh" file 'MASTER "-c" ! ;; See the SCCS case, above, regarding the ! ;; if-statement. ! (format "if [ x\"$1\" = x ]; then shift; fi; \ ! umask %o; exec >\"$1\" || exit; \ ! shift; umask %o; exec co \"$@\"" ! (logand 511 (lognot vc-modes)) ! (logand 511 (lognot (default-file-modes)))) ! "" ; dummy argument for shell's $0 ! filename ! (if writable "-l") ! (concat "-p" rev) ! switches) ! (setq failed nil)) (and failed (file-exists-p filename) (delete-file filename)))) (let (new-version) --- 2628,2644 ---- (unwind-protect (progn ! (let ((coding-system-for-read 'no-conversion) ! (coding-system-for-write 'no-conversion)) ! (with-temp-file filename ! (apply 'vc-do-command ! (current-buffer) 0 "co" file 'MASTER ! "-q" ;; suppress diagnostic output ! (if writable "-l") ! (concat "-p" rev) ! switches))) ! (set-file-modes filename ! (logior (file-modes (vc-name file)) ! (if writable 128 0))) ! (setq failed nil)) (and failed (file-exists-p filename) (delete-file filename)))) (let (new-version) *************** THRESHOLD, nil otherwise" *** 2678,2689 **** (unwind-protect (progn ! (apply 'vc-do-command ! nil 0 "/bin/sh" file 'WORKFILE "-c" ! "exec >\"$1\" || exit; shift; exec cvs update \"$@\"" ! "" ; dummy argument for shell's $0 ! workfile ! (concat "-r" rev) ! "-p" ! switches) (setq failed nil)) (and failed (file-exists-p filename) (delete-file filename)))) --- 2681,2694 ---- (unwind-protect (progn ! (let ((coding-system-for-read 'no-conversion) ! (coding-system-for-write 'no-conversion)) ! (with-temp-file filename ! (apply 'vc-do-command ! (current-buffer) 0 "cvs" file 'WORKFILE ! "-Q" ;; suppress diagnostic output ! "update" ! (concat "-r" rev) ! "-p" ! switches))) (setq failed nil)) (and failed (file-exists-p filename) (delete-file filename)))) *************** THRESHOLD, nil otherwise" *** 2996,3000 **** ;; get file status (if (re-search-forward ! (concat "^\\(\\([CMU]\\) \\)?" (regexp-quote (file-name-nondirectory file)) "\\( already contains the differences between \\)?") --- 3001,3005 ---- ;; get file status (if (re-search-forward ! (concat "^\\(\\([CMUP]\\) \\)?" (regexp-quote (file-name-nondirectory file)) "\\( already contains the differences between \\)?") diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lisp/version.el emacs-20.5/lisp/version.el *** emacs-20.4/lisp/version.el Wed Jul 14 17:31:15 1999 --- emacs-20.5/lisp/version.el Fri Dec 3 08:35:23 1999 *************** *** 25,29 **** ;;; Code: ! (defconst emacs-version "20.4" "\ Version numbers of this version of Emacs.") --- 25,29 ---- ;;; Code: ! (defconst emacs-version "20.5" "\ Version numbers of this version of Emacs.") diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/lwlib/ChangeLog emacs-20.5/lwlib/ChangeLog *** emacs-20.4/lwlib/ChangeLog Mon Jul 12 19:48:14 1999 --- emacs-20.5/lwlib/ChangeLog Fri Dec 10 17:26:08 1999 *************** *** 1,2 **** --- 1,6 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + 1999-07-12 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/man/ChangeLog emacs-20.5/man/ChangeLog *** emacs-20.4/man/ChangeLog Mon Jul 12 19:50:35 1999 --- emacs-20.5/man/ChangeLog Fri Dec 10 17:25:51 1999 *************** *** 1,2 **** --- 1,13 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + + 1999-11-03 Gerd Moellmann + + * gnus.texi: Add coding tag. Fixes for makeinfo 4.0. + + * dired-x.texi, sc.texii, cc-mode.texi, mh-e.texi: Fixes for + makeinfo 4.0. + 1999-07-12 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/man/cc-mode.texi emacs-20.5/man/cc-mode.texi *** emacs-20.4/man/cc-mode.texi Sat May 16 20:55:23 1998 --- emacs-20.5/man/cc-mode.texi Tue Nov 2 21:43:20 1999 *************** this list are: @code{class-open}, @code{ *** 664,668 **** @code{extern-lang-open}, @code{extern-lang-close}, @code{namespace-open}, and @code{namespace-close}. ! @xref{Syntactic Symbols} for a more detailed description of these syntactic symbols. --- 664,668 ---- @code{extern-lang-open}, @code{extern-lang-close}, @code{namespace-open}, and @code{namespace-close}. ! @xref{Syntactic Symbols}, for a more detailed description of these syntactic symbols. *************** detailed description of these syntactic *** 670,674 **** The value associated with each syntactic symbol in this association list is called an @var{ACTION} which can be either a function or a list. ! @xref{Custom Brace and Colon Hanging} for a more detailed discussion of using a function as a brace hanging @var{ACTION}. --- 670,674 ---- The value associated with each syntactic symbol in this association list is called an @var{ACTION} which can be either a function or a list. ! @xref{Custom Brace and Colon Hanging}, for a more detailed discussion of using a function as a brace hanging @var{ACTION}. *************** introducing braces, such as @code{class- *** 721,725 **** Emacs makes an assumption that such braces will always appear in column zero, hanging such braces can introduce performance problems. ! @xref{Performance Issues} for more information. --- 721,725 ---- Emacs makes an assumption that such braces will always appear in column zero, hanging such braces can introduce performance problems. ! @xref{Performance Issues}, for more information. *************** In C++, double-colons are used as a scop *** 747,751 **** colons always appear right next to each other, newlines before and after them are controlled by a different mechanism, called @dfn{clean-ups} in ! @ccmode{}. @xref{Clean-ups} for details. --- 747,751 ---- colons always appear right next to each other, newlines before and after them are controlled by a different mechanism, called @dfn{clean-ups} in ! @ccmode{}. @xref{Clean-ups}, for details. *************** these characters do not correspond direc *** 762,766 **** different mechanism is used to determine whether newlines should be automatically inserted after these characters. @xref{Customizing ! Semi-colons and Commas} for details. --- 762,766 ---- different mechanism is used to determine whether newlines should be automatically inserted after these characters. @xref{Customizing ! Semi-colons and Commas}, for details. *************** printed when indentation is started and *** 1149,1153 **** Also, except as noted below, re-indentation is always driven by the same mechanisms that control on-the-fly indentation of code. @xref{New ! Indentation Engine} for details. @findex c-indent-command --- 1149,1153 ---- Also, except as noted below, re-indentation is always driven by the same mechanisms that control on-the-fly indentation of code. @xref{New ! Indentation Engine}, for details. @findex c-indent-command *************** indentatio. Most likely, you'll *** 1403,1407 **** find one of the pre-defined styles will suit your needs, but if not, this section will describe how to set up basic editing configurations. ! @xref{Styles} for an explanation of how to set up named styles. @cindex c-basic-offset --- 1403,1407 ---- find one of the pre-defined styles will suit your needs, but if not, this section will describe how to set up basic editing configurations. ! @xref{Styles}, for an explanation of how to set up named styles. @cindex c-basic-offset *************** file to make the changes described in th *** 1682,1686 **** (@ref{Interactive Customization}) more permanent. See the Emacs manuals for more information on customizing Emacs via hooks. @xref{Sample ! .emacs File} for a more complete sample @file{.emacs} file. @example @group --- 1682,1686 ---- (@ref{Interactive Customization}) more permanent. See the Emacs manuals for more information on customizing Emacs via hooks. @xref{Sample ! .emacs File}, for a more complete sample @file{.emacs} file. @example @group *************** doing @code{setq}'s at the top level of *** 1796,1800 **** settings will be captured in the @code{user} style. Also, all other styles implicitly inherit their settings from @code{user} style. This ! means that for any styles you add via @code{c-add-style} (@xref{Adding Styles}) you need only define the differences between your new style and @code{user} style. --- 1796,1800 ---- settings will be captured in the @code{user} style. Also, all other styles implicitly inherit their settings from @code{user} style. This ! means that for any styles you add via @code{c-add-style} (@pxref{Adding Styles}) you need only define the differences between your new style and @code{user} style. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/man/dired-x.texi emacs-20.5/man/dired-x.texi *** emacs-20.4/man/dired-x.texi Sat May 16 20:52:28 1998 --- emacs-20.5/man/dired-x.texi Wed Nov 3 14:55:18 1999 *************** Revision of this manual: 2.52 (1994/08/0 *** 137,141 **** @item Bugs to Lawrence R. Dodd . @emph{Please} type ! @kbd{M-x dired-x-submit-report} to submit a bug report (@xref{Bugs}). @item --- 137,141 ---- @item Bugs to Lawrence R. Dodd . @emph{Please} type ! @kbd{M-x dired-x-submit-report} to submit a bug report (@pxref{Bugs}). @item *************** Some features provided by Dired Extra *** 204,242 **** Omitting of uninteresting files from dired listing. @itemize @bullet ! @xref{Omitting Files in Dired} @end itemize @item Local variables for dired directories. @itemize @bullet ! @xref{Local Variables} @end itemize @item Guessing shell commands in dired buffers. @itemize @bullet ! @xref{Shell Command Guessing} @end itemize @item Running dired command in non-dired buffers. @itemize @bullet ! @xref{Virtual Dired} @end itemize @item Finding a file mentioned in a buffer @itemize @bullet ! @xref{Find File At Point} @end itemize @item Commands using file marking. @itemize @bullet ! @xref{Advanced Mark Commands} @end itemize @end enumerate @noindent ! @file{dired-x.el} binds some functions to keys in Dired Mode (@xref{Key Index}) and also binds @kbd{C-x C-j} and @kbd{C-x 4 C-j} @emph{globally} to ! @code{dired-jump} (@xref{Miscellaneous Commands}). It may also bind @kbd{C-x C-f} and @kbd{C-x 4 C-f} to @code{dired-x-find-file} and ! @code{dired-x-find-file-other-window}, respectively (@xref{Find File At Point}). --- 204,242 ---- Omitting of uninteresting files from dired listing. @itemize @bullet ! @xref{Omitting Files in Dired}. @end itemize @item Local variables for dired directories. @itemize @bullet ! @xref{Local Variables}. @end itemize @item Guessing shell commands in dired buffers. @itemize @bullet ! @xref{Shell Command Guessing}. @end itemize @item Running dired command in non-dired buffers. @itemize @bullet ! @xref{Virtual Dired}. @end itemize @item Finding a file mentioned in a buffer @itemize @bullet ! @xref{Find File At Point}. @end itemize @item Commands using file marking. @itemize @bullet ! @xref{Advanced Mark Commands}. @end itemize @end enumerate @noindent ! @file{dired-x.el} binds some functions to keys in Dired Mode (@pxref{Key Index}) and also binds @kbd{C-x C-j} and @kbd{C-x 4 C-j} @emph{globally} to ! @code{dired-jump} (@pxref{Miscellaneous Commands}). It may also bind @kbd{C-x C-f} and @kbd{C-x 4 C-f} to @code{dired-x-find-file} and ! @code{dired-x-find-file-other-window}, respectively (@pxref{Find File At Point}). *************** when you first do @kbd{C-x d}). *** 323,327 **** In order to have @code{dired-jump} and @code{dired-jump-other-window} ! (@xref{Miscellaneous Commands}) work @emph{before} @code{dired} and @code{dired-x} have been properly loaded the user should set-up an autoload for these functions. In your @file{.emacs} file put --- 323,327 ---- In order to have @code{dired-jump} and @code{dired-jump-other-window} ! (@pxref{Miscellaneous Commands}) work @emph{before} @code{dired} and @code{dired-x} have been properly loaded the user should set-up an autoload for these functions. In your @file{.emacs} file put *************** before @code{dired} is loaded. *** 362,366 **** @cindex Binding @code{dired-x-find-file} If you choose to have @file{dired-x.el} bind @code{dired-x-find-file} over ! @code{find-file} (@xref{Find File At Point}), then you will need to set @code{dired-x-hands-off-my-keys} and make a call to the function @code{dired-x-bind-find-file} in the @code{dired-load-hook}: --- 362,366 ---- @cindex Binding @code{dired-x-find-file} If you choose to have @file{dired-x.el} bind @code{dired-x-find-file} over ! @code{find-file} (@pxref{Find File At Point}), then you will need to set @code{dired-x-hands-off-my-keys} and make a call to the function @code{dired-x-bind-find-file} in the @code{dired-load-hook}: *************** the files, but don't actually omit them. *** 485,490 **** @noindent In order to make Dired Omit work you first need to load @file{dired-x.el} ! inside @code{dired-load-hook} (@xref{Installation}) and then set ! @code{dired-omit-files-p} in some way (@xref{Omitting Variables}). @ifinfo --- 485,490 ---- @noindent In order to make Dired Omit work you first need to load @file{dired-x.el} ! inside @code{dired-load-hook} (@pxref{Installation}) and then set ! @code{dired-omit-files-p} in some way (@pxref{Omitting Variables}). @ifinfo *************** those ending with extensions in @code{di *** 521,525 **** inside your @code{dired-mode-hook} to have omitting initially turned on in ! @emph{every} Dired buffer (@xref{Installation}). You can then use @kbd{M-o} to unomit in that buffer. --- 521,525 ---- inside your @code{dired-mode-hook} to have omitting initially turned on in ! @emph{every} Dired buffer (@pxref{Installation}). You can then use @kbd{M-o} to unomit in that buffer. *************** End: *** 535,539 **** @noindent into a file @file{.dired} (the default value of ! @code{dired-local-variables-file}) in that directory (@xref{Local Variables}). @table @code --- 535,539 ---- @noindent into a file @file{.dired} (the default value of ! @code{dired-local-variables-file}) in that directory (@pxref{Local Variables}). @table @code *************** This is an interactive function that cre *** 544,548 **** like the example above (if it does not already exist) in the file @code{dired-local-variables-file} in the current directory and then refreshes ! the directory listing (@xref{Local Variables}). @end table --- 544,548 ---- like the example above (if it does not already exist) in the file @code{dired-local-variables-file} in the current directory and then refreshes ! the directory listing (@pxref{Local Variables}). @end table *************** This only has effect when @code{dired-om *** 556,560 **** The default value omits the special directories @file{.} and @file{..} and ! autosave files (plus other files ending in ``.'') (@xref{Omitting Examples}). @vindex dired-omit-extensions --- 556,560 ---- The default value omits the special directories @file{.} and @file{..} and ! autosave files (plus other files ending in ``.'') (@pxref{Omitting Examples}). @vindex dired-omit-extensions *************** If you wish to avoid seeing RCS files an *** 618,622 **** @end example @noindent ! in the @code{dired-load-hook} (@xref{Installation}). This assumes @code{dired-omit-localp} has its default value of @code{'no-dir} to make the @code{^}-anchored matches work. As a slower alternative, with --- 618,622 ---- @end example @noindent ! in the @code{dired-load-hook} (@pxref{Installation}). This assumes @code{dired-omit-localp} has its default value of @code{'no-dir} to make the @code{^}-anchored matches work. As a slower alternative, with *************** might want to omit the @file{INDEX} and *** 636,640 **** @noindent ! in the @code{dired-load-hook} (@xref{Installation}). @item --- 636,640 ---- @noindent ! in the @code{dired-load-hook} (@pxref{Installation}). @item *************** then put *** 650,654 **** @noindent ! in the @code{dired-load-hook} (@xref{Installation}). @end itemize --- 650,654 ---- @noindent ! in the @code{dired-load-hook} (@pxref{Installation}). @end itemize *************** variable @code{dired-patch-unclean-exten *** 927,931 **** @findex dired-clean-tex Flag dispensable files created by @TeX{}, La@TeX{}, and @samp{texinfo} for ! deletion. See the following variables (@xref{Advanced Cleaning Variables}) @itemize @bullet --- 927,931 ---- @findex dired-clean-tex Flag dispensable files created by @TeX{}, La@TeX{}, and @samp{texinfo} for ! deletion. See the following variables (@pxref{Advanced Cleaning Variables}): @itemize @bullet *************** files for deletion. *** 952,956 **** @noindent Variables used by the above cleaning commands (and in the default value for ! variable @code{dired-omit-extensions}, @xref{Omitting Variables}) @table @code --- 952,956 ---- @noindent Variables used by the above cleaning commands (and in the default value for ! variable @code{dired-omit-extensions}, @pxref{Omitting Variables}) @table @code *************** When installed @file{dired-x} will subst *** 1096,1100 **** In order to use this feature, you will need to set @code{dired-x-hands-off-my-keys} to @code{nil} inside @code{dired-load-hook} ! (@xref{Optional Installation File At Point}). @table @code --- 1096,1100 ---- In order to use this feature, you will need to set @code{dired-x-hands-off-my-keys} to @code{nil} inside @code{dired-load-hook} ! (@pxref{Optional Installation File At Point}). @table @code *************** Bound to @kbd{C-x 4 C-j}. Like @code{dir *** 1249,1253 **** These functions can be autoloaded so they work even though @file{dired-x.el} ! has not been loaded yet (@xref{Optional Installation Dired Jump}). @vindex dired-bind-jump --- 1249,1253 ---- These functions can be autoloaded so they work even though @file{dired-x.el} ! has not been loaded yet (@pxref{Optional Installation Dired Jump}). @vindex dired-bind-jump diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/man/emacs.texi emacs-20.5/man/emacs.texi *** emacs-20.4/man/emacs.texi Thu Jun 24 19:53:58 1999 --- emacs-20.5/man/emacs.texi Fri Dec 3 08:36:24 1999 *************** *** 9,13 **** @c The edition number appears in several places in this file This is the thirteenth edition of the @cite{GNU Emacs Manual}, ! updated for Emacs version 20.4 @c Please REMEMBER to update edition number in *three* places in this file. --- 9,13 ---- @c The edition number appears in several places in this file This is the thirteenth edition of the @cite{GNU Emacs Manual}, ! updated for Emacs version 20.5. @c Please REMEMBER to update edition number in *three* places in this file. *************** original English. *** 72,76 **** @center @titlefont{GNU Emacs Manual} @sp 4 ! @center Thirteenth Edition, Updated for Emacs Version 20.4 @sp 5 @center Richard Stallman --- 72,76 ---- @center @titlefont{GNU Emacs Manual} @sp 4 ! @center Thirteenth Edition, Updated for Emacs Version 20.5 @sp 5 @center Richard Stallman *************** Copyright @copyright{} 1985, 1986, 1987, *** 81,85 **** @sp 2 Thirteenth Edition @* ! Updated for Emacs Version 20.4, @* February 1999 --- 81,85 ---- @sp 2 Thirteenth Edition @* ! Updated for Emacs Version 20.5, @* February 1999 *************** Cover art by Etienne Suvasa. *** 119,123 **** Emacs is the extensible, customizable, self-documenting real-time display editor. This Info file describes how to edit with Emacs and ! some of how to customize it; it corresponds to GNU Emacs version 20.4. For information on extending Emacs, see @ref{,Emacs Lisp,, elisp, The Emacs Lisp Reference Manual}. --- 119,123 ---- Emacs is the extensible, customizable, self-documenting real-time display editor. This Info file describes how to edit with Emacs and ! some of how to customize it; it corresponds to GNU Emacs version 20.5. For information on extending Emacs, see @ref{,Emacs Lisp,, elisp, The Emacs Lisp Reference Manual}. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/man/gnus.texi emacs-20.5/man/gnus.texi *** emacs-20.4/man/gnus.texi Wed Apr 7 00:46:41 1999 --- emacs-20.5/man/gnus.texi Wed Nov 3 14:55:17 1999 *************** *** 1,3 **** ! \input texinfo @c -*-texinfo-*- @setfilename ../info/gnus --- 1,3 ---- ! \input texinfo @c -*-texinfo-*- -*- coding: iso-latin-1 -*- @setfilename ../info/gnus *************** The native select method. *** 980,984 **** Highlighting in the group buffer is controlled by the @code{gnus-group-highlight} variable. This is an alist with elements ! that look like @var{(form . face)}. If @var{form} evaluates to something non-@code{nil}, the @var{face} will be used on the line. --- 980,984 ---- Highlighting in the group buffer is controlled by the @code{gnus-group-highlight} variable. This is an alist with elements ! that look like @code{(@var{form} . @var{face})}. If @var{form} evaluates to something non-@code{nil}, the @var{face} will be used on the line. *************** group from the server. If you give a nu *** 1138,1142 **** determines the number of articles Gnus will fetch. If @var{N} is positive, Gnus fetches the @var{N} newest articles, if @var{N} is ! negative, Gnus fetches the @var{abs(N)} oldest articles. @item RET --- 1138,1142 ---- determines the number of articles Gnus will fetch. If @var{N} is positive, Gnus fetches the @var{N} newest articles, if @var{N} is ! negative, Gnus fetches the @code{abs(@var{N})} oldest articles. @item RET *************** Gnus, but provide a place for you to sto *** 1831,1835 **** groups. ! @item @var{(variable form)} You can use the group parameters to set variables local to the group you are entering. If you want to turn threading off in @samp{news.answers}, --- 1831,1835 ---- groups. ! @item (@var{variable} @var{form}) You can use the group parameters to set variables local to the group you are entering. If you want to turn threading off in @samp{news.answers}, *************** highlight the current article in the sum *** 3127,3131 **** @vindex gnus-summary-highlight Summary lines are highlighted according to this variable, which is a ! list where the elements are of the format @var{(FORM . FACE)}. If you would, for instance, like ticked articles to be italic and high-scored articles to be bold, you could set this variable to something like --- 3127,3131 ---- @vindex gnus-summary-highlight Summary lines are highlighted according to this variable, which is a ! list where the elements are of the format @code{(@var{FORM} . @var{FACE})}. If you would, for instance, like ticked articles to be italic and high-scored articles to be bold, you could set this variable to something like *************** Canceled article (@code{gnus-canceled-ma *** 3812,3816 **** @item F @vindex gnus-souped-mark ! @sc{SOUP}ed article (@code{gnus-souped-mark}). @xref{SOUP}. @item Q --- 3812,3816 ---- @item F @vindex gnus-souped-mark ! @sc{soup}ed article (@code{gnus-souped-mark}). @xref{SOUP}. @item Q *************** Hook run before parsing any headers. Th *** 4600,4604 **** @code{(gnus-decode-rfc1522)}, which means that QPized headers will be slightly decoded in a hackish way. This is likely to change in the ! future when Gnus becomes @sc{MIME}ified. @item gnus-alter-header-function --- 4600,4604 ---- @code{(gnus-decode-rfc1522)}, which means that QPized headers will be slightly decoded in a hackish way. This is likely to change in the ! future when Gnus becomes @sc{mime}'ified. @item gnus-alter-header-function *************** signature and adds buttons. *** 5797,5802 **** Highlight the headers (@code{gnus-article-highlight-headers}). The highlighting will be done according to the @code{gnus-header-face-alist} ! variable, which is a list where each element has the form @var{(regexp ! name content)}. @var{regexp} is a regular expression for matching the header, @var{name} is the face used for highlighting the header name (@pxref{Faces and Fonts}) and @var{content} is the face for highlighting --- 5797,5803 ---- Highlight the headers (@code{gnus-article-highlight-headers}). The highlighting will be done according to the @code{gnus-header-face-alist} ! variable, which is a list where each element has the form ! @code{(@var{regexp} @var{name} @var{content})}. ! @var{regexp} is a regular expression for matching the header, @var{name} is the face used for highlighting the header name (@pxref{Faces and Fonts}) and @var{content} is the face for highlighting *************** Variables related to the display are: *** 6764,6769 **** @vindex gnus-tree-brackets This is used for differentiating between ``real'' articles and ! ``sparse'' articles. The format is @var{((real-open . real-close) ! (sparse-open . sparse-close) (dummy-open . dummy-close))}, and the default is @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))}. --- 6765,6770 ---- @vindex gnus-tree-brackets This is used for differentiating between ``real'' articles and ! ``sparse'' articles. The format is @code{((@var{real-open} . @var{real-close}) ! (@var{sparse-open} . @var{sparse-close}) (@var{dummy-open} . @var{dummy-close}))}, and the default is @code{((?[ . ?]) (?( . ?)) (?@{ . ?@}) (?< . ?>))}. *************** to @dfn{match}. *** 8073,8078 **** Each style may contain a arbitrary amount of @dfn{attributes}. Each ! attribute consists of a @var{(name . value)} pair. The attribute name ! can be one of @code{signature}, @code{signature-file}, @code{organization}, @code{address}, @code{name} or @code{body}. The attribute name can also be a string. In that case, this will be used as --- 8074,8079 ---- Each style may contain a arbitrary amount of @dfn{attributes}. Each ! attribute consists of a @code{(@var{name} . @var{value})} pair. The ! attribute name can be one of @code{signature}, @code{signature-file}, @code{organization}, @code{address}, @code{name} or @code{body}. The attribute name can also be a string. In that case, this will be used as *************** will. *** 8413,8417 **** After these two elements, there may be an arbitrary number of ! @var{(variable form)} pairs. To go back to the first example---imagine that you want to read from --- 8414,8418 ---- After these two elements, there may be an arbitrary number of ! @code{(@var{variable} @var{form})} pairs. To go back to the first example---imagine that you want to read from *************** examples. *** 9382,9398 **** @item ! @var{(FIELD VALUE SPLIT)}: If the split is a list, the first element of ! which is a string, then store the message as specified by SPLIT, if ! header FIELD (a regexp) contains VALUE (also a regexp). @item ! @var{(| SPLIT...)}: If the split is a list, and the first element is ! @code{|} (vertical bar), then process each SPLIT until one of them ! matches. A SPLIT is said to match if it will cause the mail message to be stored in one or more groups. @item ! @var{(& SPLIT...)}: If the split is a list, and the first element is ! @code{&}, then process all SPLITs in the list. @item --- 9383,9400 ---- @item ! @code{(@var{field} @var{value} @var{split})}: If the split is a list, ! the first element of which is a string, then store the message as ! specified by @var{split}, if header @var{field} (a regexp) contains ! @var{value} (also a regexp). @item ! @code{(|@var{split}@dots{})}: If the split is a list, and the first element is ! @code{|} (vertical bar), then process each @var{split} until one of them ! matches. A @var{split} is said to match if it will cause the mail message to be stored in one or more groups. @item ! @code{(&@var{split}@dots{})}: If the split is a list, and the first element is ! @code{&}, then process all @var{split}s in the list. @item *************** this message. Use with extreme caution. *** 9401,9408 **** @item ! @var{(: function arg1 arg2 ...)}: If the split is a list, and the first ! element is @code{:}, then the second element will be called as a ! function with @var{args} given as arguments. The function should return ! a SPLIT. @item --- 9403,9410 ---- @item ! @code{(: @var{function} @var{arg1} @var{arg2} @dots{})}: If the split is ! a list, and the first element is @code{:}, then the second element will ! be called as a function with @var{args} given as arguments. The ! function should return a @var{split}. @item *************** a SPLIT. *** 9411,9422 **** @end enumerate ! In these splits, @var{FIELD} must match a complete field name. ! @var{VALUE} must match a complete word according to the fundamental mode syntax table. You can use @code{.*} in the regexps to match partial ! field names or words. In other words, all @var{VALUE}'s are wrapped in @samp{\<} and @samp{\>} pairs. @vindex nnmail-split-abbrev-alist ! @var{FIELD} and @var{VALUE} can also be lisp symbols, in that case they are expanded as specified by the variable @code{nnmail-split-abbrev-alist}. This is an alist of cons cells, where --- 9413,9424 ---- @end enumerate ! In these splits, @var{field} must match a complete field name. ! @var{value} must match a complete word according to the fundamental mode syntax table. You can use @code{.*} in the regexps to match partial ! field names or words. In other words, all @var{value}'s are wrapped in @samp{\<} and @samp{\>} pairs. @vindex nnmail-split-abbrev-alist ! @var{field} and @var{value} can also be lisp symbols, in that case they are expanded as specified by the variable @code{nnmail-split-abbrev-alist}. This is an alist of cons cells, where *************** newsgroups. *** 10119,10123 **** * Anything Groups:: Dired? Who needs dired? * Document Groups:: Single files can be the basis of a group. ! * SOUP:: Reading @sc{SOUP} packets ``offline''. * Web Searches:: Creating groups from articles that match a string. * Mail-To-News Gateways:: Posting articles via mail-to-news gateways. --- 10121,10125 ---- * Anything Groups:: Dired? Who needs dired? * Document Groups:: Single files can be the basis of a group. ! * SOUP:: Reading @sc{soup} packets ``offline''. * Web Searches:: Creating groups from articles that match a string. * Mail-To-News Gateways:: Posting articles via mail-to-news gateways. *************** A list. The elements in this list can b *** 12554,12559 **** @enumerate @item ! @var{(regexp file-name)}. If the @var{regexp} matches the group name, ! the @var{file-name} will will be used as the home score file. @item --- 12556,12561 ---- @enumerate @item ! @code{(@var{regexp} @var{file-name})}. If the @var{regexp} matches the ! group name, the @var{file-name} will will be used as the home score file. @item *************** header that gives the message a (more or *** 14327,14334 **** definition. Common types are @samp{spam}, @samp{spew}, @samp{mmf}, @samp{binary}, and @samp{troll}. To specify this, you have to use ! @var{(issuer conditions ...)} elements in the list. Each condition is ! either a string (which is a regexp that matches types you want to use) ! or a list on the form @code{(not STRING)}, where @var{string} is a ! regexp that matches types you don't want to use. For instance, if you want all NoCeM messages from Chris Lewis except his --- 14329,14336 ---- definition. Common types are @samp{spam}, @samp{spew}, @samp{mmf}, @samp{binary}, and @samp{troll}. To specify this, you have to use ! @code{(@var{issuer} @var{conditions} @dots{})} elements in the list. ! Each condition is either a string (which is a regexp that matches types ! you want to use) or a list on the form @code{(not @var{string})}, where ! @var{string} is a regexp that matches types you don't want to use. For instance, if you want all NoCeM messages from Chris Lewis except his diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/man/mh-e.texi emacs-20.5/man/mh-e.texi *** emacs-20.4/man/mh-e.texi Sat May 16 20:51:15 1998 --- emacs-20.5/man/mh-e.texi Tue Nov 2 21:44:38 1999 *************** very nice feature indeed. *** 2385,2389 **** (font-lock-mode 1)) ; @r{change the typefaces} ! (if window-system ; @r{can't do this on @sc{ASCII} terminal} (add-hook 'mh-show-mode-hook 'my-mh-show-mode-hook)) @end group --- 2385,2389 ---- (font-lock-mode 1)) ; @r{change the typefaces} ! (if window-system ; @r{can't do this on @sc{ascii} terminal} (add-hook 'mh-show-mode-hook 'my-mh-show-mode-hook)) @end group diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/man/misc.texi emacs-20.5/man/misc.texi *** emacs-20.4/man/misc.texi Mon May 10 20:38:22 1999 --- emacs-20.5/man/misc.texi Mon Nov 1 21:50:03 1999 *************** before point in the shell buffer *** 516,522 **** @kindex C-d @r{(Shell mode)} @findex comint-delchar-or-maybe-eof ! Either delete a character or send @sc{EOF} (@code{comint-delchar-or-maybe-eof}). Typed at the end of the shell ! buffer, @kbd{C-d} sends @sc{EOF} to the subshell. Typed at any other position in the buffer, @kbd{C-d} deletes a character as usual. --- 516,522 ---- @kindex C-d @r{(Shell mode)} @findex comint-delchar-or-maybe-eof ! Either delete a character or send @sc{eof} (@code{comint-delchar-or-maybe-eof}). Typed at the end of the shell ! buffer, @kbd{C-d} sends @sc{eof} to the subshell. Typed at any other position in the buffer, @kbd{C-d} deletes a character as usual. diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/man/sc.texi emacs-20.5/man/sc.texi *** emacs-20.4/man/sc.texi Thu Jul 2 20:48:27 1998 --- emacs-20.5/man/sc.texi Tue Nov 2 21:44:39 1999 *************** Supercite probably works with any recent *** 149,153 **** only some of these systems will work with Supercite ``out of the box.'' All others must overload interfacing routines to supply the necessary ! glue. @xref{Getting Connected} for more details.@refill --- 149,153 ---- only some of these systems will work with Supercite ``out of the box.'' All others must overload interfacing routines to supply the necessary ! glue. @xref{Getting Connected}, for more details.@refill *************** But by previously agreed upon convention *** 203,207 **** bodies cannot be modified by Supercite. Supercite, in fact, doesn't know anything about the meaning of these headers, and never ventures ! outside the designated region. @xref{Hints to MUA Authors} for more details.@refill --- 203,207 ---- bodies cannot be modified by Supercite. Supercite, in fact, doesn't know anything about the meaning of these headers, and never ventures ! outside the designated region. @xref{Hints to MUA Authors}, for more details.@refill *************** filling routines, e.g@. @code{fill-parag *** 259,263 **** text and will not re-fill them properly because it cannot guess the @code{fill-prefix} being used. ! @xref{Post-yank Formatting Commands} for details.@refill As mentioned above, Supercite provides commands to recite or uncite --- 259,263 ---- text and will not re-fill them properly because it cannot guess the @code{fill-prefix} being used. ! @xref{Post-yank Formatting Commands}, for details.@refill As mentioned above, Supercite provides commands to recite or uncite *************** informative citations throughout. Super *** 267,271 **** as possible to allow for a wide range of personalized citation styles, but it is also immediately useful with the default configuration, once ! it has been properly connected to your MUA. @xref{Getting Connected} for more details.@refill --- 267,271 ---- as possible to allow for a wide range of personalized citation styles, but it is also immediately useful with the default configuration, once ! it has been properly connected to your MUA. @xref{Getting Connected}, for more details.@refill *************** The @dfn{attribution string}. This elem *** 365,369 **** Supercite, based on your preferences and the original message's mail headers, though you may be asked to confirm Supercite's choice. ! @xref{Selecting an Attribution} for more details.@refill @cindex citation delimiter --- 365,369 ---- Supercite, based on your preferences and the original message's mail headers, though you may be asked to confirm Supercite's choice. ! @xref{Selecting an Attribution}, for more details.@refill @cindex citation delimiter *************** Please note the following:@: first, the *** 629,633 **** examples below as @var{infokey} indicates that the corresponding value of the info key from the info alist will be inserted there. ! (@xref{Information Keys and the Info Alist}). For example, in @code{sc-header-on-said} below, @var{date} and @var{from} correspond to the values of the @samp{Date:@:} and @samp{From:@:} mail headers respectively.@refill --- 629,633 ---- examples below as @var{infokey} indicates that the corresponding value of the info key from the info alist will be inserted there. ! (@pxref{Information Keys and the Info Alist}). For example, in @code{sc-header-on-said} below, @var{date} and @var{from} correspond to the values of the @samp{Date:@:} and @samp{From:@:} mail headers respectively.@refill *************** connect Supercite and MH-E 4.x: *** 984,988 **** Note that if you are using Emacs 18 or Epoch 4, you will not have the ! @code{add-hook} function. @xref{Emacs 18 MUAs} for details on how to proceed without @code{add-hook}. --- 984,988 ---- Note that if you are using Emacs 18 or Epoch 4, you will not have the ! @code{add-hook} function. @xref{Emacs 18 MUAs}, for details on how to proceed without @code{add-hook}. *************** following to your @file{.emacs} to conne *** 1038,1042 **** Note that if you are using Emacs 18 or Epoch 4, you will not have the ! @code{add-hook} function. @xref{Emacs 18 MUAs} for details on how to proceed without @code{add-hook}. --- 1038,1042 ---- Note that if you are using Emacs 18 or Epoch 4, you will not have the ! @code{add-hook} function. @xref{Emacs 18 MUAs}, for details on how to proceed without @code{add-hook}. *************** the following lisp code to your @file{.e *** 1073,1077 **** Note that if you are using Emacs 18 or Epoch 4, you will not have the ! @code{add-hook} function. @xref{Emacs 18 MUAs} for details on how to proceed without @code{add-hook}. --- 1073,1077 ---- Note that if you are using Emacs 18 or Epoch 4, you will not have the ! @code{add-hook} function. @xref{Emacs 18 MUAs}, for details on how to proceed without @code{add-hook}. *************** headers are nuked. By default, only one *** 1287,1291 **** Once the mail headers have been processed, Supercite selects a attribution string and a citation string which it will use to cite the ! original message. @xref{Selecting an Attribution} for details. @item --- 1287,1291 ---- Once the mail headers have been processed, Supercite selects a attribution string and a citation string which it will use to cite the ! original message. @xref{Selecting an Attribution}, for details. @item *************** Supercite to anticipate every style in e *** 1328,1332 **** wouldn't encounter them all anyway. But you can configure Supercite to recognize those styles you see often. ! @xref{Configuring the Citation Engine} for details.@refill @item --- 1328,1332 ---- wouldn't encounter them all anyway. But you can configure Supercite to recognize those styles you see often. ! @xref{Configuring the Citation Engine}, for details.@refill @item diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/msdos/ChangeLog emacs-20.5/msdos/ChangeLog *** emacs-20.4/msdos/ChangeLog Mon Jul 12 19:49:28 1999 --- emacs-20.5/msdos/ChangeLog Fri Dec 10 17:26:20 1999 *************** *** 1,2 **** --- 1,10 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + + 1999-07-29 Eli Zaretskii + + * sedleim.inp (SHELL, MAKESHELL): Use /xyzzy/command as the shell. + 1999-07-12 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/msdos/sedleim.inp emacs-20.5/msdos/sedleim.inp *** emacs-20.4/msdos/sedleim.inp Thu Jan 7 13:33:08 1999 --- emacs-20.5/msdos/sedleim.inp Thu Jul 29 12:48:17 1999 *************** *** 3,8 **** # ---------------------------------------------------------------------- /^SHELL *=/c\ ! SHELL=/dos/command\ ! MAKESHELL=/dos/command /^version=/d --- 3,8 ---- # ---------------------------------------------------------------------- /^SHELL *=/c\ ! SHELL=/xyzzy/command\ ! MAKESHELL=/xyzzy/command /^version=/d diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/nt/ChangeLog emacs-20.5/nt/ChangeLog *** emacs-20.4/nt/ChangeLog Mon Jul 12 19:49:47 1999 --- emacs-20.5/nt/ChangeLog Mon Nov 22 23:39:34 1999 *************** *** 1,2 **** --- 1,26 ---- + 1999-11-22 Andrew Innes + + * install.bat: Pass on command line arguments to make. + + * makefile.nt (fast_install): Bring commands up-to-date, and fix + typo. + + 1999-11-21 Andrew Innes + + * makefile.nt (all): Build leim if present. + (install): Install leim if present. + (clean): Clean leim if present. + + * addpm.c (env_vars): Include leim in default EMACSLOADPATH + definition. + + * emacs.bat.in (EMACSLOADPATH): Include leim. + + 1999-11-04 Andrew Innes + + * makefile.def (ARCH_CFLAGS): Disable the frame pointer omission + optimization, to ensure accurate stack traces. The performance + loss is negligible. + 1999-07-12 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/nt/addpm.c emacs-20.5/nt/addpm.c *** emacs-20.4/nt/addpm.c Tue Jul 21 05:59:41 1998 --- emacs-20.5/nt/addpm.c Mon Nov 22 15:48:11 1999 *************** env_vars[] = *** 55,59 **** { {"emacs_dir", NULL}, ! {"EMACSLOADPATH", "%emacs_dir%/site-lisp;%emacs_dir%/lisp"}, {"SHELL", "%emacs_dir%/bin/cmdproxy.exe"}, {"EMACSDATA", "%emacs_dir%/etc"}, --- 55,59 ---- { {"emacs_dir", NULL}, ! {"EMACSLOADPATH", "%emacs_dir%/site-lisp;%emacs_dir%/lisp;%emacs_dir%/leim"}, {"SHELL", "%emacs_dir%/bin/cmdproxy.exe"}, {"EMACSDATA", "%emacs_dir%/etc"}, diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/nt/emacs.bat.in emacs-20.5/nt/emacs.bat.in *** emacs-20.4/nt/emacs.bat.in Wed Sep 3 03:54:10 1997 --- emacs-20.5/nt/emacs.bat.in Mon Nov 22 15:50:17 1999 *************** REM Use new proxy shell by default. *** 5,9 **** set SHELL=%emacs_dir%\bin\cmdproxy.exe ! set EMACSLOADPATH=%emacs_dir%\site-lisp;%emacs_dir%\lisp set EMACSDATA=%emacs_dir%\etc set EMACSPATH=%emacs_dir%\bin --- 5,9 ---- set SHELL=%emacs_dir%\bin\cmdproxy.exe ! set EMACSLOADPATH=%emacs_dir%\site-lisp;%emacs_dir%\lisp;%emacs_dir%\leim set EMACSDATA=%emacs_dir%\etc set EMACSPATH=%emacs_dir%\bin Only in emacs-20.4/nt/icons: gnu5bw32.ico Only in emacs-20.4/nt/icons: gnu5bw32t.ico Binary files emacs-20.4/nt/icons/gnu5w32.ico and emacs-20.5/nt/icons/gnu5w32.ico differ Binary files emacs-20.4/nt/icons/gnu5w32t.ico and emacs-20.5/nt/icons/gnu5w32t.ico differ Only in emacs-20.4/nt/icons: gnu6bw48.ico Only in emacs-20.4/nt/icons: gnu6bw48t.ico Binary files emacs-20.4/nt/icons/gnu6w48.ico and emacs-20.5/nt/icons/gnu6w48.ico differ Binary files emacs-20.4/nt/icons/gnu6w48t.ico and emacs-20.5/nt/icons/gnu6w48t.ico differ diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/nt/install.bat emacs-20.5/nt/install.bat *** emacs-20.4/nt/install.bat Fri Nov 13 15:07:51 1998 --- emacs-20.5/nt/install.bat Mon Nov 22 23:38:33 1999 *************** if (%1) == (speed) set BUILD_TYPE=spd *** 3,7 **** if (%1) == (speed) shift if not (%1) == () set INSTALL_DIR=%1 ! nmake -f makefile.nt install set INSTALL_DIR= set BUILD_TYPE= --- 3,8 ---- if (%1) == (speed) shift if not (%1) == () set INSTALL_DIR=%1 ! if not (%1) == () shift ! nmake -f makefile.nt install %1 %2 %3 %4 %5 %6 %7 %8 %9 set INSTALL_DIR= set BUILD_TYPE= diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/nt/makefile.def emacs-20.5/nt/makefile.def *** emacs-20.4/nt/makefile.def Sat Mar 6 03:16:22 1999 --- emacs-20.5/nt/makefile.def Mon Nov 8 15:37:19 1999 *************** ADDPM = ..\nt\$(BLD)\addpm.exe *** 187,191 **** !if "$(ARCH)" == "i386" !if "$(BUILD_TYPE)" == "spd" ! ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Oxsb2 -G6dF -Zi -Zp8 !else ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Od -G3d -Zi -Zp8 --- 187,191 ---- !if "$(ARCH)" == "i386" !if "$(BUILD_TYPE)" == "spd" ! ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Oxsb2 -Oy- -G6dF -Zi -Zp8 !else ARCH_CFLAGS = -nologo -D_X86_=1 -c -Zel -W2 -H63 -Od -G3d -Zi -Zp8 diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/nt/makefile.nt emacs-20.5/nt/makefile.nt *** emacs-20.4/nt/makefile.nt Sat Mar 6 03:07:40 1999 --- emacs-20.5/nt/makefile.nt Mon Nov 22 15:57:14 1999 *************** all: $(BLD) $(ALL) *** 91,94 **** --- 91,96 ---- cd ..\lisp $(BUILD_CMD) + cd ..\leim + if exist makefile.nt $(BUILD_CMD) cd ..\nt *************** install: all $(INSTALL_DIR) batch_files *** 127,130 **** --- 129,134 ---- cd ..\lisp $(INSTALL_CMD) + cd ..\leim + if exist makefile.nt $(INSTALL_CMD) cd ..\nt - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin *************** fast_install: batch_files *** 152,156 **** --- 156,163 ---- - mkdir $(INSTALL_DIR)\bin - $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin + - $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin + - $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin - $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin + - $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin - $(DEL) ..\same-dir.tst - $(DEL) $(INSTALL_DIR)\same-dir.tst *************** fast_install: batch_files *** 159,163 **** if not exist ..\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin if not exist ..\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin ! if not exist ..\same-dir.tst nmake -f $(MAKE) real_install - $(DEL) ..\same-dir.tst - $(DEL) $(INSTALL_DIR)\same-dir.tst --- 166,170 ---- if not exist ..\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin if not exist ..\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin ! if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install - $(DEL) ..\same-dir.tst - $(DEL) $(INSTALL_DIR)\same-dir.tst *************** clean:; - $(DEL) *~ *.pdb *** 200,202 **** --- 207,211 ---- cd ..\lisp $(CLEAN_CMD) + cd ..\leim + if exist makefile.nt $(CLEAN_CMD) cd ..\nt diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/oldXMenu/ChangeLog emacs-20.5/oldXMenu/ChangeLog *** emacs-20.4/oldXMenu/ChangeLog Mon Jul 12 19:48:55 1999 --- emacs-20.5/oldXMenu/ChangeLog Fri Dec 10 17:26:54 1999 *************** *** 1,2 **** --- 1,6 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + 1999-07-12 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/ChangeLog emacs-20.5/src/ChangeLog *** emacs-20.4/src/ChangeLog Wed Jul 14 17:47:18 1999 --- emacs-20.5/src/ChangeLog Fri Dec 10 17:25:22 1999 *************** *** 1,2 **** --- 1,281 ---- + 1999-12-04 Gerd Moellmann + + * Version 20.5 released. + + 1999-12-04 Kenichi Handa + + * coding.c (Ffind_operation_coding_system): Cancel previous change. + + * fileio.c (decide_coding_unwind): Renamed from + set_auto_coding_unwind. + (Finsert_file_contents): Make single unwind protect to call both + Vset_auto_coding_function and Ffind_operation_coding_system. + + * insdel.c (adjust_markers_for_delete): Make it non-static. + + 1999-12-03 Gerd Moellmann + + * unexelf.c (unexec): Put handling of .lit4 and .lit8 in + #ifdef __sgi. + + 1999-12-03 Andreas Schwab + + * unexelf.c (unexec): Don't copy .got section. + + 1999-12-03 Gerd Moellmann + + * fileio.c (Fwrite_region): Don't call + Vselect_safe_coding_sytem_function if noninteractive. + + 1999-12-02 Gerd Moellmann + + * m/iris4d.h, m/iris5d.h: Use unexsgi.o instead of unexelf.o. + + 1999-12-01 Dave Love + + * emacs.c (main): Set LANG=C iff AIX3_2 defined. + + 1999-11-28 Alexandre Oliva + + * unexelf.c: Auto-detect .sbss section. + (round_up): Make it static. + (unexec): Declare alignment as Elf Word. Skip ``Program + segment above .bss'' test on MIPS without .sbss. + Copy sections .got and .sdata1 sections. Adjust offsets in + sections .sdata, .lit4, .lit8, .got and .sdata1. + + 1999-11-28 Alexandre Oliva + + * unexelf.c: Merge IRIX debugging info patch from unexsgi.c + * m/iris4d.h: Use unexelf for IRIX 5.*. + * m/iris5d.h: Use unexelf for IRIX 6.*. + + 1999-11-25 Kenichi Handa + + * coding.c (Ffind_operation_coding_system): Call functions after + changing the current buffer to a temporary buffer. + + 1999-11-24 Ken'ichi Handa + + * fileio.c (Finsert_file_contents): Set buffer-file-coding-system + of the current buffer via Fset. + + 1999-11-23 Gerd Moellmann + + * unexaix.c (unexec): Use unsigned instead of uintptr_t because + that fails on IBM PowerPC, AIX 4.2. + + 1999-11-22 Eli Zaretskii + + * buffer.c (syms_of_buffer): Add %z, %Z, %m and %& to the doc + string of mode-line-format. Remove the obsolete %t. + + 1999-11-21 Jason Rumney + + * w32fns.c (x_to_w32_font): Assign Y-resolution to resy + instead of pixel. + + 1999-11-19 Gerd Moellmann + + * unexelf.c (unexec): Put new code rounding up the bss section's + sh_offset in #if 0. Add corresponding code from 20.4 in #else. + + 1999-11-18 Kenichi Handa + + * keyboard.c (echo_char): Assure sufficient memory for + push_key_description. + + 1999-11-16 Jason Rumney + + * w32console.c: Include coding.c + (write_glyphs): Convert glyphs for display using + terminal_coding_system instead of GLYPH_FOLLOW_ALIASES. + + 1999-11-16 Dave Love + + * doc.c (Fdocumentation): Remove gcpro here too. + + 1999-11-12 Gerd Moellmann + + * doc.c (Fdocumentation_property): Don't GCPRO. + + 1999-11-11 Ken'ichi Handa + + * editfns.c (Ftranslate_region): Check the buffer multibyteness. + + 1999-11-07 Andrew Innes + + * w32fns.c (x_set_name): Coerce title string to unibyte. + (x_set_title): Ditto. + + * w32menu.c: Undef HAVE_MULTILINGUAL_MENU. + (single_submenu): + (w32_menu_show) [!HAVE_MULTILINGUAL_MENU]: Coerce menu strings to + unibyte. + + * w32.c (map_w32_filename): Force file functions to fail if the + name is too long, by returning an invalid name. + (open_unc_volume): Add cast. + (open_unc_volume): Make argument const. + (unc_volume_file_attributes): Ditto. + + * makefile.nt (LINK_FLAGS): Include function-level (COFF format) + debug information in release builds, to get meaningful stack + traces on crashes. Also remove spurious spaces in various places, + and all dependencies on lisp.h. + + * w32term.c (my_set_focus): Return a value; + (my_set_foreground_window): Ditto. + (w32_initialize): Change return type to void, and add forward + declaration. + + * w32fns.c (Fw32_shell_execute): Fix typo in docstring. + (Fw32_shell_execute): Allow OPERATION to be nil, to perform the + default action. + + 1999-11-02 Gerd Moellmann + + * doc.c (Fdocumentation_property): Fix bug bypassing UNGCPRO. + + 1999-11-01 Gerd Moellmann + + * doc.c (Fdocumentation_property): Remove register keyword + from local variable `tem'. + + 1999-10-28 Ken'ichi Handa + + * coding.c (code_convert_region): Update `dst' correctly. + + 1999-10-18 Dave Love + + * doc.c (Fdocumentation_property): Gcpro `tem`. + + 1999-10-13 Dave Love + + * filelock.c (lock_file): Move gcpro of `fn'. + + 1999-10-14 Ken'ichi Handa + + * fns.c (Fstring_as_multibyte): Call + register_composite_chars_string for a multibyte string. + + 1999-10-13 Ken'ichi Handa + + * lread.c (Fload): Calculate bytes of filename correctly. + (openp): Likewise. + + 1999-09-29 Kenichi Handa + + * category.c (modify_lower_category_set): Set default value of + TABLE correctly. + + * coding.c (DECODE_CHARACTER_ASCII): Decode ASCII invocated to GR + correctly. + + * minibuf.c (Fminibuffer_complete_word): Calculate string byte + size correctly. + + 1999-09-28 Richard M. Stallman + + * keymap.c (Fsingle_key_description): Make tem big enough. + (describe_buffer_bindings): Make buf big enough. + + 1999-09-19 Miyashita Hisashi + + * charset.c (str_cmpchar_id): Before xmalloc, copy data in STR to + a buffer that is safe from memory relocation. + + 1999-09-16 Kenichi Handa + + * charset.h: (register_composite_chars_region): Extern it. + (register_composite_chars_string): Extern it. + + * charset.c (str_cmpchar_id): New argument REGISTERP. Caller + changed. + (register_composite_chars_region): New function. + (register_composite_chars_string): New function. + + * alloc.c (make_string): Call register_composite_chars_string for + a multibyte string. + (make_multibyte_string): Likewise. + (make_string_from_bytes): Likewise. + (make_specified_string): Likewise. + + * buffer.c (Fset_buffer_multibyte): On setting the buffer + multibyte, call register_composite_chars_region. + + * insdel.c (insert_1_both): Call register_composite_chars_region + after the insertion. + (adjust_after_replace): Likewise. + + * indent.c (MULTIBYTE_BYTES_WIDTH): Adjusted for the change of + str_cmpchar_id. + + 1999-09-15 Richard Stallman + + * filelock.c (Vtemporary_file_directory): New variable. + (syms_of_filelock): Set up Lisp variable. + + 1999-09-14 Richard Stallman + + * filelock.c (get_boot_time): Make the temp name in the proper dir. + + 1999-09-07 Richard Stallman + + * keymap.c (fix_submap_inheritance): Do nothing if the proper + parent is an ancestor of SUBMAP; otherwise, add it as the + ultimate ancestor. + + 1999-09-06 Michael Sperber [Mr. Preprocessor] + + * s/aix4-2.h (ALIGN_DATA_RELOC): Undefined to support new + unexaix.c. + + * s/aix3-1.h (ALIGN_DATA_RELOC): Defined to support new unexaix.c. + + 1999-09-06 Dave Love + + * unexaix.c: New version incorporating Michael Sperber's changes + from XEmacs. Should solve problems on AIX 4.3. + + 1999-08-13 Richard M. Stallman + + * eval.c (run_hook_list_with_args): Gcpro `globals'. + (run_hook_with_args): Likewise. + + 1999-08-10 Richard M. Stallman + + * window.h (struct window): New field too_small_ok. + + * window.c (set_window_height, set_window_width): + If window starts out "too small", set its too_small_ok flag. + If window's too_small_ok flag is set, don't delete it + unless it is so small it would cause a crash. + + * charset.h (BCOPY_SHORT): Fix typo `unsigined'. + + 1999-08-10 Alexandre Oliva + + * unexelf.c [__linux__ && __alpha__] (HAS_SBSS_SECTION): Define. + + 1999-08-04 Andreas Schwab + + * insdel.c (insert_from_string_1): Check gap size against number + of outgoing bytes, not incoming bytes. + + 1999-08-01 Richard Stallman + + * fns.c (internal_equal): Correct overlay comparison. + + 1999-07-29 Eli Zaretskii + + * msdos.c (getdefdir): Don't return failure indication when + _fixpath sets errno to ENOSYS. + + 1999-07-21 Joe Ramey + + * filelock.c (lock_if_free): Return -1 if check_lock_owner + has returned -1 (lockfile exists but is not a symlink?) + 1999-07-14 Richard Stallman diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/alloc.c emacs-20.5/src/alloc.c *** emacs-20.4/src/alloc.c Sat Jan 2 01:05:45 1999 --- emacs-20.5/src/alloc.c Thu Sep 16 09:20:15 1999 *************** make_string (contents, nbytes) *** 1321,1324 **** --- 1321,1326 ---- if (STRING_BYTES (XSTRING (val)) == XSTRING (val)->size) SET_STRING_BYTES (XSTRING (val), -1); + else + register_composite_chars_string (val); return val; } *************** make_multibyte_string (contents, nchars, *** 1349,1352 **** --- 1351,1355 ---- val = make_uninit_multibyte_string (nchars, nbytes); bcopy (contents, XSTRING (val)->data, nbytes); + register_composite_chars_string (val); return val; } *************** make_string_from_bytes (contents, nchars *** 1366,1369 **** --- 1369,1374 ---- if (STRING_BYTES (XSTRING (val)) == XSTRING (val)->size) SET_STRING_BYTES (XSTRING (val), -1); + else + register_composite_chars_string (val); return val; } *************** make_specified_string (contents, nchars, *** 1383,1386 **** --- 1388,1393 ---- if (!multibyte) SET_STRING_BYTES (XSTRING (val), -1); + else + register_composite_chars_string (val); return val; } diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/buffer.c emacs-20.5/src/buffer.c *** emacs-20.4/src/buffer.c Wed Jun 16 04:32:20 1999 --- emacs-20.5/src/buffer.c Tue Nov 23 14:16:38 1999 *************** but the contents viewed as characters do *** 1829,1832 **** --- 1829,1835 ---- } + /* Register all composite characters. */ + register_composite_chars_region (BEG, BEG_BYTE, Z, Z_BYTE); + tail = markers = BUF_MARKERS (current_buffer); *************** A string is printed verbatim in the mode *** 4170,4173 **** --- 4173,4177 ---- %F -- print frame name.\n\ %* -- print %, * or hyphen. %+ -- print *, % or hyphen.\n\ + %& is like %*, but ignore read-only-ness.\n\ % means buffer is read-only and * means it is modified.\n\ For a modified read-only buffer, %* gives % and %+ gives *.\n\ *************** A string is printed verbatim in the mode *** 4179,4184 **** %P -- print percent of buffer above bottom of window, perhaps plus Top,\n\ or print Bottom or All.\n\ %n -- print Narrow if appropriate.\n\ ! %t -- print T if file is text, B if binary.\n\ %[ -- print one [ for each recursive editing level. %] similar.\n\ %% -- print %. %- -- print infinitely many dashes.\n\ --- 4183,4190 ---- %P -- print percent of buffer above bottom of window, perhaps plus Top,\n\ or print Bottom or All.\n\ + %m -- print the mode name.\n\ %n -- print Narrow if appropriate.\n\ ! %z -- print mnemonics of buffer, terminal, and keyboard coding systems.\n\ ! %Z -- like %z, but including the end-of-line format.\n\ %[ -- print one [ for each recursive editing level. %] similar.\n\ %% -- print %. %- -- print infinitely many dashes.\n\ diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/category.c emacs-20.5/src/category.c *** emacs-20.4/src/category.c Wed Nov 18 08:30:16 1998 --- emacs-20.5/src/category.c Fri Oct 1 03:56:29 1999 *************** modify_lower_category_set (table, catego *** 315,324 **** int i; ! if (NILP (XCHAR_TABLE (table)->defalt)) ! { ! val = MAKE_CATEGORY_SET; ! SET_CATEGORY_SET (val, category, set_value); ! XCHAR_TABLE (table)->defalt = val; ! } for (i = 32; i < SUB_CHAR_TABLE_ORDINARY_SLOTS; i++) --- 315,323 ---- int i; ! val = XCHAR_TABLE (table)->defalt; ! if (!CATEGORY_SET_P (val)) ! val = MAKE_CATEGORY_SET; ! SET_CATEGORY_SET (val, category, set_value); ! XCHAR_TABLE (table)->defalt = val; for (i = 32; i < SUB_CHAR_TABLE_ORDINARY_SLOTS; i++) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/charset.c emacs-20.5/src/charset.c *** emacs-20.4/src/charset.c Tue Feb 16 03:27:12 1999 --- emacs-20.5/src/charset.c Mon Sep 20 02:43:02 1999 *************** string_to_non_ascii_char (str, len, actu *** 222,226 **** if (c == LEADING_CODE_COMPOSITION) { ! int cmpchar_id = str_cmpchar_id (begp, bytes); if (cmpchar_id >= 0) --- 222,226 ---- if (c == LEADING_CODE_COMPOSITION) { ! int cmpchar_id = str_cmpchar_id (begp, bytes, 0); if (cmpchar_id >= 0) *************** split_non_ascii_string (str, len, charse *** 291,295 **** if (cs == LEADING_CODE_COMPOSITION) { ! int cmpchar_id = str_cmpchar_id (str - 1, len); if (cmpchar_id < 0) --- 291,295 ---- if (cs == LEADING_CODE_COMPOSITION) { ! int cmpchar_id = str_cmpchar_id (str - 1, len, 0); if (cmpchar_id < 0) *************** find_charset_in_str (str, len, charsets, *** 783,787 **** if (c == LEADING_CODE_COMPOSITION) { ! int cmpchar_id = str_cmpchar_id (str, len); GLYPH *glyph; --- 783,787 ---- if (c == LEADING_CODE_COMPOSITION) { ! int cmpchar_id = str_cmpchar_id (str, len, 0); GLYPH *glyph; *************** strwidth (str, len) *** 1245,1249 **** if (*str == LEADING_CODE_COMPOSITION) { ! int id = str_cmpchar_id (str, endp - str); if (id < 0) --- 1245,1249 ---- if (*str == LEADING_CODE_COMPOSITION) { ! int id = str_cmpchar_id (str, endp - str, 0); if (id < 0) *************** static int *cmpchar_hash_table[CMPCHAR_H *** 1470,1479 **** /* Return CMPCHAR-ID of the composite character in STR of the length LEN. If the composite character has not yet been registered, ! register it in `cmpchar_table' and assign new CMPCHAR-ID. This ! is the sole function for assigning CMPCHAR-ID. */ int ! str_cmpchar_id (str, len) const unsigned char *str; int len; { int hash_idx, *hashp; --- 1470,1481 ---- /* Return CMPCHAR-ID of the composite character in STR of the length LEN. If the composite character has not yet been registered, ! register it in `cmpchar_table' and assign new CMPCHAR-ID (if ! REGISTERP is nonzero), or return -1 (otherwise). This is the sole ! function for assigning CMPCHAR-ID. */ int ! str_cmpchar_id (str, len, registerp) const unsigned char *str; int len; + int registerp; { int hash_idx, *hashp; *************** str_cmpchar_id (str, len) *** 1532,1535 **** --- 1534,1540 ---- } + if (!registerp) + return -1; + /* We have to register the composite character in cmpchar_table. */ if (n_cmpchars >= (CHAR_FIELD2_MASK | CHAR_FIELD3_MASK)) *************** str_cmpchar_id (str, len) *** 1537,1540 **** --- 1542,1552 ---- return -1; + /* First we must copy data in STR to a safe area against memory + relocation because STR will be invalid after xmalloc if STR + points r_alloced memory, which is usually buffer memory. From + now on, we must not trust STR. */ + buf = (unsigned char*) alloca (sizeof (unsigned char) * len); + bcopy (str, buf, len); + /* Make the entry in hash table. */ if (hashp == NULL) *************** str_cmpchar_id (str, len) *** 1578,1582 **** cmpcharp->len = len; cmpcharp->data = (unsigned char *) xmalloc (len + 1); ! bcopy (str, cmpcharp->data, len); cmpcharp->data[len] = 0; cmpcharp->glyph_len = chars; --- 1590,1594 ---- cmpcharp->len = len; cmpcharp->data = (unsigned char *) xmalloc (len + 1); ! bcopy (buf, cmpcharp->data, len); cmpcharp->data[len] = 0; cmpcharp->glyph_len = chars; *************** str_cmpchar_id (str, len) *** 1686,1689 **** --- 1698,1780 ---- } + /* Register composite characters in the region specified by + positions FROM/FROM_BYTE and TO/TO_BYTE. */ + + void + register_composite_chars_region (from, from_byte, to, to_byte) + int from, from_byte, to, to_byte; + { + int stop_byte; + unsigned char *p = BYTE_POS_ADDR (from_byte); + int id; + + if (to - from == to_byte - from_byte) + /* There's no composite character in this range. */ + return; + + if (to_byte < GPT_BYTE) + stop_byte = to_byte; + else + stop_byte = GPT_BYTE; + + while (1) + { + if (from_byte >= stop_byte) + { + if (stop_byte >= to_byte) + break; + stop_byte = to_byte; + p = BYTE_POS_ADDR (from_byte); + } + if (*p == LEADING_CODE_COMPOSITION + && (id = str_cmpchar_id (p, stop_byte - from_byte, 1)) >= 0) + { + from_byte += cmpchar_table[id]->len; + p = BYTE_POS_ADDR (from_byte); + } + else + { + from_byte++; + p++; + } + } + } + + /* It is safe to call this when creating a string, because creating a + string can call xmalloc itself. So anything that calls a string + creation function already needs to cope with the issue of + relocating buffers. */ + + void + register_composite_chars_string (string) + Lisp_Object string; + { + int i_byte; + int len = STRING_BYTES (XSTRING (string)); + unsigned char *p = XSTRING (string)->data; + int id; + + if (!STRING_MULTIBYTE (string) + || STRING_BYTES (XSTRING (string)) == XSTRING (string)->size) + /* There's no composite character in STRING. */ + return; + + i_byte = 0; + while (i_byte < len) + { + if (*p == LEADING_CODE_COMPOSITION + && (id = str_cmpchar_id (p, len - i_byte, 1)) >= 0) + { + i_byte += cmpchar_table[id]->len; + p = XSTRING (string)->data + i_byte; + } + else + { + i_byte++; + p++; + } + } + } + /* Return the Nth element of the composite character C. If NOERROR is nonzero, return 0 on error condition (C is an invalid composite *************** DEFUN ("compose-string", Fcompose_string *** 1829,1833 **** ptemp = p; while (! CHAR_HEAD_P (*p)) p++; ! if (str_cmpchar_id (ptemp - 1, p - ptemp + 1) < 0) error ("Can't compose an invalid composition character"); if (i + (p - ptemp) >= MAX_LENGTH_OF_MULTI_BYTE_FORM) --- 1920,1924 ---- ptemp = p; while (! CHAR_HEAD_P (*p)) p++; ! if (str_cmpchar_id (ptemp - 1, p - ptemp + 1, 0) < 0) error ("Can't compose an invalid composition character"); if (i + (p - ptemp) >= MAX_LENGTH_OF_MULTI_BYTE_FORM) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/charset.h emacs-20.5/src/charset.h *** emacs-20.4/src/charset.h Wed May 26 10:02:42 1999 --- emacs-20.5/src/charset.h Thu Sep 16 13:20:35 1999 *************** extern int string_to_non_ascii_char P_ ( *** 811,815 **** extern int non_ascii_char_to_string P_ ((int, unsigned char *, unsigned char **)); extern int multibyte_form_length P_ ((const unsigned char *, int)); ! extern int str_cmpchar_id P_ ((const unsigned char *, int)); extern int get_charset_id P_ ((Lisp_Object)); extern int cmpchar_component P_ ((int, int, int)); --- 811,817 ---- extern int non_ascii_char_to_string P_ ((int, unsigned char *, unsigned char **)); extern int multibyte_form_length P_ ((const unsigned char *, int)); ! extern int str_cmpchar_id P_ ((const unsigned char *, int, int)); ! extern void register_composite_chars_region P_ ((int, int, int, int)); ! extern void register_composite_chars_string P_ ((Lisp_Object)); extern int get_charset_id P_ ((Lisp_Object)); extern int cmpchar_component P_ ((int, int, int)); *************** extern Lisp_Object Vauto_fill_chars; *** 836,840 **** do { \ int i = len; \ ! unsigined char *from_p = from, *to_p = to; \ while (i--) *from_p++ = *to_p++; \ } while (0) --- 838,842 ---- do { \ int i = len; \ ! unsigned char *from_p = from, *to_p = to; \ while (i--) *from_p++ = *to_p++; \ } while (0) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/coding.c emacs-20.5/src/coding.c *** emacs-20.4/src/coding.c Fri Jun 18 07:18:29 1999 --- emacs-20.5/src/coding.c Sun Dec 5 12:59:52 1999 *************** encode_coding_XXX (coding, source, desti *** 225,232 **** else \ { \ ! *dst++ = (c); \ coding->produced_char++; \ - if ((c) >= 0x80) \ - coding->fake_multibyte = 1; \ } \ } while (0) --- 225,232 ---- else \ { \ ! /* If ASCII charset is invoked to GR, \ ! we must reset MSB now. */ \ ! *dst++ = (c) & 0x7F; \ coding->produced_char++; \ } \ } while (0) *************** code_convert_region (from, from_byte, to *** 4473,4477 **** len_byte -= coding->consumed; src += coding->consumed; ! dst += inserted_byte; if (result == CODING_FINISH_NORMAL) --- 4473,4477 ---- len_byte -= coding->consumed; src += coding->consumed; ! dst += coding->produced; if (result == CODING_FINISH_NORMAL) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/doc.c emacs-20.5/src/doc.c *** emacs-20.4/src/doc.c Tue Apr 6 21:43:12 1999 --- emacs-20.5/src/doc.c Tue Nov 16 13:07:26 1999 *************** string is passed through `substitute-com *** 373,383 **** if (NILP (raw)) ! { ! struct gcpro gcpro1; ! ! GCPRO1 (doc); ! doc = Fsubstitute_command_keys (doc); ! UNGCPRO; ! } return doc; } --- 373,377 ---- if (NILP (raw)) ! doc = Fsubstitute_command_keys (doc); return doc; } *************** translation.") *** 392,396 **** Lisp_Object symbol, prop, raw; { ! register Lisp_Object tem; tem = Fget (symbol, prop); --- 386,390 ---- Lisp_Object symbol, prop, raw; { ! Lisp_Object tem; tem = Fget (symbol, prop); *************** translation.") *** 400,404 **** tem = get_doc_string (tem, 0, 0); if (NILP (raw) && STRINGP (tem)) ! return Fsubstitute_command_keys (tem); return tem; } --- 394,399 ---- tem = get_doc_string (tem, 0, 0); if (NILP (raw) && STRINGP (tem)) ! tem = Fsubstitute_command_keys (tem); ! return tem; } diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/editfns.c emacs-20.5/src/editfns.c *** emacs-20.4/src/editfns.c Tue Jun 15 07:29:26 1999 --- emacs-20.5/src/editfns.c Fri Nov 12 01:16:46 1999 *************** It returns the number of characters chan *** 2098,2101 **** --- 2098,2102 ---- int size; /* Size of translate table. */ int pos; + int multibyte = !NILP (current_buffer->enable_multibyte_characters); validate_region (&start, &end); *************** It returns the number of characters chan *** 2118,2122 **** int pos_byte_next; ! oc = STRING_CHAR_AND_LENGTH (p, stop - pos_byte, len); pos_byte_next = pos_byte + len; if (oc < size && len == 1) --- 2119,2126 ---- int pos_byte_next; ! if (multibyte) ! oc = STRING_CHAR_AND_LENGTH (p, stop - pos_byte, len); ! else ! oc = *p, len = 1; pos_byte_next = pos_byte + len; if (oc < size && len == 1) *************** It returns the number of characters chan *** 2127,2131 **** /* Take care of the case where the new character combines with neighboring bytes. */ ! if (!ASCII_BYTE_P (nc) && (CHAR_HEAD_P (nc) ? ! CHAR_HEAD_P (FETCH_BYTE (pos_byte + 1)) --- 2131,2136 ---- /* Take care of the case where the new character combines with neighboring bytes. */ ! if (multibyte ! && !ASCII_BYTE_P (nc) && (CHAR_HEAD_P (nc) ? ! CHAR_HEAD_P (FETCH_BYTE (pos_byte + 1)) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/emacs.c emacs-20.5/src/emacs.c *** emacs-20.4/src/emacs.c Tue Jun 29 19:11:06 1999 --- emacs-20.5/src/emacs.c Wed Dec 1 13:03:43 1999 *************** the Bugs section of the Emacs manual or *** 1131,1135 **** if this is not done. Do it after set_process_environment so that we don't pollute Vprocess_environment. */ ! #ifdef AIX putenv ("LANG=C"); #endif --- 1131,1136 ---- if this is not done. Do it after set_process_environment so that we don't pollute Vprocess_environment. */ ! /* Setting LANG here will defeat the startup locale processing... */ ! #ifdef AIX3_2 putenv ("LANG=C"); #endif diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/eval.c emacs-20.5/src/eval.c *** emacs-20.4/src/eval.c Fri Apr 9 21:14:45 1999 --- emacs-20.5/src/eval.c Sat Aug 14 04:29:01 1999 *************** run_hook_with_args (nargs, args, cond) *** 2078,2082 **** { Lisp_Object sym, val, ret; ! struct gcpro gcpro1, gcpro2; /* If we are dying or still initializing, --- 2078,2083 ---- { Lisp_Object sym, val, ret; ! Lisp_Object globals; ! struct gcpro gcpro1, gcpro2, gcpro3; /* If we are dying or still initializing, *************** run_hook_with_args (nargs, args, cond) *** 2098,2102 **** else { ! GCPRO2 (sym, val); for (; --- 2099,2104 ---- else { ! globals = Qnil; ! GCPRO3 (sym, val, globals); for (; *************** run_hook_with_args (nargs, args, cond) *** 2110,2114 **** /* t indicates this hook has a local binding; it means to run the global binding too. */ - Lisp_Object globals; for (globals = Fdefault_value (sym); --- 2112,2115 ---- *************** run_hook_list_with_args (funlist, nargs, *** 2152,2159 **** Lisp_Object sym; Lisp_Object val; ! struct gcpro gcpro1, gcpro2; sym = args[0]; ! GCPRO2 (sym, val); for (val = funlist; CONSP (val); val = XCONS (val)->cdr) --- 2153,2162 ---- Lisp_Object sym; Lisp_Object val; ! Lisp_Object globals; ! struct gcpro gcpro1, gcpro2, gcpro3; sym = args[0]; ! globals = Qnil; ! GCPRO3 (sym, val, globals); for (val = funlist; CONSP (val); val = XCONS (val)->cdr) *************** run_hook_list_with_args (funlist, nargs, *** 2163,2167 **** /* t indicates this hook has a local binding; it means to run the global binding too. */ - Lisp_Object globals; for (globals = Fdefault_value (sym); --- 2166,2169 ---- diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/fileio.c emacs-20.5/src/fileio.c *** emacs-20.4/src/fileio.c Thu Jul 8 00:36:06 1999 --- emacs-20.5/src/fileio.c Sun Dec 5 12:59:52 1999 *************** Lisp_Object Qfind_buffer_file_type; *** 3274,3293 **** #endif ! /* This function is called when a function bound to ! Vset_auto_coding_function causes some error. At that time, a text ! of a file has already been inserted in the current buffer, but, ! markers has not yet been adjusted. Thus we must adjust markers ! here. We are sure that the buffer was empty before the text of the ! file was inserted. */ static Lisp_Object ! set_auto_coding_unwind (multibyte) ! Lisp_Object multibyte; { ! int inserted = Z_BYTE - BEG_BYTE; ! if (!NILP (multibyte)) ! inserted = multibyte_chars_in_text (GPT_ADDR - inserted, inserted); ! adjust_after_insert (PT, PT_BYTE, Z, Z_BYTE, inserted); return Qnil; --- 3274,3315 ---- #endif ! extern void adjust_markers_for_delete P_ ((int, int, int, int)); ! ! /* This function is called after Lisp functions to decide a coding ! system are called, or when they cause an error. Before they are ! called, the current buffer is set unibyte and it contains only a ! newly inserted text (thus the buffer was empty before the ! insertion). ! ! The functions may set markers, overlays, text properties, or even ! alter the buffer contents, change the current buffer. ! ! Here, we reset all those changes by: ! o set back the current buffer. ! o move all markers and overlays to BEG. ! o remove all text properties. ! o set back the buffer multibyteness. */ static Lisp_Object ! decide_coding_unwind (unwind_data) ! Lisp_Object unwind_data; { ! Lisp_Object multibyte, undo_list, buffer; ! multibyte = XCAR (unwind_data); ! unwind_data = XCDR (unwind_data); ! undo_list = XCAR (unwind_data); ! buffer = XCDR (unwind_data); ! ! if (current_buffer != XBUFFER (buffer)) ! set_buffer_internal (XBUFFER (buffer)); ! adjust_markers_for_delete (BEG, BEG_BYTE, Z, Z_BYTE); ! adjust_overlays_for_delete (BEG, Z - BEG); ! BUF_INTERVALS (current_buffer) = 0; ! TEMP_SET_PT_BOTH (BEG, BEG_BYTE); ! ! /* Now we are safe to change the buffer's multibyteness directly. */ ! current_buffer->enable_multibyte_characters = multibyte; ! current_buffer->undo_list = undo_list; return Qnil; *************** actually used.") *** 3398,3402 **** how_much = 0; if (!NILP (Vcoding_system_for_read)) ! current_buffer->buffer_file_coding_system = Vcoding_system_for_read; goto notfound; } --- 3420,3424 ---- how_much = 0; if (!NILP (Vcoding_system_for_read)) ! Fset (Qbuffer_file_coding_system, Vcoding_system_for_read); goto notfound; } *************** actually used.") *** 4034,4058 **** else { ! if (inserted > 0 && ! NILP (Vset_auto_coding_function)) ! { ! /* Since we are sure that the current buffer was ! empty before the insertion, we can toggle ! enable-multibyte-characters directly here without ! taking care of marker adjustment and byte ! combining problem. */ ! Lisp_Object prev_multibyte; int count = specpdl_ptr - specpdl; ! prev_multibyte = current_buffer->enable_multibyte_characters; current_buffer->enable_multibyte_characters = Qnil; ! record_unwind_protect (set_auto_coding_unwind, ! prev_multibyte); val = call2 (Vset_auto_coding_function, filename, make_number (inserted)); - /* Discard the unwind protect for recovering the - error of Vset_auto_coding_function. */ - specpdl_ptr--; - current_buffer->enable_multibyte_characters = prev_multibyte; - TEMP_SET_PT_BOTH (BEG, BEG_BYTE); } --- 4056,4079 ---- else { ! /* Since we are sure that the current buffer was empty ! before the insertion, we can toggle ! enable-multibyte-characters directly here without taking ! care of marker adjustment and byte combining problem. By ! this way, we can run Lisp program safely before decoding ! the inserted text. */ ! Lisp_Object unwind_data; int count = specpdl_ptr - specpdl; ! unwind_data = Fcons (current_buffer->enable_multibyte_characters, ! Fcons (current_buffer->undo_list, ! Fcurrent_buffer ())); current_buffer->enable_multibyte_characters = Qnil; ! current_buffer->undo_list = Qt; ! record_unwind_protect (decide_coding_unwind, unwind_data); ! ! if (inserted > 0 && ! NILP (Vset_auto_coding_function)) ! { val = call2 (Vset_auto_coding_function, filename, make_number (inserted)); } *************** actually used.") *** 4069,4072 **** --- 4090,4096 ---- val = XCONS (coding_systems)->car; } + + unbind_to (count, Qnil); + inserted = Z_BYTE - BEG_BYTE; } *************** This does code conversion according to t *** 4350,4354 **** } ! if (!force_raw_text && !NILP (Ffboundp (Vselect_safe_coding_system_function))) /* Confirm that VAL can surely encode the current region. */ --- 4374,4378 ---- } ! if (!force_raw_text && !noninteractive && !NILP (Ffboundp (Vselect_safe_coding_system_function))) /* Confirm that VAL can surely encode the current region. */ diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/filelock.c emacs-20.5/src/filelock.c *** emacs-20.4/src/filelock.c Wed Jul 14 17:46:38 1999 --- emacs-20.5/src/filelock.c Sun Oct 17 12:11:50 1999 *************** extern int errno; *** 59,62 **** --- 59,66 ---- #endif + /* The directory for writing temporary files. */ + + Lisp_Object Vtemporary_file_directory; + #ifdef CLASH_DETECTION *************** get_boot_time () *** 193,197 **** { Lisp_Object args[6]; ! tempname = Fmake_temp_name (build_string ("wtmp")); args[0] = Vshell_file_name; args[1] = Qnil; --- 197,203 ---- { Lisp_Object args[6]; ! tempname = Fexpand_file_name (build_string ("wtmp"), ! Vtemporary_file_directory); ! tempname = Fmake_temp_name (tempname); args[0] = Vshell_file_name; args[1] = Qnil; *************** lock_if_free (clasher, lfname) *** 515,518 **** --- 521,526 ---- else if (locker == 1) return 1; /* Someone else has it. */ + else if (locker == -1) + return -1; /* Some kind of bug, avoid infinite loop. */ /* We deleted a stale lock; try again to lock the file. */ *************** lock_file (fn) *** 545,548 **** --- 553,557 ---- register char *lfname, *locker; lock_info_type lock_info; + struct gcpro gcpro1; /* Don't do locking while dumping Emacs. *************** lock_file (fn) *** 553,556 **** --- 562,566 ---- orig_fn = fn; + GCPRO1 (fn); fn = Fexpand_file_name (fn, Qnil); encoded_fn = ENCODE_FILE (fn); *************** lock_file (fn) *** 563,570 **** { register Lisp_Object subject_buf; - struct gcpro gcpro1; subject_buf = get_truename_buffer (orig_fn); - GCPRO1 (fn); if (!NILP (subject_buf) --- 573,578 ---- *************** lock_file (fn) *** 573,578 **** call1 (intern ("ask-user-about-supersession-threat"), fn); - UNGCPRO; } /* Try to lock the lock. */ --- 581,586 ---- call1 (intern ("ask-user-about-supersession-threat"), fn); } + UNGCPRO; /* Try to lock the lock. */ *************** void *** 716,719 **** --- 724,731 ---- syms_of_filelock () { + DEFVAR_LISP ("temporary-file-directory", &Vtemporary_file_directory, + "The directory for writing temporary files."); + Vtemporary_file_directory = Qnil; + defsubr (&Sunlock_buffer); defsubr (&Slock_buffer); diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/fns.c emacs-20.5/src/fns.c *** emacs-20.4/src/fns.c Wed Apr 7 07:38:55 1999 --- emacs-20.5/src/fns.c Fri Oct 15 01:34:03 1999 *************** Otherwise it is a newly created string, *** 1040,1043 **** --- 1040,1044 ---- XSTRING (string)->size_byte = nbytes; XSTRING (string)->intervals = NULL_INTERVAL; + register_composite_chars_string (string); } return string; *************** internal_equal (o1, o2, depth) *** 1688,1694 **** if (OVERLAYP (o1)) { ! if (!internal_equal (OVERLAY_START (o1), OVERLAY_START (o1), depth + 1) ! || !internal_equal (OVERLAY_END (o1), OVERLAY_END (o1), depth + 1)) return 0; --- 1689,1695 ---- if (OVERLAYP (o1)) { ! if (!internal_equal (OVERLAY_START (o1), OVERLAY_START (o2), depth + 1) ! || !internal_equal (OVERLAY_END (o1), OVERLAY_END (o2), depth + 1)) return 0; diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/indent.c emacs-20.5/src/indent.c *** emacs-20.4/src/indent.c Sat Jun 12 05:48:41 1999 --- emacs-20.5/src/indent.c Thu Sep 16 09:20:19 1999 *************** skip_invisible (pos, next_boundary_p, to *** 285,289 **** if (c == LEADING_CODE_COMPOSITION) \ { \ ! int id = str_cmpchar_id (p, pend - p); \ int ch = MAKE_COMPOSITE_CHAR (id); \ \ --- 285,289 ---- if (c == LEADING_CODE_COMPOSITION) \ { \ ! int id = str_cmpchar_id (p, pend - p, 0); \ int ch = MAKE_COMPOSITE_CHAR (id); \ \ diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/insdel.c emacs-20.5/src/insdel.c *** emacs-20.4/src/insdel.c Thu Feb 18 03:31:21 1999 --- emacs-20.5/src/insdel.c Sun Dec 5 12:59:52 1999 *************** static void gap_right P_ ((int, int)); *** 41,45 **** static void adjust_markers_gap_motion P_ ((int, int, int)); static void adjust_markers_for_insert P_ ((int, int, int, int, int, int, int)); ! static void adjust_markers_for_delete P_ ((int, int, int, int)); static void adjust_markers_for_record_delete P_ ((int, int, int, int)); static void adjust_point P_ ((int, int)); --- 41,45 ---- static void adjust_markers_gap_motion P_ ((int, int, int)); static void adjust_markers_for_insert P_ ((int, int, int, int, int, int, int)); ! void adjust_markers_for_delete P_ ((int, int, int, int)); static void adjust_markers_for_record_delete P_ ((int, int, int, int)); static void adjust_point P_ ((int, int)); *************** adjust_markers_gap_motion (from, to, amo *** 367,371 **** or inside of the range being deleted. */ ! static void adjust_markers_for_delete (from, from_byte, to, to_byte) register int from, from_byte, to, to_byte; --- 367,371 ---- or inside of the range being deleted. */ ! void adjust_markers_for_delete (from, from_byte, to, to_byte) register int from, from_byte, to, to_byte; *************** insert_1_both (string, nchars, nbytes, i *** 1175,1178 **** --- 1175,1180 ---- if (combined_before_bytes) combine_bytes (pos, pos_byte, combined_before_bytes); + + register_composite_chars_region (pos, pos_byte, PT, PT_BYTE); } *************** insert_from_string_1 (string, pos, pos_b *** 1251,1255 **** if (PT != GPT) move_gap_both (PT, PT_BYTE); ! if (GAP_SIZE < nbytes) make_gap (outgoing_nbytes - GAP_SIZE); UNGCPRO; --- 1253,1257 ---- if (PT != GPT) move_gap_both (PT, PT_BYTE); ! if (GAP_SIZE < outgoing_nbytes) make_gap (outgoing_nbytes - GAP_SIZE); UNGCPRO; *************** adjust_after_replace (from, from_byte, p *** 1731,1734 **** --- 1733,1739 ---- if (combined_before_bytes) combine_bytes (from, from_byte, combined_before_bytes); + + register_composite_chars_region (from, from_byte, + from + len, from_byte + len_byte); } diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/keyboard.c emacs-20.5/src/keyboard.c *** emacs-20.4/src/keyboard.c Sun Jun 27 23:20:51 1999 --- emacs-20.5/src/keyboard.c Thu Nov 18 05:57:32 1999 *************** echo_char (c) *** 655,659 **** if (INTEGERP (c)) { ! if (ptr - current_kboard->echobuf > ECHOBUFSIZE - 6) return; --- 655,659 ---- if (INTEGERP (c)) { ! if (ptr - current_kboard->echobuf > ECHOBUFSIZE - 30) return; diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/keymap.c emacs-20.5/src/keymap.c *** emacs-20.4/src/keymap.c Tue Apr 6 21:01:06 1999 --- emacs-20.5/src/keymap.c Sun Oct 10 03:47:12 1999 *************** fix_submap_inheritance (map, event, subm *** 419,423 **** if (! EQ (parent_entry, submap)) ! Fset_keymap_parent (submap, parent_entry); } --- 419,439 ---- if (! EQ (parent_entry, submap)) ! { ! Lisp_Object submap_parent; ! submap_parent = submap; ! while (1) ! { ! Lisp_Object tem; ! tem = Fkeymap_parent (submap_parent); ! if (EQ (tem, parent_entry)) ! return; ! if (CONSP (tem) ! && EQ (XCONS (tem)->car, Qkeymap)) ! submap_parent = tem; ! else ! break; ! } ! Fset_keymap_parent (submap_parent, parent_entry); ! } } *************** Control characters turn into C-whatever, *** 1923,1927 **** else { ! char tem[20]; *push_key_description (XUINT (key), tem) = 0; --- 1939,1943 ---- else { ! char tem[30]; *push_key_description (XUINT (key), tem) = 0; *************** You type Translation\n\ *** 2394,2398 **** if (translate[c] != c) { ! char buf[20]; char *bufend; --- 2410,2414 ---- if (translate[c] != c) { ! char buf[30]; char *bufend; diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/lread.c emacs-20.5/src/lread.c *** emacs-20.4/src/lread.c Sat Jun 5 03:15:03 1999 --- emacs-20.5/src/lread.c Thu Oct 14 04:48:29 1999 *************** Return t if file exists.") *** 619,623 **** if (XSTRING (file)->size > 0) { ! int size = XSTRING (file)->size; GCPRO1 (file); --- 619,623 ---- if (XSTRING (file)->size > 0) { ! int size = STRING_BYTES (XSTRING (file)); GCPRO1 (file); *************** Return t if file exists.") *** 675,679 **** /* Load .elc files directly, but not when they are remote and have no handler! */ ! if (!bcmp (&(XSTRING (found)->data[XSTRING (found)->size - 4]), ".elc", 4) && fd != 0) --- 675,679 ---- /* Load .elc files directly, but not when they are remote and have no handler! */ ! if (!bcmp (&(XSTRING (found)->data[STRING_BYTES (XSTRING (found)) - 4]), ".elc", 4) && fd != 0) *************** Return t if file exists.") *** 688,692 **** #endif /* DOS_NT */ stat ((char *)XSTRING (found)->data, &s1); ! XSTRING (found)->data[XSTRING (found)->size - 1] = 0; result = stat ((char *)XSTRING (found)->data, &s2); if (result >= 0 && (unsigned) s1.st_mtime < (unsigned) s2.st_mtime) --- 688,692 ---- #endif /* DOS_NT */ stat ((char *)XSTRING (found)->data, &s1); ! XSTRING (found)->data[STRING_BYTES (XSTRING (found)) - 1] = 0; result = stat ((char *)XSTRING (found)->data, &s2); if (result >= 0 && (unsigned) s1.st_mtime < (unsigned) s2.st_mtime) *************** Return t if file exists.") *** 700,704 **** found, 1); } ! XSTRING (found)->data[XSTRING (found)->size - 1] = 'c'; } else --- 700,704 ---- found, 1); } ! XSTRING (found)->data[STRING_BYTES (XSTRING (found)) - 1] = 'c'; } else *************** openp (path, str, suffix, storeptr, exec *** 891,895 **** /* Calculate maximum size of any filename made from this path element/specified file name and any possible suffix. */ ! want_size = strlen (suffix) + XSTRING (filename)->size + 1; if (fn_size < want_size) fn = (char *) alloca (fn_size = 100 + want_size); --- 891,895 ---- /* Calculate maximum size of any filename made from this path element/specified file name and any possible suffix. */ ! want_size = strlen (suffix) + STRING_BYTES (XSTRING (filename)) + 1; if (fn_size < want_size) fn = (char *) alloca (fn_size = 100 + want_size); *************** openp (path, str, suffix, storeptr, exec *** 911,921 **** { strncpy (fn, XSTRING (filename)->data + 2, ! XSTRING (filename)->size - 2); ! fn[XSTRING (filename)->size - 2] = 0; } else { ! strncpy (fn, XSTRING (filename)->data, XSTRING (filename)->size); ! fn[XSTRING (filename)->size] = 0; } --- 911,922 ---- { strncpy (fn, XSTRING (filename)->data + 2, ! STRING_BYTES (XSTRING (filename)) - 2); ! fn[STRING_BYTES (XSTRING (filename)) - 2] = 0; } else { ! strncpy (fn, XSTRING (filename)->data, ! STRING_BYTES (XSTRING (filename))); ! fn[STRING_BYTES (XSTRING (filename))] = 0; } diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/makefile.nt emacs-20.5/src/makefile.nt *** emacs-20.4/src/makefile.nt Sun May 2 12:10:33 1999 --- emacs-20.5/src/makefile.nt Mon Nov 8 15:46:24 1999 *************** TLASTLIB = $(BLD)\lastfile.lib *** 69,73 **** # -stack, -heap, or -base settings. !if "$(BUILD_TYPE)" == "spd" ! LINK_FLAGS = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -pdb:$(BLD)\temacs.pdb -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd !else LINK_FLAGS = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -debugtype:both -pdb:none -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd $(EXTRA_LINK) --- 69,73 ---- # -stack, -heap, or -base settings. !if "$(BUILD_TYPE)" == "spd" ! LINK_FLAGS = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -debugtype:both -pdb:$(BLD)\temacs.pdb -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd !else LINK_FLAGS = $(ARCH_LDFLAGS) -stack:0x00800000 -heap:0x00100000 -base:0x01000000 -debug:full -debugtype:both -pdb:none -machine:$(ARCH) -subsystem:$(SUBSYSTEM) -entry:_start -map:$(BLD)\temacs.map -swaprun:net -swaprun:cd $(EXTRA_LINK) *************** $(TLIBW32): $(WIN32OBJ) *** 251,255 **** # $(TLASTLIB): $(BLD)\lastfile.obj ! @- $(AR) -out:$@ $** # --- 251,255 ---- # $(TLASTLIB): $(BLD)\lastfile.obj ! @- $(AR) -out:$@ $** # *************** $(BLD)\abbrev.obj : \ *** 290,294 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\commands.h \ $(SRC)\buffer.h \ --- 290,293 ---- *************** $(BLD)\alloc.obj : \ *** 300,304 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\dispextern.h \ $(SRC)\intervals.h \ --- 299,302 ---- *************** $(BLD)\buffer.obj : \ *** 326,330 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\dispextern.h \ $(SRC)\intervals.h \ --- 324,327 ---- *************** $(BLD)\bytecode.obj : \ *** 341,345 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\syntax.h --- 338,341 ---- *************** $(BLD)\callint.obj : \ *** 350,354 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\commands.h \ --- 346,349 ---- *************** $(BLD)\callproc.obj : \ *** 364,368 **** $(SRC)\msdos.h \ $(EMACS_ROOT)\nt\inc\sys\param.h \ - $(SRC)\lisp.h \ $(SRC)\commands.h \ $(SRC)\buffer.h \ --- 359,362 ---- *************** $(BLD)\casefiddle.obj : \ *** 378,382 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\commands.h \ --- 372,375 ---- *************** $(BLD)\casetab.obj : \ *** 389,393 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h --- 382,385 ---- *************** $(BLD)\cmds.obj : \ *** 405,409 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\commands.h \ $(SRC)\buffer.h \ --- 397,400 ---- *************** $(BLD)\data.obj : \ *** 415,419 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\puresize.h \ $(SRC)\buffer.h \ --- 406,409 ---- *************** $(BLD)\dired.obj : \ *** 427,431 **** $(SRC)\vmsdir.h \ $(SRC)\ndir.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\commands.h \ --- 417,420 ---- *************** $(BLD)\dispnew.obj : \ *** 437,441 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\termchar.h \ $(SRC)\termopts.h \ --- 426,429 ---- *************** $(BLD)\doc.obj : \ *** 464,468 **** $(EMACS_ROOT)\src\config.h \ $(EMACS_ROOT)\nt\inc\sys\file.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\keyboard.h --- 452,455 ---- *************** $(BLD)\dosfns.obj : \ *** 479,483 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\termchar.h \ --- 466,469 ---- *************** $(BLD)\editfns.obj : \ *** 495,499 **** $(SRC)\vms-pwd.h \ $(EMACS_ROOT)\nt\inc\pwd.h \ - $(SRC)\lisp.h \ $(SRC)\dispextern.h \ $(SRC)\intervals.h \ --- 481,484 ---- *************** $(BLD)\emacs.obj : \ *** 508,512 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\commands.h \ $(SRC)\dispextern.h \ --- 493,496 ---- *************** $(BLD)\eval.obj : \ *** 523,527 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\blockinput.h \ $(SRC)\commands.h \ --- 507,510 ---- *************** $(BLD)\fileio.obj : \ *** 539,543 **** $(EMACS_ROOT)\nt\inc\sys\param.h \ $(SRC)\vmsdir.h \ - $(SRC)\lisp.h \ $(SRC)\dispextern.h \ $(SRC)\intervals.h \ --- 522,525 ---- *************** $(BLD)\filelock.obj : \ *** 557,561 **** $(EMACS_ROOT)\nt\inc\pwd.h \ $(EMACS_ROOT)\nt\inc\sys\file.h \ - $(SRC)\lisp.h \ $(EMACS_ROOT)\src\epaths.h \ $(SRC)\buffer.h \ --- 539,542 ---- *************** $(BLD)\floatfns.obj : \ *** 583,587 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\syssignal.h --- 564,567 ---- *************** $(BLD)\fns.obj : \ *** 591,595 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\commands.h \ $(SRC)\buffer.h \ --- 571,574 ---- *************** $(BLD)\frame.obj : \ *** 603,607 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\frame.h \ $(SRC)\termhooks.h \ --- 582,585 ---- *************** $(BLD)\indent.obj : \ *** 643,647 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\indent.h \ --- 621,624 ---- *************** $(BLD)\insdel.obj : \ *** 660,664 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\dispextern.h \ $(SRC)\intervals.h \ --- 637,640 ---- *************** $(BLD)\intervals.obj : \ *** 672,676 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\dispextern.h \ $(SRC)\intervals.h \ --- 648,651 ---- *************** $(BLD)\keyboard.obj : \ *** 686,690 **** $(SRC)\termchar.h \ $(SRC)\termopts.h \ - $(SRC)\lisp.h \ $(SRC)\termhooks.h \ $(SRC)\macros.h \ --- 661,664 ---- *************** $(BLD)\keymap.obj : \ *** 713,717 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\commands.h \ $(SRC)\buffer.h \ --- 687,690 ---- *************** $(BLD)\lread.obj : \ *** 732,736 **** $(EMACS_ROOT)\src\config.h \ $(EMACS_ROOT)\nt\inc\sys\file.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(EMACS_ROOT)\src\epaths.h \ --- 705,708 ---- *************** $(BLD)\macros.obj : \ *** 745,749 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\macros.h \ $(SRC)\commands.h \ --- 717,720 ---- *************** $(BLD)\marker.obj : \ *** 756,760 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h --- 727,730 ---- *************** $(BLD)\minibuf.obj : \ *** 764,768 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\commands.h \ $(SRC)\buffer.h \ --- 734,737 ---- *************** $(BLD)\mocklisp.obj : \ *** 777,781 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h --- 746,749 ---- *************** $(BLD)\w32.obj : \ *** 786,790 **** $(SRC)\m\intel386.h \ $(SRC)\config.h \ - $(SRC)\lisp.h \ $(EMACS_ROOT)\nt\inc\pwd.h \ $(SRC)\w32heap.h --- 754,757 ---- *************** $(BLD)\w32inevt.obj : \ *** 802,806 **** $(SRC)\m\intel386.h \ $(SRC)\config.h \ - $(SRC)\lisp.h \ $(SRC)\frame.h \ $(SRC)\blockinput.h \ --- 769,772 ---- *************** $(BLD)\w32proc.obj : \ *** 814,818 **** $(SRC)\m\intel386.h \ $(SRC)\config.h \ - $(SRC)\lisp.h \ $(SRC)\w32.h \ $(SRC)\w32heap.h \ --- 780,783 ---- *************** $(BLD)\w32console.obj : \ *** 825,829 **** $(SRC)\m\intel386.h \ $(SRC)\config.h \ - $(SRC)\lisp.h \ $(SRC)\frame.h \ $(SRC)\disptab.h \ --- 790,793 ---- *************** $(BLD)\print.obj : \ *** 839,843 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\frame.h \ --- 803,806 ---- *************** $(BLD)\process.obj : \ *** 865,869 **** $(SRC)\vmsproc.h \ $(SRC)\syswait.h \ - $(SRC)\lisp.h \ $(SRC)\vmstime.h \ $(SRC)\systime.h \ --- 828,831 ---- *************** $(BLD)\ralloc.obj : \ *** 875,879 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\s\ms-w32.h \ $(SRC)\m\intel386.h \ --- 837,840 ---- *************** $(BLD)\regex.obj : \ *** 890,894 **** $(SRC)\m\intel386.h \ $(SRC)\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\syntax.h \ --- 851,854 ---- *************** $(BLD)\region-cache.obj : \ *** 900,904 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\region-cache.h --- 860,863 ---- *************** $(BLD)\scroll.obj : \ *** 910,914 **** $(EMACS_ROOT)\src\config.h \ $(SRC)\termchar.h \ - $(SRC)\lisp.h \ $(SRC)\dispextern.h \ $(SRC)\frame.h --- 869,872 ---- *************** $(BLD)\search.obj : \ *** 919,923 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\syntax.h \ $(SRC)\buffer.h \ --- 877,880 ---- *************** $(BLD)\sunfns.obj : \ *** 938,942 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\window.h \ $(SRC)\buffer.h \ --- 895,898 ---- *************** $(BLD)\syntax.obj : \ *** 948,952 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\commands.h \ $(SRC)\buffer.h \ --- 904,907 ---- *************** $(BLD)\sysdep.obj : \ *** 958,962 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\blockinput.h \ $(SRC)\dosfns.h \ --- 913,916 ---- *************** $(BLD)\term.obj : \ *** 994,998 **** $(SRC)\termopts.h \ $(SRC)\cm.h \ - $(SRC)\lisp.h \ $(SRC)\frame.h \ $(SRC)\disptab.h \ --- 948,951 ---- *************** $(BLD)\textprop.obj : \ *** 1015,1019 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\dispextern.h \ $(SRC)\intervals.h \ --- 968,971 ---- *************** $(BLD)\undo.obj : \ *** 1032,1036 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\commands.h --- 984,987 ---- *************** $(BLD)\widget.obj : \ *** 1055,1059 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\xterm.h \ $(SRC)\frame.h \ --- 1006,1009 ---- *************** $(BLD)\window.obj : \ *** 1067,1071 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\buffer.h \ $(SRC)\frame.h \ --- 1017,1020 ---- *************** $(BLD)\xdisp.obj : \ *** 1082,1086 **** $(EMACS_ROOT)\src\m\intel386.h \ $(EMACS_ROOT)\src\config.h \ - $(SRC)\lisp.h \ $(SRC)\frame.h \ $(SRC)\window.h \ --- 1031,1034 ---- *************** $(BLD)\w32faces.obj: \ *** 1100,1104 **** $(EMACS_ROOT)\src\config.h \ $(SRC)\w32faces.c \ - $(SRC)\lisp.h \ $(SRC)\w32term.h \ $(SRC)\w32gui.h \ --- 1048,1051 ---- *************** $(BLD)\w32faces.obj: \ *** 1107,1111 **** $(SRC)\frame.h \ $(SRC)\blockinput.h \ ! $(SRC)\window.h \ $(SRC)\intervals.h --- 1054,1058 ---- $(SRC)\frame.h \ $(SRC)\blockinput.h \ ! $(SRC)\window.h \ $(SRC)\intervals.h *************** $(BLD)\w32fns.obj: \ *** 1116,1124 **** $(SRC)\w32fns.c \ $(SRC)\x-list-font.c \ - $(SRC)\lisp.h \ $(SRC)\w32term.h \ $(SRC)\w32gui.h \ $(SRC)\frame.h \ ! $(SRC)\window.h \ $(SRC)\buffer.h \ $(SRC)\dispextern.h \ --- 1063,1070 ---- $(SRC)\w32fns.c \ $(SRC)\x-list-font.c \ $(SRC)\w32term.h \ $(SRC)\w32gui.h \ $(SRC)\frame.h \ ! $(SRC)\window.h \ $(SRC)\buffer.h \ $(SRC)\dispextern.h \ *************** $(BLD)\w32menu.obj: \ *** 1134,1141 **** $(EMACS_ROOT)\src\config.h \ $(SRC)\w32menu.c \ - $(SRC)\lisp.h \ $(SRC)\termhooks.h \ $(SRC)\frame.h \ ! $(SRC)\window.h \ $(SRC)\keyboard.h \ $(SRC)\blockinput.h \ --- 1080,1086 ---- $(EMACS_ROOT)\src\config.h \ $(SRC)\w32menu.c \ $(SRC)\termhooks.h \ $(SRC)\frame.h \ ! $(SRC)\window.h \ $(SRC)\keyboard.h \ $(SRC)\blockinput.h \ *************** $(BLD)\w32term.obj: \ *** 1147,1151 **** $(EMACS_ROOT)\src\config.h \ $(SRC)\w32term.c \ - $(SRC)\lisp.h \ $(SRC)\blockinput.h \ $(SRC)\w32heap.h \ --- 1092,1095 ---- *************** $(BLD)\w32term.obj: \ *** 1162,1166 **** $(SRC)\disptab.h \ $(SRC)\buffer.h \ ! $(SRC)\window.h \ $(SRC)\keyboard.h \ $(SRC)\intervals.h --- 1106,1110 ---- $(SRC)\disptab.h \ $(SRC)\buffer.h \ ! $(SRC)\window.h \ $(SRC)\keyboard.h \ $(SRC)\intervals.h *************** $(BLD)\w32select.obj: \ *** 1171,1175 **** $(EMACS_ROOT)\src\config.h \ $(SRC)\w32select.c \ - $(SRC)\lisp.h \ $(SRC)\w32term.h \ $(SRC)\w32gui.h \ --- 1115,1118 ---- *************** $(BLD)\w32reg.obj: \ *** 1183,1187 **** $(EMACS_ROOT)\src\config.h \ $(SRC)\w32reg.c \ - $(SRC)\lisp.h \ $(SRC)\w32term.h \ $(SRC)\w32gui.h \ --- 1126,1129 ---- *************** $(BLD)\w32bdf.obj: \ *** 1199,1203 **** $(EMACS_ROOT)\src/config.h \ $(SRC)\w32bdf.c \ - $(SRC)\lisp.h \ $(SRC)\charset.h \ $(SRC)\fontset.h \ --- 1141,1144 ---- diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/minibuf.c emacs-20.5/src/minibuf.c *** emacs-20.4/src/minibuf.c Thu Jul 1 21:46:10 1999 --- emacs-20.5/src/minibuf.c Fri Oct 1 03:56:33 1999 *************** Return nil if there is no valid completi *** 1784,1793 **** { int len, c; ! completion_string = XSTRING (completion)->data; for (; i_byte < STRING_BYTES (XSTRING (completion)); i_byte += len, i++) { c = STRING_CHAR_AND_LENGTH (completion_string + i_byte, ! XSTRING (completion)->size - i_byte, len); if (SYNTAX (c) != Sword) --- 1784,1793 ---- { int len, c; ! int bytes = STRING_BYTES (XSTRING (completion)); completion_string = XSTRING (completion)->data; for (; i_byte < STRING_BYTES (XSTRING (completion)); i_byte += len, i++) { c = STRING_CHAR_AND_LENGTH (completion_string + i_byte, ! bytes - i_byte, len); if (SYNTAX (c) != Sword) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/msdos.c emacs-20.5/src/msdos.c *** emacs-20.4/src/msdos.c Sun May 2 13:00:18 1999 --- emacs-20.5/src/msdos.c Thu Jul 29 12:53:26 1999 *************** getdefdir (drive, dst) *** 2832,2836 **** errno = 0; _fixpath (in_path, dst); ! if (errno) return 0; --- 2832,2838 ---- errno = 0; _fixpath (in_path, dst); ! /* _fixpath can set errno to ENOSYS on non-LFN systems because ! it queries the LFN support, so ignore that error. */ ! if ((errno && errno != ENOSYS) || *dst == '\0') return 0; diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/s/aix3-1.h emacs-20.5/src/s/aix3-1.h *** emacs-20.4/src/s/aix3-1.h Mon Jan 15 10:16:40 1996 --- emacs-20.5/src/s/aix3-1.h Mon Sep 6 19:29:28 1999 *************** Boston, MA 02111-1307, USA. */ *** 228,229 **** --- 228,233 ---- /* AIX 3.1 has the HFT features. */ #define AIXHFT + + /* For unexaix.c. */ + #define ALIGN_DATA_RELOC + diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/s/aix4-2.h emacs-20.5/src/s/aix4-2.h *** emacs-20.4/src/s/aix4-2.h Sat Jul 25 22:50:29 1998 --- emacs-20.5/src/s/aix4-2.h Mon Sep 6 19:28:44 1999 *************** *** 3,6 **** --- 3,8 ---- #include "aix4-1.h" + #undef ALIGN_DATA_RELOC + #ifndef __GNUC__ #undef HAVE_ALLOCA diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/unexaix.c emacs-20.5/src/unexaix.c *** emacs-20.4/src/unexaix.c Sun Sep 14 17:55:15 1997 --- emacs-20.5/src/unexaix.c Tue Nov 23 18:24:50 1999 *************** *** 1,5 **** ! /* Modified by Andrew.Vignaux@comp.vuw.ac.nz to get it to work :-) */ ! ! /* Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc. This file is part of GNU Emacs. --- 1,4 ---- ! /* Dump an executable image. ! Copyright (C) 1985, 1986, 1987, 1988, 1999 Free Software Foundation, Inc. This file is part of GNU Emacs. *************** what you give them. Help stamp out sof *** 25,44 **** ! /* ! * unexec.c - Convert a running program into an a.out file. * ! * Author: Spencer W. Thomas ! * Computer Science Dept. ! * University of Utah ! * Date: Tue Mar 2 1982 ! * Modified heavily since then. ! * ! * Updated for AIX 4.1.3 by Bill_Mann @ PraxisInt.com, Feb 1996 ! * As of AIX 4.1, text, data, and bss are pre-relocated by the binder in ! * such a way that the file can be mapped with code in one segment and ! * data/bss in another segment, without reading or copying the file, by ! * the AIX exec loader. Padding sections are omitted, nevertheless ! * small amounts of 'padding' still occurs between sections in the file. ! * As modified, this code handles both 3.2 and 4.1 conventions. * * Synopsis: --- 24,33 ---- ! /* Originally based on the COFF unexec.c by Spencer W. Thomas. * ! * Subsequently hacked on by ! * Bill Mann ! * Andrew Vignaux ! * Mike Sperber * * Synopsis: *************** what you give them. Help stamp out sof *** 52,172 **** * On some machines, an existing a_name file is required. * ! * The boundaries within the a.out file may be adjusted with the data_start ! * and bss_start arguments. Either or both may be given as 0 for defaults. ! * ! * Data_start gives the boundary between the text segment and the data ! * segment of the program. The text segment can contain shared, read-only ! * program code and literal data, while the data segment is always unshared ! * and unprotected. Data_start gives the lowest unprotected address. ! * The value you specify may be rounded down to a suitable boundary ! * as required by the machine you are using. ! * ! * Specifying zero for data_start means the boundary between text and data ! * should not be the same as when the program was loaded. ! * If NO_REMAP is defined, the argument data_start is ignored and the ! * segment boundaries are never changed. * ! * Bss_start indicates how much of the data segment is to be saved in the * a.out file and restored when the program is executed. It gives the lowest * unsaved address, and is rounded up to a page boundary. The default when 0 * is given assumes that the entire data segment is to be stored, including * the previous data and bss as well as any additional storage allocated with ! * break (2). ! * ! * The new file is set up to start at entry_address. ! * ! * If you make improvements I'd like to get them too. ! * harpo!utah-cs!thomas, thomas@Utah-20 * */ - /* There are several compilation parameters affecting unexec: - - * COFF - - Define this if your system uses COFF for executables. - Otherwise we assume you use Berkeley format. - - * NO_REMAP - - Define this if you do not want to try to save Emacs's pure data areas - as part of the text segment. - - Saving them as text is good because it allows users to share more. - - However, on machines that locate the text area far from the data area, - the boundary cannot feasibly be moved. Such machines require - NO_REMAP. - - Also, remapping can cause trouble with the built-in startup routine - /lib/crt0.o, which defines `environ' as an initialized variable. - Dumping `environ' as pure does not work! So, to use remapping, - you must write a startup routine for your machine in Emacs's crt0.c. - If NO_REMAP is defined, Emacs uses the system's crt0.o. - - * SECTION_ALIGNMENT - - Some machines that use COFF executables require that each section - start on a certain boundary *in the COFF file*. Such machines should - define SECTION_ALIGNMENT to a mask of the low-order bits that must be - zero on such a boundary. This mask is used to control padding between - segments in the COFF file. - - If SECTION_ALIGNMENT is not defined, the segments are written - consecutively with no attempt at alignment. This is right for - unmodified system V. - - * SEGMENT_MASK - - Some machines require that the beginnings and ends of segments - *in core* be on certain boundaries. For most machines, a page - boundary is sufficient. That is the default. When a larger - boundary is needed, define SEGMENT_MASK to a mask of - the bits that must be zero on such a boundary. - - * A_TEXT_OFFSET(HDR) - - Some machines count the a.out header as part of the size of the text - segment (a_text); they may actually load the header into core as the - first data in the text segment. Some have additional padding between - the header and the real text of the program that is counted in a_text. - - For these machines, define A_TEXT_OFFSET(HDR) to examine the header - structure HDR and return the number of bytes to add to `a_text' - before writing it (above and beyond the number of bytes of actual - program text). HDR's standard fields are already correct, except that - this adjustment to the `a_text' field has not yet been made; - thus, the amount of offset can depend on the data in the file. - - * A_TEXT_SEEK(HDR) - - If defined, this macro specifies the number of bytes to seek into the - a.out file before starting to write the text segment.a - - * EXEC_MAGIC - - For machines using COFF, this macro, if defined, is a value stored - into the magic number field of the output file. - - * ADJUST_EXEC_HEADER - - This macro can be used to generate statements to adjust or - initialize nonstandard fields in the file header - - * ADDR_CORRECT(ADDR) - - Macro to correct an int which is the bit pattern of a pointer to a byte - into an int which is the number of a byte. - - This macro has a default definition which is usually right. - This default definition is a no-op on most machines (where a - pointer looks like an int) but not on all machines. - - */ - - #define XCOFF - #define COFF - #define NO_REMAP - #ifndef emacs #define PERROR(arg) perror (arg); return -1 --- 41,55 ---- * On some machines, an existing a_name file is required. * ! * data_start and entry_address are ignored. * ! * bss_start indicates how much of the data segment is to be saved in the * a.out file and restored when the program is executed. It gives the lowest * unsaved address, and is rounded up to a page boundary. The default when 0 * is given assumes that the entire data segment is to be stored, including * the previous data and bss as well as any additional storage allocated with ! * sbrk(2). * */ #ifndef emacs #define PERROR(arg) perror (arg); return -1 *************** pointer looks like an int) but not on al *** 182,229 **** #include "getpagesize.h" - #ifndef makedev /* Try to detect types.h already loaded */ #include - #endif #include #include #include ! extern char *start_of_text (); /* Start of text */ ! extern char *start_of_data (); /* Start of initialized data */ extern int _data; - extern int _edata; extern int _text; ! extern int _etext; ! extern int _end; ! #ifdef COFF ! #ifndef USG ! #ifndef STRIDE ! #ifndef UMAX ! #ifndef sun386 ! /* I have a suspicion that these are turned off on all systems ! and can be deleted. Try it in version 19. */ #include #include #include #include ! #endif /* not sun386 */ ! #endif /* not UMAX */ ! #endif /* Not STRIDE */ ! #endif /* not USG */ static struct filehdr f_hdr; /* File header */ static struct aouthdr f_ohdr; /* Optional file header (a.out) */ ! long bias; /* Bias to add for growth */ ! long lnnoptr; /* Pointer to line-number info within file */ static long text_scnptr; static long data_scnptr; - #ifdef XCOFF #define ALIGN(val, pwr) (((val) + ((1L<<(pwr))-1)) & ~((1L<<(pwr))-1)) static long load_scnptr; static long orig_load_scnptr; static long orig_data_scnptr; ! #endif ! static ulong data_st; /* start of data area written out */ #ifndef MAX_SECTIONS --- 65,98 ---- #include "getpagesize.h" #include #include #include #include + #include + #include ! extern char *start_of_text (void); /* Start of text */ ! extern char *start_of_data (void); /* Start of initialized data */ extern int _data; extern int _text; ! #include #include #include #include ! static struct filehdr f_hdr; /* File header */ static struct aouthdr f_ohdr; /* Optional file header (a.out) */ ! static long bias; /* Bias to add for growth */ ! static long lnnoptr; /* Pointer to line-number info within file */ static long text_scnptr; static long data_scnptr; #define ALIGN(val, pwr) (((val) + ((1L<<(pwr))-1)) & ~((1L<<(pwr))-1)) static long load_scnptr; static long orig_load_scnptr; static long orig_data_scnptr; ! static int unrelocate_symbols (int, int, char *, char *); #ifndef MAX_SECTIONS *************** static ulong data_st; *** 231,235 **** #endif ! #endif /* COFF */ static int pagemask; --- 100,104 ---- #endif ! static int adjust_lnnoptrs (int, int, char *); static int pagemask; *************** static int pagemask; *** 246,253 **** #include "lisp.h" ! static ! report_error (file, fd) ! char *file; ! int fd; { if (fd) --- 115,120 ---- #include "lisp.h" ! static void ! report_error (char *file, int fd) { if (fd) *************** report_error (file, fd) *** 261,269 **** #define ERROR2(msg,x,y) report_error_1 (new, msg, x, y); return -1 ! static ! report_error_1 (fd, msg, a1, a2) ! int fd; ! char *msg; ! int a1, a2; { close (fd); --- 128,133 ---- #define ERROR2(msg,x,y) report_error_1 (new, msg, x, y); return -1 ! static void ! report_error_1 (int fd, char *msg, int a1, int a2) { close (fd); *************** report_error_1 (fd, msg, a1, a2) *** 276,283 **** } ! static int make_hdr (); ! static void mark_x (); ! static int copy_text_and_data (); ! static int copy_sym (); /* **************************************************************** --- 140,148 ---- } ! static int make_hdr (int, int, unsigned, unsigned, unsigned, char *, char *); ! static void mark_x (char *); ! static int copy_text_and_data (int); ! static int copy_sym (int, int, char *, char *); ! static void write_segment (int, char *, char *); /* **************************************************************** *************** static int copy_sym (); *** 286,296 **** * driving logic. */ ! unexec (new_name, a_name, data_start, bss_start, entry_address) ! char *new_name, *a_name; ! unsigned data_start, bss_start, entry_address; { ! int new, a_out = -1; ! if (a_name && (a_out = open (a_name, 0)) < 0) { PERROR (a_name); --- 151,162 ---- * driving logic. */ ! int unexec (char *new_name, char *a_name, ! unsigned data_start, ! unsigned bss_start, ! unsigned entry_address) { ! int new = -1, a_out = -1; ! if (a_name && (a_out = open (a_name, O_RDONLY)) < 0) { PERROR (a_name); *************** unexec (new_name, a_name, data_start, bs *** 300,313 **** PERROR (new_name); } ! if (make_hdr (new,a_out,data_start,bss_start,entry_address,a_name,new_name) < 0 || copy_text_and_data (new) < 0 || copy_sym (new, a_out, a_name, new_name) < 0 - #ifdef COFF || adjust_lnnoptrs (new, a_out, new_name) < 0 ! #endif ! #ifdef XCOFF ! || unrelocate_symbols (new, a_out, a_name, new_name) < 0 ! #endif ! ) { close (new); --- 166,177 ---- PERROR (new_name); } ! if (make_hdr (new, a_out, ! data_start, bss_start, ! entry_address, ! a_name, new_name) < 0 || copy_text_and_data (new) < 0 || copy_sym (new, a_out, a_name, new_name) < 0 || adjust_lnnoptrs (new, a_out, new_name) < 0 ! || unrelocate_symbols (new, a_out, a_name, new_name) < 0) { close (new); *************** unexec (new_name, a_name, data_start, bs *** 329,339 **** */ static int ! make_hdr (new, a_out, data_start, bss_start, entry_address, a_name, new_name) ! int new, a_out; ! unsigned data_start, bss_start, entry_address; ! char *a_name; ! char *new_name; { ! register int scns; unsigned int bss_end; --- 193,202 ---- */ static int ! make_hdr (int new, int a_out, ! unsigned data_start, unsigned bss_start, ! unsigned entry_address, ! char *a_name, char *new_name) { ! int scns; unsigned int bss_end; *************** make_hdr (new, a_out, data_start, bss_st *** 351,365 **** /* Adjust text/data boundary. */ - #ifdef NO_REMAP data_start = (long) start_of_data (); - #endif /* NO_REMAP */ data_start = ADDR_CORRECT (data_start); - #ifdef SEGMENT_MASK - data_start = data_start & ~SEGMENT_MASK; /* (Down) to segment boundary. */ - #else data_start = data_start & ~pagemask; /* (Down) to page boundary. */ - #endif - bss_end = ADDR_CORRECT (sbrk (0)) + pagemask; --- 214,221 ---- *************** make_hdr (new, a_out, data_start, bss_st *** 386,390 **** } - #ifdef COFF /* Salvage as much info from the existing file as possible */ f_thdr = NULL; f_dhdr = NULL; f_bhdr = NULL; --- 242,245 ---- *************** make_hdr (new, a_out, data_start, bss_st *** 438,450 **** if (f_thdr == 0) { ! ERROR1 ("unexec: couldn't find \"%s\" section", _TEXT); } if (f_dhdr == 0) { ! ERROR1 ("unexec: couldn't find \"%s\" section", _DATA); } if (f_bhdr == 0) { ! ERROR1 ("unexec: couldn't find \"%s\" section", _BSS); } } --- 293,305 ---- if (f_thdr == 0) { ! ERROR1 ("unexec: couldn't find \"%s\" section", (int) _TEXT); } if (f_dhdr == 0) { ! ERROR1 ("unexec: couldn't find \"%s\" section", (int) _DATA); } if (f_bhdr == 0) { ! ERROR1 ("unexec: couldn't find \"%s\" section", (int) _BSS); } } *************** make_hdr (new, a_out, data_start, bss_st *** 463,475 **** f_hdr.f_flags |= (F_RELFLG | F_EXEC); ! #ifdef EXEC_MAGIC ! f_ohdr.magic = EXEC_MAGIC; ! #endif ! #ifndef NO_REMAP ! f_ohdr.tsize = data_start - f_ohdr.text_start; ! f_ohdr.text_start = (long) start_of_text (); ! #endif ! data_st = f_ohdr.data_start ? f_ohdr.data_start : (ulong) &_data; ! f_ohdr.dsize = bss_start - data_st; f_ohdr.bsize = bss_end - bss_start; --- 318,322 ---- f_hdr.f_flags |= (F_RELFLG | F_EXEC); ! f_ohdr.dsize = bss_start - f_ohdr.data_start; f_ohdr.bsize = bss_end - bss_start; *************** make_hdr (new, a_out, data_start, bss_st *** 542,549 **** load_scnptr = f_lhdr ? f_lhdr->s_scnptr : 0; - #ifdef ADJUST_EXEC_HEADER - ADJUST_EXEC_HEADER - #endif /* ADJUST_EXEC_HEADER */ - if (write (new, &f_hdr, sizeof (f_hdr)) != sizeof (f_hdr)) { --- 389,392 ---- *************** make_hdr (new, a_out, data_start, bss_st *** 568,573 **** return (0); - - #endif /* COFF */ } --- 411,414 ---- *************** make_hdr (new, a_out, data_start, bss_st *** 578,594 **** */ static int ! copy_text_and_data (new) ! int new; { ! register char *end; ! register char *ptr; ! lseek (new, (long) text_scnptr, 0); ptr = start_of_text () + text_scnptr; end = ptr + f_ohdr.tsize; write_segment (new, ptr, end); ! lseek (new, (long) data_scnptr, 0); ! ptr = (char *) data_st; end = ptr + f_ohdr.dsize; write_segment (new, ptr, end); --- 419,434 ---- */ static int ! copy_text_and_data (int new) { ! char *end; ! char *ptr; ! lseek (new, (long) text_scnptr, SEEK_SET); ptr = start_of_text () + text_scnptr; end = ptr + f_ohdr.tsize; write_segment (new, ptr, end); ! lseek (new, (long) data_scnptr, SEEK_SET); ! ptr = (char *) f_ohdr.data_start; end = ptr + f_ohdr.dsize; write_segment (new, ptr, end); *************** copy_text_and_data (new) *** 598,606 **** #define UnexBlockSz (1<<12) /* read/write block size */ ! write_segment (new, ptr, end) ! int new; ! register char *ptr, *end; { ! register int i, nwrite, ret; char buf[80]; extern int errno; --- 438,445 ---- #define UnexBlockSz (1<<12) /* read/write block size */ ! static void ! write_segment (int new, char *ptr, char *end) { ! int i, nwrite, ret; char buf[80]; extern int errno; *************** write_segment (new, ptr, end) *** 620,624 **** if (ret == -1 && errno == EFAULT) { ! bzero (zeros, nwrite); write (new, zeros, nwrite); } --- 459,463 ---- if (ret == -1 && errno == EFAULT) { ! memset (zeros, 0, nwrite); write (new, zeros, nwrite); } *************** write_segment (new, ptr, end) *** 641,647 **** */ static int ! copy_sym (new, a_out, a_name, new_name) ! int new, a_out; ! char *a_name, *new_name; { char page[UnexBlockSz]; --- 480,484 ---- */ static int ! copy_sym (int new, int a_out, char *a_name, char *new_name) { char page[UnexBlockSz]; *************** copy_sym (new, a_out, a_name, new_name) *** 655,661 **** if (lnnoptr && lnnoptr < orig_load_scnptr) /* if there is line number info */ ! lseek (a_out, lnnoptr, 0); /* start copying from there */ else ! lseek (a_out, orig_load_scnptr, 0); /* Position a.out to symtab. */ while ((n = read (a_out, page, sizeof page)) > 0) --- 492,498 ---- if (lnnoptr && lnnoptr < orig_load_scnptr) /* if there is line number info */ ! lseek (a_out, lnnoptr, SEEK_SET); /* start copying from there */ else ! lseek (a_out, orig_load_scnptr, SEEK_SET); /* Position a.out to symtab. */ while ((n = read (a_out, page, sizeof page)) > 0) *************** copy_sym (new, a_out, a_name, new_name) *** 679,684 **** */ static void ! mark_x (name) ! char *name; { struct stat sbuf; --- 516,520 ---- */ static void ! mark_x (char *name) { struct stat sbuf; *************** mark_x (name) *** 697,746 **** } ! /* ! * If the COFF file contains a symbol table and a line number section, ! * then any auxiliary entries that have values for x_lnnoptr must ! * be adjusted by the amount that the line number section has moved ! * in the file (bias computed in make_hdr). The #@$%&* designers of ! * the auxiliary entry structures used the absolute file offsets for ! * the line number entry rather than an offset from the start of the ! * line number section! ! * ! * When I figure out how to scan through the symbol table and pick out ! * the auxiliary entries that need adjustment, this routine will ! * be fixed. As it is now, all such entries are wrong and sdb ! * will complain. Fred Fish, UniSoft Systems Inc. ! * ! * I believe this is now fixed correctly. Bill Mann ! */ ! ! #ifdef COFF ! ! /* This function is probably very slow. Instead of reopening the new ! file for input and output it should copy from the old to the new ! using the two descriptors already open (WRITEDESC and READDESC). ! Instead of reading one small structure at a time it should use ! a reasonable size buffer. But I don't have time to work on such ! things, so I am installing it as submitted to me. -- RMS. */ ! ! adjust_lnnoptrs (writedesc, readdesc, new_name) ! int writedesc; ! int readdesc; ! char *new_name; { ! register int nsyms; ! register int naux; ! register int new; ! #ifdef amdahl_uts ! SYMENT symentry; ! AUXENT auxentry; ! #else struct syment symentry; union auxent auxentry; - #endif if (!lnnoptr || !f_hdr.f_symptr) return 0; ! if ((new = open (new_name, 2)) < 0) { PERROR (new_name); --- 533,549 ---- } ! static int ! adjust_lnnoptrs (int writedesc, int readdesc, char *new_name) { ! int nsyms; ! int naux; ! int new; struct syment symentry; union auxent auxentry; if (!lnnoptr || !f_hdr.f_symptr) return 0; ! if ((new = open (new_name, O_RDWR)) < 0) { PERROR (new_name); *************** adjust_lnnoptrs (writedesc, readdesc, ne *** 748,752 **** } ! lseek (new, f_hdr.f_symptr, 0); for (nsyms = 0; nsyms < f_hdr.f_nsyms; nsyms++) { --- 551,555 ---- } ! lseek (new, f_hdr.f_symptr, SEEK_SET); for (nsyms = 0; nsyms < f_hdr.f_nsyms; nsyms++) { *************** adjust_lnnoptrs (writedesc, readdesc, ne *** 755,759 **** { symentry.n_value += bias; ! lseek (new, -SYMESZ, 1); write (new, &symentry, SYMESZ); } --- 558,562 ---- { symentry.n_value += bias; ! lseek (new, -SYMESZ, SEEK_CUR); write (new, &symentry, SYMESZ); } *************** adjust_lnnoptrs (writedesc, readdesc, ne *** 767,771 **** { auxentry.x_sym.x_fcnary.x_fcn.x_lnnoptr += bias; ! lseek (new, -AUXESZ, 1); write (new, &auxentry, AUXESZ); } --- 570,574 ---- { auxentry.x_sym.x_fcnary.x_fcn.x_lnnoptr += bias; ! lseek (new, -AUXESZ, SEEK_CUR); write (new, &auxentry, AUXESZ); } *************** adjust_lnnoptrs (writedesc, readdesc, ne *** 773,797 **** } close (new); - } - - #endif /* COFF */ - - #ifdef XCOFF ! /* It is probably a false economy to optimise this routine (it used to ! read one LDREL and do do two lseeks per iteration) but the wrath of ! RMS (see above :-) would be too much to bear */ ! unrelocate_symbols (new, a_out, a_name, new_name) ! int new, a_out; ! char *a_name, *new_name; { ! register int i; ! register int l; ! register LDREL *ldrel; LDHDR ldhdr; ! LDREL ldrel_buf [20]; ulong t_reloc = (ulong) &_text - f_ohdr.text_start; ulong d_reloc = (ulong) &_data - ALIGN(f_ohdr.data_start, 2); int * p; --- 576,597 ---- } close (new); ! return 0; ! } ! static int ! unrelocate_symbols (int new, int a_out, char *a_name, char *new_name) { ! int i; LDHDR ldhdr; ! LDREL ldrel; ulong t_reloc = (ulong) &_text - f_ohdr.text_start; + #ifndef ALIGN_DATA_RELOC + ulong d_reloc = (ulong) &_data - f_ohdr.data_start; + #else + /* This worked (and was needed) before AIX 4.2. + I have no idea why. -- Mike */ ulong d_reloc = (ulong) &_data - ALIGN(f_ohdr.data_start, 2); + #endif int * p; *************** unrelocate_symbols (new, a_out, a_name, *** 799,803 **** return 0; ! lseek (a_out, orig_load_scnptr, 0); if (read (a_out, &ldhdr, sizeof (ldhdr)) != sizeof (ldhdr)) { --- 599,603 ---- return 0; ! lseek (a_out, orig_load_scnptr, SEEK_SET); if (read (a_out, &ldhdr, sizeof (ldhdr)) != sizeof (ldhdr)) { *************** unrelocate_symbols (new, a_out, a_name, *** 808,840 **** #define SYMNDX_DATA 1 #define SYMNDX_BSS 2 ! l = 0; ! for (i = 0; i < ldhdr.l_nreloc; i++, l--, ldrel++) { ! if (l == 0) { ! lseek (a_out, ! orig_load_scnptr + LDHDRSZ + LDSYMSZ*ldhdr.l_nsyms + LDRELSZ*i, ! 0); ! ! l = ldhdr.l_nreloc - i; ! if (l > sizeof (ldrel_buf) / LDRELSZ) ! l = sizeof (ldrel_buf) / LDRELSZ; ! if (read (a_out, ldrel_buf, l * LDRELSZ) != l * LDRELSZ) ! { ! PERROR (a_name); ! } ! ldrel = ldrel_buf; ! } /* move the BSS loader symbols to the DATA segment */ ! if (ldrel->l_symndx == SYMNDX_BSS) { ! ldrel->l_symndx = SYMNDX_DATA; lseek (new, load_scnptr + LDHDRSZ + LDSYMSZ*ldhdr.l_nsyms + LDRELSZ*i, ! 0); ! if (write (new, ldrel, LDRELSZ) != LDRELSZ) { PERROR (new_name); --- 608,633 ---- #define SYMNDX_DATA 1 #define SYMNDX_BSS 2 ! ! for (i = 0; i < ldhdr.l_nreloc; i++) { ! lseek (a_out, ! orig_load_scnptr + LDHDRSZ + LDSYMSZ*ldhdr.l_nsyms + LDRELSZ*i, ! SEEK_SET); ! if (read (a_out, &ldrel, LDRELSZ) != LDRELSZ) ! { ! PERROR (a_name); ! } /* move the BSS loader symbols to the DATA segment */ ! if (ldrel.l_symndx == SYMNDX_BSS) { ! ldrel.l_symndx = SYMNDX_DATA; lseek (new, load_scnptr + LDHDRSZ + LDSYMSZ*ldhdr.l_nsyms + LDRELSZ*i, ! SEEK_SET); ! if (write (new, &ldrel, LDRELSZ) != LDRELSZ) { PERROR (new_name); *************** unrelocate_symbols (new, a_out, a_name, *** 842,860 **** } ! if (ldrel->l_rsecnm == f_ohdr.o_sndata) { int orig_int; lseek (a_out, ! orig_data_scnptr + (ldrel->l_vaddr - f_ohdr.data_start), 0); ! if (read (a_out, (void *) &orig_int, sizeof (orig_int)) != sizeof (orig_int)) { PERROR (a_name); } ! p = (int *) (ldrel->l_vaddr + d_reloc); ! switch (ldrel->l_symndx) { case SYMNDX_TEXT: orig_int = * p - t_reloc; --- 635,655 ---- } ! if (ldrel.l_rsecnm == f_ohdr.o_sndata) { int orig_int; lseek (a_out, ! orig_data_scnptr + (ldrel.l_vaddr - f_ohdr.data_start), ! SEEK_SET); ! if (read (a_out, (void *) &orig_int, sizeof (orig_int)) ! != sizeof (orig_int)) { PERROR (a_name); } ! p = (int *) (ldrel.l_vaddr + d_reloc); ! switch (ldrel.l_symndx) { case SYMNDX_TEXT: orig_int = * p - t_reloc; *************** unrelocate_symbols (new, a_out, a_name, *** 870,874 **** { lseek (new, ! data_scnptr + (ldrel->l_vaddr - f_ohdr.data_start), 0); if (write (new, (void *) &orig_int, sizeof (orig_int)) != sizeof (orig_int)) --- 665,670 ---- { lseek (new, ! data_scnptr + (ldrel.l_vaddr - f_ohdr.data_start), ! SEEK_SET); if (write (new, (void *) &orig_int, sizeof (orig_int)) != sizeof (orig_int)) *************** unrelocate_symbols (new, a_out, a_name, *** 879,882 **** } } } - #endif /* XCOFF */ --- 675,678 ---- } } + return 0; } diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/unexelf.c emacs-20.5/src/unexelf.c *** emacs-20.4/src/unexelf.c Wed Feb 10 03:56:13 1999 --- emacs-20.5/src/unexelf.c Fri Dec 3 10:09:21 1999 *************** Filesz Memsz Flags Alig *** 428,437 **** #include #include - #define HAS_SBSS_SECTION #endif /* __sony_news && _SYSTYPE_SYSV */ ! ! #if defined (__NetBSD__) && defined (__powerpc__) ! #define HAS_SBSS_SECTION ! #endif #if defined (__alpha__) && !defined (__NetBSD__) && !defined (__OpenBSD__) --- 428,435 ---- #include #include #endif /* __sony_news && _SYSTYPE_SYSV */ ! #if __sgi ! #include /* for HDRR declaration */ ! #endif /* __sgi */ #if defined (__alpha__) && !defined (__NetBSD__) && !defined (__OpenBSD__) *************** extern void fatal (char *, ...); *** 540,544 **** * accounting for the size of the entries. */ ! /* On PPC Reference Platform running Solaris 2.5.1 the plt section is also of type NOBI like the bss section. --- 538,542 ---- * accounting for the size of the entries. */ ! /* On PPC Reference Platform running Solaris 2.5.1 the plt section is also of type NOBI like the bss section. *************** extern void fatal (char *, ...); *** 549,553 **** if (NEW_SECTION_H (nn).sh_offset >= new_data2_offset) to ! if (NEW_SECTION_H (nn).sh_offset >= OLD_SECTION_H (old_bss_index-1).sh_offset) This is just a hack. We should put the new data section --- 547,551 ---- if (NEW_SECTION_H (nn).sh_offset >= new_data2_offset) to ! if (NEW_SECTION_H (nn).sh_offset >= OLD_SECTION_H (old_bss_index-1).sh_offset) This is just a hack. We should put the new data section *************** typedef unsigned char byte; *** 581,585 **** /* Round X up to a multiple of Y. */ ! ElfW(Addr) round_up (x, y) ElfW(Addr) x, y; --- 579,583 ---- /* Round X up to a multiple of Y. */ ! static ElfW(Addr) round_up (x, y) ElfW(Addr) x, y; *************** unexec (new_name, old_name, data_start, *** 626,632 **** int n, nn, old_bss_index, old_data_index, new_data2_index; - #if defined (HAS_SBSS_SECTION) int old_sbss_index, old_mdebug_index; - #endif /* HAS_SBSS_SECTION */ struct stat stat_buf; --- 624,628 ---- *************** unexec (new_name, old_name, data_start, *** 678,682 **** fatal ("Can't find .bss in %s.\n", old_name, 0); - #if defined (HAS_SBSS_SECTION) for (old_sbss_index = 1; old_sbss_index < (int) old_file_h->e_shnum; old_sbss_index++) --- 674,677 ---- *************** unexec (new_name, old_name, data_start, *** 692,695 **** --- 687,691 ---- if (old_sbss_index == old_file_h->e_shnum) { + old_sbss_index = -1; old_bss_addr = OLD_SECTION_H(old_bss_index).sh_addr; old_bss_size = OLD_SECTION_H(old_bss_index).sh_size; *************** unexec (new_name, old_name, data_start, *** 719,726 **** if (old_mdebug_index == old_file_h->e_shnum) old_mdebug_index = 0; ! #else /* not HAS_SBSS_SECTION */ ! old_bss_addr = OLD_SECTION_H (old_bss_index).sh_addr; ! old_bss_size = OLD_SECTION_H (old_bss_index).sh_size; ! #endif /* not HAS_SBSS_SECTION */ #if defined (emacs) || !defined (DEBUG) new_bss_addr = (ElfW(Addr)) sbrk (0); --- 715,719 ---- if (old_mdebug_index == old_file_h->e_shnum) old_mdebug_index = 0; ! #if defined (emacs) || !defined (DEBUG) new_bss_addr = (ElfW(Addr)) sbrk (0); *************** unexec (new_name, old_name, data_start, *** 730,736 **** new_data2_addr = old_bss_addr; new_data2_size = new_bss_addr - old_bss_addr; - #if !defined (HAS_SBSS_SECTION) - new_data2_offset = OLD_SECTION_H (old_bss_index).sh_offset; - #endif /* not HAS_SBSS_SECTION */ #ifdef DEBUG --- 723,726 ---- *************** unexec (new_name, old_name, data_start, *** 813,828 **** { /* Compute maximum of all requirements for alignment of section. */ ! int alignment = (NEW_PROGRAM_H (n)).p_align; if ((OLD_SECTION_H (old_bss_index)).sh_addralign > alignment) alignment = OLD_SECTION_H (old_bss_index).sh_addralign; ! #if defined (HAS_SBSS_SECTION) if (NEW_PROGRAM_H (n).p_vaddr + NEW_PROGRAM_H (n).p_filesz ! > round_up (old_bss_addr, alignment)) ! fatal ("Program segment above .bss in %s\n", old_name, 0); ! #else /* not HAS_SBSS_SECTION */ ! if (NEW_PROGRAM_H (n).p_vaddr + NEW_PROGRAM_H (n).p_filesz > old_bss_addr) ! fatal ("Program segment above .bss in %s\n", old_name, 0); ! #endif /* not HAS_SBSS_SECTION */ if (NEW_PROGRAM_H (n).p_type == PT_LOAD --- 803,822 ---- { /* Compute maximum of all requirements for alignment of section. */ ! ElfW(Word) alignment = (NEW_PROGRAM_H (n)).p_align; if ((OLD_SECTION_H (old_bss_index)).sh_addralign > alignment) alignment = OLD_SECTION_H (old_bss_index).sh_addralign; ! #ifdef __mips ! /* According to r02kar@x4u2.desy.de (Karsten Kuenne) ! and oliva@gnu.org (Alexandre Oliva), on IRIX 5.2, we ! always get "Program segment above .bss" when dumping ! when the executable doesn't have an sbss section. */ ! if (old_sbss_index != -1) ! #endif /* __mips */ if (NEW_PROGRAM_H (n).p_vaddr + NEW_PROGRAM_H (n).p_filesz ! > (old_sbss_index == -1 ! ? old_bss_addr ! : round_up (old_bss_addr, alignment))) ! fatal ("Program segment above .bss in %s\n", old_name, 0); if (NEW_PROGRAM_H (n).p_type == PT_LOAD *************** unexec (new_name, old_name, data_start, *** 872,886 **** { caddr_t src; - int temp_index; - #if defined (HAS_SBSS_SECTION) /* If it is (s)bss section, insert the new data2 section before it. */ /* new_data2_index is the index of either old_sbss or old_bss, that was chosen as a section for new_data2. */ ! temp_index = new_data2_index; ! #else /* not HAS_SBSS_SECTION */ ! /* If it is bss section, insert the new data2 section before it. */ ! temp_index = old_bss_index; ! #endif /* not HAS_SBSS_SECTION */ ! if (n == temp_index) { /* Steal the data section header for this data2 section. */ --- 866,873 ---- { caddr_t src; /* If it is (s)bss section, insert the new data2 section before it. */ /* new_data2_index is the index of either old_sbss or old_bss, that was chosen as a section for new_data2. */ ! if (n == new_data2_index) { /* Steal the data section header for this data2 section. */ *************** unexec (new_name, old_name, data_start, *** 907,920 **** if (n == old_bss_index - #if defined (HAS_SBSS_SECTION) /* The new bss and sbss section's size is zero, and its file offset and virtual address should be off by NEW_DATA2_SIZE. */ || n == old_sbss_index - #endif /* HAS_SBSS_SECTION */ ) { ! /* NN should be `old_bss_index + 1' at this point. */ ! NEW_SECTION_H (nn).sh_offset += new_data2_size; ! NEW_SECTION_H (nn).sh_addr += new_data2_size; /* Let the new bss section address alignment be the same as the section address alignment followed the old bss section, so --- 894,907 ---- if (n == old_bss_index /* The new bss and sbss section's size is zero, and its file offset and virtual address should be off by NEW_DATA2_SIZE. */ || n == old_sbss_index ) { ! /* NN should be `old_s?bss_index + 1' at this point. */ ! NEW_SECTION_H (nn).sh_offset = ! NEW_SECTION_H (new_data2_index).sh_offset + new_data2_size; ! NEW_SECTION_H (nn).sh_addr = ! NEW_SECTION_H (new_data2_index).sh_addr + new_data2_size; /* Let the new bss section address alignment be the same as the section address alignment followed the old bss section, so *************** unexec (new_name, old_name, data_start, *** 972,987 **** instead of the old file. */ if (!strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".data") - #ifdef _nec_ews_svr4 /* hir, 1994.6.13 */ - || !strcmp ((old_section_names + NEW_SECTION_H(n).sh_name), - ".sdata") - #endif - #if defined (HAS_SBSS_SECTION) || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".sdata") || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".lit4") || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".lit8") ! #endif /* HAS_SBSS_SECTION */ || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".data1")) --- 959,972 ---- instead of the old file. */ if (!strcmp (old_section_names + NEW_SECTION_H (n).sh_name, ".data") || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".sdata") + #ifdef __sgi || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".lit4") || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".lit8") ! #endif /* __sgi */ ! || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ! ".sdata1") || !strcmp ((old_section_names + NEW_SECTION_H (n).sh_name), ".data1")) *************** unexec (new_name, old_name, data_start, *** 1037,1040 **** --- 1022,1081 ---- } #endif /* __sony_news && _SYSTYPE_SYSV */ + + #if __sgi + /* Adjust the HDRR offsets in .mdebug and copy the + line data if it's in its usual 'hole' in the object. + Makes the new file debuggable with dbx. + patches up two problems: the absolute file offsets + in the HDRR record of .mdebug (see /usr/include/syms.h), and + the ld bug that gets the line table in a hole in the + elf file rather than in the .mdebug section proper. + David Anderson. davea@sgi.com Jan 16,1994. */ + if (n == old_mdebug_index) + { + #define MDEBUGADJUST(__ct,__fileaddr) \ + if (n_phdrr->__ct > 0) \ + { \ + n_phdrr->__fileaddr += movement; \ + } + + HDRR * o_phdrr = (HDRR *)((byte *)old_base + OLD_SECTION_H (n).sh_offset); + HDRR * n_phdrr = (HDRR *)((byte *)new_base + NEW_SECTION_H (nn).sh_offset); + unsigned movement = new_data2_size; + + MDEBUGADJUST (idnMax, cbDnOffset); + MDEBUGADJUST (ipdMax, cbPdOffset); + MDEBUGADJUST (isymMax, cbSymOffset); + MDEBUGADJUST (ioptMax, cbOptOffset); + MDEBUGADJUST (iauxMax, cbAuxOffset); + MDEBUGADJUST (issMax, cbSsOffset); + MDEBUGADJUST (issExtMax, cbSsExtOffset); + MDEBUGADJUST (ifdMax, cbFdOffset); + MDEBUGADJUST (crfd, cbRfdOffset); + MDEBUGADJUST (iextMax, cbExtOffset); + /* The Line Section, being possible off in a hole of the object, + requires special handling. */ + if (n_phdrr->cbLine > 0) + { + if (o_phdrr->cbLineOffset > (OLD_SECTION_H (n).sh_offset + + OLD_SECTION_H (n).sh_size)) + { + /* line data is in a hole in elf. do special copy and adjust + for this ld mistake. + */ + n_phdrr->cbLineOffset += movement; + + memcpy (n_phdrr->cbLineOffset + new_base, + o_phdrr->cbLineOffset + old_base, n_phdrr->cbLine); + } + else + { + /* somehow line data is in .mdebug as it is supposed to be. */ + MDEBUGADJUST (cbLine, cbLineOffset); + } + } + } + #endif /* __sgi */ + /* If it is the symbol table, its st_shndx field needs to be patched. */ if (NEW_SECTION_H (nn).sh_type == SHT_SYMTAB *************** unexec (new_name, old_name, data_start, *** 1095,1098 **** --- 1136,1149 ---- nn = section.sh_info; if (!strcmp (old_section_names + NEW_SECTION_H (nn).sh_name, ".data") + || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), + ".sdata") + #ifdef __sgi + || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), + ".lit4") + || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), + ".lit8") + #endif /* __sgi */ + || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), + ".sdata1") || !strcmp ((old_section_names + NEW_SECTION_H (nn).sh_name), ".data1")) diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/w32.c emacs-20.5/src/w32.c *** emacs-20.4/src/w32.c Fri Jun 25 00:02:18 1999 --- emacs-20.5/src/w32.c Mon Nov 8 15:46:25 1999 *************** map_w32_filename (const char * name, con *** 1132,1135 **** --- 1132,1142 ---- const char * save_name = name; + if (strlen (name) >= MAX_PATH) + { + /* Return a filename which will cause callers to fail. */ + strcpy (shortname, "?"); + return shortname; + } + if (is_fat_volume (name, &path)) /* truncate to 8.3 */ { *************** static WIN32_FIND_DATA dir_find_data; *** 1245,1249 **** root directory. */ static HANDLE wnet_enum_handle = INVALID_HANDLE_VALUE; ! HANDLE open_unc_volume (char *); char *read_unc_volume (HANDLE, char *, int); void close_unc_volume (HANDLE); --- 1252,1256 ---- root directory. */ static HANDLE wnet_enum_handle = INVALID_HANDLE_VALUE; ! HANDLE open_unc_volume (const char *); char *read_unc_volume (HANDLE, char *, int); void close_unc_volume (HANDLE); *************** readdir (DIR *dirp) *** 1358,1362 **** HANDLE ! open_unc_volume (char *path) { NETRESOURCE nr; --- 1365,1369 ---- HANDLE ! open_unc_volume (const char *path) { NETRESOURCE nr; *************** open_unc_volume (char *path) *** 1369,1373 **** nr.dwUsage = RESOURCEUSAGE_CONTAINER; nr.lpLocalName = NULL; ! nr.lpRemoteName = map_w32_filename (path, NULL); nr.lpComment = NULL; nr.lpProvider = NULL; --- 1376,1380 ---- nr.dwUsage = RESOURCEUSAGE_CONTAINER; nr.lpLocalName = NULL; ! nr.lpRemoteName = (LPSTR) map_w32_filename (path, NULL); nr.lpComment = NULL; nr.lpProvider = NULL; *************** close_unc_volume (HANDLE henum) *** 1415,1419 **** DWORD ! unc_volume_file_attributes (char *path) { HANDLE henum; --- 1422,1426 ---- DWORD ! unc_volume_file_attributes (const char *path) { HANDLE henum; diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/w32console.c emacs-20.5/src/w32console.c *** emacs-20.4/src/w32console.c Fri Jul 9 15:30:31 1999 --- emacs-20.5/src/w32console.c Tue Nov 16 14:10:57 1999 *************** Boston, MA 02111-1307, USA. *** 32,35 **** --- 32,36 ---- #include "lisp.h" #include "charset.h" + #include "coding.h" #include "frame.h" #include "disptab.h" *************** void *** 339,408 **** write_glyphs (register GLYPH *string, register int len) { ! register unsigned int glyph_len = GLYPH_TABLE_LENGTH; ! Lisp_Object *glyph_table = GLYPH_TABLE_BASE; FRAME_PTR f = PICK_FRAME (); - register char *ptr; - GLYPH glyph; - char *chars; - int i; if (len <= 0) return; ! chars = alloca (len * sizeof (*chars)); ! if (chars == NULL) ! { ! printf ("alloca failed in write_glyphs\n"); ! return; ! } ! ! /* We have to deal with the glyph indirection...go over the glyph ! buffer and extract the characters. */ ! ptr = chars; ! while (--len >= 0) ! { ! glyph = *string++; ! if (glyph > glyph_len) ! { ! *ptr++ = glyph & 0xFF; ! continue; ! } ! GLYPH_FOLLOW_ALIASES (glyph_table, glyph_len, glyph); ! #ifndef HAVE_NTGUI ! if (GLYPH_FACE (fixfix, glyph) != 0) ! printf ("Glyph face is %d\n", GLYPH_FACE (fixfix, glyph)); ! #endif /* !HAVE_NTGUI */ ! if (GLYPH_SIMPLE_P (glyph_table, glyph_len, glyph)) ! { ! *ptr++ = glyph & 0xFF; ! continue; ! } ! for (i = 0; i < GLYPH_LENGTH (glyph_table, glyph); i++) ! { ! *ptr++ = (GLYPH_STRING (glyph_table, glyph))[i]; ! } ! } ! ! /* Number of characters we have in the buffer. */ ! len = ptr-chars; ! ! /* Set the attribute for these characters. */ ! if (!FillConsoleOutputAttribute (cur_screen, char_attr, len, cursor_coords, &i)) ! { ! printf ("Failed writing console attributes: %d\n", GetLastError ()); ! fflush (stdout); } ! /* Write the characters. */ ! if (!WriteConsoleOutputCharacter (cur_screen, chars, len, cursor_coords, &i)) { ! printf ("Failed writing console characters: %d\n", GetLastError ()); ! fflush (stdout); } - - cursor_coords.X += len; - move_cursor (cursor_coords.Y, cursor_coords.X); } void --- 340,416 ---- write_glyphs (register GLYPH *string, register int len) { ! int produced, consumed, i; FRAME_PTR f = PICK_FRAME (); if (len <= 0) return; ! /* The mode bit CODING_MODE_LAST_BLOCK should be set to 1 only at ! the tail. */ ! terminal_coding.mode &= ~CODING_MODE_LAST_BLOCK; ! ! while (len > 0) ! { ! /* We use shared conversion buffer of the current size (1024 ! bytes at least). Usually it is sufficient, but if not, we ! just repeat the loop. */ ! produced = encode_terminal_code (string, conversion_buffer, ! len, conversion_buffer_size, &consumed); ! if (produced > 0) ! { ! /* Set the attribute for these characters. */ ! if (!FillConsoleOutputAttribute ! (cur_screen, char_attr, produced, cursor_coords, &i)) ! { ! printf ("Failed writing console attributes: %d\n", ! GetLastError ()); ! fflush (stdout); ! } ! /* Write the characters. */ ! if (!WriteConsoleOutputCharacter ! (cur_screen, conversion_buffer, produced, cursor_coords, &i)) ! { ! printf ("Failed writing console characters: %d\n", ! GetLastError ()); ! fflush (stdout); ! } ! ! cursor_coords.X += produced; ! move_cursor (cursor_coords.Y, cursor_coords.X); ! } ! len -= consumed; ! string += consumed; } ! /* We may have to output some codes to terminate the writing. */ ! if (CODING_REQUIRE_FLUSHING (&terminal_coding)) { ! terminal_coding.mode |= CODING_MODE_LAST_BLOCK; ! encode_coding (&terminal_coding, "", conversion_buffer, ! 0, conversion_buffer_size); ! if (terminal_coding.produced > 0) ! { ! if (!FillConsoleOutputAttribute (cur_screen, char_attr, ! terminal_coding.produced, ! cursor_coords, &i)) ! { ! printf ("Failed writing console attributes: %d\n", ! GetLastError ()); ! fflush (stdout); ! } ! ! /* Write the characters. */ ! if (!WriteConsoleOutputCharacter (cur_screen, conversion_buffer, ! produced, cursor_coords, &i)) ! { ! printf ("Failed writing console characters: %d\n", ! GetLastError ()); ! fflush (stdout); ! } ! } } } + void diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/w32fns.c emacs-20.5/src/w32fns.c *** emacs-20.4/src/w32fns.c Wed Jun 16 21:57:26 1999 --- emacs-20.5/src/w32fns.c Mon Nov 22 22:41:37 1999 *************** x_set_name (f, name, explicit) *** 2342,2345 **** --- 2342,2347 ---- if (FRAME_W32_WINDOW (f)) { + if (STRING_MULTIBYTE (name)) + name = string_make_unibyte (name); BLOCK_INPUT; SetWindowText(FRAME_W32_WINDOW (f), XSTRING (name)->data); *************** x_set_title (f, name) *** 2399,2402 **** --- 2401,2406 ---- if (FRAME_W32_WINDOW (f)) { + if (STRING_MULTIBYTE (name)) + name = string_make_unibyte (name); BLOCK_INPUT; SetWindowText(FRAME_W32_WINDOW (f), XSTRING (name)->data); *************** x_to_w32_font (lpxstr, lplogfont) *** 5636,5640 **** if (fields > 0 && resy[0] != '*') { ! tem = atoi (pixels); if (tem > 0) dpi = tem; } --- 5640,5644 ---- if (fields > 0 && resy[0] != '*') { ! tem = atoi (resy); if (tem > 0) dpi = tem; } *************** DEFUN ("w32-shell-execute", Fw32_shell_e *** 7048,7060 **** This is a wrapper around the ShellExecute system function, which\n\ invokes the application registered to handle OPERATION for DOCUMENT.\n\ ! OPERATION is typically \"open\", \"print\" or \"explore\", and DOCUMENT\n\ ! is typically the name of a document file or URL, but can also be a\n\ ! program executable to run or a directory to open in the Windows Explorer.\n\ \n\ ! If DOCUMENT is a program executable, PARAMETERS can be a list of command\n\ ! line parameters, but otherwise should be nil.\n\ \n\ SHOW-FLAG can be used to control whether the invoked application is hidden\n\ ! or minimized. If SHOw-FLAG is nil, the application is displayed normally,\n\ otherwise it is an integer representing a ShowWindow flag:\n\ \n\ --- 7052,7065 ---- This is a wrapper around the ShellExecute system function, which\n\ invokes the application registered to handle OPERATION for DOCUMENT.\n\ ! OPERATION is typically \"open\", \"print\" or \"explore\" (but can be\n\ ! nil for the default action), and DOCUMENT is typically the name of a\n\ ! document file or URL, but can also be a program executable to run or\n\ ! a directory to open in the Windows Explorer.\n\ \n\ ! If DOCUMENT is a program executable, PARAMETERS can be a string\n\ ! containing command line parameters, but otherwise should be nil.\n\ \n\ SHOW-FLAG can be used to control whether the invoked application is hidden\n\ ! or minimized. If SHOW-FLAG is nil, the application is displayed normally,\n\ otherwise it is an integer representing a ShowWindow flag:\n\ \n\ *************** otherwise it is an integer representing *** 7068,7072 **** Lisp_Object current_dir; - CHECK_STRING (operation, 0); CHECK_STRING (document, 0); --- 7073,7076 ---- *************** otherwise it is an integer representing *** 7075,7079 **** document = ENCODE_FILE (document); if ((int) ShellExecute (NULL, ! XSTRING (operation)->data, XSTRING (document)->data, (STRINGP (parameters) ? --- 7079,7084 ---- document = ENCODE_FILE (document); if ((int) ShellExecute (NULL, ! (STRINGP (operation) ? ! XSTRING (operation)->data : NULL), XSTRING (document)->data, (STRINGP (parameters) ? diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/w32menu.c emacs-20.5/src/w32menu.c *** emacs-20.4/src/w32menu.c Mon Jul 13 21:53:30 1998 --- emacs-20.5/src/w32menu.c Mon Nov 8 15:46:27 1999 *************** Boston, MA 02111-1307, USA. */ *** 43,46 **** --- 43,48 ---- #include "dispextern.h" + #undef HAVE_MULTILINGUAL_MENU + /******************************************************************/ /* Definitions copied from lwlib.h */ *************** single_submenu (item_key, item_name, map *** 1232,1235 **** --- 1234,1241 ---- pane_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_NAME]; prefix = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX]; + #ifndef HAVE_MULTILINGUAL_MENU + if (STRINGP (pane_name) && STRING_MULTIBYTE (pane_name)) + pane_name = string_make_unibyte (pane_name); + #endif pane_string = (NILP (pane_name) ? "" : (char *) XSTRING (pane_name)->data); *************** single_submenu (item_key, item_name, map *** 1270,1274 **** = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY]; def = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_DEFINITION]; ! wv = xmalloc_widget_value (); if (prev_wv) --- 1276,1285 ---- = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_EQUIV_KEY]; def = XVECTOR (menu_items)->contents[i + MENU_ITEMS_ITEM_DEFINITION]; ! #ifndef HAVE_MULTILINGUAL_MENU ! if (STRING_MULTIBYTE (item_name)) ! item_name = string_make_unibyte (item_name); ! if (STRINGP (descrip) && STRING_MULTIBYTE (descrip)) ! descrip = string_make_unibyte (descrip); ! #endif wv = xmalloc_widget_value (); if (prev_wv) *************** w32_menu_show (f, x, y, for_click, keyma *** 1668,1671 **** --- 1679,1686 ---- pane_name = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_NAME]; prefix = XVECTOR (menu_items)->contents[i + MENU_ITEMS_PANE_PREFIX]; + #ifndef HAVE_MULTILINGUAL_MENU + if (!NILP (pane_name) && STRING_MULTIBYTE (pane_name)) + pane_name = string_make_unibyte (pane_name); + #endif pane_string = (NILP (pane_name) ? "" : (char *) XSTRING (pane_name)->data); *************** w32_menu_show (f, x, y, for_click, keyma *** 1741,1744 **** --- 1756,1763 ---- wv_sep->next = first_wv->contents; + #ifndef HAVE_MULTILINGUAL_MENU + if (STRING_MULTIBYTE (title)) + title = string_make_unibyte (title); + #endif wv_title->name = (char *) XSTRING (title)->data; /* Handle title specially, so it looks better. */ diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/window.c emacs-20.5/src/window.c *** emacs-20.4/src/window.c Mon Jan 25 02:30:51 1999 --- emacs-20.5/src/window.c Tue Aug 10 19:31:53 1999 *************** set_window_height (window, height, nodel *** 1782,1789 **** --- 1782,1797 ---- check_min_window_sizes (); + /* If the window has been "too small" at one point, + don't delete it for being "too small" in the future. + Preserve it as long as that is at all possible. */ + if (oheight < window_min_height) + w->too_small_ok = Qt; + if (!nodelete && ! NILP (w->parent) && (MINI_WINDOW_P (w) ? height < 1 + : ! NILP (w->too_small_ok) + ? height < MIN_SAFE_WINDOW_HEIGHT : height < window_min_height)) { *************** set_window_width (window, width, nodelet *** 1851,1855 **** Lisp_Object child; ! if (!nodelete && width < window_min_width && !NILP (w->parent)) { delete_window (window); --- 1859,1872 ---- Lisp_Object child; ! /* If the window has been "too small" at one point, ! don't delete it for being "too small" in the future. ! Preserve it as long as that is at all possible. */ ! if (owidth < window_min_width) ! w->too_small_ok = Qt; ! ! if (!nodelete && !NILP (w->parent) ! && (! NILP (w->too_small_ok) ! ? width < MIN_SAFE_WINDOW_WIDTH ! : width < window_min_width)) { delete_window (window); diff -2rcpP --exclude=info/* --exclude=*.elc --exclude=*.aux --exclude=*.cps --exclude=*.fns --exclude=*.kys --exclude=*.vrs emacs-20.4/src/window.h emacs-20.5/src/window.h *** emacs-20.4/src/window.h Mon May 4 22:06:24 1998 --- emacs-20.5/src/window.h Tue Aug 10 19:31:51 1999 *************** struct window *** 140,144 **** Lisp_Object vertical_scroll_bar; ! /* The rest are currently not used or only half used */ /* Frame coords of point at that time */ Lisp_Object last_point_x; --- 140,144 ---- Lisp_Object vertical_scroll_bar; ! /* Some of these are currently not used or only half used */ /* Frame coords of point at that time */ Lisp_Object last_point_x; *************** struct window *** 148,151 **** --- 148,152 ---- Lisp_Object last_mark_x; Lisp_Object last_mark_y; + /* Number of characters in buffer past bottom of window, as of last redisplay that finished. */ *************** struct window *** 186,189 **** --- 187,192 ---- must run the redisplay-end-trigger-hook. */ Lisp_Object redisplay_end_trigger; + /* Non-nil means don't delete this window for becoming "too small". */ + Lisp_Object too_small_ok; };