#!/bin/sh #### Patch script - GNU Emacs - version 19.18 to 19.19 #### This file contains patches to turn version 19.18 of GNU Emacs into #### 19.19. To apply them, cd to the top of the Emacs source tree, and #### then type 'sh '. #### After you apply the patches, you should run Emacs (an earlier 19 will do) #### and type M-x byte-recompile-directory RET lisp RET #### to recompile the changed Emacs Lisp files. #### Then you can build the new Emacs version. #### Also compile some new files: bookmark.el, texinfmt.el, hilit19.el #### and saveplace.el. #### Use M-x byte-compile-file RET RET to compile #### file . You need to do it once for each of these new files. #### 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; makeinfo emacs.texi) ### Patchmaker's checklist: ### - update version numbers in comments and version.el tweak ### - diff -u ls -R listings, and decide on rm's and mv's. ### - apply rm's and mv's, and then do a diff -cprP --exclude=\*.elc ### to generate the body. ### - insert the body just before the line saying `end-of-emacs-patch-kit'. if [ -d lisp ] ; then true else if [ -d emacs-19.18/lisp ] ; then cd emacs-19.18 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 fi ### We can't patch version.el, because it contains some random dump ### number. So we'll be a little more relaxed about this edit. sed < lisp/version.el > $$ \ -e 's/defconst emacs-version "[^"]*"/defconst emacs-version "19.19.0"/' mv lisp/version.el lisp/version.el~ mv $$ lisp/version.el ### Put moves and renames here. (cd src/m; rm tekXD88.h) patch -p1 << \end-of-emacs-patch-kit diff -rc2P --exclude-from=exceptions emacs-19.18/ChangeLog emacs-19.19/ChangeLog *** emacs-19.18/ChangeLog Mon Aug 9 01:56:36 1993 --- emacs-19.19/ChangeLog Sat Aug 14 19:04:02 1993 *************** *** 1,2 **** --- 1,41 ---- + Sat Aug 14 01:31:37 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Version 19.19 released. + + * configure.in (i386-*-sunos4): Assume Sunos 4.0. + + Fri Aug 13 18:17:24 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * configure.in: Check for XScreenNumberOfScreen. + + Thu Aug 12 01:01:44 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * configure.in: Add * to end of all configuration alternatives. + (m68*-sony-newsos3*): New alternative. + + Wed Aug 11 00:12:45 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * make-dist: Include getdate.c in distribution. + + * configure.in: For --help, use $PAGER if it is set. + (LIB_X11_LIB): Default to -lX11. + (mips-sgi-irix5.*): New alternative. + + * Makefile.in (do-install): Install info/gnus* and info/sc*. + + * configure.in (m68*-hp-hpux*, hppa*-hp-hpux*): + Recognize *.B8.* as hpux version 8. + (m68*-tektronix-bsd*): Fix typo in tek4300. + (AC_HAVE_FUNCS): Add ftime. + + Tue Aug 10 17:30:07 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * configure.in (m88k-tektronix-sysv3*): Added the missing *. + Use tekxd88, not tekXD88. + + Tue Aug 10 14:16:57 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * configure.in: Check for -lm. Then can check for frexp and logb. + Sun Aug 8 13:42:49 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) diff -rc2P --exclude-from=exceptions emacs-19.18/Makefile.in emacs-19.19/Makefile.in *** emacs-19.18/Makefile.in Sun Jul 18 02:02:52 1993 --- emacs-19.19/Makefile.in Thu Aug 12 23:47:56 1993 *************** *** 365,369 **** ${INSTALL_DATA} dir ${infodir}/dir ; \ fi ; \ ! for f in cl* emacs* forms* info* vip* ; do \ ${INSTALL_DATA} $$f ${infodir}/$$f ; \ done); \ --- 365,369 ---- ${INSTALL_DATA} dir ${infodir}/dir ; \ fi ; \ ! for f in cl* emacs* forms* gnus* info* sc* vip* ; do \ ${INSTALL_DATA} $$f ${infodir}/$$f ; \ done); \ diff -rc2P --exclude-from=exceptions emacs-19.18/README emacs-19.19/README *** emacs-19.18/README Mon Aug 9 02:21:26 1993 --- emacs-19.19/README Sun Aug 15 01:09:19 1993 *************** *** 1,3 **** ! This directory tree holds version 19.18 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. --- 1,3 ---- ! This directory tree holds version 19.19 of GNU Emacs, the extensible, customizable, self-documenting real-time display editor. diff -rc2P --exclude-from=exceptions emacs-19.18/config.guess emacs-19.19/config.guess *** emacs-19.18/config.guess Mon Aug 9 02:21:25 1993 --- emacs-19.19/config.guess Sun Aug 15 01:09:18 1993 *************** *** 62,65 **** --- 62,68 ---- echo vax-dec-ultrix${UNAME_RELEASE} exit 0 ;; + mips:*:5*:RISCos) + echo mips-mips-riscos${UNAME_RELEASE} + exit 0 ;; m88k:*:4*:R4*) echo m88k-motorola-sysv4 *************** *** 89,93 **** echo m68000-hp-hpux exit 0 ;; ! 9000/3??:HP-UX:*:*) echo m68k-hp-hpux exit 0 ;; --- 92,96 ---- echo m68000-hp-hpux exit 0 ;; ! 9000/[34]??:HP-UX:*:*) echo m68k-hp-hpux exit 0 ;; *************** *** 98,102 **** echo hppa1.0-hp-hpux exit 0 ;; ! 9000/8??:4.3bsd:*:* | 9000/8?7:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; --- 101,105 ---- echo hppa1.0-hp-hpux exit 0 ;; ! 9000/7??:4.3bsd:*:* | 9000/8?7:4.3bsd:*:* ) echo hppa1.1-hp-bsd exit 0 ;; *************** *** 209,210 **** --- 212,214 ---- exit 1 + diff -rc2P --exclude-from=exceptions emacs-19.18/configure emacs-19.19/configure *** emacs-19.18/configure Mon Aug 9 01:58:50 1993 --- emacs-19.19/configure Sun Aug 15 01:17:58 1993 *************** *** 260,264 **** ## Has the user asked for some help? "usage" | "help" ) ! echo "${short_usage}" | more exit ;; --- 260,269 ---- ## Has the user asked for some help? "usage" | "help" ) ! if [ "x$PAGER" = x ] ! then ! echo "${short_usage}" | more ! else ! echo "${short_usage}" | $PAGER ! fi exit ;; *************** *** 490,494 **** ## DECstations ! mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0 | mips-dec-bsd4.2 ) machine=pmax opsys=bsd4-2 ;; --- 495,499 ---- ## DECstations ! mips-dec-ultrix[0-3].* | mips-dec-ultrix4.0* | mips-dec-bsd4.2* ) machine=pmax opsys=bsd4-2 ;; *************** *** 532,539 **** ## Gould Power Node and NP1 ! pn-gould-bsd4.2 ) machine=gould opsys=bsd4-2 ;; ! pn-gould-bsd4.3 ) machine=gould opsys=bsd4-3 ;; --- 537,544 ---- ## Gould Power Node and NP1 ! pn-gould-bsd4.2* ) machine=gould opsys=bsd4-2 ;; ! pn-gould-bsd4.3* ) machine=gould opsys=bsd4-3 ;; *************** *** 554,557 **** --- 559,565 ---- m68*-hp-hpux* ) case "`uname -r`" in + ## Someone's system reports A.B8.05 for this. + ## I wonder what other possibilities there are. + *.B8.* ) machine=hp9000s300 opsys=hpux8 ;; *.08.* ) machine=hp9000s300 opsys=hpux8 ;; *.09.* ) machine=hp9000s300 opsys=hpux9 ;; *************** *** 575,578 **** --- 583,589 ---- ## Cross-compilation? Nah! case "`uname -r`" in + ## Someone's system reports A.B8.05 for this. + ## I wonder what other possibilities there are. + *.B8.* ) machine=hp9000s800 opsys=hpux8 ;; *.08.* ) machine=hp9000s800 opsys=hpux8 ;; *.09.* ) machine=hp9000s800 opsys=hpux9 ;; *************** *** 590,597 **** ## IBM machines ! i386-ibm-aix1.1 ) machine=ibmps2-aix opsys=usg5-2-2 ;; ! i386-ibm-aix1.[23] | i386-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;; --- 601,608 ---- ## IBM machines ! i386-ibm-aix1.1* ) machine=ibmps2-aix opsys=usg5-2-2 ;; ! i386-ibm-aix1.[23]* | i386-ibm-aix* ) machine=ibmps2-aix opsys=usg5-3 ;; *************** *** 599,618 **** machine=ibm370aix opsys=usg5-3 ;; ! rs6000-ibm-aix3.1 ) machine=ibmrs6000 opsys=aix3-1 ;; ! rs6000-ibm-aix3.2 | rs6000-ibm-aix* ) machine=ibmrs6000 opsys=aix3-2 ;; ! romp-ibm-bsd4-3 ) machine=ibmrt opsys=bsd4-3 ;; ! romp-ibm-bsd4-2 ) machine=ibmrt opsys=bsd4-2 ;; ! romp-ibm-aos4-3 ) machine=ibmrt opsys=bsd4-3 ;; ! romp-ibm-aos4-2 ) machine=ibmrt opsys=bsd4-2 ;; --- 610,629 ---- machine=ibm370aix opsys=usg5-3 ;; ! rs6000-ibm-aix3.1* ) machine=ibmrs6000 opsys=aix3-1 ;; ! rs6000-ibm-aix3.2* | rs6000-ibm-aix* ) machine=ibmrs6000 opsys=aix3-2 ;; ! romp-ibm-bsd4.3* ) machine=ibmrt opsys=bsd4-3 ;; ! romp-ibm-bsd4.2* ) machine=ibmrt opsys=bsd4-2 ;; ! romp-ibm-aos4.3* ) machine=ibmrt opsys=bsd4-3 ;; ! romp-ibm-aos4.2* ) machine=ibmrt opsys=bsd4-2 ;; *************** *** 628,635 **** ## Integrated Solutions `Optimum V' ! m68*-isi-bsd4.2 ) machine=isi-ov opsys=bsd4-2 ;; ! m68*-isi-bsd4.3 ) machine=isi-ov opsys=bsd4-3 ;; --- 639,646 ---- ## Integrated Solutions `Optimum V' ! m68*-isi-bsd4.2* ) machine=isi-ov opsys=bsd4-2 ;; ! m68*-isi-bsd4.3* ) machine=isi-ov opsys=bsd4-3 ;; *************** *** 651,655 **** ## Intel 860 ! i860-*-sysvr4 ) machine=i860 opsys=usg5-4 ;; --- 662,666 ---- ## Intel 860 ! i860-*-sysvr4* ) machine=i860 opsys=usg5-4 ;; *************** *** 657,664 **** ## Silicon Graphics machines ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030) ! m68*-sgi-iris3.5 ) machine=irist opsys=iris3-5 ;; ! m68*-sgi-iris3.6 | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;; --- 668,675 ---- ## Silicon Graphics machines ## Iris 2500 and Iris 2500 Turbo (aka the Iris 3030) ! m68*-sgi-iris3.5* ) machine=irist opsys=iris3-5 ;; ! m68*-sgi-iris3.6* | m68*-sgi-iris*) machine=irist opsys=iris3-6 ;; *************** *** 667,670 **** --- 678,684 ---- machine=iris4d opsys=irix3-3 ;; + mips-sgi-irix5.* ) + machine=iris4d opsys=irix5-0 + ;; mips-sgi-irix4.* | mips-sgi-irix* ) machine=iris4d opsys=irix4-0 *************** *** 672,676 **** ## Masscomp machines ! m68*-masscomp-rtu ) machine=masscomp opsys=rtu ;; --- 686,690 ---- ## Masscomp machines ! m68*-masscomp-rtu* ) machine=masscomp opsys=rtu ;; *************** *** 747,754 **** ## Sequent Balance ! ns32k-sequent-bsd4.2 ) machine=sequent opsys=bsd4-2 ;; ! ns32k-sequent-bsd4.3 ) machine=sequent opsys=bsd4-3 ;; --- 761,768 ---- ## Sequent Balance ! ns32k-sequent-bsd4.2* ) machine=sequent opsys=bsd4-2 ;; ! ns32k-sequent-bsd4.3* ) machine=sequent opsys=bsd4-3 ;; *************** *** 755,762 **** ## SONY machines ! m68*-sony-bsd4.2 ) machine=news opsys=bsd4-2 ;; ! m68*-sony-bsd4.3 ) machine=news opsys=bsd4-3 ;; --- 769,779 ---- ## SONY machines ! m68*-sony-bsd4.2* ) machine=news opsys=bsd4-2 ;; ! m68*-sony-bsd4.3* ) ! machine=news opsys=bsd4-3 ! ;; ! m68*-sony-newsos3*) machine=news opsys=bsd4-3 ;; *************** *** 781,784 **** --- 798,803 ---- esac case "${canonical}" in + ## The Sun386 didn't get past 4.0. + i386-*-sunos4 ) opsys=sunos4-0 ;; *-sunos4.0* ) opsys=sunos4-0 ;; *-sunos4.1.3* ) opsys=sunos4-1-3 ;; *************** *** 795,802 **** ## Tahoe machines ! tahoe-tahoe-bsd4.2 ) machine=tahoe opsys=bsd4-2 ;; ! tahoe-tahoe-bsd4.3 ) machine=tahoe opsys=bsd4-3 ;; --- 814,821 ---- ## Tahoe machines ! tahoe-tahoe-bsd4.2* ) machine=tahoe opsys=bsd4-2 ;; ! tahoe-tahoe-bsd4.3* ) machine=tahoe opsys=bsd4-3 ;; *************** *** 808,813 **** ## Tektronix XD88 ! m88k-tektronix-sysv3 ) ! machine=tekXD88 opsys=usg5-3 ;; --- 827,832 ---- ## Tektronix XD88 ! m88k-tektronix-sysv3* ) ! machine=tekxd88 opsys=usg5-3 ;; *************** *** 819,823 **** ## src/m/tek4300.h hints that this is a m68k machine. m68*-tektronix-bsd* ) ! machine=tex4300 opsys=bsd4-3 ;; --- 838,842 ---- ## src/m/tek4300.h hints that this is a m68k machine. m68*-tektronix-bsd* ) ! machine=tek4300 opsys=bsd4-3 ;; *************** *** 837,844 **** machine=vax case "${canonical}" in ! *-bsd4.1 ) opsys=bsd4-1 ;; ! *-bsd4.2 | *-ultrix[0-3].* | *-ultrix4.0 ) opsys=bsd4-2 ;; ! *-bsd4.3 | *-ultrix* ) opsys=bsd4-3 ;; ! *-bsd386 ) opsys=bsd386 ;; *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;; *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; --- 856,863 ---- machine=vax case "${canonical}" in ! *-bsd4.1* ) opsys=bsd4-1 ;; ! *-bsd4.2* | *-ultrix[0-3].* | *-ultrix4.0* ) opsys=bsd4-2 ;; ! *-bsd4.3* | *-ultrix* ) opsys=bsd4-3 ;; ! *-bsd386* ) opsys=bsd386 ;; *-sysv[01]* | *-sysvr[01]* ) opsys=usg5-0 ;; *-sysv2* | *-sysvr2* ) opsys=usg5-2 ;; *************** *** 865,869 **** case "${canonical}" in *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; ! *-isc2.2 ) opsys=isc2-2 ;; *-isc* ) opsys=isc3-0 ;; *-esix5* ) opsys=esix5r4 ;; --- 884,888 ---- case "${canonical}" in *-isc1.* | *-isc2.[01]* ) opsys=386-ix ;; ! *-isc2.2* ) opsys=isc2-2 ;; *-isc* ) opsys=isc3-0 ;; *-esix5* ) opsys=esix5r4 ;; *************** *** 873,877 **** *-sco3.2v4* ) opsys=sco4 ;; *-bsd386* ) opsys=bsd386 ;; ! *-386bsd ) opsys=386bsd ;; ## Otherwise, we'll fall through to the generic opsys code at the bottom. esac --- 892,896 ---- *-sco3.2v4* ) opsys=sco4 ;; *-bsd386* ) opsys=bsd386 ;; ! *-386bsd* ) opsys=386bsd ;; ## Otherwise, we'll fall through to the generic opsys code at the bottom. esac *************** *** 1390,1393 **** --- 1409,1415 ---- # $exec_prefix likewise for dir in . /tmp /usr/tmp $prefix $exec_prefix ; do + test -w $dir || { echo \ + warning: cannot write $dir to see if it supports long file names + continue; } (echo 1 > $dir/conftest9012345) 2>/dev/null (echo 2 > $dir/conftest9012346) 2>/dev/null *************** *** 1470,1477 **** cat > Imakefile <<\EOF acfindx: ! @echo "x_includes=$(INCROOT); x_libraries=$(USRLIBDIR)" EOF if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then eval `make acfindx` fi cd .. --- 1492,1507 ---- cat > Imakefile <<\EOF acfindx: ! @echo "temp_includes=$(INCROOT); temp_libraries=$(USRLIBDIR)" EOF if (xmkmf) >/dev/null 2>/dev/null && test -f Makefile; then eval `make acfindx` + case "$temp_includes" in + /usr/include) ;; + *) x_includes="$temp_includes" ;; + esac + case "$temp_libraries" in + /usr/lib | /lib) ;; + *) x_libraries="$temp_libraries" ;; + esac fi cd .. *************** *** 1545,1549 **** #ifndef LIB_X11_LIB ! #define LIB_X11_LIB #endif --- 1575,1579 ---- #ifndef LIB_X11_LIB ! #define LIB_X11_LIB -lX11 #endif *************** *** 1674,1678 **** DEFS="$C_SWITCH_X_SITE $DEFS" LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" ! for func in XrmSetDatabase XScreenResourceString do trfunc=HAVE_`echo $func | tr '[a-z]' '[A-Z]'` --- 1704,1708 ---- DEFS="$C_SWITCH_X_SITE $DEFS" LIBS="$LD_SWITCH_X_SITE $LIBX $LIBS" ! for func in XrmSetDatabase XScreenResourceString XScreenNumberOfScreen do trfunc=HAVE_`echo $func | tr '[a-z]' '[A-Z]'` *************** *** 1950,1954 **** fi ! for func in gettimeofday gethostname dup2 rename closedir mkdir rmdir random bcopy logb frexp do trfunc=HAVE_`echo $func | tr '[a-z]' '[A-Z]'` --- 1980,2015 ---- fi ! ! # logb and frexp are found in -lm on most systems. ! LIBS_save="${LIBS}" ! LIBS="${LIBS} -lm" ! have_lib="" ! echo checking for -lm ! cat > conftest.c < internet: scuzzy.contrib.de [192.109.39.1] --- 223,229 ---- Graefestr. 76 1000 Berlin 61, Germany ! phone: (+49 30) 694 69 07 ! modems: (+49 30) 694 {61 82 | 67 49 | 68 09} ! email: internet: scuzzy.contrib.de [192.109.39.1] *************** *** 241,245 **** 92677 GNUline: 714-347-8106 ! GNUbeeper: 714-509-3133 (leave number for callback) Rate: based on your ability to afford. --- 241,245 ---- 92677 GNUline: 714-347-8106 ! GNUbeeper: 714-509-3133 (leave number for callback) Rate: based on your ability to afford. *************** *** 306,312 **** Heimatring 19 6000 Frankfurt/Main 70 ! phone: (+49 69) 6312083 ! modems: (+49 69) 6312934 | 6311235 | 634588 ! email: We distribute, install and/or port, teach, support free software and --- 306,312 ---- Heimatring 19 6000 Frankfurt/Main 70 ! phone: (+49 69) 6312083 ! modems: (+49 69) 6312934 | 6311235 | 634588 ! email: We distribute, install and/or port, teach, support free software and *************** *** 816,827 **** Entered: 10 Feb 92  ! Julian Stacey ! Holz Strasse 27d, 80469, Munich, Germany +49 89 268616 ! GCC for Symmetric Computer Systems SCS/375 (NSC32016, BSD4.2) ! Binary & Source Free of Charge (native compiler hopelessly broken) ! Entered: 18 May 93  Richard M. Stallman --- 816,835 ---- Entered: 10 Feb 92  ! Julian H. Stacey ! Holz Strasse 27d, Munich, 80469, Germany. +49 89 268616 ! For Symmetric Computer Systems Model 375 owners: ! Free Binaries & sources on SCS/375's TEAC 50/60M Cassette, for: ! GCC-1.40, UUCP-1.4, Ghostscript 2.3, Tar-1.08, Gzip-1.2.2 etc. ! (Native SCS compiler can't compile GCC on this NSC32016 based BSD4.2) ! Commercial Freelance Consultancy: ! Custom designs, provision & support of Unix, C, FSF tools, X Windows, ! 386BSD, own tools, systems engineering, hardware, multi lingual systems ! (inc. Cyrillic etc), real time etc. Resume on request. No Emacs work. ! Rate: 140 DM/hour ! FSF sources: on 1/4" QIC tape (60M/150M/525M) ~170 DM, to inc. an FSF contrib. ! Updated: 9 Aug 93  Richard M. Stallman *************** *** 952,956 **** Programs supported: GNU Emacs: installation, training, customization, bug fixing, ! troubleshooting, extension, development, or answering any kind of question. Any other GNU program: installation and answering questions. --- 960,964 ---- Programs supported: GNU Emacs: installation, training, customization, bug fixing, ! troubleshooting, extension, development, or answering any kind of question. Any other GNU program: installation and answering questions. diff -rc2P --exclude-from=exceptions emacs-19.18/info/dir emacs-19.19/info/dir *** emacs-19.18/info/dir Sun Aug 8 13:22:18 1993 --- emacs-19.19/info/dir Wed Aug 11 14:16:33 1993 *************** *** 20,21 **** --- 20,23 ---- * GNUS: (gnus). The news reader GNUS. * CL: (cl). Partial Common Lisp support for Emacs Lisp. + * SC: (sc). Supercite lets you cite parts of messages you're + replying to, in hairy ways. diff -rc2P --exclude-from=exceptions emacs-19.18/info/info emacs-19.19/info/info *** emacs-19.18/info/info Fri Jul 23 13:46:15 1993 --- emacs-19.19/info/info Fri Aug 13 22:52:05 1993 *************** *** 407,411 **** File: info, Node: Expert, Up: Top, Previous: Top, Next: Add ! Some Advanced Info Commands ("g", "s", "1" - "5", and "e"). If you know a node's name, you can go there by typing --- 407,411 ---- File: info, Node: Expert, Up: Top, Previous: Top, Next: Add ! Some Advanced Info Commands ("g", "s", "1" - "9", and "e"). If you know a node's name, you can go there by typing *************** *** 438,448 **** If you grudge the system each character of type-in it requires, ! you might like to use the commands "1", "2", "3", "4", and "5". They are short for the "m" command together with an argument. "1" goes through the first item in the current node's menu; ! "2" goes through the second item, etc. Note that numbers ! larger than 5 are not allowed. If the item you want is that ! far down, you are better off using an abbreviation for its ! name than counting. The Info command "e" changes from Info mode to an ordinary --- 438,453 ---- If you grudge the system each character of type-in it requires, ! you might like to use the commands "1", "2", "3", "4", ... "9". They are short for the "m" command together with an argument. "1" goes through the first item in the current node's menu; ! "2" goes through the second item, etc. ! ! If your display supports multiple fonts, the * for the fifth menu item ! is underlined, and so is the * for the ninth item; these underlines ! make it easy to see at a glance which number to use for an item. ! ! On ordinary terminals, you won't have underlining. If you need to ! actually count items, it is better to use "m" instead, and specify the ! name. The Info command "e" changes from Info mode to an ordinary diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/ChangeLog emacs-19.19/lib-src/ChangeLog *** emacs-19.18/lib-src/ChangeLog Sun Aug 8 03:12:22 1993 --- emacs-19.19/lib-src/ChangeLog Sat Aug 14 19:04:32 1993 *************** *** 1,2 **** --- 1,21 ---- + Sat Aug 14 00:23:11 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Version 19.19 released. + + Thu Aug 12 18:23:49 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Makefile.in (make-path): Dep on config.h. + + Wed Aug 11 16:54:39 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * b2m.c (TRUE, FALSE): Don't define if already defined. + + Mon Aug 9 22:06:00 1993 Paul Eggert (eggert@twinsun.com) + + * rcs2log (awkscript): + Some sites put comma-separated junk after the fullname. + Remove it, but leave "Bill Gates, Jr" alone. + Remove the junk from fullnames like "0000-Admin(0000)". + Sun Aug 8 01:15:30 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/Makefile.in emacs-19.19/lib-src/Makefile.in *** emacs-19.18/lib-src/Makefile.in Tue Jul 20 23:29:13 1993 --- emacs-19.19/lib-src/Makefile.in Thu Aug 12 18:23:48 1993 *************** *** 268,272 **** $(CC) -I${srcdir}/../src $(ALL_CFLAGS) ${TIMEROBJS} $(LOADLIBES) -o timer ! make-path: ${srcdir}/make-path.c $(CC) $(CPP_CFLAGS) ${srcdir}/make-path.c -o make-path --- 268,272 ---- $(CC) -I${srcdir}/../src $(ALL_CFLAGS) ${TIMEROBJS} $(LOADLIBES) -o timer ! make-path: ${srcdir}/make-path.c ../src/config.h $(CC) $(CPP_CFLAGS) ${srcdir}/make-path.c -o make-path diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/alloca.c emacs-19.19/lib-src/alloca.c *** emacs-19.18/lib-src/alloca.c Tue Jul 13 12:37:01 1993 --- emacs-19.19/lib-src/alloca.c Wed Aug 11 03:27:10 1993 *************** *** 26,30 **** #endif ! /* If compiling with GCC, this file's not needed. */ #ifndef alloca --- 26,33 ---- #endif ! /* If compiling with GCC 2, this file's not needed. */ ! #if defined (__GNUC__) && __GNUC__ >= 2 ! /* If someone has defined alloca as a macro, ! there must be some other way alloca is supposed to work. */ #ifndef alloca *************** *** 73,78 **** #ifndef emacs #define malloc xmalloc - extern pointer xmalloc (); #endif /* Define STACK_DIRECTION if you know the direction of stack --- 76,81 ---- #ifndef emacs #define malloc xmalloc #endif + extern pointer malloc (); /* Define STACK_DIRECTION if you know the direction of stack *************** *** 474,475 **** --- 477,479 ---- #endif /* no alloca */ + #endif /* not GCC version 2 */ diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/b2m.c emacs-19.19/lib-src/b2m.c *** emacs-19.18/lib-src/b2m.c Tue Jul 6 12:07:27 1993 --- emacs-19.19/lib-src/b2m.c Wed Aug 11 16:52:19 1993 *************** *** 31,36 **** --- 31,40 ---- extern char *strtok (); + #ifndef TRUE #define TRUE (1) + #endif + #ifndef FALSE #define FALSE (0) + #endif int header = FALSE, printing; diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/etags.c emacs-19.19/lib-src/etags.c *** emacs-19.18/lib-src/etags.c Wed Aug 4 18:51:49 1993 --- emacs-19.19/lib-src/etags.c Sat Aug 14 02:38:15 1993 *************** *** 25,30 **** * Gnu Emacs TAGS format and modifications by RMS? * Sam Kendall added C++. - * - * Francesco Potorti` is the current maintainer. 7.5 */ --- 25,28 ---- *************** *** 160,164 **** char *xmalloc (); char *xrealloc (); ! int L_isdef (), L_isquote (); int PF_funcs (); int total_size_of_entries (); --- 158,162 ---- char *xmalloc (); char *xrealloc (); ! int L_isdef (); int PF_funcs (); int total_size_of_entries (); *************** *** 1335,1338 **** --- 1333,1337 ---- /* + * etags.c 4.2 1993/03/22 12:13:40 pot Exp * C functions are recognized using a simple finite automaton. * funcdef is its state variable. *************** *** 1340,1348 **** typedef enum { ! fnone, /* nothing seen */ ! ftagseen, /* function-like tag seen */ ! finlist, /* in parameter list */ ! flistseen, /* after parameter list */ ! fignore, /* before open brace */ } FUNCST; FUNCST funcdef; --- 1339,1343 ---- typedef enum { ! fnone, ftagseen, finlist, flistseen } FUNCST; FUNCST funcdef; *************** *** 1354,1361 **** typedef enum { ! tnone, /* nothing seen */ ! ttypedseen, /* typedef keyword seen */ ! tinbody, /* inside typedef body */ ! tend, /* just before typedef tag */ } TYPEDST; TYPEDST typdef; --- 1349,1353 ---- typedef enum { ! tnone, ttypedseen, tinbody, tend } TYPEDST; TYPEDST typdef; *************** *** 1374,1378 **** stagseen, /* struct-like tag seen */ scolonseen, /* colon seen after struct-like tag */ ! sinbody, /* in struct body: recognize member func defs*/ } STRUCTST; STRUCTST structdef; --- 1366,1370 ---- stagseen, /* struct-like tag seen */ scolonseen, /* colon seen after struct-like tag */ ! sinbody /* in struct body: recognize member func defs*/ } STRUCTST; STRUCTST structdef; *************** *** 1392,1396 **** dsharpseen, /* '#' seen as first char on line */ ddefineseen, /* '#' and 'define' seen */ ! dignorerest, /* ignore rest of line */ } DEFINEST; DEFINEST definedef; --- 1384,1388 ---- dsharpseen, /* '#' seen as first char on line */ ddefineseen, /* '#' and 'define' seen */ ! dignorerest /* ignore rest of line */ } DEFINEST; DEFINEST definedef; *************** *** 1640,1645 **** case flistseen: MAKE_TAG_FROM_OTH_LB (TRUE); ! funcdef = fignore; ! break; case ftagseen: funcdef = fnone; --- 1632,1636 ---- case flistseen: MAKE_TAG_FROM_OTH_LB (TRUE); ! /* FALLTHRU */ case ftagseen: funcdef = fnone; *************** *** 1669,1673 **** { MAKE_TAG_FROM_OTH_LB (FALSE); ! funcdef = fignore; } break; --- 1660,1664 ---- { MAKE_TAG_FROM_OTH_LB (FALSE); ! funcdef == fnone; } break; *************** *** 1678,1683 **** MAKE_TAG_FROM_OTH_LB (FALSE); } ! if (funcdef != fignore) ! funcdef = fnone; /* FALLTHRU */ case ',': --- 1669,1673 ---- MAKE_TAG_FROM_OTH_LB (FALSE); } ! funcdef = fnone; /* FALLTHRU */ case ',': *************** *** 1684,1688 **** /* FALLTHRU */ case '[': ! if (funcdef != finlist && funcdef != fignore) funcdef = fnone; if (structdef == stagseen) --- 1674,1678 ---- /* FALLTHRU */ case '[': ! if (funcdef != finlist) funcdef = fnone; if (structdef == stagseen) *************** *** 1720,1733 **** break; } - switch (funcdef) - { - case flistseen: - MAKE_TAG_FROM_OTH_LB (TRUE); - /* FALLTHRU */ - case fignore: - funcdef = fnone; - } cblev++; ! break; case '*': if (funcdef == flistseen) --- 1710,1715 ---- break; } cblev++; ! /* FALLTHRU */ case '*': if (funcdef == flistseen) *************** *** 1734,1738 **** { MAKE_TAG_FROM_OTH_LB (TRUE); ! funcdef = fignore; } break; --- 1716,1720 ---- { MAKE_TAG_FROM_OTH_LB (TRUE); ! funcdef = fnone; } break; *************** *** 1939,1944 **** { next_token_is_func = FALSE; ! funcdef = fnone; ! *is_func = TRUE; /* to force search string in ctags */ return (TRUE); } --- 1921,1925 ---- { next_token_is_func = FALSE; ! *is_func = TRUE; return (TRUE); } *************** *** 1951,1963 **** return (FALSE); default: ! if (funcdef == fnone) ! { ! funcdef = ftagseen; ! *is_func = TRUE; ! return (TRUE); ! } } - - return (FALSE); } --- 1932,1939 ---- return (FALSE); default: ! funcdef = ftagseen; ! *is_func = TRUE; ! return (TRUE); } } *************** *** 2368,2382 **** { /* Check for (foo::defmumble name-defined ... */ ! do dbp++; - while (*dbp && !isspace (*dbp) - && *dbp != ':' && *dbp != '(' && *dbp != ')'); if (*dbp == ':') { ! do dbp++; - while (*dbp == ':'); ! if (L_isdef (dbp - 1)) { while (!isspace (*dbp)) --- 2344,2356 ---- { /* Check for (foo::defmumble name-defined ... */ ! while (*dbp && *dbp != ':' && !isspace (*dbp) ! && *dbp != '(' && *dbp != ')') dbp++; if (*dbp == ':') { ! while (*dbp == ':') dbp++; ! if (L_isdef (dbp)) { while (!isspace (*dbp)) *************** *** 2394,2414 **** int L_isdef (dbp) ! register char *dbp; ! { ! return ((dbp[1] == 'd' || dbp[1] == 'D') ! && (dbp[2] == 'e' || dbp[2] == 'E') ! && (dbp[3] == 'f' || dbp[3] == 'F')); ! } ! ! int ! L_isquote (dbp) ! register char *dbp; { ! return ((*(++dbp) == 'q' || *dbp == 'Q') ! && (*(++dbp) == 'u' || *dbp == 'U') ! && (*(++dbp) == 'o' || *dbp == 'O') ! && (*(++dbp) == 't' || *dbp == 'T') ! && (*(++dbp) == 'e' || *dbp == 'E') ! && isspace(*(++dbp))); } --- 2368,2376 ---- int L_isdef (dbp) ! char *dbp; { ! return ((dbp[1] == 'D' || dbp[1] == 'd') && ! (dbp[2] == 'E' || dbp[2] == 'e') && ! (dbp[3] == 'F' || dbp[3] == 'f')); } *************** *** 2420,2436 **** char nambuf[BUFSIZ]; ! if (*dbp == '\'') /* Skip prefix quote */ ! dbp++; ! else if (*dbp == '(' && L_isquote (dbp)) /* Skip "(quote " */ ! { ! dbp += 7; ! while (isspace(*dbp)) ! dbp++; ! } ! for (cp = dbp /*+1*/; *cp && *cp != '(' && *cp != ' ' && *cp != ')'; cp++) ! continue; ! if (cp == dbp) return; ! c = cp[0]; cp[0] = 0; --- 2382,2389 ---- char nambuf[BUFSIZ]; ! if (*dbp == 0) return; ! for (cp = dbp + 1; *cp && *cp != '(' && *cp != ' '; cp++) ! continue; c = cp[0]; cp[0] = 0; diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/getdate.y emacs-19.19/lib-src/getdate.y *** emacs-19.18/lib-src/getdate.y Sun May 23 21:56:04 1993 --- emacs-19.19/lib-src/getdate.y Fri Aug 13 12:55:02 1993 *************** *** 60,105 **** #include - #if sgi - #undef timezone - #endif - - /* If the configuration process hasn't #define HAVE_GETTIMEOFDAY, try - to guess it. */ - #ifndef HAVE_GETTIMEOFDAY - - /* We know these machines have it. */ - #ifdef BSD4_2 - #define HAVE_GETTIMEOFDAY - #endif - - #ifdef BSD4_1C - #define HAVE_GETTIMEOFDAY - #endif - - #if (defined (hp9000) && !defined (hpux)) - #define HAVE_GETTIMEOFDAY - #endif - - #ifdef _AIX - #define HAVE_GETTIMEOFDAY - #endif - - /* We know these machines don't. We could just omit these, but some of - these CPP symbols are more specific than the ones above, so we want - to override them if any of the above are #defined. */ - #ifdef USG - #undef HAVE_GETTIMEOFDAY - #endif - - #ifdef sgi - #undef HAVE_GETTIMEOFDAY - #endif - - #ifdef __386BSD__ - #undef HAVE_GETTIMEOFDAY - #endif - - #endif - #ifdef TIME_WITH_SYS_TIME #include --- 60,63 ---- *************** *** 113,116 **** --- 71,78 ---- #endif + #ifdef timezone + #undef timezone /* needed for sgi */ + #endif + #if defined(HAVE_SYS_TIMEB_H) || (!defined(USG) && defined(HAVE_FTIME)) #include *************** *** 117,122 **** #else /* ! ** If you need to do a tzset() call to set the ! ** timezone, and don't have ftime(). */ struct timeb { --- 79,85 ---- #else /* ! ** We use the obsolete `struct timeb' as part of our interface! ! ** Since the system doesn't have it, we define it here; ! ** our callers must do likewise. */ struct timeb { *************** *** 123,130 **** time_t time; /* Seconds since the epoch */ unsigned short millitm; /* Field not used */ ! short timezone; short dstflag; /* Field not used */ }; ! #endif /* defined(HAVE_SYS_TIMEB_H) || (!defined(USG) && defined(HAVE_FTIME))*/ #endif /* defined(vms) */ --- 86,93 ---- time_t time; /* Seconds since the epoch */ unsigned short millitm; /* Field not used */ ! short timezone; /* Minutes west of GMT */ short dstflag; /* Field not used */ }; ! #endif /* defined(HAVE_SYS_TIMEB_H) */ #endif /* defined(vms) */ *************** *** 141,144 **** --- 104,108 ---- #endif + extern struct tm *gmtime(); extern struct tm *localtime(); *************** *** 905,908 **** --- 869,898 ---- + #define TM_YEAR_ORIGIN 1900 + + /* Yield A - B, measured in seconds. */ + static time_t + difftm(a, b) + struct tm *a, *b; + { + int ay = a->tm_year + (TM_YEAR_ORIGIN - 1); + int by = b->tm_year + (TM_YEAR_ORIGIN - 1); + return + ( + ( + ( + /* difference in day of year */ + a->tm_yday - b->tm_yday + /* + intervening leap days */ + + ((ay >> 2) - (by >> 2)) + - (ay/100 - by/100) + + ((ay/100 >> 2) - (by/100 >> 2)) + /* + difference in years * 365 */ + + (time_t)(ay-by) * 365 + )*24 + (a->tm_hour - b->tm_hour) + )*60 + (a->tm_min - b->tm_min) + )*60 + (a->tm_sec - b->tm_sec); + } + time_t get_date(p, now) *************** *** 910,914 **** struct timeb *now; { ! struct tm *tm; struct timeb ftz; time_t Start; --- 900,904 ---- struct timeb *now; { ! struct tm *tm, gmt; struct timeb ftz; time_t Start; *************** *** 918,949 **** if (now == NULL) { now = &ftz; - #if !defined(HAVE_FTIME) (void)time(&ftz.time); ! /* Set the timezone global. */ ! tzset(); ! { ! #ifdef HAVE_GETTIMEOFDAY ! struct timeval tv; ! struct timezone tz; ! ! gettimeofday (&tv, &tz); ! ftz.timezone = (int) tz.tz_minuteswest; ! #else /* not HAVE_GETTIMEOFDAY */ ! #if sgi ! ftz.timezone = (int) _timezone / 60; ! #else /* not HAVE_GETTIMEOFDAY, nor sgi */ ! #ifdef __386BSD__ ! ftz.timezone = 0; ! #else /* not HAVE_GETTIMEOFDAY, nor sgi, nor 386BSD -- probably USG */ ! extern time_t timezone; ! ! ftz.timezone = (int) timezone / 60; ! #endif /* not HAVE_GETTIMEOFDAY, nor sgi, nor 386BSD -- probably USG */ ! #endif /* not HAVE_GETTIMEOFDAY, nor sgi */ ! #endif /* not HAVE_GETTIMEOFDAY */ ! } ! #else /* HAVE_FTIME */ ! (void)ftime(&ftz); ! #endif /* HAVE_FTIME */ } --- 908,917 ---- if (now == NULL) { now = &ftz; (void)time(&ftz.time); ! ! if (! (tm = gmtime (&ftz.time))) ! return -1; ! gmt = *tm; /* Make a copy, in case localtime modifies *tm. */ ! ftz.timezone = difftm (&gmt, localtime (&ftz.time)) / 60; } diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/getopt.c emacs-19.19/lib-src/getopt.c *** emacs-19.18/lib-src/getopt.c Thu Jul 8 13:20:26 1993 --- emacs-19.19/lib-src/getopt.c Sun Aug 15 01:37:29 1993 *************** *** 22,26 **** #ifdef HAVE_CONFIG_H ! #include "config.h" #endif --- 22,29 ---- #ifdef HAVE_CONFIG_H ! /* We use instead of "config.h" so that a compilation ! using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h ! (which it would do because getopt.c was found in $srcdir). */ ! #include #endif diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/getopt1.c emacs-19.19/lib-src/getopt1.c *** emacs-19.18/lib-src/getopt1.c Sat Aug 7 16:55:04 1993 --- emacs-19.19/lib-src/getopt1.c Sun Aug 15 01:37:34 1993 *************** *** 18,22 **** #ifdef HAVE_CONFIG_H ! #include "config.h" #endif --- 18,25 ---- #ifdef HAVE_CONFIG_H ! /* We use instead of "config.h" so that a compilation ! using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h ! (which it would do because getopt1.c was found in $srcdir). */ ! #include #endif diff -rc2P --exclude-from=exceptions emacs-19.18/lib-src/rcs2log emacs-19.19/lib-src/rcs2log *** emacs-19.18/lib-src/rcs2log Sat May 29 02:22:49 1993 --- emacs-19.19/lib-src/rcs2log Mon Aug 9 18:06:00 1993 *************** *** 13,17 **** # Author: Paul Eggert ! # $Id: rcs2log,v 1.12 1993/05/29 06:22:48 rms Exp $ # Copyright 1992, 1993 Free Software Foundation, Inc. --- 13,17 ---- # Author: Paul Eggert ! # $Id: rcs2log,v 1.13 1993/08/09 22:06:00 eggert Exp $ # Copyright 1992, 1993 Free Software Foundation, Inc. *************** *** 174,177 **** --- 174,187 ---- if (author[$1]) { fullname = $5 + if (fullname ~ /[0-9]+-[^(]*\([0-9]+\)$/) { + # Remove the junk from fullnames like "0000-Admin(0000)". + fullname = substr(fullname, index(fullname, "-") + 1) + fullname = substr(fullname, 1, index(fullname, "(") - 1) + } + if (fullname ~ /,[^ ]/) { + # Some sites put comma-separated junk after the fullname. + # Remove it, but leave "Bill Gates, Jr" alone. + fullname = substr(fullname, 1, index(fullname, ",") - 1) + } abbr = index(fullname, "&") if (abbr) { diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/ChangeLog emacs-19.19/lisp/ChangeLog *** emacs-19.18/lisp/ChangeLog Mon Aug 9 02:20:46 1993 --- emacs-19.19/lisp/ChangeLog Sun Aug 15 01:45:00 1993 *************** *** 1,2 **** --- 1,162 ---- + Sat Aug 14 03:54:40 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Version 19.19 released. + + * menu-bar.el (list-buffers-directory): Add declaration. + + * files.el (find-file-noselect): If a find-file-not-found-hook + succeeds, clear `error'. + + * faces.el (x-create-frame-with-faces): Check for `on' or `true' + as reverseVideo resource value. + * frame.el (frame-initialize): Likewise. + + * outline.el (outline-minor-mode-prefix): New variable. + (outline-minor-mode-map): Use it. + (outline-level): New var. Everything funcalls this + instead of calling outline-level. + + * frame.el (frame-initialize): Handle reverseVideo x-resource. + + * subr.el (momentary-string-display): Scroll to keep the string + on the screen. + + Fri Aug 13 02:23:43 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * compile.el (compilation-parse-errors): Don't add multiple errors + for one source line. + + * bibtex.el (bibtex-mode-map): Change C-c e to C-c C-b. + + * menu-bar.el (mouse-menu-bar-buffers): Use list-buffers-directory. + + * isearch.el (isearch-edit-string): Use read-event, not read-char. + + Thu Aug 12 18:20:55 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * files.el (backup-inhibited): Doc fix. + + * saveplace.el: New file. + + * bookmark.el: New version from Fogel. + + * mouse.el (mouse-choose-completion): Really go to minibuffer; + no save-excursion. + + Thu Aug 12 14:38:37 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * tar-mode.el (tar-mode-map): Don't bind C-c. + + Thu Aug 12 01:32:30 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * paragraphs.el (paragraph-start): Doc fix. + + * paren.el (show-paren-command-hook): Do nothing if input is pending. + + Wed Aug 11 17:26:47 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * compile.el (next-error): Handle zero and negative prefix args. + + Wed Aug 11 02:01:49 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * dired-aux.el (dired-compress-file): Fix previous change. + + * rmail.el (rmail-forward): Don't bind mail-signature, mail-setup-hook. + + * mouse.el (mouse-drag-region): Mouse in menu bar means scroll up. + + * text-mode.el (indented-text-mode): Doc fix. + + * userlock.el (ask-user-about-supersession-threat): Mention file name + when asking question. + + * paren.el (show-paren-command-hook): Don't use value of make-face. + + * mouse.el (font-menu-add-default): Use list, not cons, for new elt. + Don't get confused if no Misc entry. + + * emerge.el (emerge-find-difference): Add interactive spec. + + * mouse.el (mouse-set-point): Use event-end, not event-start. + + * frame.el (other-frame): Fix error in loop counting. + + Tue Aug 10 08:02:36 1993 Paul Eggert (eggert@twinsun.com) + + * autoload.el (generate-file-autoloads): Set float-output-format to + nil, not "%.20e", since nil is guaranteed to not lose info on output. + * bytecomp.el (byte-compile-from-buffer): Likewise. + + Tue Aug 10 04:24:09 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * startup.el (site-run-file): New variable. + (command-line): Use it. Support -no-site-file. + + * mouse.el (mouse-drag-region): Doc fix. + + * texinfo.el (texinfo-delete-from-print-queue) + (texinfo-tex-buffer): Load tex-mode to get tex-start-shell, etc. + + Tue Aug 10 18:19:46 1993 Rob Riepel (riepel@Snowflake.Stanford.edu) + + * tpu-edt.el (tpu-help): Use variables for "n" and "p". + (tpu-help-N, tpu-help-n, tpu-help-P, tpu-help-p): New vars. + * tpu-mapper.el: Insert (in buffer) setqs for tpu-help-... variables. + + Mon Aug 9 21:32:42 1993 Paul Eggert (eggert@twinsun.com) + + * calendar.el (hebrew-holidays-3): Fix misspelling in var name. + + * array.el (abs, ceiling, floor): Remove, since they now redefine + builtin functions. All `ceiling' callers rewritten to invoke `floor'. + + * bytecomp.el: `mod' is no longer an alias for `%'. + * subr.el: Likewise. + + * cal-dst.el (calendar-/, calendar-%): Remove, since floor and mod + now subsume them. All callers changed. + * cal-mayan.el (mayan-mod): Likewise. + * ring.el (ring-mod): Likewise. + * solar.el (solar-mod): Likewise. + + * cl-extra.el (floor*): Use `floor' rather than doing all the work. + + * gnus.el (gnus-caesar-region): Replace `%' by `mod' and simplify. + * rnews.el (caesar-region): Likewise. + * isearch.el (isearch-ring-adjust1, isearch-ring-advance-edit): + Likewise. + * simple.el (current-kill): Likewise. + + * timezone.el (timezone-fix-time): Simplify complicated expression + with `floor'. + (timezone-zone-to-minute): Replace (max X (- X)) with (abs X). + + Mon Aug 9 15:28:25 1993 Rob Riepel (riepel@Snowflake.Stanford.edu) + + * tpu-doc.el: Added section on local variables. + + * tpu-edt.el (tpu-version): Print version number rather than the RCS + revision number. + + * tpu-edt.el (tpu-next-file-buffer): Bind starting-buffer with let. + * tpu-edt.el (tpu-load-xkeys): Check value of tpu-xkeys-file. + Make sure to use the "*scratch*" buffer. + + * tpu-edt.el (tpu-lm-replace): Changed variable searching-forward + to tpu-searching-forward. + (tpu-substitute): Likewise. + (tpu-toggle-search-direction): Likewise. + (tpu-search-forward, tpu-search-reverse, tpu-set-search): Likewise. + (tpu-search-internal, tpu-adjust-search): Likewise. + + * tpu-extras.el (tpu-search-internal): Changed variable + searching-forward to tpu-searching-forward. + + * tpu-extras.el: Changed "edit-picture-hook" to + "picture-mode-hook" for emacs version 19. + + * tpu-mapper.el (tpu-gnu-map-key): Repaired the key name + generation code to work with the latest version of emacs. + Sun Aug 8 00:39:52 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/array.el emacs-19.19/lisp/array.el *** emacs-19.18/lisp/array.el Mon Mar 22 09:40:56 1993 --- emacs-19.19/lisp/array.el Tue Aug 10 00:12:16 1993 *************** *** 80,84 **** (% buffer-line lines-per-row))) ;; Array columns on the current line. ! (ceiling (1+ buffer-column) field-width)))) (defun array-update-array-position (&optional a-row a-column) --- 80,84 ---- (% buffer-line lines-per-row))) ;; Array columns on the current line. ! (1+ (floor buffer-column field-width))))) (defun array-update-array-position (&optional a-row a-column) *************** *** 707,712 **** (setq line-length (* old-field-width new-columns-per-line)) (setq lines-per-row ! (+ (ceiling temp-max-column new-columns-per-line) ! (if new-rows-numbered 1 0))) (array-goto-cell (or array-row 1) (or array-column 1))) (kill-buffer temp-buffer)) --- 707,712 ---- (setq line-length (* old-field-width new-columns-per-line)) (setq lines-per-row ! (+ (floor (1- temp-max-column) new-columns-per-line) ! (if new-rows-numbered 2 1))) (array-goto-cell (or array-row 1) (or array-column 1))) (kill-buffer temp-buffer)) *************** *** 727,750 **** (t index))) - (defun abs (int) - "Return the absolute value of INT." - (if (< int 0) (- int) int)) - - - (defun floor (int1 int2) - "Returns the floor of INT1 divided by INT2. - INT1 may be negative. INT2 must be positive." - (if (< int1 0) - (- (ceiling (- int1) int2)) - (/ int1 int2))) - - (defun ceiling (int1 int2) - "Returns the ceiling of INT1 divided by INT2. - Assumes that both arguments are nonnegative." - (+ (/ int1 int2) - (if (zerop (mod int1 int2)) - 0 - 1))) - (defun xor (pred1 pred2) "Returns the logical exclusive or of predicates PRED1 and PRED2." --- 727,730 ---- *************** *** 966,971 **** (setq lines-per-row (or arg ! (+ (ceiling max-column columns-per-line) ! (if rows-numbered 1 0))))) ;;; array.el ends here --- 946,951 ---- (setq lines-per-row (or arg ! (+ (floor (1- max-column) columns-per-line) ! (if rows-numbered 2 1))))) ;;; array.el ends here diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/autoload.el emacs-19.19/lisp/autoload.el *** emacs-19.18/lisp/autoload.el Wed Jul 21 18:35:16 1993 --- emacs-19.19/lisp/autoload.el Wed Aug 11 02:37:49 1993 *************** *** 110,114 **** name))) (print-length nil) ! (float-output-format "%.20e") (done-any nil) (visited (get-file-buffer file)) --- 110,114 ---- name))) (print-length nil) ! (float-output-format nil) (done-any nil) (visited (get-file-buffer file)) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/bibtex.el emacs-19.19/lisp/bibtex.el *** emacs-19.18/lisp/bibtex.el Thu Jun 10 13:41:01 1993 --- emacs-19.19/lisp/bibtex.el Fri Aug 13 23:35:04 1993 *************** *** 313,317 **** (define-key km "\M-\C-a" 'beginning-of-bibtex-entry) (define-key km "\M-\C-e" 'end-of-bibtex-entry) ! (define-key km "\C-ce" 'bibtex-entry) ; (define-key km "\C-cn" 'narrow-to-bibtex-entry) --- 313,317 ---- (define-key km "\M-\C-a" 'beginning-of-bibtex-entry) (define-key km "\M-\C-e" 'end-of-bibtex-entry) ! (define-key km "\C-c\C-b" 'bibtex-entry) ; (define-key km "\C-cn" 'narrow-to-bibtex-entry) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/bookmark.el emacs-19.19/lisp/bookmark.el *** emacs-19.18/lisp/bookmark.el --- emacs-19.19/lisp/bookmark.el Sat Aug 14 15:50:12 1993 *************** *** 0 **** --- 1,764 ---- + ;;; bookmark.el --- set bookmarks, jump to them later. + + ;; Copyright (C) 1993 Free Software Foundation, Inc. + + ;; Author: Karl Fogel + ;; Maintainer: Karl Fogel + ;; Created: July, 1993 + ;; Version: 1.7.3 (interim) + ;; Keywords: bookmarks, placeholders + + ;; This file is part of GNU Emacs. + + ;; GNU Emacs is free software; you can redistribute it and/or modify + ;; it under the terms of the GNU General Public License as published by + ;; the Free Software Foundation; either version 2, or (at your option) + ;; any later version. + + ;; GNU Emacs is distributed in the hope that it will be useful, + ;; but WITHOUT ANY WARRANTY; without even the implied warranty of + ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ;; GNU General Public License for more details. + + ;; You should have received a copy of the GNU General Public License + ;; along with GNU Emacs; see the file COPYING. If not, write to + ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + + ;; Thanks to David Bremner for thinking of and + ;; then implementing the bookmark-current-bookmark idea. He even + ;; sent *patches*, bless his soul... + + ;; Thanks to Gregory M. Saunders for + ;; fixing and improving bookmark-time-to-save-p. + + ;; Based on info-bookmark.el, by Karl Fogel and Ken Olstad + ;; . + + ;; LCD Archive Entry: + ;; bookmark|Karl Fogel|kfogel@cs.oberlin.edu| + ;; Setting bookmarks in files or directories, jumping to them later.| + ;; 16-July-93|Version: 1.7.2|~/misc/bookmark.el.Z| + + ;; FAVORITE CHINESE RESTAURANT: + ;; Boy, that's a tough one. Probably Hong Min, or maybe Emperor's + ;; Choice (both in Chicago's Chinatown). Well, both. How about you? + + ;;; Commentary on code: + + ;; bookmark alist format: + ;; (... + ;; (bookmark-name (filename + ;; string-in-front + ;; string-behind + ;; point)) + ;; ...) + ;; + ;; bookmark-name is the string the user gives the bookmark and + ;; accesses it by from then on. filename is the location of the file + ;; in which the bookmark is set. string-in-front is a string of + ;; `bookmark-search-size' chars of context in front of the point the + ;; bookmark is set at, string-behind is the same thing after the + ;; point. bookmark-jump will search for string-behind and + ;; string-in-front in case the file has changed since the bookmark was + ;; set. It will attempt to place the user before the changes, if + ;; there were any. + ;; + ;; It is not advisable to sort the bookmark list when it is presented + ;; to the user, because it is already sorted in what is probably the + ;; most useful way: order of creation, with most recently created + ;; bookmarks coming first and older ones toward the end (renaming does + ;; not count as creating) -- which is what we want, most of the time. + + ;;; Code: + + ;; Added for lucid emacs compatibility, db + (or (fboundp 'defalias) (fset 'defalias 'fset)) + + ;; these are the distribution keybindings suggested by RMS, everything + ;; else will be done with M-x or the menubar: + (define-key ctl-x-map "rb" 'bookmark-jump) + (define-key ctl-x-map "rm" 'bookmark-set) + (define-key ctl-x-map "rl" 'bookmark-locate) + + ;; define the map, so it can be bound by those who desire to do so: + + (defvar bookmark-map nil + "Keymap containing bindings to bookmark functions. + It is not bound to any key by default: to bind it + so that you have a bookmark prefix, just use `global-set-key' and bind a + key of your choice to `bookmark-map'. All interactive bookmark + functions have a binding in this keymap.") + + (define-prefix-command 'bookmark-map) + + ;; Read the help on all of these functions for details... + ;; "x" marks the spot! + (define-key bookmark-map "x" 'bookmark-set) + (define-key bookmark-map "j" 'bookmark-jump) + (define-key bookmark-map "i" 'bookmark-insert) + (define-key bookmark-map "f" 'bookmark-locate) ; "f" for "find" + (define-key bookmark-map "r" 'bookmark-rename) + ;; deletes bookmarks + (define-key bookmark-map "d" 'bookmark-delete) + ;; loads new file + (define-key bookmark-map "l" 'bookmark-load) + ;; saves them in file + (define-key bookmark-map "w" 'bookmark-write) + (define-key bookmark-map "s" 'bookmark-save) + + (defvar bookmark-alist () + "Association list of bookmarks. + You probably don't want to change the value of this alist yourself; + instead, let the various bookmark functions do it for you.") + + ;; just add the hook to make sure that people don't lose bookmarks + ;; when they kill Emacs, unless they don't want to save them. + + (add-hook 'kill-emacs-hook + (function + (lambda () + (and (featurep 'bookmark) + bookmark-alist + (bookmark-time-to-save-p t) + (bookmark-save))))) + + ;; more stuff added by db. + (defvar bookmark-current-bookmark nil + "Name of bookmark most recently used in the current file. + It is buffer local, used to make moving a bookmark forward + through a file easier.") + + (make-variable-buffer-local 'bookmark-current-bookmark) + + (defvar bookmark-save-flag t + "*Controls when Emacs saves bookmarks to a file. + --> Nil means never save bookmarks, except when `bookmark-save' is + explicitly called \(\\[bookmark-save]\). + --> t means save bookmarks when Emacs is killed. + --> Otherise, it should be a number that is the frequency with which + the bookmark list is saved \(i.e.: the number of times which + Emacs' bookmark list may be modified before it is automatically + saved.\). If it is a number, Emacs will also automatically save + bookmarks when it is killed. + + Therefore, the way to get it to save every time you make or delete a + bookmark is to set this variable to 1 \(or 0, which produces the same + behavior.\) + + To specify the file in which to save them, modify the variable + bookmark-file, which is `~/.emacs-bkmrks' by default.") + + (defvar bookmark-alist-modification-count 0 + "Number of modifications to bookmark list since it was last saved.") + + (defvar bookmark-file "~/.emacs-bkmrks" + "*File in which to save bookmarks by default.") + + (defvar bookmark-completion-ignore-case t + "*Non-nil means bookmark functions ignore case in completion.") + + (defvar bookmark-search-size 500 + "Length of the context strings recorded on either side of a bookmark.") + + (defvar bookmark-current-point 0) + (defvar bookmark-yank-point 0) + (defvar bookmark-current-buffer nil) + + (defun bookmark-set (&optional parg) + + "Set a bookmark named NAME inside a file. + With prefix arg, will not overwrite a bookmark that has the same name + as NAME if such a bookmark already exists, but instead will \"push\" + the new bookmark onto the bookmark alist. Thus the most recently set + bookmark with name NAME would be the one in effect at any given time, + but the others are still there, should you decide to delete the most + recent one. + + To yank words from the text of the buffer and use them as part of the + bookmark name, type C-w while setting a bookmark. Successive C-w's + yank successive words. + + Typing C-v inserts the name of the current file being visited. Typing + C-u inserts the name of the last bookmark used in the buffer \(as an + aid in using a single bookmark name to track your progress through a + large file\). If no bookmark was used, then C-u behaves like C-v and + inserts the name of the file being visited. + + Use \\[bookmark-delete] to remove bookmarks \(you give it a name, + and it removes only the first instance of a bookmark with that name from + the list of bookmarks.\)" + (interactive "P") + (if (not (bookmark-buffer-file-name)) + (error "Buffer not visiting a file or directory.")) + (setq bookmark-current-point (point)) + (setq bookmark-yank-point (point)) + (setq bookmark-current-buffer (current-buffer)) + (let ((str + (read-from-minibuffer + "Set bookmark: " + nil + (let ((now-map (copy-keymap minibuffer-local-map))) + (progn (define-key now-map "\C-w" + 'bookmark-yank-word) + (define-key now-map "\C-v" + 'bookmark-insert-current-file-name) + (define-key now-map "\C-u" + 'bookmark-insert-current-bookmark)) + now-map)))) + (progn + (bookmark-make parg str) + (setq bookmark-current-bookmark str) + (goto-char bookmark-current-point)))) + + (defun bookmark-insert-current-bookmark () + ;; insert this buffer's value of bookmark-current-bookmark, default + ;; to file name if it's nil. + (interactive) + (let ((str + (save-excursion + (set-buffer bookmark-current-buffer) + bookmark-current-bookmark))) + (if str (insert str) (bookmark-insert-current-file-name)))) + + (defun bookmark-insert-current-file-name () + ;; insert the name (sans path) of the current file into the bookmark + ;; name that is being set. + (interactive) + (let ((str (save-excursion + (set-buffer bookmark-current-buffer) + (bookmark-buffer-file-name)))) + (insert (substring + str + (1+ (string-match + "\\(/[^/]*\\)/*$" + str)))))) + + (defun bookmark-yank-word () + (interactive) + ;; get the next word from the buffer and append it to the name of + ;; the bookmark currently being set. + (let ((string (save-excursion + (set-buffer bookmark-current-buffer) + (goto-char bookmark-yank-point) + (buffer-substring + (point) + (save-excursion + (forward-word 1) + (setq bookmark-yank-point (point))))))) + (insert string))) + + (defun bookmark-make (parg str) + (if (and (assoc str bookmark-alist) (not parg)) + ;; already existing boookmark under that name and + ;; no prefix arg means just overwrite old bookmark + (setcdr (assoc str bookmark-alist) + (list (bookmark-make-cell))) + + ;; otherwise just cons it onto the front (either the bookmark + ;; doesn't exist already, or there is no prefix arg. In either + ;; case, we want the new bookmark consed onto the alist...) + + (setq bookmark-alist + (cons + (list str + (bookmark-make-cell)) + bookmark-alist))) + ;; Added by db + (setq bookmark-current-bookmark str) + (setq bookmark-alist-modification-count + (1+ bookmark-alist-modification-count)) + (if (bookmark-time-to-save-p) + (bookmark-save))) + + (defun bookmark-make-cell () + ;; make the cell that is the cdr of a bookmark alist element. It + ;; looks like this: + ;; (filename search-forward-str search-back-str point) + (list + (bookmark-buffer-file-name) + (if (>= (- (point-max) (point)) bookmark-search-size) + (buffer-substring + (point) + (+ (point) bookmark-search-size)) + nil) + (if (>= (- (point) (point-min)) bookmark-search-size) + (buffer-substring + (point) + (- (point) bookmark-search-size)) + nil) + (point))) + + (defun bookmark-buffer-file-name () + (or + buffer-file-name + (if (and (boundp 'dired-directory) dired-directory) + (if (stringp dired-directory) + dired-directory + (car dired-directory))))) + + (defun bookmark-try-default-file () + (if (and (null bookmark-alist) + (file-readable-p (expand-file-name bookmark-file))) + (bookmark-load bookmark-file))) + + (defun bookmark-jump (str) + "Jump to bookmark BOOKMARK (a point in some file). + You may have a problem using this function if the value of variable + `bookmark-alist' is nil. If that happens, you need to load in some + bookmarks. See help on function `bookmark-load' for more about + this." + (interactive (let ((completion-ignore-case + bookmark-completion-ignore-case)) + (list (completing-read + "Jump to bookmark: " + bookmark-alist + nil + 0)))) + (let ((whereto-list (car (cdr (assoc str bookmark-alist))))) + (let ((file (car whereto-list)) + (forward-str (car (cdr whereto-list))) + (behind-str (car (cdr (cdr whereto-list)))) + (place (car (cdr (cdr (cdr whereto-list)))))) + (if (file-exists-p (expand-file-name file)) + (progn + (find-file (expand-file-name file)) + (goto-char place) + ;; Go searching forward first. Then, if forward-str exists and + ;; was found in the file, we can search backward for behind-str. + ;; Rationale is that if text was inserted between the two in the + ;; file, it's better to be put before it so you can read it, + ;; rather than after and remain perhaps unaware of the changes. + (if forward-str + (if (search-forward forward-str (point-max) t) + (backward-char bookmark-search-size))) + (if behind-str + (if (search-backward behind-str (point-min) t) + (forward-char bookmark-search-size))) + ;; added by db + (setq bookmark-current-bookmark str)) + (error + (concat "File " + file + " does not exist. Suggest deleting bookmark \"" + str + "\"")))))) + + (defun bookmark-locate (str) + "Insert the name of the file associated with BOOKMARK. + \(This is not the same as the contents of that file\)." + (interactive (let ((completion-ignore-case + bookmark-completion-ignore-case)) + (list (completing-read + "Insert bookmark location: " + bookmark-alist + nil + 0)))) + (insert (car (car (cdr (assoc str bookmark-alist)))))) + + (defun bookmark-rename (old &optional new) + "Change the name of BOOKMARK to NEWNAME. + If called from keyboard, prompts for OLD and NEWNAME. + If called from menubar, prompts for NEWNAME. + If called from Lisp, prompts for NEWNAME if only BOOKMARK was passed + as an argument. If called with two strings, then no prompting is + done. You must pass at least BOOKMARK when calling from Lisp. + + While you are entering the new name, consecutive C-w's insert + consectutive words from the text of the buffer into the new bookmark + name, and C-v inserts the name of the file." + + (interactive (let ((completion-ignore-case + bookmark-completion-ignore-case)) + (list (completing-read "Old bookmark name: " + bookmark-alist + nil + 0)))) + (progn + (setq bookmark-current-point (point)) + (setq bookmark-yank-point (point)) + (setq bookmark-current-buffer (current-buffer)) + (let ((cell (assoc old bookmark-alist)) + (str + (or new ; use second arg, if non-nil + (read-from-minibuffer + "New name: " + nil + (let ((now-map (copy-keymap minibuffer-local-map))) + (progn (define-key now-map "\C-w" + 'bookmark-yank-word) + (define-key now-map "\C-v" + 'bookmark-insert-current-file-name)) + now-map))))) + (progn + (setcar cell str) + (setq bookmark-current-bookmark str) + (setq bookmark-alist-modification-count + (1+ bookmark-alist-modification-count)) + (if (bookmark-time-to-save-p) + (bookmark-save)))))) + + (defun bookmark-insert (str) + "Insert the text of the file pointed to by bookmark BOOKMARK. + You may have a problem using this function if the value of variable + `bookmark-alist' is nil. If that happens, you need to load in some + bookmarks. See help on function `bookmark-load' for more about + this." + (interactive (let ((completion-ignore-case + bookmark-completion-ignore-case)) + (list (completing-read + "Insert bookmark contents: " + bookmark-alist + nil + 0)))) + (let ((whereto-list (car (cdr (assoc str bookmark-alist))))) + (let ((file (car whereto-list))) + (if (file-readable-p (expand-file-name file)) + (let ((str-to-insert + (save-excursion + (find-file (expand-file-name file)) + (prog1 + (buffer-substring (point-min) (point-max)) + (bury-buffer)))) + (orig-point (point))) + (insert str-to-insert) + (push-mark) + (goto-char orig-point)) + (error + (concat "File " + file + " does not exist. Suggest deleting bookmark \"" + str + "\"")))))) + + (defun bookmark-delete (str) + "Delete the bookmark named NAME from the bookmark list. + Removes only the first instance of a bookmark with that name. If + there are one or more other bookmarks with the same name, they will + not be deleted. Defaults to the \"current\" bookmark \(that is, the + one most recently used in this file, if any\)." + + (interactive (let ((completion-ignore-case + bookmark-completion-ignore-case)) + (list + (completing-read + "Delete bookmark: " + bookmark-alist + nil + 0 + bookmark-current-bookmark)))) + (let ((will-go (assoc str bookmark-alist))) + (setq bookmark-alist (delq will-go bookmark-alist)) + ;; Added by db, nil bookmark-current-bookmark if the last + ;; occurence has been deleted + (or (assoc bookmark-current-bookmark bookmark-alist) + (setq bookmark-current-bookmark nil))) + (setq bookmark-alist-modification-count + (1+ bookmark-alist-modification-count)) + (if (bookmark-time-to-save-p) + (bookmark-save))) + + (defun bookmark-time-to-save-p (&optional last-time) + ;; By Gregory M. Saunders + ;; finds out whether it's time to save bookmarks to a file, by + ;; examining the value of variable bookmark-save-flag, and maybe + ;; bookmark-alist-modification-count. Returns t if they should be + ;; saved, nil otherwise. if last-time is non-nil, then this is + ;; being called when emacs is killed. + (cond (last-time + (and (> bookmark-alist-modification-count 0) + bookmark-save-flag)) + ((numberp bookmark-save-flag) + (>= bookmark-alist-modification-count bookmark-save-flag)) + (t + nil))) + + (defun bookmark-write () + (interactive) + (bookmark-save t)) + + (defun bookmark-save (&optional parg file) + "Save currently defined bookmarks. + Saves by default in the file defined by the variable + `bookmark-file'. With a prefix arg, save it in file FILE. + + If you are calling this from Lisp, the two arguments are PREFIX-ARG + and FILE, and if you just want it to write to the default file, then + pass no arguments. Or pass in nil and FILE, and it will save in FILE + instead. If you pass in one argument, and it is non-nil, then the + user will be interactively queried for a file to save in. + + When you want to load in the bookmarks from a file, use + \`bookmark-load\', \\[bookmark-load]. That function will prompt you + for a file, defaulting to the file defined by variable + `bookmark-file'." + (interactive "P") + (cond + ((and (null parg) (null file)) + ;;whether interactive or not, write to default file + (bookmark-write-file bookmark-file)) + ((and (null parg) file) + ;;whether interactive or not, write to given file + (bookmark-write-file file)) + ((and parg (not file)) + ;;have been called interactively w/ prefix arg + (let ((file (read-file-name "File to save bookmarks in: "))) + (bookmark-write-file file))) + (t ; someone called us with prefix-arg *and* a file, so just write to file + (bookmark-write-file file))) + ;; signal that we have synced the bookmark file by setting this to + ;; 0. If there was an error at any point before, it will not get + ;; set, which is what we want. + (setq bookmark-alist-modification-count 0)) + + (defun bookmark-write-file (file) + (save-excursion + (message (format "Saving bookmarks to file %s." file)) + (set-buffer (find-file-noselect file)) + (goto-char (point-min)) + (delete-region (point-min) (point-max)) + (print bookmark-alist (current-buffer)) + (write-file file) + (kill-buffer (current-buffer)))) + + (defun bookmark-load (file &optional revert no-msg) + "Load bookmarks from FILE (which must be in bookmark format). + Appends loaded bookmarks to the front of the list of bookmarks. If + optional second argument REVERT is non-nil, existing bookmarks are + destroyed. Optional third arg NO-MSG means don't display any messages + while loading. + + If you load a file that doesn't contain a proper bookmark alist, you + will corrupt Emacs's bookmark list. Generally, you should only load + in files that were created with the bookmark functions in the first + place. Your own personal bookmark file, `~/.emacs-bkmrks', is + maintained automatically by Emacs; you shouldn't need to load it + explicitly." + (interactive + (list (read-file-name + (format "Load bookmarks from: (%s) " + bookmark-file) + ;;Default might not be used often, + ;;but there's no better default, and + ;;I guess it's better than none at all. + "~/" bookmark-file 'confirm))) + (setq file (expand-file-name file)) + (if (file-readable-p file) + (save-excursion + (if (null no-msg) + (message (format "Loading bookmarks from %s..." file))) + (set-buffer (find-file-noselect file)) + (goto-char (point-min)) + (let ((blist (car (read-from-string + (buffer-substring (point-min) (point-max)))))) + (if (listp blist) + (progn + (if (not revert) + (setq bookmark-alist-modification-count + (1+ bookmark-alist-modification-count)) + (setq bookmark-alist-modification-count 0)) + (setq bookmark-alist + (append blist (if (not revert) bookmark-alist)))) + (error (format "Invalid bookmark list in %s." file)))) + (kill-buffer (current-buffer)) + (if (null no-msg) + (message (format "Loading bookmarks from %s... done" file)))) + (error (format "Cannot read bookmark file %s." file)))) + + ;;;; bookmark menu bar stuff ;;;; + + (defvar bookmark-menu-bar-length 70 + "*Maximum length of a bookmark name displayed on a popup menu.") + + (defvar bookmark-enable-menu-bar t + "*Non-nil means put a bookmark menu on the menu bar. + \(Assuming that you are running Emacs under a windowing system, such + as X.\)") + + (defun bookmark-make-menu-bar-alist () + (if (not bookmark-alist) + (if (file-readable-p bookmark-file) + (bookmark-load bookmark-file))) + (if bookmark-alist + (mapcar (lambda (cell) + (let ((str (car cell))) + (cons + (if (> (length str) bookmark-menu-bar-length) + (substring str 0 bookmark-menu-bar-length) + str) + str))) + bookmark-alist) + (error "No bookmarks currently set."))) + + (defun bookmark-make-menu-bar-with-function (func-sym + menu-label + menu-str event) + ;; help function for making menus that need to apply a bookmark + ;; function to a string. + (let* ((menu (bookmark-make-menu-bar-alist)) + (str (x-popup-menu event + (list menu-label + (cons menu-str + menu))))) + (if str + (apply func-sym (list str))))) + + (defun bookmark-menu-bar-insert (event) + "Insert the text of the file pointed to by bookmark BOOKMARK. + You may have a problem using this function if the value of variable + `bookmark-alist' is nil. If that happens, you need to load in some + bookmarks. See help on function `bookmark-load' for more about + this." + (interactive "e") + (bookmark-make-menu-bar-with-function 'bookmark-insert + "Bookmark Insert Menu" + "--- Insert Contents ---" + event)) + + (defun bookmark-menu-bar-jump (event) + "Jump to bookmark BOOKMARK (a point in some file). + You may have a problem using this function if the value of variable + `bookmark-alist' is nil. If that happens, you need to load in some + bookmarks. See help on function `bookmark-load' for more about + this." + (interactive "e") + (bookmark-make-menu-bar-with-function 'bookmark-jump + "Bookmark Jump Menu" + "--- Jump to Bookmark ---" + event)) + + (defun bookmark-menu-bar-locate (event) + "Insert the name of the file associated with BOOKMARK. + \(This is not the same as the contents of that file\)." + (interactive "e") + (bookmark-make-menu-bar-with-function 'bookmark-locate + "Bookmark Locate Menu" + "--- Insert Location ---" + event)) + + (defun bookmark-menu-bar-rename (event) + "Change the name of BOOKMARK to NEWNAME. + If called from keyboard, prompts for OLD and NEWNAME. + If called from menubar, prompts for NEWNAME. + If called from Lisp, prompts for NEWNAME if only BOOKMARK was passed + as an argument. If called with two strings, then no prompting is + done. You must pass at least BOOKMARK when calling from Lisp. + + While you are entering the new name, consecutive C-w's insert + consectutive words from the text of the buffer into the new bookmark + name, and C-v inserts the name of the file." + (interactive "e") + (bookmark-make-menu-bar-with-function 'bookmark-rename + "Bookmark Rename Menu" + "--- Rename Bookmark ---" + event)) + + (defun bookmark-menu-bar-delete (event) + "Delete the bookmark named NAME from the bookmark list. + Removes only the first instance of a bookmark with that name. If + there are one or more other bookmarks with the same name, they will + not be deleted. Defaults to the \"current\" bookmark \(that is, the + one most recently used in this file, if any\)." + (interactive "e") + (bookmark-make-menu-bar-with-function 'bookmark-delete + "Bookmark Delete Menu" + "--- Delete Bookmark ---" + event)) + + (if (and bookmark-enable-menu-bar window-system) + (progn + (defvar menu-bar-bookmark-map + (make-sparse-keymap "Bookmark functions")) + + ;; make bookmarks appear toward the right side of the menu. + (if (boundp 'menu-bar-final-items) + (if menu-bar-final-items + (setq menu-bar-final-items + (cons 'bookmark menu-bar-final-items))) + (setq menu-bar-final-items '(bookmark))) + + (define-key global-map [menu-bar bookmark] + (cons "Bookmarks" menu-bar-bookmark-map)) + + (define-key menu-bar-bookmark-map [load] + '(" Load a bookmark file" . bookmark-load)) + + (define-key menu-bar-bookmark-map [write] + '("Write \(to another file\)" . bookmark-write)) + + (define-key menu-bar-bookmark-map [save] + '("Save \(in default file\)" . bookmark-save)) + + (define-key menu-bar-bookmark-map [delete] + '(" Delete a bookmark" . bookmark-menu-bar-delete)) + + (define-key menu-bar-bookmark-map [rename] + '(" Rename bookmark" . bookmark-menu-bar-rename)) + + (define-key menu-bar-bookmark-map [locate] + '(" Insert location" . bookmark-menu-bar-locate)) + + (define-key menu-bar-bookmark-map [insert] + '(" Insert contents" . bookmark-menu-bar-insert)) + + (define-key menu-bar-bookmark-map [set] + '(" Set bookmark" . bookmark-set)) + + (define-key menu-bar-bookmark-map [jump] + '(" Go to bookmark" . bookmark-menu-bar-jump)))) + + ;; not using properties because they make the menu sluggish in coming + ;; up -- too many tests to make. Instead, choosing a useless menu + ;; item just gets you an error now (see + ;; bookmark-make-menu-bar-with-function) + ;; + ;; (put 'bookmark-menu-bar-jump 'menu-enable + ;; '(or bookmark-alist + ;; (and (file-readable-p bookmark-file) + ;; (progn (bookmark-load bookmark-file) + ;; bookmark-alist)))) + ;; + ;; (put 'bookmark-menu-bar-insert 'menu-enable + ;; '(or bookmark-alist + ;; (and (file-readable-p bookmark-file) + ;; (progn (bookmark-load bookmark-file) + ;; bookmark-alist)))) + ;; + ;; (put 'bookmark-menu-bar-locate 'menu-enable + ;; '(or bookmark-alist + ;; (and (file-readable-p bookmark-file) + ;; (progn (bookmark-load bookmark-file) + ;; bookmark-alist)))) + ;; + ;; (put 'bookmark-menu-bar-rename 'menu-enable + ;; '(or bookmark-alist + ;; (and (file-readable-p bookmark-file) + ;; (progn (bookmark-load bookmark-file) + ;; bookmark-alist)))) + ;; + ;; (put 'bookmark-menu-bar-delete 'menu-enable + ;; '(or bookmark-alist + ;; (and (file-readable-p bookmark-file) + ;; (progn (bookmark-load bookmark-file) + ;; bookmark-alist)))) + ;; + ;; (put 'bookmark-menu-bar-save 'menu-enable + ;; '(or bookmark-alist + ;; (and (file-readable-p bookmark-file) + ;; (progn (bookmark-load bookmark-file) + ;; bookmark-alist)))) + ;; + ;; (put 'bookmark-menu-bar-write 'menu-enable + ;; '(or bookmark-alist + ;; (and (file-readable-p bookmark-file) + ;; (progn (bookmark-load bookmark-file) + ;; bookmark-alist)))) + + ;;;; end bookmark menu-bar stuff ;;;; + + ;; load the default bookmark file, if it exists, and the + ;; bookmark-alist is nil: + (bookmark-try-default-file) + + (provide 'bookmark) + + ;;; bookmark.el ends here diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/bytecomp.el emacs-19.19/lisp/bytecomp.el *** emacs-19.18/lisp/bytecomp.el Mon Aug 2 00:46:58 1993 --- emacs-19.19/lisp/bytecomp.el Wed Aug 11 02:38:02 1993 *************** *** 1250,1254 **** (let (outbuffer) (let (;; Prevent truncation of flonums and lists as we read and print them ! (float-output-format "%.20e") (case-fold-search nil) (print-length nil) --- 1250,1254 ---- (let (outbuffer) (let (;; Prevent truncation of flonums and lists as we read and print them ! (float-output-format nil) (case-fold-search nil) (print-length nil) *************** *** 2156,2160 **** (byte-defop-compiler19 delete-region 2) (byte-defop-compiler19 narrow-to-region 2) - (byte-defop-compiler19 (mod byte-rem) 2) (byte-defop-compiler19 (% byte-rem) 2) (byte-defop-compiler aset 3) --- 2156,2159 ---- *************** *** 3050,3054 **** - (make-obsolete 'mod '%) (make-obsolete 'dot 'point) (make-obsolete 'dot-max 'point-max) --- 3049,3052 ---- diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/cal-dst.el emacs-19.19/lisp/cal-dst.el *** emacs-19.18/lisp/cal-dst.el Mon Jun 21 07:22:17 1993 --- emacs-19.19/lisp/cal-dst.el Tue Aug 10 15:13:49 1993 *************** *** 47,65 **** "Absolute date of starting date of system clock.") - (defun calendar-/ (a b) - "Floor(A/B) = the greatest integer not greater than A divided by B. - A and B be must both be integers, and B must be positive." - (if (< a 0) - (- (/ (- b 1 a) b)) - (/ a b))) - - (defun calendar-% (a b) - "A modulo B; always nonnegative. - A and B be must both be integers, and B must be positive." - (let ((m (% a b))) - (if (< m 0) - (+ m b) - m))) - (defun calendar-absolute-from-time (x utc-diff) "Absolute local date of time X; local time is UTC-DIFF seconds from UTC. --- 47,50 ---- *************** *** 74,84 **** (xtail (cdr x)) (l (+ utc-diff (if (numberp xtail) xtail (car xtail)))) ! (u (+ (* 512 (calendar-% h 675)) (calendar-/ l 128)))) ;; Overflow is a terrible thing! (cons (+ calendar-system-time-basis ;; floor((2^16 h +l) / (60*60*24)) ! (* 512 (calendar-/ h 675)) (calendar-/ u 675)) ;; (2^16 h +l) % (60*60*24) ! (+ (* (calendar-% u 675) 128) (calendar-% l 128))))) (defun calendar-time-from-absolute (abs-date s) --- 59,69 ---- (xtail (cdr x)) (l (+ utc-diff (if (numberp xtail) xtail (car xtail)))) ! (u (+ (* 512 (mod h 675)) (floor l 128)))) ;; Overflow is a terrible thing! (cons (+ calendar-system-time-basis ;; floor((2^16 h +l) / (60*60*24)) ! (* 512 (mod h 675)) (floor u 675)) ;; (2^16 h +l) % (60*60*24) ! (+ (* (mod u 675) 128) (floor l 128))))) (defun calendar-time-from-absolute (abs-date s) *************** *** 90,100 **** midnight UTC on absolute date ABS-DATE." (let* ((a (- abs-date calendar-system-time-basis)) ! (u (+ (* 163 (calendar-% a 512)) (calendar-/ s 128)))) ;; Overflow is a terrible thing! (cons ;; (60*60*24*a + s) / 2^16 ! (+ a (* 163 (calendar-/ a 512)) (calendar-/ u 512)) ;; (60*60*24*a + s) % 2^16 ! (+ (* 128 (calendar-% u 512)) (calendar-% s 128))))) (defun calendar-next-time-zone-transition (time) --- 75,85 ---- midnight UTC on absolute date ABS-DATE." (let* ((a (- abs-date calendar-system-time-basis)) ! (u (+ (* 163 (mod a 512)) (floor s 128)))) ;; Overflow is a terrible thing! (cons ;; (60*60*24*a + s) / 2^16 ! (+ a (* 163 (floor a 512)) (floor u 512)) ;; (60*60*24*a + s) % 2^16 ! (+ (* 128 (mod u 512)) (mod s 128))))) (defun calendar-next-time-zone-transition (time) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/cal-mayan.el emacs-19.19/lisp/cal-mayan.el *** emacs-19.18/lisp/cal-mayan.el Fri Jun 18 12:49:51 1993 --- emacs-19.19/lisp/cal-mayan.el Tue Aug 10 00:12:28 1993 *************** *** 54,67 **** (require 'calendar) - (defun mayan-mod (m n) - "Returns M mod N; value is *always* non-negative when N>0." - (let ((v (% m n))) - (if (and (> 0 v) (> n 0)) - (+ v n) - v))) - (defun mayan-adjusted-mod (m n) "Non-negative remainder of M/N with N instead of 0." ! (1+ (mayan-mod (1- m) n))) (defconst calendar-mayan-days-before-absolute-zero 1137140 --- 54,60 ---- (require 'calendar) (defun mayan-adjusted-mod (m n) "Non-negative remainder of M/N with N instead of 0." ! (1+ (mod (1- m) n))) (defconst calendar-mayan-days-before-absolute-zero 1137140 *************** *** 133,139 **** (defun calendar-mayan-haab-difference (date1 date2) "Number of days from Mayan haab DATE1 to next occurrence of haab date DATE2." ! (mayan-mod (+ (* 20 (- (cdr date2) (cdr date1))) ! (- (car date2) (car date1))) ! 365)) (defun calendar-mayan-haab-on-or-before (haab-date date) --- 126,132 ---- (defun calendar-mayan-haab-difference (date1 date2) "Number of days from Mayan haab DATE1 to next occurrence of haab date DATE2." ! (mod (+ (* 20 (- (cdr date2) (cdr date1))) ! (- (car date2) (car date1))) ! 365)) (defun calendar-mayan-haab-on-or-before (haab-date date) *************** *** 194,201 **** (let ((number-difference (- (car date2) (car date1))) (name-difference (- (cdr date2) (cdr date1)))) ! (mayan-mod (+ number-difference ! (* 13 (mayan-mod (* 3 (- number-difference name-difference)) ! 20))) ! 260))) (defun calendar-mayan-tzolkin-on-or-before (tzolkin-date date) --- 187,194 ---- (let ((number-difference (- (car date2) (car date1))) (name-difference (- (cdr date2) (cdr date1)))) ! (mod (+ number-difference ! (* 13 (mod (* 3 (- number-difference name-difference)) ! 20))) ! 260))) (defun calendar-mayan-tzolkin-on-or-before (tzolkin-date date) *************** *** 251,257 **** (if (= (% difference 5) 0) (- date ! (mayan-mod (- date ! (+ haab-difference (* 365 difference))) ! 18980)) nil))) --- 244,250 ---- (if (= (% difference 5) 0) (- date ! (mod (- date ! (+ haab-difference (* 365 difference))) ! 18980)) nil))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/calendar.el emacs-19.19/lisp/calendar.el *** emacs-19.18/lisp/calendar.el Wed Aug 4 19:00:10 1993 --- emacs-19.19/lisp/calendar.el Tue Aug 10 01:52:32 1993 *************** *** 640,644 **** ;;;###autoload ! (defvar hebrew-holiday-3 '((if all-hebrew-calendar-holidays (holiday-hebrew --- 640,644 ---- ;;;###autoload ! (defvar hebrew-holidays-3 '((if all-hebrew-calendar-holidays (holiday-hebrew diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/cl-extra.el emacs-19.19/lisp/cl-extra.el *** emacs-19.18/lisp/cl-extra.el Fri Jul 30 16:14:23 1993 --- emacs-19.19/lisp/cl-extra.el Tue Aug 10 00:12:31 1993 *************** *** 388,404 **** "Return a list of the floor of X and the fractional part of X. With two arguments, return floor and remainder of their quotient." ! (if y ! (if (and (integerp x) (integerp y)) ! (if (and (>= x 0) (>= y 0)) ! (list (/ x y) (% x y)) ! (let ((q (cond ((>= x 0) (- (/ (- x y 1) (- y)))) ! ((>= y 0) (- (/ (- y x 1) y))) ! (t (/ (- x) (- y)))))) ! (list q (- x (* q y))))) ! (let ((q (floor (/ x y)))) ! (list q (- x (* q y))))) ! (if (integerp x) (list x 0) ! (let ((q (floor x))) ! (list q (- x q)))))) (defun ceiling* (x &optional y) --- 388,393 ---- "Return a list of the floor of X and the fractional part of X. With two arguments, return floor and remainder of their quotient." ! (let ((q (floor x y))) ! (list q (- x (if y (* y q) q))))) (defun ceiling* (x &optional y) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/comint.el emacs-19.19/lisp/comint.el *** emacs-19.18/lisp/comint.el Sun Aug 8 20:52:08 1993 --- emacs-19.19/lisp/comint.el Tue Aug 10 00:12:35 1993 *************** *** 414,418 **** (if (< arg 0) 1 0)))) (setq comint-input-ring-index ! (ring-mod (+ comint-input-ring-index arg) len)) (message "%d" (1+ comint-input-ring-index)) (insert (ring-ref comint-input-ring comint-input-ring-index)))))) --- 414,418 ---- (if (< arg 0) 1 0)))) (setq comint-input-ring-index ! (mod (+ comint-input-ring-index arg) len)) (message "%d" (1+ comint-input-ring-index)) (insert (ring-ref comint-input-ring comint-input-ring-index)))))) *************** *** 451,459 **** (let ((prev n)) ;; Step once. ! (setq n (ring-mod (+ n motion) len)) ;; If we haven't reached a match, step some more. (while (and (< n len) (not (string-match regexp (ring-ref comint-input-ring n)))) ! (setq n (ring-mod (+ n motion) len)) ;; If we have gone all the way around in this search, error. (if (= n prev) --- 451,459 ---- (let ((prev n)) ;; Step once. ! (setq n (mod (+ n motion) len)) ;; If we haven't reached a match, step some more. (while (and (< n len) (not (string-match regexp (ring-ref comint-input-ring n)))) ! (setq n (mod (+ n motion) len)) ;; If we have gone all the way around in this search, error. (if (= n prev) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/compile.el emacs-19.19/lisp/compile.el *** emacs-19.18/lisp/compile.el Tue Aug 3 17:35:45 1993 --- emacs-19.19/lisp/compile.el Fri Aug 13 23:44:37 1993 *************** *** 665,669 **** (next-error 1)) ! (defun compilation-buffer-p (buffer) (assq 'compilation-error-list (buffer-local-variables buffer))) --- 665,669 ---- (next-error 1)) ! (defsubst compilation-buffer-p (buffer) (assq 'compilation-error-list (buffer-local-variables buffer))) *************** *** 725,729 **** ;; we got a numeric prefix arg, not just C-u. (and (not (consp argp)) ! (1- (prefix-numeric-value argp)))) ;; Make ARGP nil if the prefix arg was just C-u, ;; since that means to reparse the errors, which the --- 725,731 ---- ;; we got a numeric prefix arg, not just C-u. (and (not (consp argp)) ! (if (< (prefix-numeric-value argp) 1) ! 0 ! (1- (prefix-numeric-value argp))))) ;; Make ARGP nil if the prefix arg was just C-u, ;; since that means to reparse the errors, which the *************** *** 736,741 **** (set-buffer compilation-last-buffer) ;; compilation-error-list points to the "current" error. ! (setq next-errors (nthcdr (1- (prefix-numeric-value argp)) ! compilation-error-list) next-error (car next-errors)) (while --- 738,756 ---- (set-buffer compilation-last-buffer) ;; compilation-error-list points to the "current" error. ! (setq next-errors ! (if (> (prefix-numeric-value argp) 0) ! (nthcdr (1- (prefix-numeric-value argp)) ! compilation-error-list) ! ;; Zero or negative arg; we need to move back in the list. ! (let ((n (1- (prefix-numeric-value argp))) ! (i 0) ! (e compilation-old-error-list)) ! ;; See how many cdrs away the current error is from the start. ! (while (not (eq e compilation-error-list)) ! (setq i (1+ i) ! e (cdr e))) ! (if (> (- n) i) ! (error "Moved back past first error") ! (nthcdr (+ i n) compilation-old-error-list)))) next-error (car next-errors)) (while *************** *** 1063,1072 **** (save-excursion (beginning-of-line 1) ! (setq compilation-error-list ! (cons (cons (point-marker) ! (cons filename linenum)) ! compilation-error-list))) ! (setq compilation-num-errors-found ! (1+ compilation-num-errors-found)) (and find-at-least (>= compilation-num-errors-found find-at-least) --- 1078,1091 ---- (save-excursion (beginning-of-line 1) ! (let ((this (cons (point-marker) ! (cons filename linenum)))) ! ;; Don't add the same source line more than once. ! (if (equal (cdr this) (cdr (car compilation-error-list))) ! nil ! (setq compilation-error-list ! (cons this ! compilation-error-list)) ! (setq compilation-num-errors-found ! (1+ compilation-num-errors-found))))) (and find-at-least (>= compilation-num-errors-found find-at-least) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/dired-aux.el emacs-19.19/lisp/dired-aux.el *** emacs-19.18/lisp/dired-aux.el Sun Aug 8 00:54:29 1993 --- emacs-19.19/lisp/dired-aux.el Wed Aug 11 23:35:48 1993 *************** *** 518,522 **** (if (not (dired-check-process (concat "Uncompressing " file) "gunzip" file)) ! (substring file 0 -3))) (t ;;; Try gzip; if we don't have that, use compress. --- 518,522 ---- (if (not (dired-check-process (concat "Uncompressing " file) "gunzip" file)) ! (substring file 0 -2))) (t ;;; Try gzip; if we don't have that, use compress. diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/emerge.el emacs-19.19/lisp/emerge.el *** emacs-19.18/lisp/emerge.el Sun Aug 1 16:48:43 1993 --- emacs-19.19/lisp/emerge.el Wed Aug 11 14:21:31 1993 *************** *** 2216,2219 **** --- 2216,2220 ---- it finds the nearest following difference. A negative prefix argument finds the nearest previous difference." + (interactive "P") (cond ((eq (current-buffer) emerge-A-buffer) (emerge-find-difference-A arg)) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/faces.el emacs-19.19/lisp/faces.el *** emacs-19.18/lisp/faces.el Tue Aug 3 03:12:02 1993 --- emacs-19.19/lisp/faces.el Sat Aug 14 05:25:26 1993 *************** *** 877,881 **** (assq 'reverse default-frame-alist) (cons nil ! (x-get-resource "reverseVideo" "ReverseVideo")))) (let ((params (frame-parameters frame))) (modify-frame-parameters --- 877,882 ---- (assq 'reverse default-frame-alist) (cons nil ! (member (x-get-resource "reverseVideo" "ReverseVideo") ! '("on" "true"))))) (let ((params (frame-parameters frame))) (modify-frame-parameters diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/files.el emacs-19.19/lisp/files.el *** emacs-19.18/lisp/files.el Fri Aug 6 14:01:58 1993 --- emacs-19.19/lisp/files.el Sun Aug 15 01:46:41 1993 *************** *** 61,65 **** The choice of renaming or copying is controlled by the variables `backup-by-copying', `backup-by-copying-when-linked' and ! `backup-by-copying-when-mismatch'.") ;; Do this so that local variables based on the file name --- 61,65 ---- The choice of renaming or copying is controlled by the variables `backup-by-copying', `backup-by-copying-when-linked' and ! `backup-by-copying-when-mismatch'. See also `backup-inhibited'.") ;; Do this so that local variables based on the file name *************** *** 66,70 **** ;; are not overridden by the major mode. (defvar backup-inhibited nil ! "Non-nil means don't make a backup file for this buffer.") (put 'backup-inhibited 'permanent-local t) --- 66,72 ---- ;; are not overridden by the major mode. (defvar backup-inhibited nil ! "Non-nil means don't make a backup, regardless of the other parameters. ! This variable is intended for use by making it local to a buffer. ! But it is local only if you make it local.") (put 'backup-inhibited 'permanent-local t) *************** *** 651,655 **** (let ((hooks find-file-not-found-hooks)) (while (and hooks ! (not (funcall (car hooks)))) (setq hooks (cdr hooks)))))) ;; Find the file's truename, and maybe use that as visited name. --- 653,661 ---- (let ((hooks find-file-not-found-hooks)) (while (and hooks ! (not (and (funcall (car hooks)) ! ;; If a hook succeeded, clear error. ! (progn (setq error nil) ! ;; Also exit the loop. ! t)))) (setq hooks (cdr hooks)))))) ;; Find the file's truename, and maybe use that as visited name. diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/finder-inf.el emacs-19.19/lisp/finder-inf.el *** emacs-19.18/lisp/finder-inf.el Sun May 23 19:08:19 1993 --- emacs-19.19/lisp/finder-inf.el Sun Aug 15 01:04:08 1993 *************** *** 19,22 **** --- 19,25 ---- "advice mechanism for Emacs Lisp functions" (advice function hooks)) + ("allout.el" + nil + nil) ("ange-ftp.el" "transparent FTP support for GNU Emacs" *************** *** 58,61 **** --- 61,67 ---- "blackbox game in Emacs Lisp" (games)) + ("bookmark.el" + "set bookmarks, jump to them later." + (bookmarks placeholders)) ("buff-menu.el" "buffer menu main function and support functions." *************** *** 70,79 **** "compilation of Lisp code into byte code." (internal)) - ("c++-mode.el" - "C++ code editing commands for Emacs" - (c)) ("c-mode.el" "C code editing commands for Emacs" (c)) ("cal-french.el" "calendar functions for the French Revolutionary calendar." --- 76,85 ---- "compilation of Lisp code into byte code." (internal)) ("c-mode.el" "C code editing commands for Emacs" (c)) + ("cal-dst.el" + "calendar functions for daylight savings rules." + (calendar)) ("cal-french.el" "calendar functions for the French Revolutionary calendar." *************** *** 91,99 **** "list command history" nil) ("cl-indent.el" "enhanced lisp-indent mode" (lisp tools)) ("cl.el" ! "Common-Lisp extensions for GNU Emacs Lisp." (extensions)) ("cmacexp.el" --- 97,117 ---- "list command history" nil) + ("cl-compat.el" + nil + (extensions)) + ("cl-extra.el" + nil + (extensions)) ("cl-indent.el" "enhanced lisp-indent mode" (lisp tools)) + ("cl-macs.el" + nil + (extensions)) + ("cl-seq.el" + nil + (extensions)) ("cl.el" ! nil (extensions)) ("cmacexp.el" *************** *** 100,106 **** "expand C macros in a region" (c)) - ("cmulisp.el" - "improved version of standard inferior-lisp mode" - (processes lisp)) ("cmuscheme.el" "Scheme process in a buffer. Adapted from tea.el." --- 118,121 ---- *************** *** 121,127 **** "dynamic word-completion code" (abbrev)) ! ("cookie.el" "retrieve random phrases from fortune cookie files" (games)) ("cust-print.el" "handles print-level and print-circle." --- 136,148 ---- "dynamic word-completion code" (abbrev)) ! ("cookie1.el" "retrieve random phrases from fortune cookie files" (games)) + ("cplus-md.el" + "C++ code editing commands for Emacs" + (c)) + ("cplus-md1.el" + "major mode for editing C++ (and C) code" + (c++ c editing major-mode)) ("cust-print.el" "handles print-level and print-circle." *************** *** 139,142 **** --- 160,166 ---- "delete selection if you insert" nil) + ("desktop.el" + "save partial status of Emacs when killed" + nil) ("diary-ins.el" "calendar functions for adding diary entries." *************** *** 166,169 **** --- 190,196 ---- "psychological help for frustrated users." (games)) + ("dunnet.el" + "Text adventure for Emacs" + (games)) ("ebuff-menu.el" "electric-buffer-list mode" *************** *** 229,232 **** --- 256,271 ---- "help for lusers on cu(1) or ttys with wired-in ^S/^Q flow control" (hardware)) + ("font-lock.el" + nil + (languages faces)) + ("forms-d2.el" + nil + nil) + ("forms-pass.el" + nil + nil) + ("forms.el" + nil + nil) ("fortran.el" "Fortran mode for GNU Emacs" *************** *** 237,241 **** ("gnus.el" nil ! nil) ("gnusmail.el" "mail reply commands for GNUS newsreader" --- 276,280 ---- ("gnus.el" nil ! (news)) ("gnusmail.el" "mail reply commands for GNUS newsreader" *************** *** 257,261 **** (internal)) ("gud.el" ! "Grand Unified Debugger mode for gdb, sdb, or dbx under Emacs" (unix tools)) ("hanoi.el" --- 296,300 ---- (internal)) ("gud.el" ! "Grand Unified Debugger mode for gdb, sdb, dbx, or xdb" (unix tools)) ("hanoi.el" *************** *** 273,282 **** ("hexl.el" "edit a file in a hex dump format using the hexl filter." ! nil) ("hideif.el" "hides selected code within ifdef." (c)) ! ("hippie.el" ! "expand a word trying various ways to find its expansion." (extensions)) ("holidays.el" --- 312,324 ---- ("hexl.el" "edit a file in a hex dump format using the hexl filter." ! (non-text)) ("hideif.el" "hides selected code within ifdef." (c)) ! ("hilit19.el" ! nil ! (faces)) ! ("hippie-exp.el" ! "expand text trying various ways to find its expansion." (extensions)) ("holidays.el" *************** *** 316,324 **** "set up case-conversion and syntax tables for ISO 8859/1" (i18n)) - ("iso8859-1.el" - "set up case-conversion and syntax tables for ISO 8859/1" - (i18n)) ("ispell.el" ! "this is the GNU EMACS interface to GNU ISPELL version 3." (wp)) ("kermit.el" --- 358,363 ---- "set up case-conversion and syntax tables for ISO 8859/1" (i18n)) ("ispell.el" ! "this is the GNU EMACS interface to GNU ISPELL version 4." (wp)) ("kermit.el" *************** *** 391,394 **** --- 430,436 ---- "makefile editing commands for Emacs" (unix tools)) + ("makeinfo.el" + nil + nil) ("makesum.el" "generate key binding summary for Emacs" *************** *** 409,414 **** "define a default menu bar." (internals)) ("mh-e.el" ! "GNU Emacs interface to the MH mailer" (mail)) ("mhspool.el" --- 451,459 ---- "define a default menu bar." (internals)) + ("metamail.el" + "Metamail interface for GNU Emacs" + (mail news mime multimedia)) ("mh-e.el" ! "GNU Emacs interface to the MH mail system" (mail)) ("mhspool.el" *************** *** 469,472 **** --- 514,520 ---- "paragraph and sentence parsing." (wp)) + ("paren.el" + "highlight matching paren." + (languages faces)) ("paths.el" "define pathnames for use by various Emacs commands." *************** *** 499,502 **** --- 547,553 ---- "replace commands for Emacs." nil) + ("reporter.el" + "customizable bug reporting of lisp programs" + (bug reports lisp)) ("reposition.el" "center a Lisp function or comment on the screen" *************** *** 544,547 **** --- 595,607 ---- "display a buffer in rot13." nil) + ("saveplace.el" + "automatically save place in files." + (bookmarks placeholders)) + ("sc-elec.el" + nil + nil) + ("sc.el" + nil + nil) ("scheme.el" "Scheme mode, and its idiosyncratic commands." *************** *** 598,613 **** "basic lisp subroutines for Emacs" nil) - ("sun-curs.el" - "cursor definitions for Sun windows" - (hardware)) - ("sun-fns.el" - "subroutines of Mouse handling for Sun windows" - (hardware)) - ("sun-keys.el" - "support for Sun function keys" - (terminals)) - ("superyank.el" - "smart message-yanking code for GNUS" - (news)) ("swedish.el" "miscellaneous functions for dealing with Swedish." --- 658,661 ---- *************** *** 625,631 **** "run a telnet session from within an Emacs buffer" nil) ! ("term1.el" ! "terminal emulator for GNU Emacs." ! (comm terminals)) ("terminal.el" "terminal emulator for GNU Emacs." --- 673,679 ---- "run a telnet session from within an Emacs buffer" nil) ! ("term-nasty.el" ! "Damned Things from terminfo.el" ! nil) ("terminal.el" "terminal emulator for GNU Emacs." *************** *** 635,645 **** (tex)) ("texinfmt.el" ! "convert Texinfo files to Info files." ! (tex help)) ("texinfo.el" ! "major mode for editing Texinfo files." ! (maint tex doc wp)) ("texnfo-upd.el" ! "a utility for updating nodes and menus in Texinfo files." (maint tex docs)) ("text-mode.el" --- 683,693 ---- (tex)) ("texinfmt.el" ! nil ! nil) ("texinfo.el" ! nil ! nil) ("texnfo-upd.el" ! nil (maint tex docs)) ("text-mode.el" *************** *** 646,649 **** --- 694,700 ---- "text mode, and its idiosyncratic commands." nil) + ("time-stamp.el" + "Maintain last change time stamps in files edited by Emacs" + (tools)) ("time.el" "display time and load in mode line of Emacs." *************** *** 655,661 **** nil nil) ! ("tmenu.el" ! "emulate the Lucid menu features." ! (emulations)) ("tq.el" "utility to maintain a transaction queue" --- 706,721 ---- nil nil) ! ("tpu-doc.el" ! "Documentation for TPU-edt" ! (tpu-edt)) ! ("tpu-edt.el" ! "Emacs emulating TPU emulating EDT" ! (edt emulations)) ! ("tpu-extras.el" ! "Scroll margins and free cursor mode for TPU-edt" ! (tpu-edt)) ! ("tpu-mapper.el" ! nil ! (tpu-edt)) ("tq.el" "utility to maintain a transaction queue" *************** *** 718,721 **** --- 778,784 ---- "run asynchronous VMS subprocesses under Emacs" (vms)) + ("vt-control.el" + "Common VTxxx control functions" + (vt100)) ("vt100-led.el" "functions for LED control on VT-100 terminals & clones." diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/frame.el emacs-19.19/lisp/frame.el *** emacs-19.18/lisp/frame.el Mon Aug 2 23:32:36 1993 --- emacs-19.19/lisp/frame.el Sat Aug 14 05:22:15 1993 *************** *** 112,116 **** ;; Handle `reverse' as a parameter. (if (cdr (or (assq 'reverse initial-frame-alist) ! (assq 'reverse default-frame-alist))) (let ((params (frame-parameters frame-initial-frame))) (modify-frame-parameters --- 112,119 ---- ;; Handle `reverse' as a parameter. (if (cdr (or (assq 'reverse initial-frame-alist) ! (assq 'reverse default-frame-alist) ! (cons nil ! (member (x-get-resource "reverseVideo" "ReverseVideo") ! '("on" "true"))))) (let ((params (frame-parameters frame-initial-frame))) (modify-frame-parameters *************** *** 367,371 **** (while (not (eq (frame-visible-p frame) t)) (setq frame (previous-frame frame))) ! (setq arg (1- arg))) (raise-frame frame) (select-frame frame))) --- 370,374 ---- (while (not (eq (frame-visible-p frame) t)) (setq frame (previous-frame frame))) ! (setq arg (1+ arg))) (raise-frame frame) (select-frame frame))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/gnus.el emacs-19.19/lisp/gnus.el *** emacs-19.18/lisp/gnus.el Wed Jul 28 04:35:48 1993 --- emacs-19.19/lisp/gnus.el Tue Aug 10 00:19:08 1993 *************** *** 3,7 **** ;; Author: Masanobu UMEDA ! ;; Version: $Header: /home/fsf/rms/e19/lisp/RCS/gnus.el,v 1.26 1993/07/28 08:35:38 rms Exp $ ;; Keywords: news --- 3,7 ---- ;; Author: Masanobu UMEDA ! ;; Version: $Header: /home/gd/gnu/emacs/19.0/lisp/RCS/gnus.el,v 1.27 1993/08/10 04:14:17 eggert Exp $ ;; Keywords: news *************** *** 5158,5163 **** (list nil))) (cond ((not (numberp n)) (setq n 13)) ! ((< n 0) (setq n (- 26 (% (- n) 26)))) ! (t (setq n (% n 26)))) ;canonicalize N (if (not (zerop n)) ; no action needed for a rot of 0 (progn --- 5158,5162 ---- (list nil))) (cond ((not (numberp n)) (setq n 13)) ! (t (setq n (mod n 26)))) ;canonicalize N (if (not (zerop n)) ; no action needed for a rot of 0 (progn diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/isearch.el emacs-19.19/lisp/isearch.el *** emacs-19.18/lisp/isearch.el Sat Jul 31 14:39:14 1993 --- emacs-19.19/lisp/isearch.el Fri Aug 13 02:32:53 1993 *************** *** 5,9 **** ;; Author: Daniel LaLiberte ! ;; |$Date: 1993/07/31 18:39:09 $|$Revision: 1.47 $ ;; This file is not yet part of GNU Emacs, but it is based almost --- 5,9 ---- ;; Author: Daniel LaLiberte ! ;; |$Date: 1993/08/13 06:32:49 $|$Revision: 1.49 $ ;; This file is not yet part of GNU Emacs, but it is based almost *************** *** 718,723 **** ;;(echo-keystrokes 0) ;; not needed with above message (e (let ((cursor-in-echo-area t)) ! (if isearch-event-data-type ! (allocate-event) (read-char)))) ;; Binding minibuffer-history-symbol to nil is a work-around ;; for some incompatibility with gmhist. --- 718,722 ---- ;;(echo-keystrokes 0) ;; not needed with above message (e (let ((cursor-in-echo-area t)) ! (read-event))) ;; Binding minibuffer-history-symbol to nil is a work-around ;; for some incompatibility with gmhist. *************** *** 731,740 **** (message (isearch-message-prefix nil nil t)) (if (eq 'isearch-yank-word ! (lookup-key ! isearch-mode-map ! (char-to-string ! (if isearch-event-data-type ! (or (event-to-character (next-command-event e)) 0) ! e)))) (setq isearch-word t ;; so message-prefix is right isearch-new-word t) --- 730,734 ---- (message (isearch-message-prefix nil nil t)) (if (eq 'isearch-yank-word ! (lookup-key isearch-mode-map (vector e))) (setq isearch-word t ;; so message-prefix is right isearch-new-word t) *************** *** 1091,1097 **** (set yank-pointer-name (setq yank-pointer ! (% (+ (or yank-pointer 0) ! (if advance (1- length) 1)) ! length))) (setq isearch-string (nth yank-pointer ring) isearch-message (mapconcat 'isearch-text-char-description --- 1085,1091 ---- (set yank-pointer-name (setq yank-pointer ! (mod (+ (or yank-pointer 0) ! (if advance -1 1)) ! length))) (setq isearch-string (nth yank-pointer ring) isearch-message (mapconcat 'isearch-text-char-description *************** *** 1135,1143 **** (set yank-pointer-name (setq yank-pointer ! (% (+ (or yank-pointer 0) ! ;; Add LENGTH here to ensure a positive result. ! length ! (% (- n) length)) ! length))) (erase-buffer) --- 1129,1134 ---- (set yank-pointer-name (setq yank-pointer ! (mod (- (or yank-pointer 0) n) ! length))) (erase-buffer) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/loaddefs.el emacs-19.19/lisp/loaddefs.el *** emacs-19.18/lisp/loaddefs.el Wed Aug 4 21:37:42 1993 --- emacs-19.19/lisp/loaddefs.el Wed Aug 11 14:23:18 1993 *************** *** 430,434 **** ;;; (point-min) (point-max)) ! ;;;### (autoloads (change-log-mode add-change-log-entry-other-window add-change-log-entry find-change-log) "add-log" "add-log.el" (11337 52470)) ;;; Generated autoloads from add-log.el --- 430,434 ---- ;;; (point-min) (point-max)) ! ;;;### (autoloads (change-log-mode add-change-log-entry-other-window add-change-log-entry find-change-log prompt-for-change-log-name) "add-log" "add-log.el" (11354 48317)) ;;; Generated autoloads from add-log.el *************** *** 441,444 **** --- 441,447 ---- instead) with no arguments. It returns a string or nil if it cannot guess.") + (autoload (quote prompt-for-change-log-name) "add-log" "\ + Prompt for a change log name." nil nil) + (autoload (quote find-change-log) "add-log" "\ Find a change log file for \\[add-change-log-entry] and return the name. *************** *** 456,460 **** Optional arg (interactive prefix) non-nil means prompt for user name and site. Second arg is file name of change log. If nil, uses `change-log-default-name'. ! Third arg OTHER-WINDOW non-nil means visit in other window." t nil) (autoload (quote add-change-log-entry-other-window) "add-log" "\ --- 459,465 ---- Optional arg (interactive prefix) non-nil means prompt for user name and site. Second arg is file name of change log. If nil, uses `change-log-default-name'. ! Third arg OTHER-WINDOW non-nil means visit in other window. ! Fourth arg NEW-ENTRY non-nil means always create a new entry at the front; ! never append to an existing entry." t nil) (autoload (quote add-change-log-entry-other-window) "add-log" "\ *************** *** 573,577 **** the defadvice into the body of a defun). ! Look at the file advice.el for comprehensive documentation." nil t) (autoload (quote ad-start-advice) "advice" "\ --- 578,582 ---- the defadvice into the body of a defun). ! Look at the file advice.el for comprehensive documentation." nil (quote macro)) (autoload (quote ad-start-advice) "advice" "\ *************** *** 589,593 **** ;;;*** ! ;;;### (autoloads (ange-ftp-hook-function) "ange-ftp" "ange-ftp.el" (11339 39555)) ;;; Generated autoloads from ange-ftp.el --- 594,598 ---- ;;;*** ! ;;;### (autoloads (ange-ftp-hook-function) "ange-ftp" "ange-ftp.el" (11365 55979)) ;;; Generated autoloads from ange-ftp.el *************** *** 680,684 **** ;;;*** ! ;;;### (autoloads (batch-update-autoloads update-directory-autoloads update-autoloads-here update-file-autoloads) "autoload" "autoload.el" (11332 29335)) ;;; Generated autoloads from autoload.el --- 685,689 ---- ;;;*** ! ;;;### (autoloads (batch-update-autoloads update-directory-autoloads update-autoloads-here update-file-autoloads) "autoload" "autoload.el" (11341 50340)) ;;; Generated autoloads from autoload.el *************** *** 756,760 **** Inclusion of (,ATOM) rather than (, ATOM) or of (,@ATOM) rather than (,@ ATOM) ! will result in errors that will show up very late." nil t) ;;;*** --- 761,765 ---- Inclusion of (,ATOM) rather than (, ATOM) or of (,@ATOM) rather than (,@ ATOM) ! will result in errors that will show up very late." nil (quote macro)) ;;;*** *************** *** 863,867 **** ;;;*** ! ;;;### (autoloads (blackbox) "blackbox" "blackbox.el" (11285 49689)) ;;; Generated autoloads from blackbox.el --- 868,872 ---- ;;;*** ! ;;;### (autoloads (blackbox) "blackbox" "blackbox.el" (11356 18211)) ;;; Generated autoloads from blackbox.el *************** *** 980,984 **** ;;;*** ! ;;;### (autoloads (batch-byte-compile display-call-tree byte-compile compile-defun byte-compile-file byte-recompile-directory) "bytecomp" "bytecomp.el" (11336 59225)) ;;; Generated autoloads from bytecomp.el --- 985,989 ---- ;;;*** ! ;;;### (autoloads (batch-byte-compile display-call-tree byte-compile compile-defun byte-compile-file byte-recompile-directory) "bytecomp" "bytecomp.el" (11367 8231)) ;;; Generated autoloads from bytecomp.el *************** *** 986,989 **** --- 991,995 ---- Recompile every `.el' file in DIRECTORY that needs recompilation. This is if a `.elc' file exists but is older than the `.el' file. + Files in subdirectories of DIRECTORY are processed also. If the `.elc' file does not exist, normally the `.el' file is *not* compiled. *************** *** 990,994 **** But a prefix argument (optional second arg) means ask user, for each such `.el' file, whether to compile it. Prefix argument 0 means ! don't ask and compile the file anyway." t nil) (autoload (quote byte-compile-file) "bytecomp" "\ --- 996,1002 ---- But a prefix argument (optional second arg) means ask user, for each such `.el' file, whether to compile it. Prefix argument 0 means ! don't ask and compile the file anyway. ! ! A nonzero prefix argument also means ask about each subdirectory." t nil) (autoload (quote byte-compile-file) "bytecomp" "\ *************** *** 1030,1034 **** ;;;*** ! ;;;### (autoloads (list-yahrzeit-dates calendar) "calendar" "calendar.el" (11327 35047)) ;;; Generated autoloads from calendar.el --- 1038,1042 ---- ;;;*** ! ;;;### (autoloads (list-yahrzeit-dates calendar) "calendar" "calendar.el" (11367 14240)) ;;; Generated autoloads from calendar.el *************** *** 1277,1304 **** See the documentation of diary-date-forms for an explanation.") - (defvar diary-date-forms (if european-calendar-style european-date-diary-pattern american-date-diary-pattern) "\ - *List of pseudo-patterns describing the forms of date used in the diary. - The patterns on the list must be MUTUALLY EXCLUSIVE and must should not match - any portion of the diary entry itself, just the date component. - - A pseudo-pattern is a list of regular expressions and the keywords `month', - `day', `year', `monthname', and `dayname'. The keyword `monthname' will - match the name of the month, capitalized or not, or its three-letter - abbreviation, followed by a period or not; it will also match `*'. - Similarly, `dayname' will match the name of the day, capitalized or not, or - its three-letter abbreviation, followed by a period or not. The keywords - `month', `day', and `year' will match those numerical values, preceded by - arbitrarily many zeros; they will also match `*'. - - The matching of the diary entries with the date forms is done with the - standard syntax table from Fundamental mode, but with the `*' changed so - that it is a word constituent. - - If, to be mutually exclusive, a pseudo-pattern must match a portion of the - diary entry itself, the first element of the pattern MUST be `backup'. This - directive causes the date recognizer to back up to the beginning of the - current word of the diary entry, so in no case can the pattern match more than - a portion of the first word of the diary entry.") - (defvar european-calendar-display-form (quote ((if dayname (concat dayname ", ")) day " " monthname " " year)) "\ *Pseudo-pattern governing the way a date appears in the European style. --- 1285,1288 ---- *************** *** 1309,1334 **** See the documentation of calendar-date-display-forms for an explanation.") - (defvar calendar-date-display-form (if european-calendar-style european-calendar-display-form american-calendar-display-form) "\ - *Pseudo-pattern governing the way a date appears. - - Used by the function `calendar-date-string', a pseudo-pattern is a list of - expressions that can involve the keywords `month', `day', and `year', all - numbers in string form, and `monthname' and `dayname', both alphabetic - strings. For example, the ISO standard would use the pseudo- pattern - - '(year \"-\" month \"-\" day) - - while a typical American form would be - - '(month \"/\" day \"/\" (substring year -2)) - - and - - '((format \"%9s, %9s %2s, %4s\" dayname monthname day year)) - - would give the usual American style in fixed-length fields. - - See the documentation of the function `calendar-date-string'.") - (defvar print-diary-entries-hook (quote lpr-buffer) "\ *List of functions called after a temporary diary buffer is prepared. --- 1293,1296 ---- *************** *** 1365,1370 **** lexicographic order.") ! (defvar diary-display-hook (quote simple-diary-display) "\ *List of functions that handle the display of the diary. Ordinarily, this just displays the diary buffer (with holidays indicated in --- 1327,1338 ---- lexicographic order.") ! (defvar diary-hook nil "\ ! *List of functions called after the display of the diary. ! Can be used for appointment notification.") ! ! (defvar diary-display-hook nil "\ *List of functions that handle the display of the diary. + If nil (the default), `simple-diary-display' will be used. Use `ignore' for no + diary display. Ordinarily, this just displays the diary buffer (with holidays indicated in *************** *** 1373,1379 **** by date, of all relevant diary entries in the form of ((MONTH DAY YEAR) STRING), where string is the diary entry for the given date. This can be ! used, for example, to handle appointment notification, prepare a different ! buffer for display (perhaps combined with holidays), or produce hard copy ! output. A function `fancy-diary-display' is provided as an alternative --- 1341,1346 ---- by date, of all relevant diary entries in the form of ((MONTH DAY YEAR) STRING), where string is the diary entry for the given date. This can be ! used, for example, a different buffer for display (perhaps combined with ! holidays), or produce hard copy output. A function `fancy-diary-display' is provided as an alternative *************** *** 1437,1441 **** See the documentation for `calendar-holidays' for details.") ! (defvar hebrew-holidays (quote ((holiday-rosh-hashanah-etc) (if all-hebrew-calendar-holidays (holiday-julian 11 (let* ((m displayed-month) (y displayed-year) (year)) (increment-calendar-month m y -1) (let ((year (extract-calendar-year (calendar-julian-from-absolute (calendar-absolute-from-gregorian (list m 1 y)))))) (if (zerop (% (1+ year) 4)) 22 21))) "\"Tal Umatar\" (evening)")) (if all-hebrew-calendar-holidays (holiday-hanukkah) (holiday-hebrew 9 25 "Hanukkah")) (if all-hebrew-calendar-holidays (holiday-hebrew 10 (let ((h-year (extract-calendar-year (calendar-hebrew-from-absolute (calendar-absolute-from-gregorian (list displayed-month 28 displayed-year)))))) (if (= (% (calendar-absolute-from-hebrew (list 10 10 h-year)) 7) 6) 11 10)) "Tzom Teveth")) (if all-hebrew-calendar-holidays (holiday-hebrew 11 15 "Tu B'Shevat")) (if all-hebrew-calendar-holidays (holiday-hebrew 11 (let ((m displayed-month) (y displayed-year)) (increment-calendar-month m y 1) (let* ((h-year (extract-calendar-year (calendar-hebrew-from-absolute (calendar-absolute-from-gregorian (list m (calendar-last-day-of-month m y) y))))) (s-s (calendar-hebrew-from-absolute (if (= (% (calendar-absolute-from-hebrew (list 7 1 h-year)) 7) 6) (calendar-dayname-on-or-before 6 (calendar-absolute-from-hebrew (list 11 17 h-year))) (calendar-dayname-on-or-before 6 (calendar-absolute-from-hebrew (list 11 16 h-year)))))) (day (extract-calendar-day s-s))) day)) "Shabbat Shirah")) (holiday-passover-etc) (if (and all-hebrew-calendar-holidays (let* ((m displayed-month) (y displayed-year) (year)) (increment-calendar-month m y -1) (let ((year (extract-calendar-year (calendar-julian-from-absolute (calendar-absolute-from-gregorian (list m 1 y)))))) (= 21 (% year 28))))) (holiday-julian 3 26 "Kiddush HaHamah")) (if all-hebrew-calendar-holidays (holiday-tisha-b-av-etc)))) "\ *Jewish holidays. See the documentation for `calendar-holidays' for details.") --- 1404,1416 ---- See the documentation for `calendar-holidays' for details.") ! (defvar hebrew-holidays-1 (quote ((holiday-rosh-hashanah-etc) (if all-hebrew-calendar-holidays (holiday-julian 11 (let* ((m displayed-month) (y displayed-year) (year)) (increment-calendar-month m y -1) (let ((year (extract-calendar-year (calendar-julian-from-absolute (calendar-absolute-from-gregorian (list m 1 y)))))) (if (zerop (% (1+ year) 4)) 22 21))) "\"Tal Umatar\" (evening)"))))) ! ! (defvar hebrew-holidays-2 (quote ((if all-hebrew-calendar-holidays (holiday-hanukkah) (holiday-hebrew 9 25 "Hanukkah")) (if all-hebrew-calendar-holidays (holiday-hebrew 10 (let ((h-year (extract-calendar-year (calendar-hebrew-from-absolute (calendar-absolute-from-gregorian (list displayed-month 28 displayed-year)))))) (if (= (% (calendar-absolute-from-hebrew (list 10 10 h-year)) 7) 6) 11 10)) "Tzom Teveth")) (if all-hebrew-calendar-holidays (holiday-hebrew 11 15 "Tu B'Shevat"))))) ! ! (defvar hebrew-holidays-3 (quote ((if all-hebrew-calendar-holidays (holiday-hebrew 11 (let ((m displayed-month) (y displayed-year)) (increment-calendar-month m y 1) (let* ((h-year (extract-calendar-year (calendar-hebrew-from-absolute (calendar-absolute-from-gregorian (list m (calendar-last-day-of-month m y) y))))) (s-s (calendar-hebrew-from-absolute (if (= (% (calendar-absolute-from-hebrew (list 7 1 h-year)) 7) 6) (calendar-dayname-on-or-before 6 (calendar-absolute-from-hebrew (list 11 17 h-year))) (calendar-dayname-on-or-before 6 (calendar-absolute-from-hebrew (list 11 16 h-year)))))) (day (extract-calendar-day s-s))) day)) "Shabbat Shirah"))))) ! ! (defvar hebrew-holidays-4 (quote ((holiday-passover-etc) (if (and all-hebrew-calendar-holidays (let* ((m displayed-month) (y displayed-year) (year)) (increment-calendar-month m y -1) (let ((year (extract-calendar-year (calendar-julian-from-absolute (calendar-absolute-from-gregorian (list m 1 y)))))) (= 21 (% year 28))))) (holiday-julian 3 26 "Kiddush HaHamah")) (if all-hebrew-calendar-holidays (holiday-tisha-b-av-etc))))) ! ! (defvar hebrew-holidays (append hebrew-holidays-1 hebrew-holidays-2 hebrew-holidays-3 hebrew-holidays-4) "\ *Jewish holidays. See the documentation for `calendar-holidays' for details.") *************** *** 1575,1579 **** ;;;*** ! ;;;### (autoloads (make-comint) "comint" "comint.el" (11335 3957)) ;;; Generated autoloads from comint.el --- 1550,1554 ---- ;;;*** ! ;;;### (autoloads (make-comint) "comint" "comint.el" (11367 8243)) ;;; Generated autoloads from comint.el *************** *** 1680,1684 **** ;;;*** ! ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie) "cookie1" "cookie1.el" (11337 43735)) ;;; Generated autoloads from cookie1.el --- 1655,1659 ---- ;;;*** ! ;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie) "cookie1" "cookie1.el" (11356 11391)) ;;; Generated autoloads from cookie1.el *************** *** 1701,1705 **** ;;;*** ! ;;;### (autoloads (c++-mode) "cplus-md" "cplus-md.el" (11296 5913)) ;;; Generated autoloads from cplus-md.el --- 1676,1680 ---- ;;;*** ! ;;;### (autoloads (c++-mode) "cplus-md" "cplus-md.el" (11349 24039)) ;;; Generated autoloads from cplus-md.el *************** *** 1839,1843 **** ;;;*** ! ;;;### (autoloads (diary) "diary" "diary.el" (11300 39849)) ;;; Generated autoloads from diary.el --- 1814,1818 ---- ;;;*** ! ;;;### (autoloads (diary) "diary" "diary.el" (11360 16265)) ;;; Generated autoloads from diary.el *************** *** 1846,1850 **** If no argument is provided, the number of days of diary entries is governed by the variable `number-of-diary-entries'. This function is suitable for ! execution in a .emacs file." t nil) ;;;*** --- 1821,1825 ---- If no argument is provided, the number of days of diary entries is governed by the variable `number-of-diary-entries'. This function is suitable for ! execution in a `.emacs' file." t nil) ;;;*** *************** *** 1867,1871 **** ;;;*** ! ;;;### (autoloads (dired-hide-all dired-hide-subdir dired-tree-down dired-tree-up dired-kill-subdir dired-mark-subdir-files dired-goto-subdir dired-prev-subdir dired-maybe-insert-subdir dired-downcase dired-upcase dired-do-symlink-regexp dired-do-hardlink-regexp dired-do-copy-regexp dired-do-rename-regexp dired-do-rename dired-do-hardlink dired-do-symlink dired-do-copy dired-create-directory dired-string-replace-match dired-do-redisplay dired-do-load dired-do-byte-compile dired-do-compress dired-do-kill-lines dired-do-shell-command dired-do-print dired-do-chown dired-do-chgrp dired-do-chmod dired-backup-diff dired-diff) "dired-aux" "dired-aux.el" (11315 32230)) ;;; Generated autoloads from dired-aux.el --- 1842,1846 ---- ;;;*** ! ;;;### (autoloads (dired-hide-all dired-hide-subdir dired-tree-down dired-tree-up dired-kill-subdir dired-mark-subdir-files dired-goto-subdir dired-prev-subdir dired-maybe-insert-subdir dired-downcase dired-upcase dired-do-symlink-regexp dired-do-hardlink-regexp dired-do-copy-regexp dired-do-rename-regexp dired-do-rename dired-do-hardlink dired-do-symlink dired-do-copy dired-create-directory dired-string-replace-match dired-do-redisplay dired-do-load dired-do-byte-compile dired-do-compress dired-do-kill-lines dired-do-shell-command dired-do-print dired-do-chown dired-do-chgrp dired-do-chmod dired-backup-diff dired-diff) "dired-aux" "dired-aux.el" (11364 34565)) ;;; Generated autoloads from dired-aux.el *************** *** 1873,1877 **** Compare file at point with file FILE using `diff'. FILE defaults to the file at the mark. ! The prompted-for file is the first file given to `diff'." t nil) (autoload (quote dired-backup-diff) "dired-aux" "\ --- 1848,1854 ---- Compare file at point with file FILE using `diff'. FILE defaults to the file at the mark. ! The prompted-for file is the first file given to `diff'. ! With prefix arg, prompt for second argument SWITCHES, ! which is options for `diff'." t nil) (autoload (quote dired-backup-diff) "dired-aux" "\ *************** *** 1879,1883 **** Uses the latest backup, if there are several numerical backups. If this file is a backup, diff it with its original. ! The backup file is the first file given to `diff'." t nil) (autoload (quote dired-do-chmod) "dired-aux" "\ --- 1856,1861 ---- Uses the latest backup, if there are several numerical backups. If this file is a backup, diff it with its original. ! The backup file is the first file given to `diff'. ! With prefix arg, prompt for argument SWITCHES which is options for `diff'." t nil) (autoload (quote dired-do-chmod) "dired-aux" "\ *************** *** 2043,2047 **** ;;;*** ! ;;;### (autoloads (dired-noselect dired-other-frame dired-other-window dired) "dired" "dired.el" (11330 12951)) ;;; Generated autoloads from dired.el --- 2021,2025 ---- ;;;*** ! ;;;### (autoloads (dired-noselect dired-other-frame dired-other-window dired) "dired" "dired.el" (11355 44777)) ;;; Generated autoloads from dired.el *************** *** 2182,2186 **** ;;;*** ! ;;;### (autoloads (dissociated-press) "dissociate" "dissociate.el" (11285 51167)) ;;; Generated autoloads from dissociate.el --- 2160,2164 ---- ;;;*** ! ;;;### (autoloads (dissociated-press) "dissociate" "dissociate.el" (11356 11391)) ;;; Generated autoloads from dissociate.el *************** *** 2196,2200 **** ;;;*** ! ;;;### (autoloads (doctor) "doctor" "doctor.el" (11285 51174)) ;;; Generated autoloads from doctor.el --- 2174,2178 ---- ;;;*** ! ;;;### (autoloads (doctor) "doctor" "doctor.el" (11344 11919)) ;;; Generated autoloads from doctor.el *************** *** 2204,2208 **** ;;;*** ! ;;;### (autoloads (dunnet) "dunnet" "dunnet.el" (11331 7826)) ;;; Generated autoloads from dunnet.el --- 2182,2186 ---- ;;;*** ! ;;;### (autoloads (dunnet) "dunnet" "dunnet.el" (11356 11391)) ;;; Generated autoloads from dunnet.el *************** *** 2287,2291 **** ;;;*** ! ;;;### (autoloads (edt-emulation-on) "edt" "edt.el" (11285 51187)) ;;; Generated autoloads from edt.el --- 2265,2269 ---- ;;;*** ! ;;;### (autoloads (edt-emulation-on) "edt" "edt.el" (11344 10928)) ;;; Generated autoloads from edt.el *************** *** 2306,2310 **** ;;;*** ! ;;;### (autoloads (emerge-files-with-ancestor-remote emerge-files-remote emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor emerge-buffers emerge-files-with-ancestor emerge-files) "emerge" "emerge.el" (11292 61746)) ;;; Generated autoloads from emerge.el --- 2284,2288 ---- ;;;*** ! ;;;### (autoloads (emerge-files-with-ancestor-remote emerge-files-remote emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor emerge-buffers emerge-files-with-ancestor emerge-files) "emerge" "emerge.el" (11356 11307)) ;;; Generated autoloads from emerge.el *************** *** 2519,2523 **** ;;;*** ! ;;;### (autoloads (complete-tag select-tags-table tags-apropos list-tags tags-query-replace tags-search tags-loop-continue next-file find-tag-regexp find-tag-other-frame find-tag-other-window find-tag find-tag-noselect tags-table-files visit-tags-table) "etags" "etags.el" (11288 45533)) ;;; Generated autoloads from etags.el --- 2497,2501 ---- ;;;*** ! ;;;### (autoloads (complete-tag select-tags-table tags-apropos list-tags tags-query-replace tags-search tags-loop-continue next-file find-tag-regexp find-tag-other-frame find-tag-other-window find-tag find-tag-noselect tags-table-files visit-tags-table) "etags" "etags.el" (11364 43321)) ;;; Generated autoloads from etags.el *************** *** 2750,2755 **** ;;;*** ! ;;;### (autoloads (font-lock-mode) "font-lock" "/home/fsf/rms/e19/lisp/font-lock.el" (11325 54485)) ! ;;; Generated autoloads from /home/fsf/rms/e19/lisp/font-lock.el (defvar font-lock-mode-hook nil "\ --- 2728,2733 ---- ;;;*** ! ;;;### (autoloads (font-lock-mode) "font-lock" "font-lock.el" (11361 29125)) ! ;;; Generated autoloads from font-lock.el (defvar font-lock-mode-hook nil "\ *************** *** 2874,2878 **** ;;;*** ! ;;;### (autoloads (gnus) "gnus" "gnus.el" (11336 19282)) ;;; Generated autoloads from gnus.el --- 2852,2856 ---- ;;;*** ! ;;;### (autoloads (gnus) "gnus" "gnus.el" (11367 8636)) ;;; Generated autoloads from gnus.el *************** *** 2883,2887 **** ;;;*** ! ;;;### (autoloads (gnus-post-news) "gnuspost" "gnuspost.el" (11280 64406)) ;;; Generated autoloads from gnuspost.el --- 2861,2865 ---- ;;;*** ! ;;;### (autoloads (gnus-post-news) "gnuspost" "gnuspost.el" (11339 29602)) ;;; Generated autoloads from gnuspost.el *************** *** 2896,2900 **** ;;;*** ! ;;;### (autoloads (gomoku) "gomoku" "gomoku.el" (10948 54946)) ;;; Generated autoloads from gomoku.el --- 2874,2878 ---- ;;;*** ! ;;;### (autoloads (gomoku) "gomoku" "gomoku.el" (11356 11391)) ;;; Generated autoloads from gomoku.el *************** *** 2923,2927 **** ;;;*** ! ;;;### (autoloads (xdb dbx sdb gdb) "gud" "gud.el" (11332 46975)) ;;; Generated autoloads from gud.el --- 2901,2905 ---- ;;;*** ! ;;;### (autoloads (xdb dbx sdb gdb) "gud" "gud.el" (11365 54337)) ;;; Generated autoloads from gud.el *************** *** 3126,3130 **** Construct a function similar to `hippie-expand'. Make it use the expansion functions in TRY-LIST. An optional second ! argument VERBOSE non-nil makes the function verbose." nil t) ;;;*** --- 3104,3108 ---- Construct a function similar to `hippie-expand'. Make it use the expansion functions in TRY-LIST. An optional second ! argument VERBOSE non-nil makes the function verbose." nil (quote macro)) ;;;*** *************** *** 3142,3147 **** *Program name for invoking an inferior Lisp with for Inferior Lisp mode.") ! (defvar inferior-lisp-load-command "(load \"%s\") ! " "\ *Format-string for building a Lisp expression to load a file. This format string should use `%s' to substitute a file name --- 3120,3124 ---- *Program name for invoking an inferior Lisp with for Inferior Lisp mode.") ! (defvar inferior-lisp-load-command "(load \"%s\")\n" "\ *Format-string for building a Lisp expression to load a file. This format string should use `%s' to substitute a file name *************** *** 3182,3186 **** ;;;*** ! ;;;### (autoloads (Info-goto-emacs-key-command-node Info-goto-emacs-command-node info) "info" "info.el" (11299 35162)) ;;; Generated autoloads from info.el --- 3159,3163 ---- ;;;*** ! ;;;### (autoloads (Info-goto-emacs-key-command-node Info-goto-emacs-command-node info-standalone info) "info" "info.el" (11362 48870)) ;;; Generated autoloads from info.el *************** *** 3193,3202 **** to read a file name from the minibuffer." t nil) (autoload (quote Info-goto-emacs-command-node) "info" "\ ! Go to the Info node in the Emacs manual for command COMMAND." t nil) (autoload (quote Info-goto-emacs-key-command-node) "info" "\ Go to the Info node in the Emacs manual the command bound to KEY, a string. ! Interactively, if the binding is execute-extended-command, a command is read." t nil) ;;;*** --- 3170,3186 ---- to read a file name from the minibuffer." t nil) + (autoload (quote info-standalone) "info" "\ + Run Emacs as a standalone Info reader. + Usage: emacs -f info-standalone [filename] + In standalone mode, \\\\[Info-exit] exits Emacs itself." nil nil) + (autoload (quote Info-goto-emacs-command-node) "info" "\ ! Go to the Info node in the Emacs manual for command COMMAND. ! The command is found by looking up in Emacs manual's Command Index." t nil) (autoload (quote Info-goto-emacs-key-command-node) "info" "\ Go to the Info node in the Emacs manual the command bound to KEY, a string. ! Interactively, if the binding is execute-extended-command, a command is read. ! The command is found by looking up in Emacs manual's Command Index." t nil) ;;;*** *************** *** 3233,3237 **** ;;;*** ! ;;;### (autoloads (ispell-region ispell-word ispell) "ispell" "ispell.el" (11332 65354)) ;;; Generated autoloads from ispell.el --- 3217,3221 ---- ;;;*** ! ;;;### (autoloads (ispell-region ispell-word ispell) "ispell" "ispell.el" (11344 51605)) ;;; Generated autoloads from ispell.el *************** *** 3298,3302 **** ;;;*** ! ;;;### (autoloads (life) "life" "life.el" (11285 51286)) ;;; Generated autoloads from life.el --- 3282,3286 ---- ;;;*** ! ;;;### (autoloads (life) "life" "life.el" (11356 11391)) ;;; Generated autoloads from life.el *************** *** 3319,3323 **** ;;;*** ! ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer) "lpr" "lpr.el" (11187 44821)) ;;; Generated autoloads from lpr.el --- 3303,3307 ---- ;;;*** ! ;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer) "lpr" "lpr.el" (11359 12171)) ;;; Generated autoloads from lpr.el *************** *** 3346,3350 **** ;;;*** ! ;;;### (autoloads (phases-of-moon) "lunar" "lunar.el" (11298 18264)) ;;; Generated autoloads from lunar.el --- 3330,3334 ---- ;;;*** ! ;;;### (autoloads (phases-of-moon) "lunar" "lunar.el" (11367 8268)) ;;; Generated autoloads from lunar.el *************** *** 3357,3361 **** ;;;*** ! ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro name-last-kbd-macro) "macros" "macros.el" (11285 51300)) ;;; Generated autoloads from macros.el --- 3341,3345 ---- ;;;*** ! ;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro name-last-kbd-macro) "macros" "macros.el" (11351 17266)) ;;; Generated autoloads from macros.el *************** *** 3448,3452 **** ;;;*** ! ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup) "mailabbrev" "mailabbrev.el" (11324 36346)) ;;; Generated autoloads from mailabbrev.el --- 3432,3436 ---- ;;;*** ! ;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup) "mailabbrev" "mailabbrev.el" (11349 45422)) ;;; Generated autoloads from mailabbrev.el *************** *** 3566,3572 **** ;;;*** ! ;;;### (autoloads (manual-entry) "man" "man.el" (11321 63369)) ;;; Generated autoloads from man.el (autoload (quote manual-entry) "man" "\ Get a Un*x manual page and put it in a buffer. --- 3550,3558 ---- ;;;*** ! ;;;### (autoloads (manual-entry) "man" "man.el" (11358 46030)) ;;; Generated autoloads from man.el + (defalias (quote man) (quote manual-entry)) + (autoload (quote manual-entry) "man" "\ Get a Un*x manual page and put it in a buffer. *************** *** 3579,3583 **** ;;;*** ! ;;;### (autoloads (map-y-or-n-p) "map-ynp" "map-ynp.el" (11319 45784)) ;;; Generated autoloads from map-ynp.el --- 3565,3569 ---- ;;;*** ! ;;;### (autoloads (map-y-or-n-p) "map-ynp" "map-ynp.el" (11342 16097)) ;;; Generated autoloads from map-ynp.el *************** *** 3624,3628 **** ;;;*** ! ;;;### (autoloads (mh-smail mh-rmail) "mh-e" "mh-e.el" (11335 17728)) ;;; Generated autoloads from mh-e.el --- 3610,3614 ---- ;;;*** ! ;;;### (autoloads (mh-smail mh-rmail) "mh-e" "mh-e.el" (11365 38303)) ;;; Generated autoloads from mh-e.el *************** *** 3637,3641 **** ;;;*** ! ;;;### (autoloads (convert-mocklisp-buffer) "mlconvert" "mlconvert.el" (11285 51423)) ;;; Generated autoloads from mlconvert.el --- 3623,3627 ---- ;;;*** ! ;;;### (autoloads (convert-mocklisp-buffer) "mlconvert" "mlconvert.el" (11339 6975)) ;;; Generated autoloads from mlconvert.el *************** *** 3674,3678 **** ;;;*** ! ;;;### (autoloads (mpuz) "mpuz" "mpuz.el" (11285 51427)) ;;; Generated autoloads from mpuz.el --- 3660,3664 ---- ;;;*** ! ;;;### (autoloads (mpuz) "mpuz" "mpuz.el" (11356 11391)) ;;; Generated autoloads from mpuz.el *************** *** 3727,3731 **** ;;;*** ! ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el" (11319 20136)) ;;; Generated autoloads from outline.el --- 3713,3717 ---- ;;;*** ! ;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el" (11340 12742)) ;;; Generated autoloads from outline.el *************** *** 3961,3965 **** ;;;*** ! ;;;### (autoloads (reposition-window) "reposition" "reposition.el" (11185 15878)) ;;; Generated autoloads from reposition.el --- 3947,3951 ---- ;;;*** ! ;;;### (autoloads (reposition-window) "reposition" "reposition.el" (11339 34632)) ;;; Generated autoloads from reposition.el *************** *** 3995,3999 **** ;;;*** ! ;;;### (autoloads (make-ring ring-p) "ring" "ring.el" (11227 4056)) ;;; Generated autoloads from ring.el --- 3981,3985 ---- ;;;*** ! ;;;### (autoloads (make-ring ring-p) "ring" "ring.el" (11367 8270)) ;;; Generated autoloads from ring.el *************** *** 4078,4082 **** ;;;*** ! ;;;### (autoloads (rmail-input rmail-mode rmail) "rmail" "rmail.el" (11334 11170)) ;;; Generated autoloads from rmail.el --- 4064,4068 ---- ;;;*** ! ;;;### (autoloads (rmail-input rmail-mode rmail) "rmail" "rmail.el" (11360 11262)) ;;; Generated autoloads from rmail.el *************** *** 4177,4181 **** ;;;*** ! ;;;### (autoloads (sc-cite-original) "sc" "sc.el" (11297 261)) ;;; Generated autoloads from sc.el --- 4163,4167 ---- ;;;*** ! ;;;### (autoloads (sc-cite-original) "sc" "sc.el" (11350 50069)) ;;; Generated autoloads from sc.el *************** *** 4247,4251 **** ;;;*** ! ;;;### (autoloads (mail-other-frame mail-other-window mail mail-mode) "sendmail" "sendmail.el" (11352 5490)) ;;; Generated autoloads from sendmail.el --- 4233,4237 ---- ;;;*** ! ;;;### (autoloads (mail-other-frame mail-other-window mail mail-mode) "sendmail" "sendmail.el" (11356 48606)) ;;; Generated autoloads from sendmail.el *************** *** 4338,4342 **** ;;;*** ! ;;;### (autoloads (server-start) "server" "server.el" (11332 54913)) ;;; Generated autoloads from server.el --- 4324,4328 ---- ;;;*** ! ;;;### (autoloads (server-start) "server" "server.el" (11365 58935)) ;;; Generated autoloads from server.el *************** *** 4401,4405 **** ;;;*** ! ;;;### (autoloads (sunrise-sunset) "solar" "solar.el" (11310 32522)) ;;; Generated autoloads from solar.el --- 4387,4391 ---- ;;;*** ! ;;;### (autoloads (sunrise-sunset) "solar" "solar.el" (11367 8281)) ;;; Generated autoloads from solar.el *************** *** 4449,4453 **** ;;;*** ! ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields sort-fields sort-float-fields sort-numeric-fields sort-pages sort-paragraphs sort-lines) "sort" "sort.el" (11285 51497)) ;;; Generated autoloads from sort.el --- 4435,4439 ---- ;;;*** ! ;;;### (autoloads (reverse-region sort-columns sort-regexp-fields sort-fields sort-float-fields sort-numeric-fields sort-pages sort-paragraphs sort-lines) "sort" "sort.el" (11344 9594)) ;;; Generated autoloads from sort.el *************** *** 4584,4588 **** ;;;*** ! ;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (11336 20101)) ;;; Generated autoloads from tar-mode.el --- 4570,4574 ---- ;;;*** ! ;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (11354 62228)) ;;; Generated autoloads from tar-mode.el *************** *** 4591,4603 **** You can move around using the usual cursor motion commands. Letters no longer insert themselves. ! Type 'e' to pull a file out of the tar file and into its own buffer. ! Type 'c' to copy an entry from the tar file into another file on disk. ! If you edit a sub-file of this archive (as with the 'e' command) and ! save it with Control-X Control-S, the contents of that buffer will be saved back into the tar-file buffer; in this way you can edit a file inside of a tar archive without extracting it and re-archiving it. ! See also: variables tar-update-datestamp and tar-anal-blocksize. \\{tar-mode-map}" nil nil) --- 4577,4589 ---- You can move around using the usual cursor motion commands. Letters no longer insert themselves. ! Type `e' to pull a file out of the tar file and into its own buffer. ! Type `c' to copy an entry from the tar file into another file on disk. ! If you edit a sub-file of this archive (as with the `e' command) and ! save it with Control-x Control-s, the contents of that buffer will be saved back into the tar-file buffer; in this way you can edit a file inside of a tar archive without extracting it and re-archiving it. ! See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. \\{tar-mode-map}" nil nil) *************** *** 4604,4608 **** ;;;*** ! ;;;### (autoloads (rsh telnet) "telnet" "telnet.el" (11283 60253)) ;;; Generated autoloads from telnet.el --- 4590,4594 ---- ;;;*** ! ;;;### (autoloads (rsh telnet) "telnet" "telnet.el" (11357 58585)) ;;; Generated autoloads from telnet.el *************** *** 4656,4660 **** ;;;*** ! ;;;### (autoloads (latex-mode plain-tex-mode tex-mode) "tex-mode" "tex-mode.el" (11285 51540)) ;;; Generated autoloads from tex-mode.el --- 4642,4646 ---- ;;;*** ! ;;;### (autoloads (latex-mode plain-tex-mode tex-mode) "tex-mode" "tex-mode.el" (11354 8216)) ;;; Generated autoloads from tex-mode.el *************** *** 4850,4854 **** ;;;*** ! ;;;### (autoloads (texinfo-mode) "texinfo" "texinfo.el" (11336 13830)) ;;; Generated autoloads from texinfo.el --- 4836,4840 ---- ;;;*** ! ;;;### (autoloads (texinfo-mode) "texinfo" "texinfo.el" (11367 23334)) ;;; Generated autoloads from texinfo.el *************** *** 4937,4940 **** --- 4923,4940 ---- ;;;*** + ;;;### (autoloads (time-stamp) "time-stamp" "time-stamp.el" (11351 4303)) + ;;; Generated autoloads from time-stamp.el + + (autoload (quote time-stamp) "time-stamp" "\ + Update the time stamp string in the buffer. + Only does its thing if the variable time-stamp-active is non-nil. + Typically used on write-file-hooks for automatic time-stamping. + The format of the time stamp is determined by the variable + time-stamp-format. The first time-stamp-line-limit lines of the + buffer (normally 8) are searched for the time stamp template, + and if it is found, a new time stamp is written into it." t nil) + + ;;;*** + ;;;### (autoloads (run-at-time) "timer" "timer.el" (11285 51562)) ;;; Generated autoloads from timer.el *************** *** 4962,4965 **** --- 4962,4977 ---- ;;;*** + ;;;### (autoloads (tpu-edt-on) "tpu-edt" "tpu-edt.el" (11368 32024)) + ;;; Generated autoloads from tpu-edt.el + + (fset (quote tpu-edt-mode) (quote tpu-edt-on)) + + (fset (quote tpu-edt) (quote tpu-edt-on)) + + (autoload (quote tpu-edt-on) "tpu-edt" "\ + Turn on TPU/edt emulation." t nil) + + ;;;*** + ;;;### (autoloads (tq-create) "tq" "tq.el" (10941 58296)) ;;; Generated autoloads from tq.el *************** *** 5125,5129 **** ;;;*** ! ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "unrmail.el" (11176 61386)) ;;; Generated autoloads from unrmail.el --- 5137,5141 ---- ;;;*** ! ;;;### (autoloads (unrmail batch-unrmail) "unrmail" "unrmail.el" (11345 60792)) ;;; Generated autoloads from unrmail.el *************** *** 5189,5193 **** ;;;*** ! ;;;### (autoloads (vc-update-change-log vc-cancel-version vc-revert-buffer vc-print-log vc-retrieve-snapshot vc-create-snapshot vc-directory vc-insert-headers vc-diff vc-register vc-next-action) "vc" "vc.el" (11321 6270)) ;;; Generated autoloads from vc.el --- 5201,5205 ---- ;;;*** ! ;;;### (autoloads (vc-update-change-log vc-cancel-version vc-revert-buffer vc-print-log vc-retrieve-snapshot vc-create-snapshot vc-directory vc-insert-headers vc-diff vc-register vc-next-action) "vc" "vc.el" (11367 8291)) ;;; Generated autoloads from vc.el diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/lunar.el emacs-19.19/lisp/lunar.el *** emacs-19.18/lisp/lunar.el Fri Jun 18 18:53:12 1993 --- emacs-19.19/lisp/lunar.el Tue Aug 10 00:13:00 1993 *************** *** 97,101 **** (* 132.87 time) (* -0.009173 time time)))))) ! (sun-anomaly (solar-mod (+ 359.2242 (* 29.105356 index) --- 97,101 ---- (* 132.87 time) (* -0.009173 time time)))))) ! (sun-anomaly (mod (+ 359.2242 (* 29.105356 index) *************** *** 103,107 **** (* -0.00000347 time time time)) 360.0)) ! (moon-anomaly (solar-mod (+ 306.0253 (* 385.81691806 index) --- 103,107 ---- (* -0.00000347 time time time)) 360.0)) ! (moon-anomaly (mod (+ 306.0253 (* 385.81691806 index) *************** *** 109,113 **** (* 0.00001236 time time time)) 360.0)) ! (moon-lat (solar-mod (+ 21.2964 (* 390.67050646 index) --- 109,113 ---- (* 0.00001236 time time time)) 360.0)) ! (moon-lat (mod (+ 21.2964 (* 390.67050646 index) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/menu-bar.el emacs-19.19/lisp/menu-bar.el *** emacs-19.18/lisp/menu-bar.el Fri Aug 6 17:04:02 1993 --- emacs-19.19/lisp/menu-bar.el Sat Aug 14 06:31:28 1993 *************** *** 169,172 **** --- 169,174 ---- A large number or nil slows down menu responsiveness.") + (defvar list-buffers-directory nil) + (defun mouse-menu-bar-buffers (event) "Pop up a menu of buffers for selection with the mouse. *************** *** 209,213 **** (set-buffer elt) (if buffer-read-only "%" " ")) ! (or (buffer-file-name elt) "")) elt) head))) --- 211,219 ---- (set-buffer elt) (if buffer-read-only "%" " ")) ! (or (buffer-file-name elt) ! (save-excursion ! (set-buffer elt) ! list-buffers-directory) ! "")) elt) head))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/metamail.el emacs-19.19/lisp/metamail.el *** emacs-19.18/lisp/metamail.el Mon Jul 19 23:02:12 1993 --- emacs-19.19/lisp/metamail.el Sun Aug 15 00:39:52 1993 *************** *** 4,8 **** ;; Author: Masanobu UMEDA ! ;; Version: $Header: metamail.el,v 1.5 93/07/08 21:56:49 umerin Exp $ ;; Keywords: mail, news, mime, multimedia --- 4,8 ---- ;; Author: Masanobu UMEDA ! ;; Version: $Header: /home/gd/gnu/emacs/19.0/lisp/RCS/metamail.el,v 1.1 1993/07/20 03:02:12 rms Exp $ ;; Keywords: mail, news, mime, multimedia *************** *** 28,32 **** ;; metamail|Masanobu UMEDA|umerin@mse.kyutech.ac.jp| ;; Metamail interface for GNU Emacs| ! ;; $Date: 93/07/08 21:56:49 $|$Revision: 1.5 $|~/misc/metamail.el.Z| ;; Note: Metamail does not have all options which is compatible with --- 28,32 ---- ;; metamail|Masanobu UMEDA|umerin@mse.kyutech.ac.jp| ;; Metamail interface for GNU Emacs| ! ;; $Date: 1993/07/20 03:02:12 $|$Revision: 1.1 $|~/misc/metamail.el.Z| ;; Note: Metamail does not have all options which is compatible with diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/mouse.el emacs-19.19/lisp/mouse.el *** emacs-19.18/lisp/mouse.el Sun Aug 8 15:15:52 1993 --- emacs-19.19/lisp/mouse.el Thu Aug 12 18:20:41 1993 *************** *** 92,100 **** (min (max new-width first-col) last-col)))))) ! (defun mouse-set-point (click) "Move point to the position clicked on with the mouse. ! This must be bound to a mouse click." (interactive "e") ! (let ((posn (event-start click))) (and (window-minibuffer-p (posn-window posn)) (not (minibuffer-window-active-p (posn-window posn))) --- 92,102 ---- (min (max new-width first-col) last-col)))))) ! (defun mouse-set-point (event) "Move point to the position clicked on with the mouse. ! This should be bound to a mouse click event type." (interactive "e") ! ;; Use event-end in case called from mouse-drag-region. ! ;; If EVENT is a click, event-end and event-start give same value. ! (let ((posn (event-end event))) (and (window-minibuffer-p (posn-window posn)) (not (minibuffer-window-active-p (posn-window posn))) *************** *** 106,110 **** (defun mouse-set-region (click) "Set the region to the text that the mouse is dragged over. ! This must be bound to a mouse drag event." (interactive "e") (let ((posn (event-start click)) --- 108,112 ---- (defun mouse-set-region (click) "Set the region to the text that the mouse is dragged over. ! This should be bound to a mouse drag event." (interactive "e") (let ((posn (event-start click)) *************** *** 159,164 **** (defun mouse-drag-region (start-event) "Set the region to the text that the mouse is dragged over. ! Highlight the drag area as the user moves the mouse. ! This must be bound to a button-down mouse event." (interactive "e") (let* ((start-posn (event-start start-event)) --- 161,168 ---- (defun mouse-drag-region (start-event) "Set the region to the text that the mouse is dragged over. ! Highlight the drag area as you move the mouse. ! This must be bound to a button-down mouse event. ! In Transient Mark mode, the highlighting remains once you ! release the mouse button. Otherwise, it does not." (interactive "e") (let* ((start-posn (event-start start-event)) *************** *** 216,221 **** mouse-drag-overlay start-point))))) ! ;; Otherwise, we have no idea where the mouse is. ! (t))))) (if (and (eq (get (event-basic-type event) 'event-kind) 'mouse-click) --- 220,233 ---- mouse-drag-overlay start-point))))) ! (t ! (let ((mouse-y (cdr (cdr (mouse-position)))) ! (menu-bar-lines (or (cdr (assq 'menu-bar-lines ! (frame-parameters))) ! 0))) ! ! ;; Are we on the menu bar? ! (and (integerp mouse-y) (< mouse-y menu-bar-lines) ! (mouse-scroll-subr (- mouse-y menu-bar-lines) ! mouse-drag-overlay start-point)))))))) (if (and (eq (get (event-basic-type event) 'event-kind) 'mouse-click) *************** *** 869,882 **** (skip-chars-forward "^ \t\n") (setq choice (buffer-substring beg (point)))))) ! (save-excursion ! (set-buffer (window-buffer (minibuffer-window))) ! (goto-char (max (point-min) (- (point-max) (length choice)))) ! (while (and (not (eobp)) ! (let ((tail (buffer-substring (point) (point-max)))) ! (not (string= tail (substring choice 0 (length tail)))))) ! (forward-char 1)) ! (insert choice) ! (delete-region (point) (point-max)) ! (minibuffer-complete-and-exit)))) ;; Font selection. --- 881,893 ---- (skip-chars-forward "^ \t\n") (setq choice (buffer-substring beg (point)))))) ! (set-buffer (window-buffer (minibuffer-window))) ! (goto-char (max (point-min) (- (point-max) (length choice)))) ! (while (and (not (eobp)) ! (let ((tail (buffer-substring (point) (point-max)))) ! (not (string= tail (substring choice 0 (length tail)))))) ! (forward-char 1)) ! (insert choice) ! (delete-region (point) (point-max)) ! (minibuffer-complete-and-exit))) ;; Font selection. *************** *** 885,893 **** (let* ((default (cdr (assq 'font (frame-parameters (selected-frame))))) (font-alist x-fixed-font-alist) ! (elt (assoc "Misc" font-alist))) (if (assoc "Default" elt) (delete (assoc "Default" elt) elt)) (setcdr elt ! (cons (cons "Default" (cdr (assq 'font (frame-parameters (selected-frame))))) (cdr elt))))) --- 896,904 ---- (let* ((default (cdr (assq 'font (frame-parameters (selected-frame))))) (font-alist x-fixed-font-alist) ! (elt (or (assoc "Misc" font-alist) (nth 1 font-alist)))) (if (assoc "Default" elt) (delete (assoc "Default" elt) elt)) (setcdr elt ! (cons (list "Default" (cdr (assq 'font (frame-parameters (selected-frame))))) (cdr elt))))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/outline.el emacs-19.19/lisp/outline.el *** emacs-19.18/lisp/outline.el Tue Jul 20 13:56:22 1993 --- emacs-19.19/lisp/outline.el Sat Aug 14 05:12:59 1993 *************** *** 1,5 **** ;;; outline.el --- outline mode commands for Emacs ! ;; Copyright (C) 1986 Free Software Foundation, Inc. ;; Maintainer: FSF --- 1,5 ---- ;;; outline.el --- outline mode commands for Emacs ! ;; Copyright (C) 1986, 1993 Free Software Foundation, Inc. ;; Maintainer: FSF *************** *** 165,168 **** --- 165,171 ---- (run-hooks 'text-mode-hook 'outline-mode-hook)) + (defvar outline-minor-mode-prefix "\C-c" + "*Prefix key to use for Outline commands in Outline minor mode.") + (defvar outline-minor-mode-map nil) (if outline-minor-mode-map *************** *** 171,175 **** (define-key outline-minor-mode-map [menu-bar] (lookup-key outline-mode-map [menu-bar])) ! (define-key outline-minor-mode-map "\C-c" (lookup-key outline-mode-map "\C-c"))) --- 174,178 ---- (define-key outline-minor-mode-map [menu-bar] (lookup-key outline-mode-map [menu-bar])) ! (define-key outline-minor-mode-map outline-minor-mode-prefix (lookup-key outline-mode-map "\C-c"))) *************** *** 194,197 **** --- 197,204 ---- (setq selective-display nil))) + (defvar outline-level 'outline-level + "Function of no args to compute a header's nesting level in an outline. + It can assume point is at the beginning of a header line.") + (defun outline-level () "Return the depth to which a statement is nested in the outline. *************** *** 335,341 **** (let ((opoint (point)) (first t) ! (level (outline-level))) (while (and (not (eobp)) ! (or first (> (outline-level) level))) (setq first nil) (outline-next-heading)) --- 342,348 ---- (let ((opoint (point)) (first t) ! (level (funcall outline-level))) (while (and (not (eobp)) ! (or first (> (funcall outline-level) level))) (setq first nil) (outline-next-heading)) *************** *** 358,368 **** (save-excursion (beginning-of-line) ! (let ((start-level (outline-level))) (outline-next-heading) ! (max 1 (- (outline-level) start-level)))))) (save-excursion (save-restriction (beginning-of-line) ! (setq level (+ level (outline-level))) (narrow-to-region (point) (progn (outline-end-of-subtree) (1+ (point)))) --- 365,375 ---- (save-excursion (beginning-of-line) ! (let ((start-level (funcall outline-level))) (outline-next-heading) ! (max 1 (- (funcall outline-level) start-level)))))) (save-excursion (save-restriction (beginning-of-line) ! (setq level (+ level (funcall outline-level))) (narrow-to-region (point) (progn (outline-end-of-subtree) (1+ (point)))) *************** *** 372,376 **** (outline-next-heading) (not (eobp)))) ! (if (<= (outline-level) level) (save-excursion (outline-flag-region (save-excursion --- 379,383 ---- (outline-next-heading) (not (eobp)))) ! (if (<= (funcall outline-level) level) (save-excursion (outline-flag-region (save-excursion *************** *** 387,397 **** (interactive "p") (outline-back-to-heading) ! (if (eq (outline-level) 1) (error "")) ! (while (and (> (outline-level) 1) (> arg 0) (not (bobp))) ! (let ((present-level (outline-level))) ! (while (not (< (outline-level) present-level)) (outline-previous-visible-heading 1)) (setq arg (- arg 1))))) --- 394,404 ---- (interactive "p") (outline-back-to-heading) ! (if (eq (funcall outline-level) 1) (error "")) ! (while (and (> (funcall outline-level) 1) (> arg 0) (not (bobp))) ! (let ((present-level (funcall outline-level))) ! (while (not (< (funcall outline-level) present-level)) (outline-previous-visible-heading 1)) (setq arg (- arg 1))))) *************** *** 416,425 **** "Position the point at the next heading of the same level, and return that position or nil if it cannot be found." ! (let ((level (outline-level))) (outline-next-visible-heading 1) ! (while (and (> (outline-level) level) (not (eobp))) (outline-next-visible-heading 1)) ! (if (< (outline-level) level) nil (point)))) --- 423,432 ---- "Position the point at the next heading of the same level, and return that position or nil if it cannot be found." ! (let ((level (funcall outline-level))) (outline-next-visible-heading 1) ! (while (and (> (funcall outline-level) level) (not (eobp))) (outline-next-visible-heading 1)) ! (if (< (funcall outline-level) level) nil (point)))) *************** *** 444,453 **** "Position the point at the previous heading of the same level, and return that position or nil if it cannot be found." ! (let ((level (outline-level))) (outline-previous-visible-heading 1) ! (while (and (> (outline-level) level) (not (bobp))) (outline-previous-visible-heading 1)) ! (if (< (outline-level) level) nil (point)))) --- 451,460 ---- "Position the point at the previous heading of the same level, and return that position or nil if it cannot be found." ! (let ((level (funcall outline-level))) (outline-previous-visible-heading 1) ! (while (and (> (funcall outline-level) level) (not (bobp))) (outline-previous-visible-heading 1)) ! (if (< (funcall outline-level) level) nil (point)))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/paragraphs.el emacs-19.19/lisp/paragraphs.el *** emacs-19.18/lisp/paragraphs.el Sun May 16 11:49:50 1993 --- emacs-19.19/lisp/paragraphs.el Thu Aug 12 04:08:46 1993 *************** *** 30,34 **** (defconst paragraph-start "^[ \t\n\f]" "\ ! *Regexp for beginning of a line that starts OR separates paragraphs.") (defconst paragraph-separate "^[ \t\f]*$" "\ --- 30,39 ---- (defconst paragraph-start "^[ \t\n\f]" "\ ! *Regexp for beginning of a line that starts OR separates paragraphs. ! This regexp should match lines that separate paragraphs ! and should also match lines that start a paragraph ! \(and are part of that paragraph). ! The variable `paragraph-separate' specifies how to distinguish ! lines that start paragraphs from lines that separate them.") (defconst paragraph-separate "^[ \t\f]*$" "\ diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/paren.el emacs-19.19/lisp/paren.el *** emacs-19.18/lisp/paren.el Tue Aug 3 13:44:41 1993 --- emacs-19.19/lisp/paren.el Thu Aug 12 01:33:10 1993 *************** *** 43,47 **** ;; and show it until input arrives. (defun show-paren-command-hook () ! (if window-system (let (pos dir mismatch (oldpos (point)) (face show-paren-face)) --- 43,49 ---- ;; and show it until input arrives. (defun show-paren-command-hook () ! ;; Do nothing if no window system to display results with. ! ;; Do nothing if input is pending. ! (if (and window-system (sit-for 0)) (let (pos dir mismatch (oldpos (point)) (face show-paren-face)) *************** *** 83,88 **** (internal-find-face 'paren-mismatch)) (progn (setq show-paren-mismatch-face ! (make-face 'paren-mismatch)) (set-face-background 'paren-mismatch "purple")))) --- 85,91 ---- (internal-find-face 'paren-mismatch)) (progn + (make-face 'paren-mismatch) (setq show-paren-mismatch-face ! 'paren-mismatch) (set-face-background 'paren-mismatch "purple")))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/profile.el emacs-19.19/lisp/profile.el *** emacs-19.18/lisp/profile.el Wed Mar 17 11:57:24 1993 --- emacs-19.19/lisp/profile.el Wed Aug 11 16:37:14 1993 *************** *** 87,91 **** ;static struct timezone *tzp = (struct timezone *) NULL; /* no need timezone */ ;static int watch_not_started = 1 ; /* flag */ ! ;static char time_string[30] ; ;int reset_watch() /* this call resets the stopwatch to zero */ --- 87,91 ---- ;static struct timezone *tzp = (struct timezone *) NULL; /* no need timezone */ ;static int watch_not_started = 1 ; /* flag */ ! ;static char time_string[30]; ; ;int reset_watch() /* this call resets the stopwatch to zero */ diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/ring.el emacs-19.19/lisp/ring.el *** emacs-19.18/lisp/ring.el Sun Apr 25 18:25:28 1993 --- emacs-19.19/lisp/ring.el Tue Aug 10 00:13:02 1993 *************** *** 69,74 **** (defun ring-index (index head ringlen veclen) ! (setq index (ring-mod index ringlen)) ! (ring-mod (1- (+ head (- ringlen index))) veclen)) (defun ring-insert (ring item) --- 69,74 ---- (defun ring-index (index head ringlen veclen) ! (setq index (mod index ringlen)) ! (mod (1- (+ head (- ringlen index))) veclen)) (defun ring-insert (ring item) *************** *** 80,84 **** (ln (car (cdr ring)))) (prog1 ! (aset vec (ring-mod (+ hd ln) veclen) item) (if (= ln veclen) (setcar ring (ring-plus1 hd veclen)) --- 80,84 ---- (ln (car (cdr ring)))) (prog1 ! (aset vec (mod (+ hd ln) veclen) item) (if (= ln veclen) (setcar ring (ring-plus1 hd veclen)) *************** *** 95,99 **** (vec (cdr (cdr ring))) (veclen (length vec)) ! (tl (ring-mod (1- (+ hd ln)) veclen)) oldelt) (if (null index) --- 95,99 ---- (vec (cdr (cdr ring))) (veclen (length vec)) ! (tl (mod (1- (+ hd ln)) veclen)) oldelt) (if (null index) *************** *** 107,118 **** (setcar (cdr ring) (1- ln)) oldelt))) - - (defun ring-mod (n m) - "Returns N mod M. M is positive. - Answer is guaranteed to be non-negative, and less than m." - (let ((n (% n m))) - (if (>= n 0) n - (+ n - (if (>= m 0) m (- m)))))) ; (abs m) (defun ring-ref (ring index) --- 107,110 ---- diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/rmail.el emacs-19.19/lisp/rmail.el *** emacs-19.18/lisp/rmail.el Wed Aug 4 17:37:02 1993 --- emacs-19.19/lisp/rmail.el Wed Aug 11 20:23:31 1993 *************** *** 1809,1834 **** (or (mail-fetch-field "Subject") "") "]"))) ! ;; Turn off the usual actions for initializing the message body ! ;; because we want to get only the text from the failure message. ! (let (mail-signature mail-setup-hook) ! ;; If only one window, use it for the mail buffer. ! ;; Otherwise, use another window for the mail buffer ! ;; so that the Rmail buffer remains visible ! ;; and sending the mail will get back to it. ! (if (funcall (if (and (not rmail-mail-new-frame) (one-window-p t)) ! (function mail) ! (function rmail-start-mail)) ! nil nil subject nil nil nil ! (list (list (function (lambda (buf msgnum) ! (save-excursion ! (set-buffer buf) ! (rmail-set-attribute ! "forwarded" t msgnum)))) ! (current-buffer) ! rmail-current-message))) (save-excursion (goto-char (point-max)) (forward-line 1) ! (insert-buffer forward-buffer))))))) (defun rmail-resend (address &optional from comment mail-alias-file) --- 1809,1831 ---- (or (mail-fetch-field "Subject") "") "]"))) ! ;; If only one window, use it for the mail buffer. ! ;; Otherwise, use another window for the mail buffer ! ;; so that the Rmail buffer remains visible ! ;; and sending the mail will get back to it. ! (if (funcall (if (and (not rmail-mail-new-frame) (one-window-p t)) ! (function mail) ! (function rmail-start-mail)) ! nil nil subject nil nil nil ! (list (list (function (lambda (buf msgnum) ! (save-excursion ! (set-buffer buf) ! (rmail-set-attribute ! "forwarded" t msgnum)))) ! (current-buffer) ! rmail-current-message))) (save-excursion (goto-char (point-max)) (forward-line 1) ! (insert-buffer forward-buffer)))))) (defun rmail-resend (address &optional from comment mail-alias-file) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/rnews.el emacs-19.19/lisp/rnews.el *** emacs-19.18/lisp/rnews.el Mon Sep 21 06:51:03 1992 --- emacs-19.19/lisp/rnews.el Tue Aug 10 00:13:05 1993 *************** *** 930,935 **** (list nil))) (cond ((not (numberp n)) (setq n 13)) ! ((< n 0) (setq n (- 26 (% (- n) 26)))) ! (t (setq n (% n 26)))) ;canonicalize N (if (not (zerop n)) ; no action needed for a rot of 0 (progn --- 930,934 ---- (list nil))) (cond ((not (numberp n)) (setq n 13)) ! (t (setq n (mod n 26)))) ;canonicalize N (if (not (zerop n)) ; no action needed for a rot of 0 (progn diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/saveplace.el emacs-19.19/lisp/saveplace.el *** emacs-19.18/lisp/saveplace.el --- emacs-19.19/lisp/saveplace.el Thu Aug 12 21:08:54 1993 *************** *** 0 **** --- 1,186 ---- + ;;; saveplace.el --- automatically save place in files. + + ;; Copyright (C) 1993 Free Software Foundation, Inc. + + ;; Author: Karl Fogel + ;; Maintainer: FSF + ;; Created: July, 1993 + ;; Version: 1.0 + ;; Keywords: bookmarks, placeholders + + ;; This file is part of GNU Emacs. + + ;; GNU Emacs is free software; you can redistribute it and/or modify + ;; it under the terms of the GNU General Public License as published by + ;; the Free Software Foundation; either version 2, or (at your option) + ;; any later version. + + ;; GNU Emacs is distributed in the hope that it will be useful, + ;; but WITHOUT ANY WARRANTY; without even the implied warranty of + ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + ;; GNU General Public License for more details. + + ;; You should have received a copy of the GNU General Public License + ;; along with GNU Emacs; see the file COPYING. If not, write to + ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + + ;; Automatically save place in files, so that visiting them later + ;; (even during a different Emacs session) automatically moves point + ;; to the saved position, when the file is first found. Uses the + ;; value of buffer-local variable save-place to determine whether to + ;; save position or not. + ;; + ;; Don't autoload this, rather, load it, since it modifies + ;; find-file-hooks and other hooks. + + ;; this is what I was using during testing: + ;; (define-key ctl-x-map "p" 'toggle-save-place) + + (defvar save-place-alist nil + "Alist of saved places to go back to when revisiting files. + Each element looks like (FILENAME . POSITION); + visiting file FILENAME goes automatically to position POSITION + rather than the beginning of the buffer. + This alist is saved between Emacs sessions.") + + (defvar save-place nil + "*Non-nil means automatically save place in each file. + This means when you visit a file, point goes to the last place + where it was when you previously visited the same file. + This variable is automatically buffer-local. + + If you wish your place in any file to always be automatically saved, + simply put this in your `~/.emacs' file: + + \(setq-default save-place t\)") + + (make-variable-buffer-local 'save-place) + + (defvar save-place-file "~/.emacs-places" + "*Name of the file that records `save-place-alist' value.") + + (defvar save-place-loaded nil + "Non-nil means that the `save-place-file' has been loaded.") + + (defun toggle-save-place (&optional parg) + "Toggle whether to save your place in this file between sessions. + If this mode is enabled, point is recorded when you kill the buffer + or exit Emacs. Visiting this file again will go to that position, + even in a later Emacs session. + + If called with a prefix arg, the mode is enabled if and only if + the argument is positive. + + To save places automatically in all files, put this in your `.emacs' file: + + \(setq-default save-place t\)" + (interactive "P") + (if (not buffer-file-name) + (message + (format "Buffer \"%s\" not visiting a file." (buffer-name))) + (if (and save-place (or (not parg) (<= parg 0))) + (progn + (message "No place will be saved in this file.") + (setq save-place nil)) + (message "Place will be saved.") + (setq save-place t)))) + + (defun save-place-to-alist () + ;; put filename and point in a cons box and then cons that onto the + ;; front of the save-place-alist, if save-place is non-nil. + ;; Otherwise, just delete that file from the alist. + ;; first check to make sure alist has been loaded in from the master + ;; file. If not, do so, then feel free to modify the alist. It + ;; will be saved again when Emacs is killed. + (or save-place-loaded (load-save-place-alist-from-file)) + (if buffer-file-name + (progn + (let ((cell (assoc buffer-file-name save-place-alist))) + (if cell + (setq save-place-alist (delq cell save-place-alist)))) + (if save-place + (setq save-place-alist + (cons (cons buffer-file-name (point)) + save-place-alist)))))) + + (defun save-place-alist-to-file () + (let ((file (expand-file-name save-place-file))) + (save-excursion + (message (format "Saving places to %s..." file)) + (set-buffer (get-buffer-create " *Saved Places*")) + (delete-region (point-min) (point-max)) + (if (file-readable-p file) + (insert-file-contents file)) + (delete-region (point-min) (point-max)) + (goto-char (point-min)) + (print save-place-alist (current-buffer)) + (write-file file) + (kill-buffer (current-buffer)) + (message (format "Saving places to %s... done." file))))) + + (defun load-save-place-alist-from-file () + (if (not save-place-loaded) + (progn + (setq save-place-loaded t) + (let ((file (expand-file-name save-place-file))) + ;; make sure that the alist does not get overwritten, and then + ;; load it if it exists: + (if (file-readable-p file) + (save-excursion + (message (format "Loading places from %s..." + save-place-file)) + ;; don't want to use find-file because we have been + ;; adding hooks to it. + (set-buffer (get-buffer-create " *Saved Places*")) + (delete-region (point-min) (point-max)) + (insert-file-contents file) + (goto-char (point-min)) + (setq save-place-alist + (car (read-from-string + (buffer-substring (point-min) (point-max))))) + (kill-buffer (current-buffer)) + (message (format "Loading places from %s... done." file)) + t) + t) + nil)))) + + (defun save-places-to-alist () + ;; go through buffer-list, saving places to alist if save-place is + ;; non-nil, deleting them from alist if it is nil. + (let ((buf-list (buffer-list))) + (while buf-list + ;; put this into a save-excursion in case someone is counting on + ;; another function in kill-emacs-hook to act on the last buffer + ;; they were in: + (save-excursion + (set-buffer (car buf-list)) + ;; save-place checks buffer-file-name too, but we can avoid + ;; overhead of function call by checking here too. + (and buffer-file-name (save-place-to-alist)) + (setq buf-list (cdr buf-list)))))) + + (add-hook + 'find-file-hooks + (function + (lambda () + (or save-place-loaded (load-save-place-alist-from-file)) + (let ((cell (assoc buffer-file-name save-place-alist))) + (if cell + (progn + (goto-char (cdr cell)) + ;; and make sure it will be saved again for later. + (setq save-place t))))))) + + (add-hook 'kill-emacs-hook + (function + (lambda () + (progn + (save-places-to-alist) + (save-place-alist-to-file))))) + + (add-hook 'kill-buffer-hook 'save-place-to-alist) + + (provide 'saveplace) ; why not... + + ;;; saveplace.el ends here + diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/simple.el emacs-19.19/lisp/simple.el *** emacs-19.18/lisp/simple.el Sun Aug 8 03:36:33 1993 --- emacs-19.19/lisp/simple.el Tue Aug 10 00:13:11 1993 *************** *** 999,1007 **** interprogram-paste) (or kill-ring (error "Kill ring is empty")) ! (let* ((length (length kill-ring)) ! (ARGth-kill-element ! (nthcdr (% (+ n (- length (length kill-ring-yank-pointer))) ! length) ! kill-ring))) (or do-not-move (setq kill-ring-yank-pointer ARGth-kill-element)) --- 999,1006 ---- interprogram-paste) (or kill-ring (error "Kill ring is empty")) ! (let ((ARGth-kill-element ! (nthcdr (mod (- n (length kill-ring-yank-pointer)) ! (length kill-ring)) ! kill-ring))) (or do-not-move (setq kill-ring-yank-pointer ARGth-kill-element)) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/solar.el emacs-19.19/lisp/solar.el *** emacs-19.18/lisp/solar.el Mon Jun 28 01:18:02 1993 --- emacs-19.19/lisp/solar.el Tue Aug 10 00:13:13 1993 *************** *** 146,150 **** (defun solar-degrees-to-quadrant (angle) "Determines the quadrant of ANGLE." ! (1+ (truncate (/ (solar-mod angle 360.0) 90.0)))) (defun solar-arctan (x quad) --- 146,150 ---- (defun solar-degrees-to-quadrant (angle) "Determines the quadrant of ANGLE." ! (1+ (truncate (/ (mod angle 360.0) 90.0)))) (defun solar-arctan (x quad) *************** *** 164,174 **** (solar-arctan (/ y x) (solar-xy-to-quadrant x y)))) - (defun solar-mod (x y) - "Returns X mod Y; value is *always* non-negative." - (let ((v (% x y))) - (if (> 0 v) - (+ v y) - v))) - (defconst solar-earth-inclination 23.441884 "Inclination of earth's equator to its solar orbit in degrees.") --- 164,167 ---- *************** *** 192,200 **** "Longitude of the sun at DAY in the year." (let ((mean-anomaly (- (* 0.9856 day) 3.289))) ! (solar-mod (+ mean-anomaly ! (* 1.916 (solar-sin-degrees mean-anomaly)) ! (* 0.020 (solar-sin-degrees (* 2 mean-anomaly))) ! 282.634) ! 360))) (defun solar-right-ascension (longitude) --- 185,193 ---- "Longitude of the sun at DAY in the year." (let ((mean-anomaly (- (* 0.9856 day) 3.289))) ! (mod (+ mean-anomaly ! (* 1.916 (solar-sin-degrees mean-anomaly)) ! (* 0.020 (solar-sin-degrees (* 2 mean-anomaly))) ! 282.634) ! 360))) (defun solar-right-ascension (longitude) *************** *** 236,243 **** (- 360 (solar-arccos cos-local-sunrise)))) (local-mean-sunrise ! (solar-mod (- (+ local-sunrise solar-right-ascension-at-sunrise) ! (+ (* 0.065710 approx-sunrise) ! 6.622)) ! 24))) (+ (- local-mean-sunrise (solar-degrees-to-hours calendar-longitude)) (/ calendar-time-zone 60.0)))))) --- 229,236 ---- (- 360 (solar-arccos cos-local-sunrise)))) (local-mean-sunrise ! (mod (- (+ local-sunrise solar-right-ascension-at-sunrise) ! (+ (* 0.065710 approx-sunrise) ! 6.622)) ! 24))) (+ (- local-mean-sunrise (solar-degrees-to-hours calendar-longitude)) (/ calendar-time-zone 60.0)))))) *************** *** 268,274 **** (solar-arccos cos-local-sunset))) (local-mean-sunset ! (solar-mod (- (+ local-sunset solar-right-ascension-at-sunset) ! (+ (* 0.065710 approx-sunset) 6.622)) ! 24))) (+ (- local-mean-sunset (solar-degrees-to-hours calendar-longitude)) (/ calendar-time-zone 60.0)))))) --- 261,267 ---- (solar-arccos cos-local-sunset))) (local-mean-sunset ! (mod (- (+ local-sunset solar-right-ascension-at-sunset) ! (+ (* 0.065710 approx-sunset) 6.622)) ! 24))) (+ (- local-mean-sunset (solar-degrees-to-hours calendar-longitude)) (/ calendar-time-zone 60.0)))))) *************** *** 380,384 **** (correction 1000)) (while (> correction 0.00001) ! (setq app (solar-mod (solar-apparent-longitude-of-sun date) 360.0)) (setq correction (* 58 (solar-sin-degrees (- (* k 90) app)))) (setq date (list (extract-calendar-month date) --- 373,377 ---- (correction 1000)) (while (> correction 0.00001) ! (setq app (mod (solar-apparent-longitude-of-sun date) 360.0)) (setq correction (* 58 (solar-sin-degrees (- (* k 90) app)))) (setq date (list (extract-calendar-month date) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/startup.el emacs-19.19/lisp/startup.el *** emacs-19.18/lisp/startup.el Mon Jul 26 16:01:50 1993 --- emacs-19.19/lisp/startup.el Tue Aug 10 16:20:47 1993 *************** *** 120,123 **** --- 120,131 ---- directory name of the directory where the `.emacs' file was looked for.") + (defvar site-run-file "site-start" + "File containing site-wide run-time initializations. + This file is loaded at run-time before `~/.emacs'. It contains inits + that need to be in place for the entire site, but which, due to their + higher incidence of change, don't make sense to load into emacs' + dumped image. Thus, the run-time load order is: 1. file described in + this variable, if non-nil; 2. `~/.emacs'; 3. `default.el'.") + (defvar init-file-debug nil) *************** *** 213,216 **** --- 221,227 ---- init-file-user (car args) args (cdr args))) + ((string-equal argi "-no-site-file") + (setq site-run-file nil + args (cdr args))) ((string-equal argi "-debug-init") (setq init-file-debug t *************** *** 232,236 **** ;; that it is run before .emacs. There is no point in doing this after ;; .emacs; that is useless. ! (load "site-start" t t) ;; Load that user's init file, or the default one, or none. --- 243,248 ---- ;; that it is run before .emacs. There is no point in doing this after ;; .emacs; that is useless. ! (if site-run-file ! (load site-run-file t t)) ;; Load that user's init file, or the default one, or none. diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/subr.el emacs-19.19/lisp/subr.el *** emacs-19.18/lisp/subr.el Sun Aug 8 15:12:54 1993 --- emacs-19.19/lisp/subr.el Sat Aug 14 03:54:38 1993 *************** *** 420,430 **** (defalias 'compiled-function-p 'byte-code-function-p) - ;;; This name isn't mentioned in the manual, and we've been hoping to - ;;; phase it out, but there's still a lot of code out there, even for - ;;; Emacs 18.59, which uses mod. I'm going to let the byte compiler's - ;;; make-obsolete function to poke people a little more, and leave the - ;;; `mod' name around for a while longer. - (defalias 'mod '%) - ;; Some programs still use this as a function. (defun baud-rate () --- 420,423 ---- *************** *** 574,578 **** (setq buffer-file-name nil) (insert-before-markers string) ! (setq insert-end (point))) (message (or message "Type %s to continue editing.") (single-key-description exit-char)) --- 567,581 ---- (setq buffer-file-name nil) (insert-before-markers string) ! (setq insert-end (point)) ! ;; If the message end is off screen, recenter now. ! (if (> (window-end) insert-end) ! (recenter (/ (window-height) 2))) ! ;; If that pushed message start off the screen, ! ;; scroll to start it at the top of the screen. ! (move-to-window-line 0) ! (if (> (point) pos) ! (progn ! (goto-char pos) ! (recenter 0)))) (message (or message "Type %s to continue editing.") (single-key-description exit-char)) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/tar-mode.el emacs-19.19/lisp/tar-mode.el *** emacs-19.18/lisp/tar-mode.el Sat Jul 31 18:32:52 1993 --- emacs-19.19/lisp/tar-mode.el Thu Aug 12 14:37:53 1993 *************** *** 449,453 **** (define-key tar-mode-map "\^N" 'tar-next-line) (define-key tar-mode-map "o" 'tar-extract-other-window) - (define-key tar-mode-map "\^C" 'tar-copy) (define-key tar-mode-map "p" 'tar-previous-line) (define-key tar-mode-map "\^P" 'tar-previous-line) --- 449,452 ---- diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/texinfo.el emacs-19.19/lisp/texinfo.el *** emacs-19.18/lisp/texinfo.el Sat Jul 17 13:25:26 1993 --- emacs-19.19/lisp/texinfo.el Tue Aug 10 04:24:06 1993 *************** *** 674,677 **** --- 674,678 ---- ;; Make sure TeX shell is running. + (require 'tex-mode) (if (get-buffer "*tex-shell*") (quit-process (get-process "tex-shell") t) *************** *** 731,734 **** --- 732,736 ---- \\[texinfo-show-tex-print-queue] command)." (interactive "nPrinter job number for deletion: ") + (require 'tex-mode) (if (tex-shell-running) (tex-kill-job) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/text-mode.el emacs-19.19/lisp/text-mode.el *** emacs-19.18/lisp/text-mode.el Wed Jun 9 07:28:38 1993 --- emacs-19.19/lisp/text-mode.el Wed Aug 11 17:01:03 1993 *************** *** 88,92 **** (defun indented-text-mode () ! "Major mode for editing indented text intended for humans to read.\\{indented-text-mode-map} Turning on `indented-text-mode' calls the value of the variable `text-mode-hook', if that value is non-nil." --- 88,93 ---- (defun indented-text-mode () ! "Major mode for editing indented text intended for humans to read. ! \\{indented-text-mode-map} Turning on `indented-text-mode' calls the value of the variable `text-mode-hook', if that value is non-nil." diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/timezone.el emacs-19.19/lisp/timezone.el *** emacs-19.18/lisp/timezone.el Sat Jun 5 16:00:43 1993 --- emacs-19.19/lisp/timezone.el Tue Aug 10 00:13:18 1993 *************** *** 234,241 **** ;; Taking account of minute in timezone. ;; HHMM -> MM ! ;;(+ (* 60 (/ timezone 100)) (% timezone 100)) ! ;; ANSI C compliance about truncation of integer division ! ;; by eggert@twinsun.com (Paul Eggert) ! (let* ((abszone (max timezone (- timezone))) (minutes (+ (* 60 (/ abszone 100)) (% abszone 100)))) (if (< timezone 0) (- minutes) minutes)))) --- 234,238 ---- ;; Taking account of minute in timezone. ;; HHMM -> MM ! (let* ((abszone (abs timezone)) (minutes (+ (* 60 (/ abszone 100)) (% abszone 100)))) (if (< timezone 0) (- minutes) minutes)))) *************** *** 294,303 **** (timezone-zone-to-minute local))) (minute (+ minute diff)) ! (hour-fix ! (if (< minute 0) ! ;;(/ (- minute 59) 60) (/ minute 60) ! ;; ANSI C compliance about truncation of integer division ! ;; by eggert@twinsun.com (Paul Eggert) ! (- (/ (- 59 minute) 60)) (/ minute 60)))) (setq hour (+ hour hour-fix)) (setq minute (- minute (* 60 hour-fix))) --- 291,295 ---- (timezone-zone-to-minute local))) (minute (+ minute diff)) ! (hour-fix (floor minute 60))) (setq hour (+ hour hour-fix)) (setq minute (- minute (* 60 hour-fix))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/tpu-doc.el emacs-19.19/lisp/tpu-doc.el *** emacs-19.18/lisp/tpu-doc.el Mon Aug 9 02:17:33 1993 --- emacs-19.19/lisp/tpu-doc.el Tue Aug 10 00:18:54 1993 *************** *** 1,3 **** --- 1,4 ---- ;;; tpu-doc.el --- Documentation for TPU-edt + ;; Copyright (C) 1993 Free Software Foundation, Inc. *************** *** 22,27 **** ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ! ;;; Revision: $Id: tpu-doc.el,v 1.3 1993/08/09 06:17:30 rms Exp $ ! (defconst tpu-doc-revision "$Revision: 1.3 $" "TPU-edt documentation revision number.") --- 23,27 ---- ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ! (defconst tpu-doc-revision "$Revision: 1.4 $" "TPU-edt documentation revision number.") *************** *** 312,315 **** --- 312,320 ---- ;; hate that! This line will make sure that files end with newlines. (setq require-final-newline t) + + ;; Emacs has the ability to automatically run code embedded in files + ;; you edit. This line makes emacs ask if you want to run the code. + (if tpu-emacs19-p (setq enable-local-variables "ask") + (setq inhibit-local-variables t)) ;; Emacs uses Control-s and Control-q. Problems can occur when using emacs diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/tpu-edt.el emacs-19.19/lisp/tpu-edt.el *** emacs-19.18/lisp/tpu-edt.el Wed Aug 4 04:22:07 1993 --- emacs-19.19/lisp/tpu-edt.el Wed Aug 11 01:01:12 1993 *************** *** 1,3 **** --- 1,4 ---- ;;; tpu-edt.el --- Emacs emulating TPU emulating EDT + ;; Copyright (C) 1993 Free Software Foundation, Inc. *************** *** 4,9 **** ;; Author: Rob Riepel ;; Maintainer: Rob Riepel ! ;; Version: 3.0 ! ;; Keywords: tpu edt tpu-edt ;; This file is part of GNU Emacs. --- 5,10 ---- ;; Author: Rob Riepel ;; Maintainer: Rob Riepel ! ;; Version: 3.1 ! ;; Keywords: edt emulations ;; This file is part of GNU Emacs. *************** *** 23,34 **** ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. ;;; ! ;;; Revision Information ;;; ! (defconst tpu-revision "$Revision: 1.2 $" ! "Revision number of TPU-edt.") ! (defconst tpu-revision-date "$Date: 1993/08/04 08:18:22 $" ! "Date current revision of TPU-edt was created.") --- 24,35 ---- ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. + ;;; Code: + ;;; ! ;;; Revision and Version Information ;;; ! (defconst tpu-version "3.1" "TPU-edt version number.") ! (defconst tpu-revision "$Revision: 1.4 $" "Revision number of TPU-edt.") *************** *** 92,95 **** --- 93,97 ---- "Maps the function keys on the VT100 keyboard preceeded by GOLD-SS3.") + (defvar tpu-global-map nil "TPU-edt global keymap.") (defvar tpu-original-global-map (copy-keymap global-map) "Original global keymap.") *************** *** 117,120 **** --- 119,124 ---- "Last character deleted by a TPU-edt character-delete command.") + (defvar tpu-searching-forward t + "If non-nil, TPU-edt is searching in the forward direction.") (defvar tpu-search-last-string "" "Last text searched for by the TPU-edt search commands.") *************** *** 130,133 **** --- 134,139 ---- (defvar tpu-control-keys t "If non-nil, control keys are set to perform TPU functions.") + (defvar tpu-xkeys-file nil + "File containing TPU-edt X key map.") (defvar tpu-rectangle-string nil *************** *** 313,316 **** --- 319,324 ---- (read-string prompt))) + (defvar tpu-last-answer nil "Most recent response to tpu-y-or-n-p.") + (defun tpu-y-or-n-p (prompt &optional not-yes) "Prompt for a y or n answer with positive default. *************** *** 416,424 **** "Print the TPU-edt version number." (interactive) ! (message (concat "TPU-edt revision " ! (substring tpu-revision 11 -2) ! " by Rob Riepel (riepel@networking.stanford.edu) " ! (substring tpu-revision-date 12 -11) "/" ! (substring tpu-revision-date 9 11)))) (defun tpu-reset-screen-size (height width) --- 424,430 ---- "Print the TPU-edt version number." (interactive) ! (message ! "TPU-edt version %s by Rob Riepel (riepel@networking.stanford.edu)" ! tpu-version)) (defun tpu-reset-screen-size (height width) *************** *** 642,645 **** --- 648,655 ---- (defvar tpu-help-enter (format "%s" "\eOM")) ; tpu-help enter key symbol (defvar tpu-help-return (format "%s" "\r")) ; tpu-help enter key symbol + (defvar tpu-help-N "N") ; tpu-help "N" symbol + (defvar tpu-help-n "n") ; tpu-help "n" symbol + (defvar tpu-help-P "P") ; tpu-help "P" symbol + (defvar tpu-help-p "p") ; tpu-help "p" symbol (defun tpu-help nil *************** *** 664,669 **** ;; Prompt for keys to describe, based on screen state (split/not split) ! (let ((key nil) (split nil)) ! (while (not (equal tpu-help-return (format "%s" key))) (if split (setq key --- 674,679 ---- ;; Prompt for keys to describe, based on screen state (split/not split) ! (let ((key nil) (fkey nil) (split nil)) ! (while (not (equal tpu-help-return fkey)) (if split (setq key *************** *** 682,689 **** ;; default - describe the key ;; ! (cond ((equal tpu-help-enter (format "%s" key)) (setq split nil) (delete-other-windows)) ! ((or (equal "N" key) (equal "n" key)) (cond (split (condition-case nil --- 692,700 ---- ;; default - describe the key ;; ! (setq fkey (format "%s" key)) ! (cond ((equal tpu-help-enter fkey) (setq split nil) (delete-other-windows)) ! ((or (equal tpu-help-N fkey) (equal tpu-help-n fkey)) (cond (split (condition-case nil *************** *** 694,698 **** (forward-line 1) (tpu-line-to-top-of-window)))) ! ((or (equal "P" key) (equal "p" key)) (cond (split (condition-case nil --- 705,709 ---- (forward-line 1) (tpu-line-to-top-of-window)))) ! ((or (equal tpu-help-P fkey) (equal tpu-help-p fkey)) (cond (split (condition-case nil *************** *** 703,707 **** (forward-line 1) (tpu-line-to-top-of-window)))) ! ((not (equal tpu-help-return (format "%s" key))) (setq split t) (describe-key key) --- 714,718 ---- (forward-line 1) (tpu-line-to-top-of-window)))) ! ((not (equal tpu-help-return fkey)) (setq split t) (describe-key key) *************** *** 728,731 **** --- 739,744 ---- ;;; Define key ;;; + (defvar tpu-saved-control-r nil "Saved value of Control-r.") + (defun tpu-end-define-macro-key (key) "Ends the current macro definition" *************** *** 772,781 **** "Go to next buffer in ring that is visiting a file." (interactive) ! (setq starting-buffer (buffer-name)) ! (switch-to-buffer (car (reverse (buffer-list)))) ! (while (and (not (equal (buffer-name) starting-buffer)) ! (not (buffer-file-name))) ! (switch-to-buffer (car (reverse (buffer-list))))) ! (if (equal (buffer-name) starting-buffer) (error "No other buffers."))) (defun tpu-next-window nil --- 785,794 ---- "Go to next buffer in ring that is visiting a file." (interactive) ! (let ((starting-buffer (buffer-name))) ! (switch-to-buffer (car (reverse (buffer-list)))) ! (while (and (not (equal (buffer-name) starting-buffer)) ! (not (buffer-file-name))) ! (switch-to-buffer (car (reverse (buffer-list))))) ! (if (equal (buffer-name) starting-buffer) (error "No other buffers.")))) (defun tpu-next-window nil *************** *** 822,826 **** The search is begins in the forward direction." (interactive) ! (setq searching-forward t) (tpu-set-search t) (tpu-search-internal "")) --- 835,839 ---- The search is begins in the forward direction." (interactive) ! (setq tpu-searching-forward t) (tpu-set-search t) (tpu-search-internal "")) *************** *** 830,834 **** The search is begins in the reverse direction." (interactive) ! (setq searching-forward nil) (tpu-set-search t) (tpu-search-internal "")) --- 843,847 ---- The search is begins in the reverse direction." (interactive) ! (setq tpu-searching-forward nil) (tpu-set-search t) (tpu-search-internal "")) *************** *** 854,859 **** "Set the search functions and set the search direction to the current direction. If an argument is specified, don't set the search direction." ! (if (not arg) (setq searching-forward (if tpu-advance t nil))) ! (cond (searching-forward (cond (tpu-regexp-p (fset 'tpu-emacs-search 're-search-forward) --- 867,872 ---- "Set the search functions and set the search direction to the current direction. If an argument is specified, don't set the search direction." ! (if (not arg) (setq tpu-searching-forward (if tpu-advance t nil))) ! (cond (tpu-searching-forward (cond (tpu-regexp-p (fset 'tpu-emacs-search 're-search-forward) *************** *** 885,889 **** (let ((found nil) (pos nil)) (save-excursion ! (let ((searching-forward (not searching-forward))) (tpu-adjust-search) (setq found (tpu-emacs-rev-search tpu-search-last-string nil t)) --- 898,902 ---- (let ((found nil) (pos nil)) (save-excursion ! (let ((tpu-searching-forward (not tpu-searching-forward))) (tpu-adjust-search) (setq found (tpu-emacs-rev-search tpu-search-last-string nil t)) *************** *** 893,897 **** (cond ((tpu-y-or-n-p (format "Found in %s direction. Go there? " ! (if searching-forward "reverse" "forward"))) (goto-char pos) (tpu-set-match) (tpu-toggle-search-direction)))) --- 906,910 ---- (cond ((tpu-y-or-n-p (format "Found in %s direction. Go there? " ! (if tpu-searching-forward "reverse" "forward"))) (goto-char pos) (tpu-set-match) (tpu-toggle-search-direction)))) *************** *** 908,912 **** "For forward searches, move forward a character before searching, and backward a character after a failed search. Arg means end of search." ! (if searching-forward (cond (arg (if (not (bobp)) (forward-char -1))) (t (if (not (eobp)) (forward-char 1)))))) --- 921,925 ---- "For forward searches, move forward a character before searching, and backward a character after a failed search. Arg means end of search." ! (if tpu-searching-forward (cond (arg (if (not (bobp)) (forward-char -1))) (t (if (not (eobp)) (forward-char 1)))))) *************** *** 916,924 **** Used for reversing a search in progress." (interactive) ! (setq searching-forward (not searching-forward)) (tpu-set-search t) (and (interactive-p) (message "Searching %sward." ! (if searching-forward "for" "back")))) --- 929,937 ---- Used for reversing a search in progress." (interactive) ! (setq tpu-searching-forward (not tpu-searching-forward)) (tpu-set-search t) (and (interactive-p) (message "Searching %sward." ! (if tpu-searching-forward "for" "back")))) *************** *** 1200,1204 **** (let ((beg (point))) (tpu-replace) ! (if searching-forward (forward-char -1) (goto-char beg)) (if (= num 1) (tpu-search-internal tpu-search-last-string) (tpu-search-internal-core tpu-search-last-string))) --- 1213,1217 ---- (let ((beg (point))) (tpu-replace) ! (if tpu-searching-forward (forward-char -1) (goto-char beg)) (if (= num 1) (tpu-search-internal tpu-search-last-string) (tpu-search-internal-core tpu-search-last-string))) *************** *** 1231,1235 **** (replace-match to (not case-replace) (not tpu-regexp-p)) (setq strings (1+ strings)) ! (if searching-forward (forward-char -1) (goto-char beg))) (tpu-search-internal from t)) --- 1244,1248 ---- (replace-match to (not case-replace) (not tpu-regexp-p)) (setq strings (1+ strings)) ! (if tpu-searching-forward (forward-char -1) (goto-char beg))) (tpu-search-internal from t)) *************** *** 1242,1246 **** (replace-match to (not case-replace) (not tpu-regexp-p)) (setq strings (1+ strings)) ! (if searching-forward (forward-char -1) (goto-char beg))) (tpu-search-internal-core from t) (while (tpu-check-match) --- 1255,1259 ---- (replace-match to (not case-replace) (not tpu-regexp-p)) (setq strings (1+ strings)) ! (if tpu-searching-forward (forward-char -1) (goto-char beg))) (tpu-search-internal-core from t) (while (tpu-check-match) *************** *** 1248,1252 **** (replace-match to (not case-replace) (not tpu-regexp-p)) (setq strings (1+ strings)) ! (if searching-forward (forward-char -1) (goto-char beg))) (tpu-search-internal-core from t))) (setq doit nil)) --- 1261,1265 ---- (replace-match to (not case-replace) (not tpu-regexp-p)) (setq strings (1+ strings)) ! (if tpu-searching-forward (forward-char -1) (goto-char beg))) (tpu-search-internal-core from t))) (setq doit nil)) *************** *** 1256,1260 **** (replace-match to (not case-replace) (not tpu-regexp-p)) (setq strings (1+ strings)) ! (if searching-forward (forward-char -1) (goto-char beg))) (setq doit nil)) --- 1269,1273 ---- (replace-match to (not case-replace) (not tpu-regexp-p)) (setq strings (1+ strings)) ! (if tpu-searching-forward (forward-char -1) (goto-char beg))) (setq doit nil)) *************** *** 2035,2039 **** (cond (file (setq file (expand-file-name file))) ! ((boundp 'tpu-xkeys-file) (setq file (expand-file-name tpu-xkeys-file))) (tpu-gnu-emacs19-p --- 2048,2052 ---- (cond (file (setq file (expand-file-name file))) ! (tpu-xkeys-file (setq file (expand-file-name tpu-xkeys-file))) (tpu-gnu-emacs19-p *************** *** 2044,2047 **** --- 2057,2062 ---- (load-file file)) (t + (switch-to-buffer "*scratch*") + (erase-buffer) (insert " diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/tpu-extras.el emacs-19.19/lisp/tpu-extras.el *** emacs-19.18/lisp/tpu-extras.el Mon Aug 9 02:18:03 1993 --- emacs-19.19/lisp/tpu-extras.el Tue Aug 10 00:18:09 1993 *************** *** 1,3 **** --- 1,4 ---- ;;; tpu-extras.el --- Scroll margins and free cursor mode for TPU-edt + ;; Copyright (C) 1993 Free Software Foundation, Inc. *************** *** 22,27 **** ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - ;;; Revision: $Id: tpu-extras.el,v 1.3 1993/08/09 06:18:02 rms Exp $ - ;;; Commentary: --- 23,26 ---- *************** *** 106,110 **** ;;; Revision Information ! (defconst tpu-extras-revision "$Revision: 1.3 $" "Revision number of the TPU-edt extras.") --- 105,109 ---- ;;; Revision Information ! (defconst tpu-extras-revision "$Revision: 1.4 $" "Revision number of the TPU-edt extras.") *************** *** 134,138 **** ;;; Clean up when writing a file from cursor free mode. ! (add-hook 'edit-picture-hook 'tpu-set-cursor-free) (defun tpu-write-file-hook nil --- 133,141 ---- ;;; Clean up when writing a file from cursor free mode. ! (if tpu-gnu-emacs18-p ! (or (memq 'tpu-set-cursor-free edit-picture-hook) ! (setq edit-picture-hook ! (cons 'tpu-set-cursor-free edit-picture-hook))) ! (add-hook 'picture-mode-hook 'tpu-set-cursor-free)) (defun tpu-write-file-hook nil *************** *** 375,379 **** (goto-char bottom) (forward-line (- height 2)) (point)))) (tpu-search-internal-core pat quiet) ! (if searching-forward (cond((> (point) far) (setq left (save-excursion (forward-line height))) --- 378,382 ---- (goto-char bottom) (forward-line (- height 2)) (point)))) (tpu-search-internal-core pat quiet) ! (if tpu-searching-forward (cond((> (point) far) (setq left (save-excursion (forward-line height))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/tpu-mapper.el emacs-19.19/lisp/tpu-mapper.el *** emacs-19.18/lisp/tpu-mapper.el Wed Aug 4 04:22:26 1993 --- emacs-19.19/lisp/tpu-mapper.el Wed Aug 11 01:00:31 1993 *************** *** 23,28 **** ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - ;;; Revision: $Id: tpu-mapper.el,v 1.2 1993/08/04 08:19:28 rms Exp $ - ;;; Commentary: --- 23,26 ---- *************** *** 72,76 **** ;;; Revision Information ;;; ! (defconst tpu-mapper-revision "$Revision: 1.2 $" "Revision number of TPU-edt x-windows emacs key mapper.") --- 70,74 ---- ;;; Revision Information ;;; ! (defconst tpu-mapper-revision "$Revision: 1.4 $" "Revision number of TPU-edt x-windows emacs key mapper.") *************** *** 178,187 **** ;;; Save for future reference ;;; - (setq tpu-return-seq (read-key-sequence "Hit carriage-return to continue ")) (cond (tpu-lucid-emacs19-p (setq tpu-return (concat "[" (format "%s" (event-key (aref tpu-return-seq 0))) "]"))) (t ! (setq tpu-return (format "%s" tpu-return-seq)))) --- 176,187 ---- ;;; Save for future reference ;;; (cond (tpu-lucid-emacs19-p + (setq tpu-return-seq (read-key-sequence "Hit carriage-return to continue ")) (setq tpu-return (concat "[" (format "%s" (event-key (aref tpu-return-seq 0))) "]"))) (t ! (message "Hit carriage-return to continue ") ! (setq tpu-return-seq (read-event)) ! (setq tpu-return (concat "[" (format "%s" tpu-return-seq) "]")))) *************** *** 207,212 **** (defun tpu-gnu-map-key (ident descrip func gold-func) (interactive) ! (setq tpu-key-seq (read-key-sequence (format "Press %s%s: " ident descrip))) ! (setq tpu-key (format "%s" tpu-key-seq)) (cond ((not (equal tpu-key tpu-return)) (set-buffer "Keys") --- 207,213 ---- (defun tpu-gnu-map-key (ident descrip func gold-func) (interactive) ! (message "Press %s%s: " ident descrip) ! (setq tpu-key-seq (read-event)) ! (setq tpu-key (concat "[" (format "%s" tpu-key-seq) "]")) (cond ((not (equal tpu-key tpu-return)) (set-buffer "Keys") *************** *** 349,354 **** ") ! (insert (format "(setq tpu-help-enter \"%s\")\n" tpu-enter-seq)) ! (insert (format "(setq tpu-help-return \"%s\")\n" tpu-return-seq)) (append-to-buffer "Keys" 1 (point)) --- 350,362 ---- ") ! (cond (tpu-lucid-emacs19-p ! (insert (format "(setq tpu-help-enter \"%s\")\n" tpu-enter-seq)) ! (insert (format "(setq tpu-help-return \"%s\")\n" tpu-return-seq)) ! (insert "(setq tpu-help-N \"[#]\")\n") ! (insert "(setq tpu-help-n \"[#]\")\n") ! (insert "(setq tpu-help-P \"[#]\")\n") ! (insert "(setq tpu-help-p \"[#]\")\n")) ! (t ! (insert (format "(setq tpu-help-enter \"%s\")\n" tpu-enter)))) (append-to-buffer "Keys" 1 (point)) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/userlock.el emacs-19.19/lisp/userlock.el *** emacs-19.18/lisp/userlock.el Mon Sep 21 07:56:18 1992 --- emacs-19.19/lisp/userlock.el Wed Aug 11 16:36:03 1993 *************** *** 95,99 **** (let (answer) (while (null answer) ! (message "File has changed on disk; really want to edit the buffer? (y, n or C-h) ") (let ((tem (downcase (let ((cursor-in-echo-area t)) (read-char))))) --- 95,100 ---- (let (answer) (while (null answer) ! (message "%s changed on disk; really edit the buffer? (y, n or C-h) " ! (file-name-nondirectory fn)) (let ((tem (downcase (let ((cursor-in-echo-area t)) (read-char))))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/vc.el emacs-19.19/lisp/vc.el *** emacs-19.18/lisp/vc.el Sat Aug 7 20:39:50 1993 --- emacs-19.19/lisp/vc.el Tue Aug 10 00:13:23 1993 *************** *** 680,684 **** (if (< arg 0) 1 0)))) (setq vc-comment-ring-index ! (ring-mod (+ vc-comment-ring-index arg) len)) (message "%d" (1+ vc-comment-ring-index)) (insert (ring-ref vc-comment-ring vc-comment-ring-index)))))) --- 680,684 ---- (if (< arg 0) 1 0)))) (setq vc-comment-ring-index ! (mod (+ vc-comment-ring-index arg) len)) (message "%d" (1+ vc-comment-ring-index)) (insert (ring-ref vc-comment-ring vc-comment-ring-index)))))) diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/version.el emacs-19.19/lisp/version.el *** emacs-19.18/lisp/version.el Sun Aug 8 17:21:55 1993 --- emacs-19.19/lisp/version.el Sat Aug 14 19:03:33 1993 *************** *** 26,30 **** ;; The following line is modified automatically ;; by loading inc-version.el, each time a new Emacs is dumped. ! (defconst emacs-version "19.18.0" "\ Version numbers of this version of Emacs.") --- 26,30 ---- ;; The following line is modified automatically ;; by loading inc-version.el, each time a new Emacs is dumped. ! (defconst emacs-version "19.19.0" "\ Version numbers of this version of Emacs.") diff -rc2P --exclude-from=exceptions emacs-19.18/lisp/vt-control.el emacs-19.19/lisp/vt-control.el *** emacs-19.18/lisp/vt-control.el Wed Aug 4 04:22:51 1993 --- emacs-19.19/lisp/vt-control.el Tue Aug 10 00:19:13 1993 *************** *** 23,28 **** ;; the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. - ;;; Revision: $Id: vt-control.el,v 1.2 1993/08/04 08:20:00 rms Exp $ - ;;; Commentary: --- 23,26 ---- *************** *** 55,59 **** ;;; Revision Information ! (defconst vt-revision "$Revision: 1.2 $" "Revision number of vt-control.") --- 53,57 ---- ;;; Revision Information ! (defconst vt-revision "$Revision: 1.3 $" "Revision number of vt-control.") diff -rc2P --exclude-from=exceptions emacs-19.18/make-dist emacs-19.19/make-dist *** emacs-19.18/make-dist Sun Aug 8 17:57:39 1993 --- emacs-19.19/make-dist Thu Aug 12 23:47:14 1993 *************** *** 232,236 **** ln emacs.csh rcs-checkin ../${tempdir}/lib-src cd ../${tempdir}/lib-src ! rm -f getdate.c getdate.tab.c y.tab.c y.tab.h rm -f =* TAGS) --- 232,236 ---- ln emacs.csh rcs-checkin ../${tempdir}/lib-src cd ../${tempdir}/lib-src ! rm -f getdate.tab.c y.tab.c y.tab.h rm -f =* TAGS) diff -rc2P --exclude-from=exceptions emacs-19.18/man/ChangeLog emacs-19.19/man/ChangeLog *** emacs-19.18/man/ChangeLog Sun Aug 8 03:13:51 1993 --- emacs-19.19/man/ChangeLog Sat Aug 14 19:05:12 1993 *************** *** 1,2 **** --- 1,14 ---- + Sat Aug 14 00:23:11 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Version 19.19 released. + + Tue Aug 10 16:52:15 1993 Simon Leinen (simon@lia.di.epfl.ch) + + * sc.texinfo: Fix info file name. + + * Makefile (info): Added gnus and sc. + (dvi): Added gnus.dvi and sc.dvi. + (../info/sc, sc.dvi): New targets. + Sun Aug 8 01:15:30 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) diff -rc2P --exclude-from=exceptions emacs-19.18/man/Makefile emacs-19.19/man/Makefile *** emacs-19.18/man/Makefile Tue Jul 20 01:12:36 1993 --- emacs-19.19/man/Makefile Wed Aug 11 14:18:33 1993 *************** *** 2,8 **** #### Just a few targets required by the coding standards. ! info: ../info/emacs ../info/cl ../info/forms ../info/vip ! dvi: emacs.dvi cl.dvi forms.dvi vip.dvi .texi.dvi: tex $< --- 2,8 ---- #### Just a few targets required by the coding standards. ! info: ../info/emacs ../info/cl.info ../info/forms ../info/vip ../info/gnus ../info/sc ! dvi: emacs.dvi cl.dvi forms.dvi gnus.dvi sc.dvi vip.dvi .texi.dvi: tex $< *************** *** 58,61 **** --- 58,65 ---- makeinfo forms.texinfo forms.dvi: forms.texinfo + + ../info/sc: sc.texinfo + makeinfo sc.texinfo + sc.dvi: forms.texinfo ../info/vip: vip.texinfo diff -rc2P --exclude-from=exceptions emacs-19.18/man/basic.texi emacs-19.19/man/basic.texi *** emacs-19.18/man/basic.texi Thu Jun 17 16:17:19 1993 --- emacs-19.19/man/basic.texi Fri Aug 13 06:51:44 1993 *************** *** 103,106 **** --- 103,110 ---- @kindex @key{TOP} @kindex @key{BOTTOM} + @cindex moving point + @cindex movement + @cindex cursor motion + @cindex moving the cursor To do more than insert characters, you have to know how to move point (@pxref{Point}). The simplest way to do this is with arrow *************** *** 212,215 **** --- 216,222 ---- @end table + @cindex killing characters and lines + @cindex deleting characters and lines + @cindex erasing characters and lines You already know about the @key{DEL} key which deletes the character before the cursor. Another key, @kbd{Control-d} (@kbd{C-d} for short), *************** *** 270,273 **** --- 277,281 ---- @section Help + @cindex getting help with keys If you forget what a key does, you can find out with the Help character, which is @kbd{C-h}. Type @kbd{C-h k} followed by the key you want to know *************** *** 281,284 **** --- 289,294 ---- @section Blank Lines + @cindex inserting blank lines + @cindex deleting blank lines Here are special commands and techniques for putting in and taking out blank lines. *************** *** 299,309 **** @findex delete-blank-lines When you want to insert a new line of text before an existing line, you ! can do it by typing the new line of text, followed by @key{RET}. However, ! it may be easier to see what you are doing if you first make a blank line ! and then insert the desired text into it. This is easy to do using the key ! @kbd{C-o} (@code{open-line}), which inserts a newline after point but leaves ! point in front of the newline. After @kbd{C-o}, type the text for the new ! line. @kbd{C-o F O O} has the same effect as @kbd{F O O @key{RET}}, except for ! the final location of point. You can make several blank lines by typing @kbd{C-o} several times, or --- 309,319 ---- @findex delete-blank-lines When you want to insert a new line of text before an existing line, you ! can do it by typing the new line of text, followed by @key{RET}. ! However, it may be easier to see what you are doing if you first make a ! blank line and then insert the desired text into it. This is easy to do ! using the key @kbd{C-o} (@code{open-line}), which inserts a newline ! after point but leaves point in front of the newline. After @kbd{C-o}, ! type the text for the new line. @kbd{C-o F O O} has the same effect as ! @w{@kbd{F O O @key{RET}}}, except for the final location of point. You can make several blank lines by typing @kbd{C-o} several times, or *************** *** 328,332 **** @cindex wrapping @cindex line wrapping ! If you add too many characters to one line, without breaking it with @key{RET}, the line will grow to occupy two (or more) lines on the screen, with a @samp{\} at the extreme right margin of all but the last of them. --- 338,342 ---- @cindex wrapping @cindex line wrapping ! If you add too many characters to one line without breaking it with @key{RET}, the line will grow to occupy two (or more) lines on the screen, with a @samp{\} at the extreme right margin of all but the last of them. *************** *** 382,385 **** --- 392,398 ---- @findex what-line @cindex line number commands + @cindex location of point + @cindex cursor location + @cindex point location There are two commands for printing the current line number. @kbd{M-x what-line} computes the current line number and displays it in the echo *************** *** 409,415 **** point. It prints a line in the echo area that looks like this: ! @example Char: x (0170) point=65986 of 563027(12%) x=44 ! @end example @noindent --- 422,428 ---- point. It prints a line in the echo area that looks like this: ! @smallexample Char: x (0170) point=65986 of 563027(12%) x=44 ! @end smallexample @noindent *************** *** 417,421 **** in the example.) ! The two values after @samp{Char:} describe the character following point, first by showing it and second by giving its octal character code. --- 430,434 ---- in the example.) ! The two values after @samp{Char:} describe the character that follows point, first by showing it and second by giving its octal character code. *************** *** 444,448 **** If point is at the end of the buffer (or the end of the accessible ! part), @kbd{C-x =} omits any description of the character after point. The output looks like this: --- 457,461 ---- If point is at the end of the buffer (or the end of the accessible ! part), @w{@kbd{C-x =}} omits any description of the character after point. The output looks like this: diff -rc2P --exclude-from=exceptions emacs-19.18/man/buffers.texi emacs-19.19/man/buffers.texi *** emacs-19.18/man/buffers.texi Thu Jun 17 16:17:37 1993 --- emacs-19.19/man/buffers.texi Fri Aug 13 08:00:06 1993 *************** *** 91,94 **** --- 91,95 ---- @end table + @cindex listing current buffers @kindex C-x C-b @findex list-buffers *************** *** 185,188 **** --- 186,190 ---- @section Killing Buffers + @cindex killing buffers If you continue an Emacs session for a while, you may accumulate a large number of buffers. You may then find it convenient to @dfn{kill} diff -rc2P --exclude-from=exceptions emacs-19.18/man/building.texi emacs-19.19/man/building.texi *** emacs-19.18/man/building.texi Tue Jul 27 18:22:13 1993 --- emacs-19.19/man/building.texi Fri Aug 13 09:02:19 1993 *************** *** 150,153 **** --- 150,154 ---- @section Running Debuggers Under Emacs @cindex debuggers + @cindex GUD library @cindex GDB @cindex DBX diff -rc2P --exclude-from=exceptions emacs-19.18/man/calendar.texi emacs-19.19/man/calendar.texi *** emacs-19.18/man/calendar.texi Thu Jun 17 15:51:54 1993 --- emacs-19.19/man/calendar.texi Fri Aug 13 09:32:15 1993 *************** *** 34,37 **** --- 34,38 ---- @section Movement in the Calendar + @cindex moving inside the calendar Calendar mode lets you move in logical units of time such as days, weeks, months, and years. If you move outside the three months *************** *** 192,195 **** --- 193,197 ---- @section Scrolling in the Calendar + @cindex scrolling in the calendar The calendar display scrolls automatically through time when you move out of the visible portion. You can also scroll it manually. Imagine that the diff -rc2P --exclude-from=exceptions emacs-19.18/man/commands.texi emacs-19.19/man/commands.texi *** emacs-19.18/man/commands.texi Tue Jul 27 17:28:54 1993 --- emacs-19.19/man/commands.texi Fri Aug 13 06:35:34 1993 *************** *** 14,17 **** --- 14,18 ---- @section Keyboard Input @cindex input event + @cindex input to the keyboard @cindex keyboard input @cindex character set (keyboard) *************** *** 19,22 **** --- 20,24 ---- @cindex C- @cindex Control + @cindex control characters GNU Emacs uses an extension of the ASCII character set for keyboard *************** *** 100,103 **** --- 102,106 ---- @cindex key sequence + @cindex key A @dfn{key sequence} (@dfn{key}, for short) is a sequence of input events that combine as part of the invocation of a single command. *************** *** 133,137 **** All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-x}, ! @kbd{C-h}, @kbd{C-x C-a}, @kbd{C-x n}, @kbd{C-x r}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, and @key{ESC}. But this is not cast in concrete; it is just a matter of Emacs's standard key bindings. In --- 136,140 ---- All told, the prefix keys in Emacs are @kbd{C-c}, @kbd{C-x}, ! @kbd{C-h}, @kbd{C-x C-a}, @kbd{C-x n}, @w{@kbd{C-x r}}, @kbd{C-x v}, @kbd{C-x 4}, @kbd{C-x 5}, and @key{ESC}. But this is not cast in concrete; it is just a matter of Emacs's standard key bindings. In *************** *** 159,162 **** --- 162,166 ---- @cindex function @cindex command + @cindex function definition This manual is full of passages that tell you what particular keys do. But Emacs does not assign meanings to keys directly. Instead, diff -rc2P --exclude-from=exceptions emacs-19.18/man/custom.texi emacs-19.19/man/custom.texi *** emacs-19.18/man/custom.texi Sun Aug 1 14:46:47 1993 --- emacs-19.19/man/custom.texi Fri Aug 13 09:43:38 1993 *************** *** 518,521 **** --- 518,522 ---- @section Keyboard Macros + @cindex defining keyboard macros @cindex keyboard macro A @dfn{keyboard macro} is a command defined by the user to abbreviate a *************** *** 627,630 **** --- 628,632 ---- @subsection Naming and Saving Keyboard Macros + @cindex saving keyboard macros @findex name-last-kbd-macro If you wish to save a keyboard macro for longer than until you define the *************** *** 1130,1133 **** --- 1132,1136 ---- @subsection Rebinding Mouse Buttons @cindex mouse button events + @cindex rebinding mouse buttons @cindex click events @cindex drag events diff -rc2P --exclude-from=exceptions emacs-19.18/man/dired.texi emacs-19.19/man/dired.texi *** emacs-19.18/man/dired.texi Thu Jun 17 15:53:40 1993 --- emacs-19.19/man/dired.texi Fri Aug 13 09:26:16 1993 *************** *** 80,83 **** --- 80,84 ---- @section Deleting Files with Dired @cindex flagging files (in Dired) + @cindex deleting files (in Dired) The primary use of Dired is to @dfn{flag} files for deletion and then diff -rc2P --exclude-from=exceptions emacs-19.18/man/display.texi emacs-19.19/man/display.texi *** emacs-19.18/man/display.texi Sat May 29 02:47:00 1993 --- emacs-19.19/man/display.texi Fri Aug 13 07:42:05 1993 *************** *** 40,44 **** * Selective Display:: Hiding lines with lots of indentation. * Optional Display:: Optional display features. ! * European Display:: Displaying (and inputting) European characters. * Display Vars:: Information on variables for customizing display. @end menu --- 40,44 ---- * Selective Display:: Hiding lines with lots of indentation. * Optional Display:: Optional display features. ! * European Display:: Displaying (and inputing) European characters. * Display Vars:: Information on variables for customizing display. @end menu *************** *** 175,179 **** normally (with each line starting at the window's left margin); attempting to do so has no effect. This means that you don't have to ! calculate the argument precisely for @kbd{C-x >}; any sufficiently large argument will restore normally display. --- 175,179 ---- normally (with each line starting at the window's left margin); attempting to do so has no effect. This means that you don't have to ! calculate the argument precisely for @w{@kbd{C-x >}}; any sufficiently large argument will restore normally display. diff -rc2P --exclude-from=exceptions emacs-19.18/man/emacs.texi emacs-19.19/man/emacs.texi *** emacs-19.18/man/emacs.texi Mon Aug 9 02:04:21 1993 --- emacs-19.19/man/emacs.texi Sat Aug 14 03:36:03 1993 *************** *** 58,61 **** --- 58,64 ---- @smallbook @c + @iftex + @shorttitlepage GNU Emacs Manual + @end iftex @titlepage @sp 6 *************** *** 62,70 **** @center @titlefont{GNU Emacs Manual} @sp 4 ! @center Eighth Edition, Emacs version 19 @sp 1 @center for Unix Users @sp 1 ! @center June 1993 @sp 5 @center Richard Stallman --- 65,73 ---- @center @titlefont{GNU Emacs Manual} @sp 4 ! @center Ninth Edition, Emacs version 19.19 @sp 1 @center for Unix Users @sp 1 ! @center August 1993 @sp 5 @center Richard Stallman *************** *** 73,79 **** Copyright @copyright{} 1985, 1986, 1987, 1993 Free Software Foundation, Inc. @sp 2 ! Eighth Edition @* For Emacs Version 19,@* ! Printed June, 1993.@* ISBN 1-882114-02-7 --- 76,82 ---- Copyright @copyright{} 1985, 1986, 1987, 1993 Free Software Foundation, Inc. @sp 2 ! Ninth Edition @* For Emacs Version 19,@* ! Printed August, 1993.@* ISBN 1-882114-02-7 *************** *** 111,115 **** display editor. This Info file describes how to edit with Emacs and some of how to customize it, but not how to extend it. It ! corresponds to GNU Emacs version 19.18. @end ifinfo --- 114,118 ---- display editor. This Info file describes how to edit with Emacs and some of how to customize it, but not how to extend it. It ! corresponds to GNU Emacs version 19.19. @end ifinfo diff -rc2P --exclude-from=exceptions emacs-19.18/man/entering.texi emacs-19.19/man/entering.texi *** emacs-19.18/man/entering.texi Tue Jun 1 02:38:43 1993 --- emacs-19.19/man/entering.texi Fri Aug 13 06:23:37 1993 *************** *** 5,8 **** --- 5,9 ---- @chapter Entering and Exiting Emacs @cindex entering Emacs + @cindex starting Emacs The usual way to invoke Emacs is with the shell command @samp{emacs}. *************** *** 58,61 **** --- 59,64 ---- @cindex killing Emacs @cindex suspending + @cindex leaving Emacs + @cindex quitting Emacs There are two commands for exiting Emacs because there are two kinds diff -rc2P --exclude-from=exceptions emacs-19.18/man/files.texi emacs-19.19/man/files.texi *** emacs-19.18/man/files.texi Tue Jul 27 18:30:07 1993 --- emacs-19.19/man/files.texi Fri Aug 13 05:12:21 1993 *************** *** 1118,1122 **** @file{ChangeLog} and inserts text like this: ! @example @group Fri May 8 21:45:00 1992 Nathaniel Bowditch (nat@@apn.org) --- 1118,1122 ---- @file{ChangeLog} and inserts text like this: ! @smallexample @group Fri May 8 21:45:00 1992 Nathaniel Bowditch (nat@@apn.org) *************** *** 1124,1128 **** * rcs2log: Ignore log messages that start with `#'. @end group ! @end example @noindent --- 1124,1128 ---- * rcs2log: Ignore log messages that start with `#'. @end group ! @end smallexample @noindent *************** *** 1136,1140 **** @file{ChangeLog} looks like this: ! @example @group Wed May 6 10:53:00 1992 Nathaniel Bowditch (nat@@apn.org) --- 1136,1140 ---- @file{ChangeLog} looks like this: ! @smallexample @group Wed May 6 10:53:00 1992 Nathaniel Bowditch (nat@@apn.org) *************** *** 1142,1146 **** * vc.el (vc-do-command): Check call-process status. @end group ! @end example When @kbd{C-x v a} adds several change log entries at once, it groups --- 1142,1146 ---- * vc.el (vc-do-command): Check call-process status. @end group ! @end smallexample When @kbd{C-x v a} adds several change log entries at once, it groups *************** *** 1162,1166 **** They appear like this in @file{ChangeLog}: ! @example @group Wed Apr 1 08:57:59 1992 Nathaniel Bowditch (nat@@apn.org) --- 1162,1166 ---- They appear like this in @file{ChangeLog}: ! @smallexample @group Wed Apr 1 08:57:59 1992 Nathaniel Bowditch (nat@@apn.org) *************** *** 1170,1174 **** * vc.el, vc-hooks.el: Don't call expand-file-name. @end group ! @end example Normally, @kbd{C-x v a} separates log entries by a blank line, but you --- 1170,1174 ---- * vc.el, vc-hooks.el: Don't call expand-file-name. @end group ! @end smallexample Normally, @kbd{C-x v a} separates log entries by a blank line, but you *************** *** 1191,1195 **** Then the text in @file{ChangeLog} looks like this: ! @example @group Wed Apr 1 08:57:59 1992 Nathaniel Bowditch (nat@@apn.org) --- 1191,1195 ---- Then the text in @file{ChangeLog} looks like this: ! @smallexample @group Wed Apr 1 08:57:59 1992 Nathaniel Bowditch (nat@@apn.org) *************** *** 1198,1202 **** * vc.el, vc-hooks.el: Don't call expand-file-name. @end group ! @end example A log entry whose text begins with @samp{#} is not copied to --- 1198,1202 ---- * vc.el, vc-hooks.el: Don't call expand-file-name. @end group ! @end smallexample A log entry whose text begins with @samp{#} is not copied to diff -rc2P --exclude-from=exceptions emacs-19.18/man/fixit.texi emacs-19.19/man/fixit.texi *** emacs-19.18/man/fixit.texi Wed May 19 16:06:25 1993 --- emacs-19.19/man/fixit.texi Fri Aug 13 07:50:23 1993 *************** *** 146,150 **** @node Spelling @section Checking and Correcting Spelling ! @cindex spelling This section describes the commands to check the spelling of a single --- 146,152 ---- @node Spelling @section Checking and Correcting Spelling ! @cindex spelling, checking and correcting ! @cindex checking spelling ! @cindex correcting spelling This section describes the commands to check the spelling of a single diff -rc2P --exclude-from=exceptions emacs-19.18/man/help.texi emacs-19.19/man/help.texi *** emacs-19.18/man/help.texi Tue Jul 27 17:31:00 1993 --- emacs-19.19/man/help.texi Fri Aug 13 05:07:26 1993 *************** *** 105,109 **** @findex describe-key-briefly The most basic @kbd{C-h} options are @kbd{C-h c} ! (@code{describe-key-briefly}) and @kbd{C-h k} (@code{describe-key}). @kbd{C-h c @var{key}} prints in the echo area the name of the command that @var{key} is bound to. For example, @kbd{C-h c C-f} prints --- 105,109 ---- @findex describe-key-briefly The most basic @kbd{C-h} options are @kbd{C-h c} ! (@code{describe-key-briefly}) and @w{@kbd{C-h k}} (@code{describe-key}). @kbd{C-h c @var{key}} prints in the echo area the name of the command that @var{key} is bound to. For example, @kbd{C-h c C-f} prints diff -rc2P --exclude-from=exceptions emacs-19.18/man/indent.texi emacs-19.19/man/indent.texi *** emacs-19.18/man/indent.texi Thu Jun 17 15:59:07 1993 --- emacs-19.19/man/indent.texi Fri Aug 13 08:34:33 1993 *************** *** 37,41 **** @kindex TAB ! @cindex indentation Most programming languages have some indentation convention. For Lisp code, lines are indented according to their nesting in parentheses. The --- 37,41 ---- @kindex TAB ! @cindex indentation for programs Most programming languages have some indentation convention. For Lisp code, lines are indented according to their nesting in parentheses. The *************** *** 139,142 **** --- 139,145 ---- @section Tab Stops + @cindex tab stops + @cindex using tab stops in making tables + @cindex tables, indentation for @kindex M-i @findex tab-to-tab-stop diff -rc2P --exclude-from=exceptions emacs-19.18/man/killing.texi emacs-19.19/man/killing.texi *** emacs-19.18/man/killing.texi Thu Jun 17 16:08:51 1993 --- emacs-19.19/man/killing.texi Fri Aug 13 07:29:57 1993 *************** *** 28,33 **** @findex delete-backward-char ! @cindex killing ! @cindex cutting @cindex deletion @kindex C-d --- 28,33 ---- @findex delete-backward-char ! @cindex killing text ! @cindex cutting text @cindex deletion @kindex C-d *************** *** 255,258 **** --- 255,259 ---- @subsection Appending Kills + @cindex appending kills in the ring @cindex television Normally, each kill command pushes a new entry onto the kill ring. *************** *** 306,309 **** --- 307,311 ---- @subsection Yanking Earlier Kills + @cindex yanking previous kills @kindex M-y @findex yank-pop *************** *** 368,371 **** --- 370,374 ---- @findex append-to-file + @cindex accumulating scattered text Usually we copy or move text by killing it and yanking it, but there are other methods convenient for copying one block of text in many *************** *** 432,435 **** --- 435,439 ---- @cindex rectangle @cindex columns (and rectangles) + @cindex killing rectangular areas of text The rectangle commands operate on rectangular areas of the text: all diff -rc2P --exclude-from=exceptions emacs-19.18/man/major.texi emacs-19.19/man/major.texi *** emacs-19.18/man/major.texi Wed May 19 16:07:18 1993 --- emacs-19.19/man/major.texi Fri Aug 13 08:11:07 1993 *************** *** 54,57 **** --- 54,58 ---- @section How Major Modes are Chosen + @cindex choosing a major mode You can select a major mode explicitly for the current buffer, but most of the time Emacs determines which mode to use based on the file diff -rc2P --exclude-from=exceptions emacs-19.18/man/mark.texi emacs-19.19/man/mark.texi *** emacs-19.18/man/mark.texi Fri Jun 11 15:03:43 1993 --- emacs-19.19/man/mark.texi Fri Aug 13 07:20:38 1993 *************** *** 5,8 **** --- 5,9 ---- @chapter The Mark and the Region @cindex mark + @cindex setting a mark @cindex region *************** *** 161,164 **** --- 162,166 ---- @section Operating on the Region + @cindex operations on a marked region Once you have set up a region and the mark is active, you can do many things to the text in it: *************** *** 189,192 **** --- 191,195 ---- @section Commands to Mark Textual Objects + @cindex marking sections of text Here are the commands for placing point and the mark around a textual object such as a word, list, paragraph or page. diff -rc2P --exclude-from=exceptions emacs-19.18/man/misc.texi emacs-19.19/man/misc.texi *** emacs-19.18/man/misc.texi Sat Aug 7 00:11:57 1993 --- emacs-19.19/man/misc.texi Fri Aug 13 22:40:53 1993 *************** *** 1048,1051 **** --- 1048,1062 ---- @end itemize + @vindex server-temp-file-regexp + Some programs write temporary files for you to edit. After you edit + the temporary file, the program reads it back and deletes it. If the + Emacs server is later asked to edit the same file name, it should assume + this has nothing to do with the previous occasion for that file name. + The server accomplishes this by killing the temporary file's buffer when + you finish with the file. Use the variable + @code{server-temp-file-regexp} to specify which files are temporary in + this sense; its value should be a regular expression that matches file + names that are temporary. + @node Recursive Edit, Dissociated Press, Emacs Server, Top @section Recursive Editing Levels *************** *** 1211,1214 **** --- 1222,1226 ---- @node Emulation, Customization, Amusements, Top @section Emulation + @cindex emulating other editors @cindex other editors @cindex EDT diff -rc2P --exclude-from=exceptions emacs-19.18/man/picture.texi emacs-19.19/man/picture.texi *** emacs-19.18/man/picture.texi Thu Jun 17 16:10:07 1993 --- emacs-19.19/man/picture.texi Fri Aug 13 09:20:11 1993 *************** *** 5,8 **** --- 5,9 ---- @chapter Editing Pictures @cindex pictures + @cindex making pictures out of text characters @findex edit-picture *************** *** 61,64 **** --- 62,67 ---- @findex picture-move-down @findex picture-move-up + @cindex editing in Picture mode + Most keys do the same thing in Picture mode that they usually do, but do it in a quarter-plane style. For example, @kbd{C-f} is rebound to *************** *** 204,207 **** --- 207,211 ---- @section Picture Mode Rectangle Commands @cindex rectangles and Picture mode + @cindex Picture mode and rectangles Picture mode defines commands for working on rectangular pieces of the diff -rc2P --exclude-from=exceptions emacs-19.18/man/programs.texi emacs-19.19/man/programs.texi *** emacs-19.18/man/programs.texi Tue Jul 27 18:19:30 1993 --- emacs-19.19/man/programs.texi Fri Aug 13 14:50:15 1993 *************** *** 330,334 **** @node Program Indent @section Indentation for Programs ! @cindex indentation The best way to keep a program properly indented is to use Emacs to --- 330,334 ---- @node Program Indent @section Indentation for Programs ! @cindex indentation for programs The best way to keep a program properly indented is to use Emacs to *************** *** 1352,1355 **** --- 1352,1359 ---- Visit the next file in the selected tag table. @end table + + @iftex + @break + @end iftex @node List Tags diff -rc2P --exclude-from=exceptions emacs-19.18/man/sc.texinfo emacs-19.19/man/sc.texinfo *** emacs-19.18/man/sc.texinfo Mon Feb 8 12:00:54 1993 --- emacs-19.19/man/sc.texinfo Wed Aug 11 14:14:45 1993 *************** *** 1,4 **** \input texinfo @comment -*-Texinfo-*- ! @setfilename sc.info @settitle Supercite User's Manual @iftex --- 1,4 ---- \input texinfo @comment -*-Texinfo-*- ! @setfilename ../info/sc.info @settitle Supercite User's Manual @iftex diff -rc2P --exclude-from=exceptions emacs-19.18/man/screen.texi emacs-19.19/man/screen.texi *** emacs-19.18/man/screen.texi Thu May 20 12:14:14 1993 --- emacs-19.19/man/screen.texi Fri Aug 13 05:49:55 1993 *************** *** 5,8 **** --- 5,9 ---- @chapter The Organization of the Screen @cindex screen + @cindex parts of the screen @c *************** *** 106,109 **** --- 107,111 ---- (@pxref{Display Vars}). + @cindex error message in the echo area If a command cannot be executed, it may print an @dfn{error message} in the echo area. Error messages are accompanied by a beep or by flashing the diff -rc2P --exclude-from=exceptions emacs-19.18/man/search.texi emacs-19.19/man/search.texi *** emacs-19.18/man/search.texi Tue Jul 27 18:26:26 1993 --- emacs-19.19/man/search.texi Fri Aug 13 07:47:33 1993 *************** *** 5,8 **** --- 5,9 ---- @chapter Searching and Replacement @cindex searching + @cindex finding strings within text Like other editors, Emacs has commands for searching for occurrences of *************** *** 31,34 **** --- 32,36 ---- @section Incremental Search + @cindex incremental search An incremental search begins searching as soon as you type the first character of the search string. As you type in the search string, Emacs *************** *** 616,619 **** --- 618,622 ---- @section Replacement Commands @cindex replacement + @cindex search-and-replace commands @cindex string substitution @cindex global substitution diff -rc2P --exclude-from=exceptions emacs-19.18/man/sending.texi emacs-19.19/man/sending.texi *** emacs-19.18/man/sending.texi Tue Jul 27 18:24:21 1993 --- emacs-19.19/man/sending.texi Fri Aug 13 09:22:27 1993 *************** *** 4,7 **** --- 4,8 ---- @node Sending Mail, Rmail, Picture, Top @chapter Sending Mail + @cindex sending mail @cindex mail @cindex message *************** *** 266,269 **** --- 267,271 ---- @section Mail Mode + @cindex Mail mode The major mode used in the @samp{*mail*} buffer is Mail mode, which is much like Text mode except that various special commands are provided on diff -rc2P --exclude-from=exceptions emacs-19.18/man/text.texi emacs-19.19/man/text.texi *** emacs-19.18/man/text.texi Thu Jun 17 16:26:10 1993 --- emacs-19.19/man/text.texi Fri Aug 13 08:26:12 1993 *************** *** 5,8 **** --- 5,9 ---- @chapter Commands for Human Languages @cindex text + @cindex manipulating text The term @dfn{text} has two widespread meanings in our area of the *************** *** 129,132 **** --- 130,134 ---- @section Sentences @cindex sentences + @cindex manipulating sentences The Emacs commands for manipulating sentences and paragraphs are mostly *************** *** 194,197 **** --- 196,200 ---- @section Paragraphs @cindex paragraphs + @cindex manipulating paragraphs @kindex M-@{ @kindex M-@} *************** *** 237,248 **** @vindex paragraph-separate The precise definition of a paragraph boundary is controlled by the ! variables @code{paragraph-separate} and @code{paragraph-start}. The value ! of @code{paragraph-start} is a regexp that should match any line that ! either starts or separates paragraphs. The value of @code{paragraph-separate} is another regexp that should match only lines ! that separate paragraphs without being part of any paragraph. Lines that ! start a new paragraph and are contained in it must match both regexps. For ! example, normally @code{paragraph-start} is @code{"^[ @t{\}t@t{\}n@t{\}f]"} ! and @code{paragraph-separate} is @code{"^[ @t{\}t@t{\}f]*$"}.@refill Normally it is desirable for page boundaries to separate paragraphs. --- 240,252 ---- @vindex paragraph-separate The precise definition of a paragraph boundary is controlled by the ! variables @code{paragraph-separate} and @code{paragraph-start}. The ! value of @code{paragraph-start} is a regexp that should match any line ! that either starts or separates paragraphs. The value of @code{paragraph-separate} is another regexp that should match only lines ! that separate paragraphs without being part of any paragraph. Lines ! that start a new paragraph and are contained in it must match only ! @code{paragraph-start}, not @code{paragraph-separate}. For example, ! normally @code{paragraph-start} is @code{"^[ @t{\}t@t{\}n@t{\}f]"} and ! @code{paragraph-separate} is @code{"^[ @t{\}t@t{\}f]*$"}.@refill Normally it is desirable for page boundaries to separate paragraphs. *************** *** 323,327 **** @node Filling @section Filling Text ! @cindex filling With Auto Fill mode, text can be @dfn{filled} (broken up into lines --- 327,331 ---- @node Filling @section Filling Text ! @cindex filling text With Auto Fill mode, text can be @dfn{filled} (broken up into lines *************** *** 574,577 **** --- 578,583 ---- @kindex M-c @cindex words + @cindex converting text to upper or lower case + @cindex capitalizing words @findex downcase-word @findex upcase-word diff -rc2P --exclude-from=exceptions emacs-19.18/man/trouble.texi emacs-19.19/man/trouble.texi *** emacs-19.18/man/trouble.texi Mon Aug 2 22:03:25 1993 --- emacs-19.19/man/trouble.texi Fri Aug 13 09:52:21 1993 *************** *** 375,378 **** --- 375,379 ---- @subsection Checklist for Bug Reports + @cindex reporting bugs The best way to send a bug report is to mail it electronically to the Emacs maintainers at @samp{bug-gnu-emacs@@prep.ai.mit.edu}. *************** *** 633,636 **** --- 634,639 ---- @subsection Sending Patches for GNU Emacs + @cindex sending patches for GNU Emacs + @cindex patches, sending If you would like to write bug fixes or improvements for GNU Emacs, that is very helpful. When you send your changes, please follow these diff -rc2P --exclude-from=exceptions emacs-19.18/man/undo.texi emacs-19.19/man/undo.texi *** emacs-19.18/man/undo.texi Wed May 19 16:08:16 1993 --- emacs-19.19/man/undo.texi Fri Aug 13 06:56:09 1993 *************** *** 5,8 **** --- 5,9 ---- @chapter Undoing Changes @cindex undo + @cindex changes, undoing @cindex mistakes, correcting *************** *** 65,68 **** --- 66,70 ---- @vindex undo-limit @vindex undo-strong-limit + @cindex undo limit When the undo information of a buffer becomes too large, Emacs discards the oldest undo information from time to time (during garbage diff -rc2P --exclude-from=exceptions emacs-19.18/man/windows.texi emacs-19.19/man/windows.texi *** emacs-19.18/man/windows.texi Fri Jun 11 15:00:37 1993 --- emacs-19.19/man/windows.texi Fri Aug 13 08:07:47 1993 *************** *** 4,8 **** @node Windows, Frames, Buffers, Top @chapter Multiple Windows ! @cindex windows Emacs can split a frame into two or many windows. Multiple windows --- 4,9 ---- @node Windows, Frames, Buffers, Top @chapter Multiple Windows ! @cindex windows in Emacs ! @cindex multiple windows in Emacs Emacs can split a frame into two or many windows. Multiple windows *************** *** 151,154 **** --- 152,156 ---- @section Displaying in Another Window + @cindex selecting buffers in other windows @kindex C-x 4 @kbd{C-x 4} is a prefix key for commands that select another window diff -rc2P --exclude-from=exceptions emacs-19.18/oldXMenu/ChangeLog emacs-19.19/oldXMenu/ChangeLog *** emacs-19.18/oldXMenu/ChangeLog Sun Aug 8 03:12:58 1993 --- emacs-19.19/oldXMenu/ChangeLog Sat Aug 14 19:04:57 1993 *************** *** 1,2 **** --- 1,6 ---- + Sat Aug 14 00:23:11 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Version 19.19 released. + Sun Aug 8 01:15:30 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) diff -rc2P --exclude-from=exceptions emacs-19.18/src/ChangeLog emacs-19.19/src/ChangeLog *** emacs-19.18/src/ChangeLog Mon Aug 9 01:58:24 1993 --- emacs-19.19/src/ChangeLog Sun Aug 15 00:26:10 1993 *************** *** 1,2 **** --- 1,197 ---- + Sat Aug 14 00:23:11 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * Version 19.19 released. + + * Makefile.in (mostlyclean): Don't delete emacs here. + (clean): Delete emacs and emacs-* here. + (distclean): Don't delete emacs-* here. + + * xselect.c (struct property_change): New field `arrived'. + (expect_property_change): Return struct property_change *. + Clear `arrived'. + (unexpect_property_change): Take one as argument. + (wait_for_property_change): Take one as argument. + If `arrived' is set, don't wait. + (wait_for_property_change_unwind): Corresponding changes. + (receive_incremental_selection): Corresponding changes. + (x_reply_selection_request): Corresponding changes. + (property_deleted_p): Function deleted. + + * xselect.c (x_handle_selection_clear): Redisplay. + + * search.c (compile_pattern): Cast result of re_compile_pattern. + + * emacs.c (init_cmdargs): Check openp result for 1, not != 0. + + * xterm.c (x_wm_set_size_hint): New args spec_x and spec_y. + Set the window gravity. All callers changed. + * xfns.c (Fx_create_frame): Pass the new args to x_wm_set_size_hint. + + * xmenu.c (Fx_popup_menu): Adjust coords so they are relative + to the inner window. + + * syswait.h: New file. + * sysdep.c, process.c: Include it. + * ymakefile (sysdep.o, process.o): Depend on syswait.h. + + * process.c (wait_reading_process_input): Exit without waiting + if wait_for_cell is already non-nil. + + * sysdep.c (mkdir, rmdir): Use wait_for_termination to wait. + Redirect descriptors 0...2 to /dev/null. + + * emacs.c (__CTOR_LIST__): Don't declare it on Linux. + + * filelock.c (getpwuid): Declare it as in xrdb.c. + (init_filelock): Don't use return value of strcpy. + + * fns.c (internal_equal): Typo in previous change. + + * xfns.c (x_set_frame_parameters): Don't die if just one of + height and width was set. Likewise left and top. + + * textprop.c (property_change_between_p): Test NULL_INTERVAL_P + in loop, before looking at next->position. + + * intervals.c (adjust_intervals_for_insertion): If inserting in middle + of interval that is sticky in neither direction, don't copy props. + (merge_properties_sticky): Handle non-list as front-sticky or + rear-nonsticky property. + + Fri Aug 13 23:49:07 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * fns.c (internal_equal): All markers in no buffer are equal. + + Fri Aug 13 19:35:52 1993 Roland McGrath (roland@churchy.gnu.ai.mit.edu) + + * config.h.in: Added #undef HAVE_XSCREENNUMBEROFSCREEN. + + Fri Aug 13 17:38:53 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xfns.c (XScreenNumberOfScreen): New function. + + * m/tek4300.h (C_DEBUG_SWITCH, SYSTEM_MALLOC): Defined. + + * m/iris4d.h (START_FILES, LIB_STANDARD): Don't define if USG5_4. + (DEFAULT_ENTRY_ADDRESS): Likewise. + (UNEXEC): Use unexelfsgi.o if USG5_4. + + * s/irix5-0.h (C_SWITCH_MACHINE): Deleted. + + Fri Aug 13 07:42:39 1993 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr) + + * m/dpx2.h: Delete conditionals for HAVE_X_WINDOWS and HAVE_SOCKETS. + + Fri Aug 13 00:33:48 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * m/iris4d.h (C_ALLOCA): Don't define it. + + * keyboard.c (kbd_buffer_store_event): Use bcopy to copy + a selection request event. + + * unexnext.c (get_data_region): Add cast to avoid warning. + + Thu Aug 12 01:38:36 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * ymakefile (prefix-args, filemode.o, lastfile.o): Dep on $(config_h). + + * floatfns.c (Flogb): Error at run time if not supported. + + * ymakefile (emacs.o): Depend on process.h and syssignal.h. + * emacs.c: Include process.h. + (init_cmdargs): Use EXEC_SUFFIXES. + + * s/irix5-0.h: Include alloca.h if appropriate. + Fix the #include file name. + (ULIMIT_BREAK_VALUE, GETPGRP_NO_ARG, NO_MATHERR): New macros. + (LIB_STANDARD): #undef it. + + * frame.c (Fdelete_frame): Add parens for clarity. + + * keyboard.c (read_char): Never start echoing if -batch. + + * minibuf.c (Qread_file_name_internal): New var. + (syms_of_minibuf): Set it up and protect it. + (Fminibuffer_complete_word): When completing a file name, + expand envvar references. + + * xterm.c (XTread_socket): Make copy_buffer unsigned. + + * s/usg5-4-2.h (HAVE_GETHOSTNAME): #if 0'd. + + Wed Aug 11 00:25:31 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * s/hpux8.h (LD_SWITCH_SYSTEM): Delete the -L options. + + * termhooks.h (enum event_kind): Delete final comma. + (meta_modifier): Delete final comma. + * window.c (enum window_loop): Delete final comma. + * xfns.c (enum resource_types): Delete final comma. + + * m/ibmrs6000.h (BIG_ENDIAN): Don't actually define it. + + * window.c (Frecenter): Preserve point in the buffer we change it in. + + * cmds.c (Fnewline): If we don't do the first SET_PT, + clear flag, so we don't do the second SET_PT. + + * keyboard.c (make_lispy_event): Clear all but 0377 in event->code. + + * xselect.c (receive_incremental_selection): Use bcopy, not memcpy. + + * m/tek4300.h (BIG_ENDIAN): Provide a value that matches the system. + + * config.h.in: Add #undef HAVE_FTIME. + + * ymakefile (ALL_CFLAGS): Use C_SWITCH_X_SITE before + C_SWITCH_X_SYSTEM and C_SWITCH_X_MACHINE. + + * s/hpux8.h (C_SWITCH_X_SYSTEM): Define instead of C_SWITCH_SYSTEM. + + Wed Aug 11 02:21:15 1993 Shane Hartman (shane@nugget.spr.com) + + * buffer.c (verify_overlay_modification): Initialize endpos. + + * keymap.c (describe_buffer_bindings): Declare shadow just once. + + Tue Aug 10 01:46:40 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * xterm.c (x_calc_absolute_position): For negative coords, take + account of added width from window manager's outer window. + + * term.c (term_get_fkeys_define_1, term_get_fkeys_define): + New functions. + (term_get_fkeys): Use them. + + * m/tekxd88.h: Renamed from tekXD88.h. + (LIB_X11_LIB, LIBX11_SYSTEM): Make #undefs unconditional. + + * systty.h: Handle NO_TERMIO in principal HAVE_TERMIOS case. + + * xrdb.c (x_get_customization_string): Don't use value of strcpy. + + * floatfns.c (Fexpt): Use IN_FLOAT2. + + Tue Aug 10 15:12:13 1993 Frederic Pierresteguy (F.Pierresteguy@frcl.bull.fr) + + * m/dpx2.h (HAVE_TCATTR): Macro #defined. + (HAVE_CLOSEDIR): #undef to allow use of closedir in sysdep.c. + (SIGTSTP): Commented #undef to allow use of ^Z in shell-mode. + (SIGNALS_VIA_CHARACTERS): #defined. + + Mon Aug 9 21:40:23 1993 Paul Eggert (eggert@twinsun.com) + + * data.c (Fmod): New function; result is always same sign as divisor. + (syms_of_data): Add Smod. + * emacs.c (main): Invoke syms_of_floatfns even if LISP_FLOAT_TYPE + isn't defined, since `(floor A B)' is now needed for integers. + * floatfns.c (syms_of_floatfns): Likewise. + (Ffloor): Optional second operand specifies divisor, as in Common Lisp. + + Mon Aug 9 21:32:01 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) + + * unexelf.c (unexec): Add casts for some comparisons. + (PATCH_INDEX): Likewise. + Sun Aug 8 01:15:30 1993 Richard Stallman (rms@mole.gnu.ai.mit.edu) diff -rc2P --exclude-from=exceptions emacs-19.18/src/Makefile.in emacs-19.19/src/Makefile.in *** emacs-19.18/src/Makefile.in Tue Jul 20 18:16:56 1993 --- emacs-19.19/src/Makefile.in Sat Aug 14 23:38:41 1993 *************** *** 32,43 **** mostlyclean: ! rm -f temacs emacs prefix-args xmakefile* core \#* *.o libXMenu11.a rm -f ../etc/DOC clean: mostlyclean ! true #This is used in making a distribution. #Do not use it on development directories! distclean: clean ! rm -f paths.h config.h emacs-* ../etc/DOC-* realclean: distclean rm -f TAGS --- 32,43 ---- mostlyclean: ! rm -f temacs prefix-args xmakefile* core \#* *.o libXMenu11.a rm -f ../etc/DOC clean: mostlyclean ! rm emacs-* emacs #This is used in making a distribution. #Do not use it on development directories! distclean: clean ! rm -f paths.h config.h ../etc/DOC-* realclean: distclean rm -f TAGS diff -rc2P --exclude-from=exceptions emacs-19.18/src/alloca.c emacs-19.19/src/alloca.c *** emacs-19.18/src/alloca.c Mon Aug 9 02:38:32 1993 --- emacs-19.19/src/alloca.c Sun Aug 15 01:34:27 1993 *************** *** 26,30 **** #endif ! /* If compiling with GCC, this file's not needed. */ #ifndef alloca --- 26,33 ---- #endif ! /* If compiling with GCC 2, this file's not needed. */ ! #if defined (__GNUC__) && __GNUC__ >= 2 ! /* If someone has defined alloca as a macro, ! there must be some other way alloca is supposed to work. */ #ifndef alloca *************** *** 73,78 **** #ifndef emacs #define malloc xmalloc - extern pointer xmalloc (); #endif /* Define STACK_DIRECTION if you know the direction of stack --- 76,81 ---- #ifndef emacs #define malloc xmalloc #endif + extern pointer malloc (); /* Define STACK_DIRECTION if you know the direction of stack *************** *** 474,475 **** --- 477,479 ---- #endif /* no alloca */ + #endif /* not GCC version 2 */ diff -rc2P --exclude-from=exceptions emacs-19.18/src/buffer.c emacs-19.19/src/buffer.c *** emacs-19.18/src/buffer.c Mon Aug 2 03:28:28 1993 --- emacs-19.19/src/buffer.c Wed Aug 11 17:07:44 1993 *************** *** 1947,1950 **** --- 1947,1951 ---- oend = OVERLAY_END (overlay); startpos = OVERLAY_POSITION (ostart); + endpos = OVERLAY_POSITION (oend); if (XFASTINT (end) < startpos) break; diff -rc2P --exclude-from=exceptions emacs-19.18/src/cmds.c emacs-19.19/src/cmds.c *** emacs-19.18/src/cmds.c Wed Jul 28 04:57:05 1993 --- emacs-19.19/src/cmds.c Wed Aug 11 14:29:32 1993 *************** *** 254,265 **** flag = point > BEGV && FETCH_CHAR (point - 1) == '\n'; - if (flag) - /* We cannot use this optimization if properties change - in the vicinity. - ??? We need to check for change hook properties, etc. */ #ifdef USE_TEXT_PROPERTIES ! if (point - 1 > BEGV && ! property_change_between_p (point - 2, point)) #endif ! SET_PT (point - 1); while (XINT (arg) > 0) --- 254,268 ---- flag = point > BEGV && FETCH_CHAR (point - 1) == '\n'; #ifdef USE_TEXT_PROPERTIES ! /* We cannot use this optimization if properties change ! in the vicinity. ! ??? We need to check for change hook properties, etc. */ ! if (flag) ! if (! (point - 1 > BEGV && ! property_change_between_p (point - 2, point))) ! flag = 0; #endif ! ! if (flag) ! SET_PT (point - 1); while (XINT (arg) > 0) diff -rc2P --exclude-from=exceptions emacs-19.18/src/config.h.in emacs-19.19/src/config.h.in *** emacs-19.18/src/config.h.in Mon Aug 9 01:51:48 1993 --- emacs-19.19/src/config.h.in Thu Aug 12 03:49:49 1993 *************** *** 113,116 **** --- 113,117 ---- #undef HAVE_XRMSETDATABASE #undef HAVE_XSCREENRESOURCESTRING + #undef HAVE_XSCREENNUMBEROFSCREEN #undef HAVE_MKDIR *************** *** 120,123 **** --- 121,125 ---- #undef HAVE_LOGB #undef HAVE_FREXP + #undef HAVE_FTIME #undef HAVE_AIX_SMT_EXP diff -rc2P --exclude-from=exceptions emacs-19.18/src/data.c emacs-19.19/src/data.c *** emacs-19.18/src/data.c Wed Aug 4 00:16:58 1993 --- emacs-19.19/src/data.c Tue Aug 10 00:13:28 1993 *************** *** 1753,1756 **** --- 1753,1810 ---- } + DEFUN ("mod", Fmod, Smod, 2, 2, 0, + "Returns X modulo Y.\n\ + The result falls between zero (inclusive) and Y (exclusive).\n\ + Both X and Y must be numbers or markers.") + (num1, num2) + register Lisp_Object num1, num2; + { + Lisp_Object val; + int i1, i2; + + #ifdef LISP_FLOAT_TYPE + CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num1, 0); + CHECK_NUMBER_OR_FLOAT_COERCE_MARKER (num2, 1); + + if (XTYPE (num1) == Lisp_Float || XTYPE (num2) == Lisp_Float) + { + double f1, f2; + + f1 = XTYPE (num1) == Lisp_Float ? XFLOAT (num1)->data : XINT (num1); + f2 = XTYPE (num2) == Lisp_Float ? XFLOAT (num2)->data : XINT (num2); + if (f2 == 0) + Fsignal (Qarith_error, Qnil); + + #if defined (USG) || defined (sun) || defined (ultrix) || defined (hpux) + f1 = fmod (f1, f2); + #else + f1 = drem (f1, f2); + #endif + /* If the "remainder" comes out with the wrong sign, fix it. */ + if ((f1 < 0) != (f2 < 0)) + f1 += f2; + return (make_float (f1)); + } + #else /* not LISP_FLOAT_TYPE */ + CHECK_NUMBER_COERCE_MARKER (num1, 0); + CHECK_NUMBER_COERCE_MARKER (num2, 1); + #endif /* not LISP_FLOAT_TYPE */ + + i1 = XINT (num1); + i2 = XINT (num2); + + if (i2 == 0) + Fsignal (Qarith_error, Qnil); + + i1 %= i2; + + /* If the "remainder" comes out with the wrong sign, fix it. */ + if ((i1 < 0) != (i2 < 0)) + i1 += i2; + + XSET (val, Lisp_Int, i1); + return val; + } + DEFUN ("max", Fmax, Smax, 1, MANY, 0, "Return largest of all the arguments (which must be numbers or markers).\n\ *************** *** 2195,2198 **** --- 2249,2253 ---- defsubr (&Squo); defsubr (&Srem); + defsubr (&Smod); defsubr (&Smax); defsubr (&Smin); diff -rc2P --exclude-from=exceptions emacs-19.18/src/emacs.c emacs-19.19/src/emacs.c *** emacs-19.18/src/emacs.c Sun Aug 8 01:05:34 1993 --- emacs-19.19/src/emacs.c Sat Aug 14 14:36:47 1993 *************** *** 48,51 **** --- 48,52 ---- #include "systty.h" #include "syssignal.h" + #include "process.h" #ifndef O_RDWR *************** *** 170,175 **** Lisp_Object found; int yes = openp (Vexec_path, Vinvocation_name, ! "", &found, 1); ! if (yes) Vinvocation_directory = Ffile_name_directory (found); } --- 171,176 ---- Lisp_Object found; int yes = openp (Vexec_path, Vinvocation_name, ! EXEC_SUFFIXES, &found, 1); ! if (yes == 1) Vinvocation_directory = Ffile_name_directory (found); } *************** *** 222,226 **** --- 223,230 ---- __do_global_dtors () {} + /* Linux has a bug in its library; avoid an error. */ + #ifndef LINUX char * __CTOR_LIST__[2] = { (char *) (-1), 0 }; + #endif char * __DTOR_LIST__[2] = { (char *) (-1), 0 }; __main () *************** *** 537,543 **** syms_of_eval (); syms_of_fns (); - #ifdef LISP_FLOAT_TYPE syms_of_floatfns (); - #endif syms_of_abbrev (); --- 541,545 ---- diff -rc2P --exclude-from=exceptions emacs-19.18/src/filelock.c emacs-19.19/src/filelock.c *** emacs-19.18/src/filelock.c Sun Jul 25 17:46:24 1993 --- emacs-19.19/src/filelock.c Sat Aug 14 03:20:35 1993 *************** *** 43,47 **** extern char *strcpy (); ! #ifndef __386bsd__ extern struct passwd *getpwuid (); #endif --- 43,49 ---- extern char *strcpy (); ! #if defined (__bsdi__) || defined (DECLARE_GETPWUID_WITH_UID_T) ! extern struct passwd *getpwuid (uid_t); ! #else extern struct passwd *getpwuid (); #endif *************** *** 438,443 **** if (lock_path[strlen (lock_path) - 1] != '/') { ! lock_path = strcpy ((char *) xmalloc (strlen (lock_path) + 2), ! lock_path); strcat (lock_path, "/"); } --- 440,446 ---- if (lock_path[strlen (lock_path) - 1] != '/') { ! char *new_path = (char *) xmalloc (strlen (lock_path) + 2); ! strcpy (new_path, lock_path); ! lock_path = new_path; strcat (lock_path, "/"); } diff -rc2P --exclude-from=exceptions emacs-19.18/src/floatfns.c emacs-19.19/src/floatfns.c *** emacs-19.18/src/floatfns.c Mon Aug 9 02:02:52 1993 --- emacs-19.19/src/floatfns.c Thu Aug 12 20:45:15 1993 *************** *** 403,408 **** CHECK_NUMBER_OR_FLOAT (arg1, 0); CHECK_NUMBER_OR_FLOAT (arg2, 0); ! if ((XTYPE (arg1) == Lisp_Int) && /* common lisp spec */ ! (XTYPE (arg2) == Lisp_Int)) /* don't promote, if both are ints */ { /* this can be improved by pre-calculating */ int acc, x, y; /* some binary powers of x then accumulating */ --- 403,408 ---- CHECK_NUMBER_OR_FLOAT (arg1, 0); CHECK_NUMBER_OR_FLOAT (arg2, 0); ! if (XTYPE (arg1) == Lisp_Int /* common lisp spec */ ! && XTYPE (arg2) == Lisp_Int) /* don't promote, if both are ints */ { /* this can be improved by pre-calculating */ int acc, x, y; /* some binary powers of x then accumulating */ *************** *** 445,449 **** domain_error2 ("expt", arg1, arg2); #endif ! IN_FLOAT (f1 = pow (f1, f2), "expt", arg1); return make_float (f1); } --- 445,449 ---- domain_error2 ("expt", arg1, arg2); #endif ! IN_FLOAT2 (f1 = pow (f1, f2), "expt", arg1, arg2); return make_float (f1); } *************** *** 627,631 **** DEFUN ("logb", Flogb, Slogb, 1, 1, 0, ! "Returns the integer not greater than the base 2 log of the magnitude of ARG.\n\ This is the same as the exponent of a float.") (arg) --- 627,631 ---- DEFUN ("logb", Flogb, Slogb, 1, 1, 0, ! "Returns largest integer <= the base 2 log of the magnitude of ARG.\n\ This is the same as the exponent of a float.") (arg) *************** *** 648,652 **** } #else ! Well, what *do* you have? #endif #endif --- 648,653 ---- } #else ! /* Would someone like to write code to emulate logb? */ ! error ("`logb' not implemented on this operating system"); #endif #endif *************** *** 670,682 **** } ! DEFUN ("floor", Ffloor, Sfloor, 1, 1, 0, ! "Return the largest integer no greater than ARG. (Round towards -inf.)") ! (arg) ! register Lisp_Object arg; { CHECK_NUMBER_OR_FLOAT (arg, 0); if (XTYPE (arg) == Lisp_Float) IN_FLOAT (XSET (arg, Lisp_Int, floor (XFLOAT (arg)->data)), "floor", arg); return arg; --- 671,728 ---- } ! #endif /* LISP_FLOAT_TYPE */ ! ! ! DEFUN ("floor", Ffloor, Sfloor, 1, 2, 0, ! "Return the largest integer no greater than ARG. (Round towards -inf.)\n\ ! With optional DIVISOR, return the largest integer no greater than ARG/DIVISOR.") ! (arg, divisor) ! register Lisp_Object arg, divisor; { CHECK_NUMBER_OR_FLOAT (arg, 0); + if (! NILP (divisor)) + { + int i1, i2; + + CHECK_NUMBER_OR_FLOAT (divisor, 1); + + #ifdef LISP_FLOAT_TYPE + if (XTYPE (arg) == Lisp_Float || XTYPE (divisor) == Lisp_Float) + { + double f1, f2; + + f1 = XTYPE (arg) == Lisp_Float ? XFLOAT (arg)->data : XINT (arg); + f2 = (XTYPE (divisor) == Lisp_Float + ? XFLOAT (divisor)->data : XINT (divisor)); + if (f2 == 0) + Fsignal (Qarith_error, Qnil); + + IN_FLOAT2 (XSET (arg, Lisp_Int, floor (f1 / f2)), + "floor", arg, divisor); + return arg; + } + #endif + + i1 = XINT (arg); + i2 = XINT (divisor); + + if (i2 == 0) + Fsignal (Qarith_error, Qnil); + + /* With C's /, the result is implementation-defined if either operand + is negative, so use only nonnegative operands. */ + i1 = (i2 < 0 + ? (i1 <= 0 ? -i1 / -i2 : -1 - ((i1 - 1) / -i2)) + : (i1 < 0 ? -1 - ((-1 - i1) / i2) : i1 / i2)); + + XSET (arg, Lisp_Int, i1); + return arg; + } + + #ifdef LISP_FLOAT_TYPE if (XTYPE (arg) == Lisp_Float) IN_FLOAT (XSET (arg, Lisp_Int, floor (XFLOAT (arg)->data)), "floor", arg); + #endif return arg; *************** *** 683,686 **** --- 729,734 ---- } + #ifdef LISP_FLOAT_TYPE + DEFUN ("round", Fround, Sround, 1, 1, 0, "Return the nearest integer to ARG.") *************** *** 828,833 **** --- 876,889 ---- } + #else /* not LISP_FLOAT_TYPE */ + + init_floatfns () + {} + + #endif /* not LISP_FLOAT_TYPE */ + syms_of_floatfns () { + #ifdef LISP_FLOAT_TYPE defsubr (&Sacos); defsubr (&Sasin); *************** *** 868,883 **** defsubr (&Slogb); defsubr (&Sceiling); - defsubr (&Sfloor); defsubr (&Sround); defsubr (&Struncate); } - - #else /* not LISP_FLOAT_TYPE */ - - init_floatfns () - {} - - syms_of_floatfns () - {} - - #endif /* not LISP_FLOAT_TYPE */ --- 924,930 ---- defsubr (&Slogb); defsubr (&Sceiling); defsubr (&Sround); defsubr (&Struncate); + #endif /* LISP_FLOAT_TYPE */ + defsubr (&Sfloor); } diff -rc2P --exclude-from=exceptions emacs-19.18/src/fns.c emacs-19.19/src/fns.c *** emacs-19.18/src/fns.c Wed Aug 4 21:47:53 1993 --- emacs-19.19/src/fns.c Sat Aug 14 03:13:19 1993 *************** *** 871,877 **** if (XTYPE (o1) == Lisp_Marker) { ! return (XMARKER (o1)->buffer == XMARKER (o2)->buffer ! && XMARKER (o1)->bufpos == XMARKER (o2)->bufpos) ! ? Qt : Qnil; } if (XTYPE (o1) == Lisp_Vector --- 871,878 ---- if (XTYPE (o1) == Lisp_Marker) { ! return ((XMARKER (o1)->buffer == XMARKER (o2)->buffer ! && (XMARKER (o1)->buffer == 0 ! || XMARKER (o1)->bufpos == XMARKER (o2)->bufpos)) ! ? Qt : Qnil); } if (XTYPE (o1) == Lisp_Vector diff -rc2P --exclude-from=exceptions emacs-19.18/src/frame.c emacs-19.19/src/frame.c *** emacs-19.18/src/frame.c Mon Aug 2 18:15:40 1993 --- emacs-19.19/src/frame.c Thu Aug 12 17:00:46 1993 *************** *** 657,661 **** /* Allow deleting the terminal frame when at least one X frame exists! */ ! || FRAME_X_P (XFRAME (this)) && !FRAME_X_P (f)) count++; } --- 657,661 ---- /* Allow deleting the terminal frame when at least one X frame exists! */ ! || (FRAME_X_P (XFRAME (this)) && !FRAME_X_P (f))) count++; } diff -rc2P --exclude-from=exceptions emacs-19.18/src/getloadavg.c emacs-19.19/src/getloadavg.c *** emacs-19.18/src/getloadavg.c Mon Aug 2 16:48:12 1993 --- emacs-19.19/src/getloadavg.c Sun Aug 15 01:34:51 1993 *************** *** 70,74 **** #ifdef HAVE_CONFIG_H ! #include "config.h" #endif --- 70,77 ---- #ifdef HAVE_CONFIG_H ! /* We use instead of "config.h" so that a compilation ! using -I. -I$srcdir will use ./config.h rather than $srcdir/config.h ! (which it would do because getloadavg.c was found in $srcdir). */ ! #include #endif diff -rc2P --exclude-from=exceptions emacs-19.18/src/gmalloc.c emacs-19.19/src/gmalloc.c *** emacs-19.18/src/gmalloc.c Mon Aug 9 02:32:12 1993 --- emacs-19.19/src/gmalloc.c Sun Aug 15 01:11:26 1993 *************** *** 34,38 **** #ifdef HAVE_CONFIG_H ! #include "config.h" #endif --- 34,38 ---- #ifdef HAVE_CONFIG_H ! #include #endif *************** *** 243,247 **** /* Call WARNFUN with a warning message when memory usage is high. */ extern void memory_warnings __P ((__ptr_t __start, ! void (*__warnfun) __P ((__const char *)))); --- 243,247 ---- /* Call WARNFUN with a warning message when memory usage is high. */ extern void memory_warnings __P ((__ptr_t __start, ! void (*__warnfun) __P ((const char *)))); *************** *** 442,445 **** --- 442,450 ---- size = sizeof (struct list); + #ifdef SUNOS_LOCALTIME_BUG + if (size < 16) + size = 16; + #endif + /* Determine the allocation policy based on the request size. */ if (size <= BLOCKSIZE / 2) *************** *** 528,532 **** (morecore ((blocks - lastblocks) * BLOCKSIZE)) != NULL) { ! _heapinfo[block].free.size = blocks; _bytes_free += (blocks - lastblocks) * BLOCKSIZE; continue; --- 533,541 ---- (morecore ((blocks - lastblocks) * BLOCKSIZE)) != NULL) { ! /* Which block we are extending (the `final free ! block' referred to above) might have changed, if ! it got combined with a freed info table. */ ! block = _heapinfo[0].free.prev; ! _heapinfo[block].free.size += (blocks - lastblocks); _bytes_free += (blocks - lastblocks) * BLOCKSIZE; continue; *************** *** 999,1003 **** { memcpy (result, ptr, size); ! free (ptr); return result; } --- 1008,1012 ---- { memcpy (result, ptr, size); ! _free_internal (ptr); return result; } *************** *** 1015,1019 **** = _heapinfo[block].busy.info.size - blocks; _heapinfo[block].busy.info.size = blocks; ! free (ADDRESS (block + blocks)); result = ptr; } --- 1024,1028 ---- = _heapinfo[block].busy.info.size - blocks; _heapinfo[block].busy.info.size = blocks; ! _free_internal (ADDRESS (block + blocks)); result = ptr; } *************** *** 1030,1034 **** oldlimit = _heaplimit; _heaplimit = 0; ! free (ptr); _heaplimit = oldlimit; result = malloc (size); --- 1039,1043 ---- oldlimit = _heaplimit; _heaplimit = 0; ! _free_internal (ptr); _heaplimit = oldlimit; result = malloc (size); *************** *** 1044,1048 **** __ptr_t previous = malloc ((block - _heapindex) * BLOCKSIZE); (void) malloc (blocks * BLOCKSIZE); ! free (previous); } return NULL; --- 1053,1057 ---- __ptr_t previous = malloc ((block - _heapindex) * BLOCKSIZE); (void) malloc (blocks * BLOCKSIZE); ! _free_internal (previous); } return NULL; *************** *** 1239,1248 **** or (US mail) as Mike Haertel c/o Free Software Foundation. */ ! #ifndef _MALLOC_INTERNAL ! #define _MALLOC_INTERNAL ! #include ! #endif ! ! #ifdef __GNU_LIBRARY__ extern size_t __getpagesize __P ((void)); #else --- 1248,1254 ---- or (US mail) as Mike Haertel c/o Free Software Foundation. */ ! #if defined (__GNU_LIBRARY__) || defined (_LIBC) ! #include ! #include extern size_t __getpagesize __P ((void)); #else *************** *** 1249,1252 **** --- 1255,1263 ---- #include "getpagesize.h" #define __getpagesize() getpagesize() + #endif + + #ifndef _MALLOC_INTERNAL + #define _MALLOC_INTERNAL + #include #endif diff -rc2P --exclude-from=exceptions emacs-19.18/src/intervals.c emacs-19.19/src/intervals.c *** emacs-19.18/src/intervals.c Sat Jul 31 17:55:53 1993 --- emacs-19.19/src/intervals.c Sat Aug 14 23:35:09 1993 *************** *** 657,660 **** --- 657,672 ---- i = find_interval (tree, position); + /* If in middle of an interval which is not sticky either way, + we must not just give its properties to the insertion. + So split this interval at the insertion point. */ + if (! (position == i->position || eobp) + && END_NONSTICKY_P (i) + && ! FRONT_STICKY_P (i)) + { + temp = split_interval_right (i, position - i->position); + copy_properties (i, temp); + i = temp; + } + /* If we are positioned between intervals, check the stickiness of both of them. We have to do this too, if we are at BEG or Z. */ *************** *** 749,753 **** continue; ! if (NILP (Fmemq (sym, lrear))) { /* rear-sticky is dominant, we needn't search in PRIGHT. */ --- 761,765 ---- continue; ! if (CONSP (lrear) ? NILP (Fmemq (sym, lrear)) : NILP (lrear)) { /* rear-sticky is dominant, we needn't search in PRIGHT. */ *************** *** 754,758 **** props = Fcons (sym, Fcons (Fcar (Fcdr (tail1)), props)); ! if (! NILP (Fmemq (sym, lfront))) front = Fcons (sym, front); } --- 766,771 ---- props = Fcons (sym, Fcons (Fcar (Fcdr (tail1)), props)); ! if ((CONSP (lfront) || NILP (lfront)) ! && ! NILP (Fmemq (sym, lfront))) front = Fcons (sym, front); } *************** *** 764,768 **** { ! if (! NILP (Fmemq (sym, rfront))) { /* Nonsticky at the left and sticky at the right, --- 777,782 ---- { ! if (CONSP (rfront) ! ? ! NILP (Fmemq (sym, rfront)) : ! NILP (rfront)) { /* Nonsticky at the left and sticky at the right, *************** *** 770,774 **** props = Fcons (sym, Fcons (Fcar (Fcdr (tail2)), props)); front = Fcons (sym, front); ! if (! NILP (Fmemq (sym, rrear))) rear = Fcons (sym, rear); } --- 784,789 ---- props = Fcons (sym, Fcons (Fcar (Fcdr (tail2)), props)); front = Fcons (sym, front); ! if ((CONSP (rrear) || NILP (rrear)) ! && ! NILP (Fmemq (sym, rrear))) rear = Fcons (sym, rear); } *************** *** 787,791 **** /* If it ain't sticky, we don't take it. */ ! if (NILP (Fmemq (sym, rfront))) continue; --- 802,807 ---- /* If it ain't sticky, we don't take it. */ ! if (CONSP (rfront) ! ? NILP (Fmemq (sym, rfront)) : NILP (rfront)) continue; *************** *** 799,803 **** props = Fcons (sym, Fcons (Fcar (Fcdr (tail2)), props)); front = Fcons (sym, front); ! if (! NILP (Fmemq (sym, rrear))) rear = Fcons (sym, rear); } --- 815,820 ---- props = Fcons (sym, Fcons (Fcar (Fcdr (tail2)), props)); front = Fcons (sym, front); ! if ((CONSP (rrear) || NILP (rrear)) ! && ! NILP (Fmemq (sym, rrear))) rear = Fcons (sym, rear); } diff -rc2P --exclude-from=exceptions emacs-19.18/src/keyboard.c emacs-19.19/src/keyboard.c *** emacs-19.18/src/keyboard.c Fri Aug 6 18:45:05 1993 --- emacs-19.19/src/keyboard.c Fri Aug 13 02:17:30 1993 *************** *** 1455,1458 **** --- 1455,1459 ---- start echoing if enough time elapses. */ if (minibuf_level == 0 && !immediate_echo && this_command_key_count > 0 + && ! noninteractive && echo_keystrokes > 0 && (echo_area_glyphs == 0 || *echo_area_glyphs == 0)) *************** *** 1784,1789 **** will set Vlast_event_frame again, so this is safe to do. */ { ! Lisp_Object focus = ! FRAME_FOCUS_FRAME (XFRAME (event->frame_or_window)); if (NILP (focus)) --- 1785,1790 ---- will set Vlast_event_frame again, so this is safe to do. */ { ! Lisp_Object focus ! = FRAME_FOCUS_FRAME (XFRAME (event->frame_or_window)); if (NILP (focus)) *************** *** 1817,1827 **** { kbd_store_ptr->kind = event->kind; ! kbd_store_ptr->code = event->code; ! kbd_store_ptr->part = event->part; ! kbd_store_ptr->frame_or_window = event->frame_or_window; ! kbd_store_ptr->modifiers = event->modifiers; ! kbd_store_ptr->x = event->x; ! kbd_store_ptr->y = event->y; ! kbd_store_ptr->timestamp = event->timestamp; (XVECTOR (kbd_buffer_frame_or_window)->contents[kbd_store_ptr - kbd_buffer] --- 1818,1838 ---- { kbd_store_ptr->kind = event->kind; ! if (event->kind == selection_request_event) ! { ! /* We must not use the ordinary copying code for this case, ! since `part' is an enum and copying it might not copy enough ! in this case. */ ! bcopy (event, kbd_store_ptr, sizeof (*event)); ! } ! else ! { ! kbd_store_ptr->code = event->code; ! kbd_store_ptr->part = event->part; ! kbd_store_ptr->frame_or_window = event->frame_or_window; ! kbd_store_ptr->modifiers = event->modifiers; ! kbd_store_ptr->x = event->x; ! kbd_store_ptr->y = event->y; ! kbd_store_ptr->timestamp = event->timestamp; ! } (XVECTOR (kbd_buffer_frame_or_window)->contents[kbd_store_ptr - kbd_buffer] *************** *** 2235,2239 **** case ascii_keystroke: { ! int c = XFASTINT (event->code); /* Turn ASCII characters into control characters when proper. */ --- 2246,2250 ---- case ascii_keystroke: { ! int c = XFASTINT (event->code) & 0377; /* Turn ASCII characters into control characters when proper. */ *************** *** 4157,4164 **** } ! new_head = ! apply_modifiers (modifiers, XCONS (breakdown)->car); ! new_click = ! Fcons (new_head, Fcons (EVENT_START (key), Qnil)); /* Look for a binding for this new key. follow_key --- 4168,4175 ---- } ! new_head ! = apply_modifiers (modifiers, XCONS (breakdown)->car); ! new_click ! = Fcons (new_head, Fcons (EVENT_START (key), Qnil)); /* Look for a binding for this new key. follow_key *************** *** 4165,4175 **** promises that it didn't munge submaps the last time we called it, since key was unbound. */ ! first_binding = ! (follow_key (new_click, ! nmaps - local_first_binding, ! submaps + local_first_binding, ! defs + local_first_binding, ! submaps + local_first_binding) ! + local_first_binding); /* If that click is bound, go for it. */ --- 4176,4186 ---- promises that it didn't munge submaps the last time we called it, since key was unbound. */ ! first_binding ! = (follow_key (new_click, ! nmaps - local_first_binding, ! submaps + local_first_binding, ! defs + local_first_binding, ! submaps + local_first_binding) ! + local_first_binding); /* If that click is bound, go for it. */ *************** *** 5376,5380 **** Note that the character ?\C-@, equivalent to the integer zero, does\n\ not count as a control character; rather, it counts as a character\n\ ! with no modifiers; thus, setting extra_keyboard_modifiers to zero\n\ cancels any modification."); extra_keyboard_modifiers = 0; --- 5387,5391 ---- Note that the character ?\C-@, equivalent to the integer zero, does\n\ not count as a control character; rather, it counts as a character\n\ ! with no modifiers; thus, setting `extra-keyboard-modifiers' to zero\n\ cancels any modification."); extra_keyboard_modifiers = 0; diff -rc2P --exclude-from=exceptions emacs-19.18/src/keymap.c emacs-19.19/src/keymap.c *** emacs-19.18/src/keymap.c Sun Jul 18 02:07:39 1993 --- emacs-19.19/src/keymap.c Wed Aug 11 17:09:55 1993 *************** *** 1684,1687 **** --- 1684,1688 ---- descbuf = XCONS (arg)->car; prefix = XCONS (arg)->cdr; + shadow = Qnil; Fset_buffer (Vstandard_output); *************** *** 1721,1728 **** int i, nmaps; Lisp_Object *modes, *maps; - Lisp_Object shadow; - shadow = Qnil; - /* Temporarily switch to descbuf, so that we can get that buffer's minor modes correctly. */ --- 1722,1726 ---- *************** *** 1730,1735 **** nmaps = current_minor_maps (&modes, &maps); Fset_buffer (Vstandard_output); - - shadow = Qnil; /* Print the minor mode maps. */ --- 1728,1731 ---- diff -rc2P --exclude-from=exceptions emacs-19.18/src/m/dpx2.h emacs-19.19/src/m/dpx2.h *** emacs-19.18/src/m/dpx2.h Wed Jul 14 02:09:50 1993 --- emacs-19.19/src/m/dpx2.h Fri Aug 13 15:08:17 1993 *************** *** 134,138 **** * if we use X11, libX11.a has these... */ - #ifdef HAVE_X_WINDOWS # undef LIB_X11_LIB # define LIB_X11_LIB -lX11 --- 134,137 ---- *************** *** 146,150 **** */ # define HAVE_SOCKETS - #endif /* HAVE_X_WINDOWS */ /* --- 145,148 ---- *************** *** 151,157 **** * useful if you have INET loaded */ - #ifdef HAVE_SOCKETS # define LIBS_MACHINE -linet - #endif --- 149,153 ---- *************** *** 183,187 **** * un-comment out the next line. */ ! # undef SIGTSTP /* make suspend-emacs spawn a sub-shell */ # ifdef NOMULTIPLEJOBS # undef NOMULTIPLEJOBS --- 179,183 ---- * un-comment out the next line. */ ! /* # undef SIGTSTP /* make suspend-emacs spawn a sub-shell */ # ifdef NOMULTIPLEJOBS # undef NOMULTIPLEJOBS *************** *** 227,230 **** --- 223,227 ---- #undef HAVE_TERMIO #define HAVE_TERMIOS + #define HAVE_TCATTR /* we also have this */ *************** *** 240,244 **** #define F_SETOWN_BUG ! /* end of dpx2.h */ --- 237,250 ---- #define F_SETOWN_BUG ! /* system closedir sometimes complains about wrong descriptor ! for no apparent reasons. Use the provided closedir in sysdep.c instead */ ! #ifdef HAVE_CLOSEDIR ! #undef HAVE_CLOSEDIR ! #endif ! ! /* Send signals to subprocesses by "typing" signal chars at them. */ ! #define SIGNALS_VIA_CHARACTERS ! ! /* end of dpx2.h */ diff -rc2P --exclude-from=exceptions emacs-19.18/src/m/ibmrs6000.h emacs-19.19/src/m/ibmrs6000.h *** emacs-19.18/src/m/ibmrs6000.h Fri Jul 30 21:37:09 1993 --- emacs-19.19/src/m/ibmrs6000.h Thu Aug 12 00:52:46 1993 *************** *** 35,39 **** --- 35,43 ---- is the most significant byte. */ + /* This conflicts with something in the system headers, + and isn't currently used, since NO_UNION_TYPE is defined. */ + #if 0 #define BIG_ENDIAN + #endif /* Define NO_ARG_ARRAY if you cannot take the address of the first of a diff -rc2P --exclude-from=exceptions emacs-19.18/src/m/iris4d.h emacs-19.19/src/m/iris4d.h *** emacs-19.18/src/m/iris4d.h Thu Jun 17 19:14:30 1993 --- emacs-19.19/src/m/iris4d.h Fri Aug 13 17:40:30 1993 *************** *** 107,111 **** in the file alloca.s should be used. */ ! #define C_ALLOCA /* #define HAVE_ALLOCA */ --- 107,111 ---- in the file alloca.s should be used. */ ! /* #define C_ALLOCA */ /* Sjoerd.Mullender@cwi.nl says no need. */ /* #define HAVE_ALLOCA */ *************** *** 120,124 **** --- 120,129 ---- which lives in a separate file. Specify the file name. */ + #ifdef USG5_4 + #undef UNEXEC + #define UNEXEC unexelfsgi.o + #else #define UNEXEC unexmips.o + #endif #define TEXT_START 0x400000 *************** *** 146,149 **** --- 151,155 ---- Emacs does the latter. */ + #ifndef USG5_4 #ifdef HAVE_CRTN /* Must define START-FILES so that the linker can find /usr/lib/crt0.o. */ *************** *** 155,158 **** --- 161,165 ---- #define DEFAULT_ENTRY_ADDRESS start #define LIB_STANDARD -lc + #endif #endif diff -rc2P --exclude-from=exceptions emacs-19.18/src/m/tek4300.h emacs-19.19/src/m/tek4300.h *** emacs-19.18/src/m/tek4300.h Sat Jun 12 17:59:04 1993 --- emacs-19.19/src/m/tek4300.h Fri Aug 13 18:13:25 1993 *************** *** 34,38 **** /* 68000 has lowest-numbered byte as most significant */ ! #define BIG_ENDIAN /* Define NO_ARG_ARRAY if you cannot take the address of the first of a --- 34,39 ---- /* 68000 has lowest-numbered byte as most significant */ ! /* This value matches the value the system gives it. */ ! #define BIG_ENDIAN 4321 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a *************** *** 92,93 **** --- 93,105 ---- #define DEFAULT_ENTRY_ADDRESS start + + /* Use the system's malloc calls, gmalloc.c won't work for us. */ + + #define SYSTEM_MALLOC + + /* In building xmakefile, "cc -E -g" forcibly reads from stdin. Since we + can't remove the CFLAGS from that "cc -E" invocation, make sure we + never pass -g. If you want to debug, remove the following, and fix + src/Makefile.in so it doesn't pass ${CFLAGS} when creating xmakefile. */ + + #define C_DEBUG_SWITCH Only in emacs-19.18/src/m: tekXD88.h diff -rc2P --exclude-from=exceptions emacs-19.18/src/m/tekxd88.h emacs-19.19/src/m/tekxd88.h *** emacs-19.18/src/m/tekxd88.h --- emacs-19.19/src/m/tekxd88.h Tue Aug 10 17:24:03 1993 *************** *** 0 **** --- 1,133 ---- + /* Configuration file for the Tektronix XD88 running UTekV 3.2e, + contributed by Kaveh Ghazi (ghazi@caip.rutgers.edu) 1/15/93. + You probably need to use gnu make (version 3.63 or higher.) + Copyright (C) 1993 Free Software Foundation, Inc. + + This file is part of GNU Emacs. + + GNU Emacs is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Emacs; see the file COPYING. If not, write to + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + + /* The following symbols give information on the size of various data types. */ + #define SHORTBITS 16 /* Number of bits in a short */ + #define INTBITS 32 /* Number of bits in an int */ + #define LONGBITS 32 /* Number of bits in a long */ + + /* Define BIG_ENDIAN iff lowest-numbered byte in a word + is the most significant byte. */ + #define BIG_ENDIAN + + /* Define NO_ARG_ARRAY if you cannot take the address of the first of a + * group of arguments and treat it as an array of the arguments. */ + #define NO_ARG_ARRAY + + /* Define WORD_MACHINE if addresses and such have + * to be corrected before they can be used as byte counts. */ + /* #define WORD_MACHINE */ + + /* Now define a symbol for the cpu type, if your compiler + does not define it automatically: + Ones defined so far include vax, m68000, ns16000, pyramid, + orion, tahoe, APOLLO and many others */ + #ifndef m88000 /* Some 88k C compilers already define this */ + #define m88000 + #endif + + /* Define how to take a char and sign-extend into an int. + On machines where char is signed, this is a no-op. */ + #define SIGN_EXTEND_CHAR(c) (c) + + /* Use type int rather than a union, to represent Lisp_Object */ + /* This is desirable for most machines. */ + #define NO_UNION_TYPE + + /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend + the 24-bit bit field into an int. In other words, if bit fields + are always unsigned. + + If you use NO_UNION_TYPE, this flag does not matter. */ + /* #define EXPLICIT_SIGN_EXTEND */ + + /* Data type of load average, as read out of kmem. */ + /* #define LOAD_AVE_TYPE double */ /* No load average on XD88. */ + /* Convert that into an integer that is 100 for a load average of 1.0 */ + /* #define LOAD_AVE_CVT(x) ((int) ((x) * 100.0)) */ + + /* Define CANNOT_DUMP on machines where unexec does not work. + Then the function dump-emacs will not be defined + and temacs will do (load "loadup") automatically unless told otherwise. */ + /*#define CANNOT_DUMP*/ + + /* Define VIRT_ADDR_VARIES if the virtual addresses of + pure and impure space as loaded can vary, and even their + relative order cannot be relied on. + + Otherwise Emacs assumes that text space precedes data space, + numerically. */ + /* #define VIRT_ADDR_VARIES */ + + /* Define NO_REMAP if memory segmentation makes it not work well + to change the boundary between the text section and data section + when Emacs is dumped. If you define this, the preloaded Lisp + code will not be sharable; but that's better than failing completely. */ + #define NO_REMAP + + /* Define C_ALLOCA if this machine does not support a true alloca + and the one written in C should be used instead. + Define HAVE_ALLOCA to say that the system provides a properly + working alloca function and it should be used. + Define neither one if an assembler-language alloca + in the file alloca.s should be used. */ + #ifdef __GNUC__ + # define alloca __builtin_alloca /* Use the gcc builtin alloca() ... */ + # define HAVE_ALLOCA /* ... and be sure that no other ones are tried out. */ + # undef C_ALLOCA + # define C_OPTIMIZE_SWITCH -O2 + #else /* not __GNUC__ */ + # undef HAVE_ALLOCA + # define C_ALLOCA /* Use the alloca() supplied in alloca.c. */ + # define STACK_DIRECTION -1 /* The stack grows towards lower addresses. */ + # define C_OPTIMIZE_SWITCH -O + #endif /* __GNUC__ */ + + #undef NOMULTIPLEJOBS /* we have job control */ + #define HAVE_SOCKETS /* sockets are available */ + #define HAVE_TIMEVAL /* we have Berkeley style */ + #define HAVE_SELECT /* XD88 has select(). */ + #define BROKEN_FIONREAD /* is this needed ? */ + #define BSTRING /* its in libc but not declared in any header file. */ + #define HAVE_SETSID + #undef sigsetmask /* XD88 has sigsetmask() */ + + #undef LIB_X11_LIB /* Don't use shared libraries defined in usg5-3.h */ + #undef LIBX11_SYSTEM + + #define HAVE_TERMIOS /* We have termios. */ + #undef HAVE_TERMIO /* Make sure termios ifdef code is used, not termio. */ + #define NO_TERMIO /* Don't include both termios.h and termio.h */ + #define HAVE_PTYS /* XD88 SysV has PTYs. */ + #define SYSV_PTYS /* Requires */ + + #ifdef ghs /* Stands for "Green Hills Software", defined only in /bin/cc */ + /* -X18 means do not allocate programmer-defined local variables to a + register unless they are declared register. (Copied from perl-4.036 + Green Hills C hints file. Might be needed for setjmp, I don't know.) */ + # define C_SWITCH_MACHINE -X18 + /* We need /lib/default.ld so that /bin/ld can read its link directives. */ + # define LD_SWITCH_SYSTEM /lib/default.ld + #endif /* ghs */ + + /* We need this to get dumping to work */ + #define KEEP_OLD_TEXT_SCNPTR diff -rc2P --exclude-from=exceptions emacs-19.18/src/minibuf.c emacs-19.19/src/minibuf.c *** emacs-19.18/src/minibuf.c Sun Aug 8 16:05:27 1993 --- emacs-19.19/src/minibuf.c Thu Aug 12 04:18:27 1993 *************** *** 76,79 **** --- 76,81 ---- Lisp_Object Qminibuffer_history; + Lisp_Object Qread_file_name_internal; + /* Normal hook for entry to minibuffer. */ *************** *** 1176,1179 **** --- 1178,1194 ---- tem = Fbuffer_string (); + /* If reading a file name, + expand any $ENVVAR refs in the buffer and in TEM. */ + if (EQ (Vminibuffer_completion_table, Qread_file_name_internal)) + { + Lisp_Object substituted; + substituted = Fsubstitute_in_file_name (tem); + if (! EQ (substituted, tem)) + { + tem = substituted; + Ferase_buffer (); + insert_from_string (tem, 0, XSTRING (tem)->size); + } + } buffer_string = XSTRING (tem)->data; completion_string = XSTRING (completion)->data; *************** *** 1389,1392 **** --- 1404,1410 ---- minibuf_save_vector_size = 5; minibuf_save_vector = (struct minibuf_save_data *) malloc (5 * sizeof (struct minibuf_save_data)); + + Qread_file_name_internal = intern ("read-file-name-internal"); + staticpro (&Qread_file_name_internal); Qminibuffer_completion_table = intern ("minibuffer-completion-table"); diff -rc2P --exclude-from=exceptions emacs-19.18/src/process.c emacs-19.19/src/process.c *** emacs-19.18/src/process.c Sun Jul 25 18:29:32 1993 --- emacs-19.19/src/process.c Sat Aug 14 05:40:36 1993 *************** *** 105,177 **** #include "syssignal.h" ! /* Define the structure that the wait system call stores. ! On many systems, there is a structure defined for this. ! But on vanilla-ish USG systems there is not. */ - #ifndef VMS - #ifndef WAITTYPE - #if (!defined (BSD) && !defined (UNIPLUS) && !defined (STRIDE) && !(defined (HPUX) && !defined (NOMULTIPLEJOBS)) && !defined (HAVE_WAIT_HEADER)) || defined (LINUX) - #define WAITTYPE int - #define WIFSTOPPED(w) ((w&0377) == 0177) - #define WIFSIGNALED(w) ((w&0377) != 0177 && (w&~0377) == 0) - #define WIFEXITED(w) ((w&0377) == 0) - #define WRETCODE(w) (w >> 8) - #define WSTOPSIG(w) (w >> 8) - #define WTERMSIG(w) (w & 0377) - #ifndef WCOREDUMP - #define WCOREDUMP(w) ((w&0200) != 0) - #endif - #else - #ifdef BSD4_1 - #include - #else - #include - #endif /* not BSD 4.1 */ - - #define WAITTYPE union wait - #define WRETCODE(w) w.w_retcode - #define WCOREDUMP(w) w.w_coredump - - #ifdef HPUX - /* HPUX version 7 has broken definitions of these. */ - #undef WTERMSIG - #undef WSTOPSIG - #undef WIFSTOPPED - #undef WIFSIGNALED - #undef WIFEXITED - #endif - - #ifndef WTERMSIG - #define WTERMSIG(w) w.w_termsig - #endif - #ifndef WSTOPSIG - #define WSTOPSIG(w) w.w_stopsig - #endif - #ifndef WIFSTOPPED - #define WIFSTOPPED(w) (WTERMSIG (w) == 0177) - #endif - #ifndef WIFSIGNALED - #define WIFSIGNALED(w) (WTERMSIG (w) != 0177 && (WSTOPSIG (w)) == 0) - #endif - #ifndef WIFEXITED - #define WIFEXITED(w) (WTERMSIG (w) == 0) - #endif - #endif /* BSD or UNIPLUS or STRIDE */ - #endif /* no WAITTYPE */ - #else /* VMS */ - #define WAITTYPE int - #define WIFSTOPPED(w) 0 - #define WIFSIGNALED(w) 0 - #define WIFEXITED(w) ((w) != -1) - #define WRETCODE(w) (w) - #define WSTOPSIG(w) (w) - #define WCOREDUMP(w) 0 - #define WTERMSIG(w) (w) - #include - #include - #include - #include "vmsproc.h" - #endif /* VMS */ - extern errno; extern sys_nerr; --- 105,110 ---- #include "syssignal.h" ! #include "syswait.h" extern errno; extern sys_nerr; *************** *** 1751,1754 **** --- 1684,1691 ---- if (XINT (read_kbd) >= 0) QUIT; + + /* Exit now if the cell we're waiting for became non-nil. */ + if (wait_for_cell && ! NILP (*wait_for_cell)) + break; /* Compute time from now till when time limit is up */ diff -rc2P --exclude-from=exceptions emacs-19.18/src/s/hpux8.h emacs-19.19/src/s/hpux8.h *** emacs-19.18/src/s/hpux8.h Tue Jul 27 04:25:59 1993 --- emacs-19.19/src/s/hpux8.h Wed Aug 11 19:14:11 1993 *************** *** 13,17 **** #define LIB_X11_LIB -L/usr/lib/X11R5 -L/usr/lib/X11R4 -lX11 ! #define C_SWITCH_SYSTEM -I/usr/include/X11R5 -I/usr/include/X11R4 /* Don't use shared libraries. unexec doesn't handle them. --- 13,17 ---- #define LIB_X11_LIB -L/usr/lib/X11R5 -L/usr/lib/X11R4 -lX11 ! #define C_SWITCH_X_SYSTEM -I/usr/include/X11R5 -I/usr/include/X11R4 /* Don't use shared libraries. unexec doesn't handle them. *************** *** 19,23 **** conflicting -a. */ #ifdef __GNUC__ ! #define LD_SWITCH_SYSTEM -L/usr/lib/X11R5 -L/usr/lib/X11R4 -Xlinker -a -Xlinker archive /* No need to specify roundabout way of linking temacs. */ --- 19,23 ---- conflicting -a. */ #ifdef __GNUC__ ! #define LD_SWITCH_SYSTEM -Xlinker -a -Xlinker archive /* No need to specify roundabout way of linking temacs. */ *************** *** 24,28 **** #define ORDINARY_LINK #else ! #define LD_SWITCH_SYSTEM -a archive -L/usr/lib/X11R5 -L/usr/lib/X11R4 #endif --- 24,28 ---- #define ORDINARY_LINK #else ! #define LD_SWITCH_SYSTEM -a archive #endif diff -rc2P --exclude-from=exceptions emacs-19.18/src/s/irix5-0.h emacs-19.19/src/s/irix5-0.h *** emacs-19.18/src/s/irix5-0.h Fri Jul 23 00:12:43 1993 --- emacs-19.19/src/s/irix5-0.h Fri Aug 13 17:38:43 1993 *************** *** 1,3 **** ! #include "s-usg5-4.h" #ifdef LIBS_SYSTEM #undef LIBS_SYSTEM --- 1,4 ---- ! #include "usg5-4.h" ! #ifdef LIBS_SYSTEM #undef LIBS_SYSTEM *************** *** 4,7 **** --- 5,12 ---- #endif + #ifdef LIB_STANDARD + #undef LIB_STANDARD + #endif + #ifdef SYSTEM_TYPE #undef SYSTEM_TYPE *************** *** 18,27 **** #define HAVE_ALLOCA #undef C_ALLOCA - #define alloca __builtin_alloca ! /* use K&R C */ #ifndef __GNUC__ ! #define C_SWITCH_MACHINE -cckr #endif /* SGI has all the fancy wait stuff, but we can't include sys/wait.h --- 23,32 ---- #define HAVE_ALLOCA #undef C_ALLOCA ! #ifndef NOT_C_CODE #ifndef __GNUC__ ! #include #endif + #endif /* SGI has all the fancy wait stuff, but we can't include sys/wait.h *************** *** 72,73 **** --- 77,87 ---- } + /* jpff@maths.bath.ac.uk reports `struct exception' is not defined + on this system, so inhibit use of matherr. */ + #define NO_MATHERR + + /* Info from simon@lia.di.epfl.ch (Simon Leinen) suggests this is needed. */ + #define GETPGRP_NO_ARG + + /* Ulimit(UL_GMEMLIM) is busted... */ + #define ULIMIT_BREAK_VALUE 0x14000000 diff -rc2P --exclude-from=exceptions emacs-19.18/src/s/usg5-4-2.h emacs-19.19/src/s/usg5-4-2.h *** emacs-19.18/src/s/usg5-4-2.h Sat Jun 12 06:10:31 1993 --- emacs-19.19/src/s/usg5-4-2.h Thu Aug 12 01:38:34 1993 *************** *** 7,12 **** /* fnf@cygnus.com says these exist. */ #define HAVE_TCATTR - #define HAVE_GETHOSTNAME #if 0 /* autoconf should take care of this. */ #define HAVE_RANDOM #endif --- 7,12 ---- /* fnf@cygnus.com says these exist. */ #define HAVE_TCATTR #if 0 /* autoconf should take care of this. */ + #define HAVE_GETHOSTNAME #define HAVE_RANDOM #endif diff -rc2P --exclude-from=exceptions emacs-19.18/src/search.c emacs-19.19/src/search.c *** emacs-19.18/src/search.c Tue Jul 27 03:25:06 1993 --- emacs-19.19/src/search.c Sat Aug 14 16:16:28 1993 *************** *** 100,106 **** bufp->translate = translate; BLOCK_INPUT; ! val = re_compile_pattern ((char *) XSTRING (pattern)->data, ! XSTRING (pattern)->size, ! bufp); UNBLOCK_INPUT; if (val) --- 100,105 ---- bufp->translate = translate; BLOCK_INPUT; ! val = (CONST char *) re_compile_pattern ((char *) XSTRING (pattern)->data, ! XSTRING (pattern)->size, bufp); UNBLOCK_INPUT; if (val) diff -rc2P --exclude-from=exceptions emacs-19.18/src/sysdep.c emacs-19.19/src/sysdep.c *** emacs-19.18/src/sysdep.c Tue Aug 3 02:54:54 1993 --- emacs-19.19/src/sysdep.c Sun Aug 15 00:27:19 1993 *************** *** 116,128 **** #include #include "systty.h" - #ifdef BSD - #ifdef BSD4_1 - #include - #else /* not 4.1 */ - #include - #endif /* not 4.1 */ - #endif /* BSD */ - #ifdef BROKEN_TIOCGWINSZ #undef TIOCGWINSZ --- 116,121 ---- #include #include "systty.h" + #include "syswait.h" #ifdef BROKEN_TIOCGWINSZ #undef TIOCGWINSZ *************** *** 3120,3124 **** int dmode; { ! int cpid, status; struct stat statbuf; --- 3113,3117 ---- int dmode; { ! int cpid, status, fd; struct stat statbuf; *************** *** 3133,3140 **** return -1; switch (cpid = fork ()) { ! case -1: /* Error in fork() */ return (-1); /* Errno is set already */ --- 3126,3134 ---- return -1; + synch_process_alive = 1; switch (cpid = fork ()) { ! case -1: /* Error in fork */ return (-1); /* Errno is set already */ *************** *** 3148,3151 **** --- 3142,3152 ---- status = umask (0); /* Get current umask */ status = umask (status | (0777 & ~dmode)); /* Set for mkdir */ + fd = sys_open("/dev/null", 2); + if (fd >= 0) + { + dup2 (fd, 0); + dup2 (fd, 1); + dup2 (fd, 2); + } execl ("/bin/mkdir", "mkdir", dpath, (char *) 0); _exit (-1); /* Can't exec /bin/mkdir */ *************** *** 3152,3159 **** default: /* Parent process */ ! while (cpid != wait (&status)); /* Wait for kid to finish */ } ! if (WIFSIGNALED (status) || WEXITSTATUS (status) != 0) { errno = EIO; /* We don't know why, but */ --- 3153,3160 ---- default: /* Parent process */ ! wait_for_termination (cpid); } ! if (synch_process_death != 0 || synch_process_retcode != 0) { errno = EIO; /* We don't know why, but */ *************** *** 3170,3174 **** char *dpath; { ! int cpid, status; struct stat statbuf; --- 3171,3175 ---- char *dpath; { ! int cpid, status, fd; struct stat statbuf; *************** *** 3179,3189 **** } switch (cpid = fork ()) { ! case -1: /* Error in fork() */ return (-1); /* Errno is set already */ case 0: /* Child process */ execl ("/bin/rmdir", "rmdir", dpath, (char *) 0); _exit (-1); /* Can't exec /bin/mkdir */ --- 3180,3198 ---- } + synch_process_alive = 1; switch (cpid = fork ()) { ! case -1: /* Error in fork */ return (-1); /* Errno is set already */ case 0: /* Child process */ + fd = sys_open("/dev/null", 2); + if (fd >= 0) + { + dup2 (fd, 0); + dup2 (fd, 1); + dup2 (fd, 2); + } execl ("/bin/rmdir", "rmdir", dpath, (char *) 0); _exit (-1); /* Can't exec /bin/mkdir */ *************** *** 3190,3200 **** default: /* Parent process */ ! while (cpid != wait (&status)); /* Wait for kid to finish */ } ! if (WIFSIGNALED (status) || WEXITSTATUS (status) != 0) { errno = EIO; /* We don't know why, but */ ! return -1; /* /bin/mkdir failed */ } --- 3199,3209 ---- default: /* Parent process */ ! wait_for_termination (cpid); } ! if (synch_process_death != 0 || synch_process_retcode != 0) { errno = EIO; /* We don't know why, but */ ! return -1; /* /bin/rmdir failed */ } diff -rc2P --exclude-from=exceptions emacs-19.18/src/systty.h emacs-19.19/src/systty.h *** emacs-19.18/src/systty.h Wed Jun 9 07:35:14 1993 --- emacs-19.19/src/systty.h Tue Aug 10 17:21:57 1993 *************** *** 37,41 **** --- 37,43 ---- #include #else + #ifndef NO_TERMIO #include + #endif #include #endif /* _AIX && _I386 */ diff -rc2P --exclude-from=exceptions emacs-19.18/src/syswait.h emacs-19.19/src/syswait.h *** emacs-19.18/src/syswait.h --- emacs-19.19/src/syswait.h Sat Aug 14 05:38:56 1993 *************** *** 0 **** --- 1,87 ---- + /* Define wait system call interface for Emacs. + Copyright (C) 1993 Free Software Foundation, Inc. + + This file is part of GNU Emacs. + + GNU Emacs is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + GNU Emacs is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with GNU Emacs; see the file COPYING. If not, write to + the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + + /* Define the structure that the wait system call stores. + On many systems, there is a structure defined for this. + But on vanilla-ish USG systems there is not. */ + + #ifndef VMS + #ifndef WAITTYPE + #if (!defined (BSD) && !defined (UNIPLUS) && !defined (STRIDE) && !(defined (HPUX) && !defined (NOMULTIPLEJOBS)) && !defined (HAVE_WAIT_HEADER)) || defined (LINUX) + #define WAITTYPE int + #define WIFSTOPPED(w) ((w&0377) == 0177) + #define WIFSIGNALED(w) ((w&0377) != 0177 && (w&~0377) == 0) + #define WIFEXITED(w) ((w&0377) == 0) + #define WRETCODE(w) (w >> 8) + #define WSTOPSIG(w) (w >> 8) + #define WTERMSIG(w) (w & 0377) + #ifndef WCOREDUMP + #define WCOREDUMP(w) ((w&0200) != 0) + #endif + #else + #ifdef BSD4_1 + #include + #else + #include + #endif /* not BSD 4.1 */ + + #define WAITTYPE union wait + #define WRETCODE(w) w.w_retcode + #define WCOREDUMP(w) w.w_coredump + + #ifdef HPUX + /* HPUX version 7 has broken definitions of these. */ + #undef WTERMSIG + #undef WSTOPSIG + #undef WIFSTOPPED + #undef WIFSIGNALED + #undef WIFEXITED + #endif + + #ifndef WTERMSIG + #define WTERMSIG(w) w.w_termsig + #endif + #ifndef WSTOPSIG + #define WSTOPSIG(w) w.w_stopsig + #endif + #ifndef WIFSTOPPED + #define WIFSTOPPED(w) (WTERMSIG (w) == 0177) + #endif + #ifndef WIFSIGNALED + #define WIFSIGNALED(w) (WTERMSIG (w) != 0177 && (WSTOPSIG (w)) == 0) + #endif + #ifndef WIFEXITED + #define WIFEXITED(w) (WTERMSIG (w) == 0) + #endif + #endif /* BSD or UNIPLUS or STRIDE */ + #endif /* no WAITTYPE */ + #else /* VMS */ + #define WAITTYPE int + #define WIFSTOPPED(w) 0 + #define WIFSIGNALED(w) 0 + #define WIFEXITED(w) ((w) != -1) + #define WRETCODE(w) (w) + #define WSTOPSIG(w) (w) + #define WCOREDUMP(w) 0 + #define WTERMSIG(w) (w) + #include + #include + #include + #include "vmsproc.h" + #endif /* VMS */ diff -rc2P --exclude-from=exceptions emacs-19.18/src/term.c emacs-19.19/src/term.c *** emacs-19.18/src/term.c Mon Aug 9 01:17:39 1993 --- emacs-19.19/src/term.c Tue Aug 10 18:51:41 1993 *************** *** 1230,1233 **** --- 1230,1257 ---- }; + /* These subroutines are used to call + Fdefine_key inside of a condition-case. */ + static Lisp_Object term_get_fkeys_data; + + extern Lisp_Object cmd_error (); + + static Lisp_Object + term_get_fkeys_define_1 () + { + Fdefine_key (Vfunction_key_map, Fcar (term_get_fkeys_data), + Fcdr (term_get_fkeys_data)); + return Qnil; + } + + /* Define KEY as DEFINITION in function-key-map, catching errors. */ + + static void + term_get_fkeys_define (key, definition) + Lisp_Object key, definition; + { + term_get_fkeys_data = Fcons (key, definition); + internal_condition_case (term_get_fkeys_define_1, Qerror, cmd_error); + } + /* Find the escape codes sent by the function keys for Vfunction_key_map. This function scans the termcap function key sequence entries, and *************** *** 1249,1255 **** char *sequence = tgetstr (keys[i].cap, address); if (sequence) ! Fdefine_key (Vfunction_key_map, ! build_string (sequence), ! Fmake_vector (make_number (1), intern (keys[i].name))); } --- 1273,1279 ---- char *sequence = tgetstr (keys[i].cap, address); if (sequence) ! term_get_fkeys_define (build_string (sequence), ! Fmake_vector (make_number (1), ! intern (keys[i].name))); } *************** *** 1266,1272 **** if (k_semi) { ! Fdefine_key (Vfunction_key_map, ! build_string (k_semi), ! Fmake_vector (make_number (1), intern ("f10"))); k0_name = "f0"; } --- 1290,1295 ---- if (k_semi) { ! term_get_fkeys_define (build_string (k_semi), ! Fmake_vector (make_number (1), intern ("f10"))); k0_name = "f0"; } *************** *** 1273,1279 **** if (k0) ! Fdefine_key (Vfunction_key_map, ! build_string (k0), ! Fmake_vector (make_number (1), intern (k0_name))); } --- 1296,1301 ---- if (k0) ! term_get_fkeys_define (build_string (k0), ! Fmake_vector (make_number (1), intern (k0_name))); } *************** *** 1296,1303 **** if (sequence) { ! (void) sprintf (fkey, "f%d", i); ! Fdefine_key (Vfunction_key_map, ! build_string (sequence), ! Fmake_vector (make_number (1), intern (fkey))); } } --- 1318,1325 ---- if (sequence) { ! sprintf (fkey, "f%d", i); ! term_get_fkeys_define (build_string (sequence), ! Fmake_vector (make_number (1), ! intern (fkey))); } } *************** *** 1314,1320 **** char *sequence = tgetstr (cap2, address); \ if (sequence) \ ! Fdefine_key (Vfunction_key_map, \ ! build_string (sequence), \ ! Fmake_vector (make_number (1), intern (sym))); \ } --- 1336,1342 ---- char *sequence = tgetstr (cap2, address); \ if (sequence) \ ! term_get_fkeys_define (build_string (sequence), \ ! Fmake_vector (make_number (1), \ ! intern (sym))); \ } diff -rc2P --exclude-from=exceptions emacs-19.18/src/termhooks.h emacs-19.19/src/termhooks.h *** emacs-19.18/src/termhooks.h Sun Jul 18 02:08:13 1993 --- emacs-19.19/src/termhooks.h Thu Aug 12 03:55:52 1993 *************** *** 241,245 **** selection_request_event, /* Another X client wants a selection from us. See `struct selection_event'. */ ! selection_clear_event, /* Another X client cleared our selection. */ }; --- 241,245 ---- selection_request_event, /* Another X client wants a selection from us. See `struct selection_event'. */ ! selection_clear_event /* Another X client cleared our selection. */ }; *************** *** 321,325 **** shift_modifier= CHAR_SHIFT, ctrl_modifier = CHAR_CTL, ! meta_modifier = CHAR_META, /* Under X, the XK_Meta_[LR] keysyms. */ }; --- 321,325 ---- shift_modifier= CHAR_SHIFT, ctrl_modifier = CHAR_CTL, ! meta_modifier = CHAR_META /* Under X, the XK_Meta_[LR] keysyms. */ }; diff -rc2P --exclude-from=exceptions emacs-19.18/src/textprop.c emacs-19.19/src/textprop.c *** emacs-19.18/src/textprop.c Sat Jul 31 16:58:58 1993 --- emacs-19.19/src/textprop.c Sat Aug 14 00:23:08 1993 *************** *** 569,572 **** --- 569,574 ---- { next = next_interval (next); + if (NULL_INTERVAL_P (next)) + return 0; if (next->position >= end) return 0; diff -rc2P --exclude-from=exceptions emacs-19.18/src/unexelf.c emacs-19.19/src/unexelf.c *** emacs-19.18/src/unexelf.c Wed Mar 3 04:02:53 1993 --- emacs-19.19/src/unexelf.c Mon Aug 9 21:32:18 1993 *************** *** 422,428 **** #ifndef emacs ! #define fatal(a, b, c) fprintf(stderr, a, b, c), exit(1) #else ! extern void fatal(char *, ...); #endif --- 422,428 ---- #ifndef emacs ! #define fatal(a, b, c) fprintf (stderr, a, b, c), exit (1) #else ! extern void fatal (char *, ...); #endif *************** *** 442,446 **** #define PATCH_INDEX(n) \ do { \ ! if ((n) >= old_bss_index) \ (n)++; } while (0) typedef unsigned char byte; --- 442,446 ---- #define PATCH_INDEX(n) \ do { \ ! if ((int) (n) >= old_bss_index) \ (n)++; } while (0) typedef unsigned char byte; *************** *** 504,508 **** if (fstat (old_file, &stat_buf) == -1) ! fatal ("Can't fstat(%s): errno %d\n", old_name, errno); old_base = mmap (0, stat_buf.st_size, PROT_READ, MAP_SHARED, old_file, 0); --- 504,508 ---- if (fstat (old_file, &stat_buf) == -1) ! fatal ("Can't fstat (%s): errno %d\n", old_name, errno); old_base = mmap (0, stat_buf.st_size, PROT_READ, MAP_SHARED, old_file, 0); *************** *** 509,516 **** if (old_base == (caddr_t) -1) ! fatal ("Can't mmap(%s): errno %d\n", old_name, errno); #ifdef DEBUG ! fprintf (stderr, "mmap(%s, %x) -> %x\n", old_name, stat_buf.st_size, old_base); #endif --- 509,516 ---- if (old_base == (caddr_t) -1) ! fatal ("Can't mmap (%s): errno %d\n", old_name, errno); #ifdef DEBUG ! fprintf (stderr, "mmap (%s, %x) -> %x\n", old_name, stat_buf.st_size, old_base); #endif *************** *** 522,526 **** old_section_h = (Elf32_Shdr *) ((byte *) old_base + old_file_h->e_shoff); old_section_names = (char *) old_base ! + OLD_SECTION_H(old_file_h->e_shstrndx).sh_offset; /* Find the old .bss section. Figure out parameters of the new --- 522,526 ---- old_section_h = (Elf32_Shdr *) ((byte *) old_base + old_file_h->e_shoff); old_section_names = (char *) old_base ! + OLD_SECTION_H (old_file_h->e_shstrndx).sh_offset; /* Find the old .bss section. Figure out parameters of the new *************** *** 528,538 **** */ ! for (old_bss_index = 1; old_bss_index < old_file_h->e_shnum; old_bss_index++) { #ifdef DEBUG fprintf (stderr, "Looking for .bss - found %s\n", ! old_section_names + OLD_SECTION_H(old_bss_index).sh_name); #endif ! if (!strcmp (old_section_names + OLD_SECTION_H(old_bss_index).sh_name, ".bss")) break; --- 528,539 ---- */ ! for (old_bss_index = 1; old_bss_index < (int) old_file_h->e_shnum; ! old_bss_index++) { #ifdef DEBUG fprintf (stderr, "Looking for .bss - found %s\n", ! old_section_names + OLD_SECTION_H (old_bss_index).sh_name); #endif ! if (!strcmp (old_section_names + OLD_SECTION_H (old_bss_index).sh_name, ".bss")) break; *************** *** 541,546 **** fatal ("Can't find .bss in %s.\n", old_name, 0); ! old_bss_addr = OLD_SECTION_H(old_bss_index).sh_addr; ! old_bss_size = OLD_SECTION_H(old_bss_index).sh_size; #if defined(emacs) || !defined(DEBUG) bss_end = (unsigned int) sbrk (0); --- 542,547 ---- fatal ("Can't find .bss in %s.\n", old_name, 0); ! old_bss_addr = OLD_SECTION_H (old_bss_index).sh_addr; ! old_bss_size = OLD_SECTION_H (old_bss_index).sh_size; #if defined(emacs) || !defined(DEBUG) bss_end = (unsigned int) sbrk (0); *************** *** 551,555 **** new_data2_addr = old_bss_addr; new_data2_size = new_bss_addr - old_bss_addr; ! new_data2_offset = OLD_SECTION_H(old_bss_index).sh_offset; #ifdef DEBUG --- 552,556 ---- new_data2_addr = old_bss_addr; new_data2_size = new_bss_addr - old_bss_addr; ! new_data2_offset = OLD_SECTION_H (old_bss_index).sh_offset; #ifdef DEBUG *************** *** 566,570 **** fatal (".bss shrank when undumping???\n", 0, 0); ! /* Set the output file to the right size and mmap(2) it. Set * pointers to various interesting objects. stat_buf still has * old_file data. --- 567,571 ---- fatal (".bss shrank when undumping???\n", 0, 0); ! /* Set the output file to the right size and mmap it. Set * pointers to various interesting objects. stat_buf still has * old_file data. *************** *** 573,577 **** new_file = open (new_name, O_RDWR | O_CREAT, 0666); if (new_file < 0) ! fatal ("Can't creat(%s): errno %d\n", new_name, errno); new_file_size = stat_buf.st_size + old_file_h->e_shentsize + new_data2_size; --- 574,578 ---- new_file = open (new_name, O_RDWR | O_CREAT, 0666); if (new_file < 0) ! fatal ("Can't creat (%s): errno %d\n", new_name, errno); new_file_size = stat_buf.st_size + old_file_h->e_shentsize + new_data2_size; *************** *** 578,582 **** if (ftruncate (new_file, new_file_size)) ! fatal ("Can't ftruncate(%s): errno %d\n", new_name, errno); new_base = mmap (0, new_file_size, PROT_READ | PROT_WRITE, MAP_SHARED, --- 579,583 ---- if (ftruncate (new_file, new_file_size)) ! fatal ("Can't ftruncate (%s): errno %d\n", new_name, errno); new_base = mmap (0, new_file_size, PROT_READ | PROT_WRITE, MAP_SHARED, *************** *** 584,588 **** if (new_base == (caddr_t) -1) ! fatal ("Can't mmap(%s): errno %d\n", new_name, errno); new_file_h = (Elf32_Ehdr *) new_base; --- 585,589 ---- if (new_base == (caddr_t) -1) ! fatal ("Can't mmap (%s): errno %d\n", new_name, errno); new_file_h = (Elf32_Ehdr *) new_base; *************** *** 631,638 **** alignment = OLD_SECTION_H (old_bss_index).sh_addralign; ! 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); ! if (NEW_PROGRAM_H(n).p_type == PT_LOAD && (round_up ((NEW_PROGRAM_H (n)).p_vaddr + (NEW_PROGRAM_H (n)).p_filesz, --- 632,639 ---- alignment = OLD_SECTION_H (old_bss_index).sh_addralign; ! 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); ! if (NEW_PROGRAM_H (n).p_type == PT_LOAD && (round_up ((NEW_PROGRAM_H (n)).p_vaddr + (NEW_PROGRAM_H (n)).p_filesz, *************** *** 644,649 **** fatal ("Couldn't find segment next to .bss in %s\n", old_name, 0); ! NEW_PROGRAM_H(n).p_filesz += new_data2_size; ! NEW_PROGRAM_H(n).p_memsz = NEW_PROGRAM_H(n).p_filesz; #if 0 /* Maybe allow section after data2 - does this ever happen? */ --- 645,650 ---- fatal ("Couldn't find segment next to .bss in %s\n", old_name, 0); ! NEW_PROGRAM_H (n).p_filesz += new_data2_size; ! NEW_PROGRAM_H (n).p_memsz = NEW_PROGRAM_H (n).p_filesz; #if 0 /* Maybe allow section after data2 - does this ever happen? */ *************** *** 650,659 **** for (n = new_file_h->e_phnum - 1; n >= 0; n--) { ! if (NEW_PROGRAM_H(n).p_vaddr ! && NEW_PROGRAM_H(n).p_vaddr >= new_data2_addr) ! NEW_PROGRAM_H(n).p_vaddr += new_data2_size - old_bss_size; ! if (NEW_PROGRAM_H(n).p_offset >= new_data2_offset) ! NEW_PROGRAM_H(n).p_offset += new_data2_size; } #endif --- 651,660 ---- for (n = new_file_h->e_phnum - 1; n >= 0; n--) { ! if (NEW_PROGRAM_H (n).p_vaddr ! && NEW_PROGRAM_H (n).p_vaddr >= new_data2_addr) ! NEW_PROGRAM_H (n).p_vaddr += new_data2_size - old_bss_size; ! if (NEW_PROGRAM_H (n).p_offset >= new_data2_offset) ! NEW_PROGRAM_H (n).p_offset += new_data2_size; } #endif *************** *** 665,671 **** * .data header and modifying the offset, address and size. */ ! for (old_data_index = 1; old_data_index < old_file_h->e_shnum; old_data_index++) ! if (!strcmp (old_section_names + OLD_SECTION_H(old_data_index).sh_name, ".data")) break; --- 666,672 ---- * .data header and modifying the offset, address and size. */ ! for (old_data_index = 1; old_data_index < (int) old_file_h->e_shnum; old_data_index++) ! if (!strcmp (old_section_names + OLD_SECTION_H (old_data_index).sh_name, ".data")) break; *************** *** 675,679 **** /* Walk through all section headers, insert the new data2 section right before the new bss section. */ ! for (n = 1, nn = 1; n < old_file_h->e_shnum; n++, nn++) { caddr_t src; --- 676,680 ---- /* Walk through all section headers, insert the new data2 section right before the new bss section. */ ! for (n = 1, nn = 1; n < (int) old_file_h->e_shnum; n++, nn++) { caddr_t src; *************** *** 682,699 **** { /* Steal the data section header for this data2 section. */ ! memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(old_data_index), new_file_h->e_shentsize); ! NEW_SECTION_H(nn).sh_addr = new_data2_addr; ! NEW_SECTION_H(nn).sh_offset = new_data2_offset; ! NEW_SECTION_H(nn).sh_size = new_data2_size; /* Use the bss section's alignment. This will assure that the new data2 section always be placed in the same spot as the old bss section by any other application. */ ! NEW_SECTION_H(nn).sh_addralign = OLD_SECTION_H(n).sh_addralign; /* Now copy over what we have in the memory now. */ ! memcpy (NEW_SECTION_H(nn).sh_offset + new_base, ! (caddr_t) OLD_SECTION_H(n).sh_addr, new_data2_size); nn++; --- 683,700 ---- { /* Steal the data section header for this data2 section. */ ! memcpy (&NEW_SECTION_H (nn), &OLD_SECTION_H (old_data_index), new_file_h->e_shentsize); ! NEW_SECTION_H (nn).sh_addr = new_data2_addr; ! NEW_SECTION_H (nn).sh_offset = new_data2_offset; ! NEW_SECTION_H (nn).sh_size = new_data2_size; /* Use the bss section's alignment. This will assure that the new data2 section always be placed in the same spot as the old bss section by any other application. */ ! NEW_SECTION_H (nn).sh_addralign = OLD_SECTION_H (n).sh_addralign; /* Now copy over what we have in the memory now. */ ! memcpy (NEW_SECTION_H (nn).sh_offset + new_base, ! (caddr_t) OLD_SECTION_H (n).sh_addr, new_data2_size); nn++; *************** *** 700,704 **** } ! memcpy (&NEW_SECTION_H(nn), &OLD_SECTION_H(n), old_file_h->e_shentsize); --- 701,705 ---- } ! memcpy (&NEW_SECTION_H (nn), &OLD_SECTION_H (n), old_file_h->e_shentsize); *************** *** 708,723 **** { /* 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 this section will be placed in exactly the same place. */ ! NEW_SECTION_H(nn).sh_addralign = OLD_SECTION_H(nn).sh_addralign; ! NEW_SECTION_H(nn).sh_size = 0; } /* Any section that was original placed AFTER the bss section should now be off by NEW_DATA2_SIZE. */ ! else if (NEW_SECTION_H(nn).sh_offset >= new_data2_offset) ! NEW_SECTION_H(nn).sh_offset += new_data2_size; /* If any section hdr refers to the section after the new .data --- 709,724 ---- { /* 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 this section will be placed in exactly the same place. */ ! NEW_SECTION_H (nn).sh_addralign = OLD_SECTION_H (nn).sh_addralign; ! NEW_SECTION_H (nn).sh_size = 0; } /* Any section that was original placed AFTER the bss section should now be off by NEW_DATA2_SIZE. */ ! else if (NEW_SECTION_H (nn).sh_offset >= new_data2_offset) ! NEW_SECTION_H (nn).sh_offset += new_data2_size; /* If any section hdr refers to the section after the new .data *************** *** 725,734 **** a new section in between. */ ! PATCH_INDEX(NEW_SECTION_H(nn).sh_link); ! PATCH_INDEX(NEW_SECTION_H(nn).sh_info); /* Now, start to copy the content of sections. */ ! if (NEW_SECTION_H(nn).sh_type == SHT_NULL ! || NEW_SECTION_H(nn).sh_type == SHT_NOBITS) continue; --- 726,735 ---- a new section in between. */ ! PATCH_INDEX (NEW_SECTION_H (nn).sh_link); ! PATCH_INDEX (NEW_SECTION_H (nn).sh_info); /* Now, start to copy the content of sections. */ ! if (NEW_SECTION_H (nn).sh_type == SHT_NULL ! || NEW_SECTION_H (nn).sh_type == SHT_NOBITS) continue; *************** *** 737,757 **** * 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), ".data1")) ! src = (caddr_t) OLD_SECTION_H(n).sh_addr; else ! src = old_base + OLD_SECTION_H(n).sh_offset; ! memcpy (NEW_SECTION_H(nn).sh_offset + new_base, src, ! NEW_SECTION_H(nn).sh_size); /* If it is the symbol table, its st_shndx field needs to be patched. */ ! if (NEW_SECTION_H(nn).sh_type == SHT_SYMTAB ! || NEW_SECTION_H(nn).sh_type == SHT_DYNSYM) { ! Elf32_Shdr *spt = &NEW_SECTION_H(nn); unsigned int num = spt->sh_size / spt->sh_entsize; ! Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H(nn).sh_offset + new_base); for (; num--; sym++) --- 738,758 ---- * 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), ".data1")) ! src = (caddr_t) OLD_SECTION_H (n).sh_addr; else ! src = old_base + OLD_SECTION_H (n).sh_offset; ! memcpy (NEW_SECTION_H (nn).sh_offset + new_base, src, ! NEW_SECTION_H (nn).sh_size); /* If it is the symbol table, its st_shndx field needs to be patched. */ ! if (NEW_SECTION_H (nn).sh_type == SHT_SYMTAB ! || NEW_SECTION_H (nn).sh_type == SHT_DYNSYM) { ! Elf32_Shdr *spt = &NEW_SECTION_H (nn); unsigned int num = spt->sh_size / spt->sh_entsize; ! Elf32_Sym * sym = (Elf32_Sym *) (NEW_SECTION_H (nn).sh_offset + new_base); for (; num--; sym++) *************** *** 762,766 **** continue; ! PATCH_INDEX(sym->st_shndx); } } --- 763,767 ---- continue; ! PATCH_INDEX (sym->st_shndx); } } *************** *** 770,780 **** if (close (old_file)) ! fatal ("Can't close(%s): errno %d\n", old_name, errno); if (close (new_file)) ! fatal ("Can't close(%s): errno %d\n", new_name, errno); if (stat (new_name, &stat_buf) == -1) ! fatal ("Can't stat(%s): errno %d\n", new_name, errno); n = umask (777); --- 771,781 ---- if (close (old_file)) ! fatal ("Can't close (%s): errno %d\n", old_name, errno); if (close (new_file)) ! fatal ("Can't close (%s): errno %d\n", new_name, errno); if (stat (new_name, &stat_buf) == -1) ! fatal ("Can't stat (%s): errno %d\n", new_name, errno); n = umask (777); *************** *** 782,785 **** stat_buf.st_mode |= 0111 & ~n; if (chmod (new_name, stat_buf.st_mode) == -1) ! fatal ("Can't chmod(%s): errno %d\n", new_name, errno); } --- 783,786 ---- stat_buf.st_mode |= 0111 & ~n; if (chmod (new_name, stat_buf.st_mode) == -1) ! fatal ("Can't chmod (%s): errno %d\n", new_name, errno); } diff -rc2P --exclude-from=exceptions emacs-19.18/src/unexnext.c emacs-19.19/src/unexnext.c *** emacs-19.18/src/unexnext.c Mon May 3 20:04:09 1993 --- emacs-19.19/src/unexnext.c Fri Aug 13 01:38:15 1993 *************** *** 176,180 **** struct section *sect; ! sect = getsectbyname(SEG_DATA, SECT_DATA); region.address = 0; *address = 0; --- 176,180 ---- struct section *sect; ! sect = (struct section *) getsectbyname(SEG_DATA, SECT_DATA); region.address = 0; *address = 0; diff -rc2P --exclude-from=exceptions emacs-19.18/src/window.c emacs-19.19/src/window.c *** emacs-19.18/src/window.c Thu Jul 29 21:47:30 1993 --- emacs-19.19/src/window.c Wed Aug 11 16:45:51 1993 *************** *** 1093,1097 **** DELETE_BUFFER_WINDOWS, /* Arg is buffer */ GET_LARGEST_WINDOW, ! UNSHOW_BUFFER, /* Arg is buffer */ }; --- 1093,1097 ---- DELETE_BUFFER_WINDOWS, /* Arg is buffer */ GET_LARGEST_WINDOW, ! UNSHOW_BUFFER /* Arg is buffer */ }; *************** *** 1311,1315 **** 0, 1, "", "Make WINDOW (or the selected window) fill its frame.\n\ ! Only the frame WINDOW is on is affected.") (window) Lisp_Object window; --- 1311,1321 ---- 0, 1, "", "Make WINDOW (or the selected window) fill its frame.\n\ ! Only the frame WINDOW is on is affected.\n\ ! This function tries to reduce display jumps\n\ ! by keeping the text previously visible in WINDOW\n\ ! in the same place on the frame. Doing this depends on\n\ ! the value of (window-start WINDOW), so if calling this function\n\ ! in a program gives strange scrolling, make sure the window-start\n\ ! value is reasonable when this function is called.") (window) Lisp_Object window; *************** *** 1316,1321 **** { struct window *w; - int opoint = point; struct buffer *obuf = current_buffer; int top; --- 1322,1327 ---- { struct window *w; struct buffer *obuf = current_buffer; + int opoint; int top; *************** *** 1331,1339 **** Fset_buffer (w->buffer); SET_PT (marker_position (w->start)); Frecenter (make_number (top - FRAME_MENU_BAR_LINES (XFRAME (WINDOW_FRAME (w))))); - set_buffer_internal (obuf); SET_PT (opoint); return Qnil; } --- 1337,1346 ---- Fset_buffer (w->buffer); + opoint = point; SET_PT (marker_position (w->start)); Frecenter (make_number (top - FRAME_MENU_BAR_LINES (XFRAME (WINDOW_FRAME (w))))); SET_PT (opoint); + set_buffer_internal (obuf); return Qnil; } diff -rc2P --exclude-from=exceptions emacs-19.18/src/xfns.c emacs-19.19/src/xfns.c *** emacs-19.18/src/xfns.c Mon Aug 2 17:15:01 1993 --- emacs-19.19/src/xfns.c Sat Aug 14 06:59:58 1993 *************** *** 397,400 **** --- 397,412 ---- } + /* Don't die if just one of these was set. */ + if (EQ (left, Qunbound)) + XSET (left, Lisp_Int, f->display.x->left_pos); + if (EQ (top, Qunbound)) + XSET (top, Lisp_Int, f->display.x->top_pos); + + /* Don't die if just one of these was set. */ + if (EQ (width, Qunbound)) + XSET (width, Lisp_Int, FRAME_WIDTH (f)); + if (EQ (height, Qunbound)) + XSET (height, Lisp_Int, FRAME_HEIGHT (f)); + /* Don't set these parameters these unless they've been explicitly specified. The window might be mapped or resized while we're in *************** *** 409,412 **** --- 421,425 ---- XSET (frame, Lisp_Frame, f); + if ((NUMBERP (width) && XINT (width) != FRAME_WIDTH (f)) || (NUMBERP (height) && XINT (height) != FRAME_HEIGHT (f))) *************** *** 1262,1266 **** enum resource_types { ! number, boolean, string, symbol, }; --- 1275,1279 ---- enum resource_types { ! number, boolean, string, symbol }; *************** *** 1706,1710 **** #ifdef HAVE_X11 struct frame *f; ! Lisp_Object frame, tem; Lisp_Object name; int minibuffer_only = 0; --- 1719,1723 ---- #ifdef HAVE_X11 struct frame *f; ! Lisp_Object frame, tem, tem0, tem1; Lisp_Object name; int minibuffer_only = 0; *************** *** 1849,1854 **** "menuBarLines", "MenuBarLines", number); BLOCK_INPUT; ! x_wm_set_size_hint (f, window_prompting); UNBLOCK_INPUT; --- 1862,1869 ---- "menuBarLines", "MenuBarLines", number); + tem0 = x_get_arg (parms, Qtop, 0, 0, number); + tem1 = x_get_arg (parms, Qleft, 0, 0, number); BLOCK_INPUT; ! x_wm_set_size_hint (f, window_prompting, XINT (tem0), XINT (tem1)); UNBLOCK_INPUT; *************** *** 3482,3485 **** --- 3497,3518 ---- #ifdef HAVE_X11 + + #ifndef HAVE_XSCREENNUMBEROFSCREEN + int + XScreenNumberOfScreen (scr) + register Screen *scr; + { + register Display *dpy = scr->display; + register Screen *dpyscr = dpy->screens; + register int i; + + for (i = 0; i < dpy->nscreens; i++, dpyscr++) + if (scr == dpyscr) + return i; + + return -1; + } + #endif /* not HAVE_XSCREENNUMBEROFSCREEN */ + Visual * select_visual (screen, depth) diff -rc2P --exclude-from=exceptions emacs-19.18/src/xmenu.c emacs-19.19/src/xmenu.c *** emacs-19.18/src/xmenu.c Tue Jun 15 19:15:43 1993 --- emacs-19.19/src/xmenu.c Sat Aug 14 06:04:26 1993 *************** *** 169,172 **** --- 169,200 ---- CHECK_WINDOW (window, 0); + #ifdef HAVE_X11 + { + Window child; + int win_x = 0, win_y = 0; + + /* Find the position of the outside upper-left corner of + the inner window, with respect to the outer window. */ + if (f->display.x->parent_desc != ROOT_WINDOW) + { + BLOCK_INPUT; + XTranslateCoordinates (x_current_display, + + /* From-window, to-window. */ + f->display.x->window_desc, + f->display.x->parent_desc, + + /* From-position, to-position. */ + 0, 0, &win_x, &win_y, + + /* Child of window. */ + &child); + UNBLOCK_INPUT; + XMenu_xpos += win_x; + XMenu_ypos += win_y; + } + } + #endif + XMenu_xpos += FONT_WIDTH (f->display.x->font) * XINT (x); XMenu_ypos += FONT_HEIGHT (f->display.x->font) * XINT (y); diff -rc2P --exclude-from=exceptions emacs-19.18/src/xrdb.c emacs-19.19/src/xrdb.c *** emacs-19.18/src/xrdb.c Fri Jul 30 21:23:38 1993 --- emacs-19.19/src/xrdb.c Tue Aug 10 17:15:42 1993 *************** *** 114,118 **** if (result) ! return strcpy ((char *) malloc (strlen (result) + 1), result); else return 0; --- 114,122 ---- if (result) ! { ! char *copy = (char *) malloc (strlen (result) + 1); ! strcpy (copy, result); ! return copy; ! } else return 0; diff -rc2P --exclude-from=exceptions emacs-19.18/src/xselect.c emacs-19.19/src/xselect.c *** emacs-19.18/src/xselect.c Fri Jul 30 03:48:53 1993 --- emacs-19.19/src/xselect.c Sat Aug 14 18:44:24 1993 *************** *** 107,115 **** static Lisp_Object x_get_window_property_as_lisp_data (); - static int expect_property_change (); - static void wait_for_property_change (); - static void unexpect_property_change (); - static int waiting_for_other_props_on_window (); - /* This converts a Lisp symbol to a server Atom, avoiding a server roundtrip whenever possible. */ --- 107,110 ---- *************** *** 438,441 **** --- 433,467 ---- } + + /* This stuff is so that INCR selections are reentrant (that is, so we can + be servicing multiple INCR selection requests simultaneously.) I haven't + actually tested that yet. */ + + /* Keep a list of the property changes that are awaited. */ + + struct prop_location + { + int identifier; + Display *display; + Window window; + Atom property; + int desired_state; + int arrived; + struct prop_location *next; + }; + + static struct prop_location *expect_property_change (); + static void wait_for_property_change (); + static void unexpect_property_change (); + static int waiting_for_other_props_on_window (); + + static int prop_location_identifier; + + static Lisp_Object property_change_reply; + + static struct prop_location *property_change_reply_object; + + static struct prop_location *property_change_wait_list; + /* Send the reply to a selection request event EVENT. TYPE is the type of selection data requested. *************** *** 493,497 **** { /* Send an INCR selection. */ ! int prop_id; BLOCK_INPUT; --- 519,523 ---- { /* Send an INCR selection. */ ! struct prop_location *wait_object; BLOCK_INPUT; *************** *** 502,507 **** fprintf (stderr, "\nINCR %d\n", bytes_remaining); #endif ! prop_id = expect_property_change (display, window, reply.property, ! PropertyDelete); XChangeProperty (display, window, reply.property, Xatom_INCR, --- 528,533 ---- fprintf (stderr, "\nINCR %d\n", bytes_remaining); #endif ! wait_object = expect_property_change (display, window, reply.property, ! PropertyDelete); XChangeProperty (display, window, reply.property, Xatom_INCR, *************** *** 516,520 **** /* First, wait for the requestor to ack by deleting the property. This can run random lisp code (process handlers) or signal. */ ! wait_for_property_change (prop_id); while (bytes_remaining) --- 542,546 ---- /* First, wait for the requestor to ack by deleting the property. This can run random lisp code (process handlers) or signal. */ ! wait_for_property_change (wait_object); while (bytes_remaining) *************** *** 526,531 **** BLOCK_INPUT; ! prop_id = expect_property_change (display, window, reply.property, ! PropertyDelete); #if 0 fprintf (stderr," INCR adding %d\n", i); --- 552,558 ---- BLOCK_INPUT; ! wait_object ! = expect_property_change (display, window, reply.property, ! PropertyDelete); #if 0 fprintf (stderr," INCR adding %d\n", i); *************** *** 542,546 **** property. This can run random lisp code or signal. */ ! wait_for_property_change (prop_id); } /* Now write a zero-length chunk to the property to tell the requestor --- 569,573 ---- property. This can run random lisp code or signal. */ ! wait_for_property_change (wait_object); } /* Now write a zero-length chunk to the property to tell the requestor *************** *** 709,716 **** { ! Lisp_Object rest = Vx_lost_selection_hooks; if (!EQ (rest, Qunbound)) ! for (; CONSP (rest); rest = Fcdr (rest)) ! call1 (Fcar (rest), selection_symbol); } } --- 736,747 ---- { ! Lisp_Object rest; ! rest = Vx_lost_selection_hooks; if (!EQ (rest, Qunbound)) ! { ! for (; CONSP (rest); rest = Fcdr (rest)) ! call1 (Fcar (rest), selection_symbol); ! redisplay_preserve_echo_area (); ! } } } *************** *** 717,756 **** - /* This stuff is so that INCR selections are reentrant (that is, so we can - be servicing multiple INCR selection requests simultaneously.) I haven't - actually tested that yet. */ - - static int prop_location_identifier; - - static Lisp_Object property_change_reply; - static int property_change_reply_identifier; - - /* Keep a list of the property changes that are awaited. */ - - struct prop_location - { - int identifier; - Display *display; - Window window; - Atom property; - int desired_state; - struct prop_location *next; - }; - - static struct prop_location *property_change_wait_list; - - static int - property_deleted_p (identifier) - void *identifier; - { - struct prop_location *rest = property_change_wait_list; - while (rest) - if (rest->identifier == (int) identifier) - return 0; - else - rest = rest->next; - return 1; - } - /* Nonzero if any properties for DISPLAY and WINDOW are on the list of what we are waiting for. */ --- 748,751 ---- *************** *** 775,779 **** this awaited property change. */ ! static int expect_property_change (display, window, property, state) Display *display; --- 770,774 ---- this awaited property change. */ ! static struct prop_location * expect_property_change (display, window, property, state) Display *display; *************** *** 790,795 **** pl->desired_state = state; pl->next = property_change_wait_list; property_change_wait_list = pl; ! return pl->identifier; } --- 785,791 ---- pl->desired_state = state; pl->next = property_change_wait_list; + pl->arrived = 0; property_change_wait_list = pl; ! return pl; } *************** *** 798,803 **** static void ! unexpect_property_change (identifier) ! int identifier; { struct prop_location *prev = 0, *rest = property_change_wait_list; --- 794,799 ---- static void ! unexpect_property_change (location) ! struct prop_location *location; { struct prop_location *prev = 0, *rest = property_change_wait_list; *************** *** 804,808 **** while (rest) { ! if (rest->identifier == identifier) { if (prev) --- 800,804 ---- while (rest) { ! if (rest == location) { if (prev) *************** *** 824,828 **** Lisp_Object identifierval; { ! unexpect_property_change (XFASTINT (identifierval)); } --- 820,824 ---- Lisp_Object identifierval; { ! unexpect_property_change (XPNTR (identifierval)); } *************** *** 831,851 **** static void ! wait_for_property_change (identifier) { int secs, usecs; int count = specpdl_ptr - specpdl; /* Make sure to do unexpect_property_change if we quit or err. */ ! record_unwind_protect (wait_for_property_change_unwind, ! make_number (identifier)); XCONS (property_change_reply)->car = Qnil; ! property_change_reply_identifier = identifier; ! secs = x_selection_timeout / 1000; ! usecs = (x_selection_timeout % 1000) * 1000; ! wait_reading_process_input (secs, usecs, property_change_reply, 0); ! if (NILP (XCONS (property_change_reply)->car)) ! error ("timed out waiting for property-notify event"); unbind_to (count, Qnil); --- 827,854 ---- static void ! wait_for_property_change (location) ! struct prop_location *location; { int secs, usecs; int count = specpdl_ptr - specpdl; + Lisp_Object tem; + XSET (tem, Lisp_Cons, location); + /* Make sure to do unexpect_property_change if we quit or err. */ ! record_unwind_protect (wait_for_property_change_unwind, tem); XCONS (property_change_reply)->car = Qnil; ! ! if (! location->arrived) ! { ! property_change_reply_object = location; ! secs = x_selection_timeout / 1000; ! usecs = (x_selection_timeout % 1000) * 1000; ! wait_reading_process_input (secs, usecs, property_change_reply, 0); ! if (NILP (XCONS (property_change_reply)->car)) ! error ("timed out waiting for property-notify event"); ! } unbind_to (count, Qnil); *************** *** 874,880 **** #endif /* If this is the one wait_for_property_change is waiting for, tell it to wake up. */ ! if (rest->identifier == property_change_reply_identifier) XCONS (property_change_reply)->car = Qt; --- 877,885 ---- #endif + rest->arrived = 1; + /* If this is the one wait_for_property_change is waiting for, tell it to wake up. */ ! if (rest == property_change_reply_object) XCONS (property_change_reply)->car = Qt; *************** *** 1101,1105 **** { int offset = 0; ! int prop_id; *size_bytes_ret = min_size_bytes; *data_ret = (unsigned char *) xmalloc (*size_bytes_ret); --- 1106,1110 ---- { int offset = 0; ! struct prop_location *wait_object; *size_bytes_ret = min_size_bytes; *data_ret = (unsigned char *) xmalloc (*size_bytes_ret); *************** *** 1119,1124 **** XSelectInput (display, window, STANDARD_EVENT_SET | PropertyChangeMask); XDeleteProperty (display, window, property); ! prop_id = expect_property_change (display, window, property, ! PropertyNewValue); XFlushQueue (); UNBLOCK_INPUT; --- 1124,1129 ---- XSelectInput (display, window, STANDARD_EVENT_SET | PropertyChangeMask); XDeleteProperty (display, window, property); ! wait_object = expect_property_change (display, window, property, ! PropertyNewValue); XFlushQueue (); UNBLOCK_INPUT; *************** *** 1128,1132 **** unsigned char *tmp_data; int tmp_size_bytes; ! wait_for_property_change (prop_id); /* expect it again immediately, because x_get_window_property may .. no it wont, I dont get it. --- 1133,1137 ---- unsigned char *tmp_data; int tmp_size_bytes; ! wait_for_property_change (wait_object); /* expect it again immediately, because x_get_window_property may .. no it wont, I dont get it. *************** *** 1144,1148 **** if (! waiting_for_other_props_on_window (display, window)) XSelectInput (display, window, STANDARD_EVENT_SET); ! unexpect_property_change (prop_id); if (tmp_data) xfree (tmp_data); break; --- 1149,1153 ---- if (! waiting_for_other_props_on_window (display, window)) XSelectInput (display, window, STANDARD_EVENT_SET); ! unexpect_property_change (wait_object); if (tmp_data) xfree (tmp_data); break; *************** *** 1151,1156 **** BLOCK_INPUT; XDeleteProperty (display, window, property); ! prop_id = expect_property_change (display, window, property, ! PropertyNewValue); XFlushQueue (); UNBLOCK_INPUT; --- 1156,1161 ---- BLOCK_INPUT; XDeleteProperty (display, window, property); ! wait_object = expect_property_change (display, window, property, ! PropertyNewValue); XFlushQueue (); UNBLOCK_INPUT; *************** *** 1168,1172 **** *data_ret = (unsigned char *) xrealloc (*data_ret, *size_bytes_ret); } ! memcpy ((*data_ret) + offset, tmp_data, tmp_size_bytes); offset += tmp_size_bytes; xfree (tmp_data); --- 1173,1177 ---- *data_ret = (unsigned char *) xrealloc (*data_ret, *size_bytes_ret); } ! bcopy (tmp_data, (*data_ret) + offset, tmp_size_bytes); offset += tmp_size_bytes; xfree (tmp_data); diff -rc2P --exclude-from=exceptions emacs-19.18/src/xterm.c emacs-19.19/src/xterm.c *** emacs-19.18/src/xterm.c Sun Aug 8 18:26:40 1993 --- emacs-19.19/src/xterm.c Sat Aug 14 06:51:30 1993 *************** *** 2937,2941 **** { KeySym keysym, orig_keysym; ! char copy_buffer[80]; int modifiers; --- 2937,2941 ---- { KeySym keysym, orig_keysym; ! unsigned char copy_buffer[80]; int modifiers; *************** *** 4167,4173 **** { #ifdef HAVE_X11 if (f->display.x->left_pos < 0) f->display.x->left_pos = (x_screen_width ! - 2 * f->display.x->border_width - PIXEL_WIDTH (f) + f->display.x->left_pos); --- 4167,4197 ---- { #ifdef HAVE_X11 + Window win, child; + int win_x = 0, win_y = 0; + + /* Find the position of the outside upper-left corner of + the inner window, with respect to the outer window. */ + if (f->display.x->parent_desc != ROOT_WINDOW) + { + BLOCK_INPUT; + XTranslateCoordinates (x_current_display, + + /* From-window, to-window. */ + f->display.x->window_desc, + f->display.x->parent_desc, + + /* From-position, to-position. */ + 0, 0, &win_x, &win_y, + + /* Child of win. */ + &child); + UNBLOCK_INPUT; + } + + /* Treat negative positions as relative to the leftmost bottommost + position that fits on the screen. */ if (f->display.x->left_pos < 0) f->display.x->left_pos = (x_screen_width ! - f->display.x->border_width - win_x - PIXEL_WIDTH (f) + f->display.x->left_pos); *************** *** 4175,4181 **** if (f->display.x->top_pos < 0) f->display.x->top_pos = (x_screen_height ! - 2 * f->display.x->border_width - PIXEL_HEIGHT (f) + f->display.x->top_pos); #else /* ! defined (HAVE_X11) */ WINDOWINFO_TYPE parentinfo; --- 4199,4206 ---- if (f->display.x->top_pos < 0) f->display.x->top_pos = (x_screen_height ! - f->display.x->border_width - win_y - PIXEL_HEIGHT (f) + f->display.x->top_pos); + #else /* ! defined (HAVE_X11) */ WINDOWINFO_TYPE parentinfo; *************** *** 4205,4209 **** f->display.x->left_pos, f->display.x->top_pos); #ifdef HAVE_X11 ! x_wm_set_size_hint (f, 0); #endif /* ! defined (HAVE_X11) */ UNBLOCK_INPUT; --- 4230,4234 ---- f->display.x->left_pos, f->display.x->top_pos); #ifdef HAVE_X11 ! x_wm_set_size_hint (f, 0, xoff, yoff); #endif /* ! defined (HAVE_X11) */ UNBLOCK_INPUT; *************** *** 4222,4229 **** check_frame_size (f, &rows, &cols); ! f->display.x->vertical_scroll_bar_extra = ! (FRAME_HAS_VERTICAL_SCROLL_BARS (f) ! ? VERTICAL_SCROLL_BAR_PIXEL_WIDTH (f) ! : 0); pixelwidth = CHAR_TO_PIXEL_WIDTH (f, cols); pixelheight = CHAR_TO_PIXEL_HEIGHT (f, rows); --- 4247,4254 ---- check_frame_size (f, &rows, &cols); ! f->display.x->vertical_scroll_bar_extra ! = (FRAME_HAS_VERTICAL_SCROLL_BARS (f) ! ? VERTICAL_SCROLL_BAR_PIXEL_WIDTH (f) ! : 0); pixelwidth = CHAR_TO_PIXEL_WIDTH (f, cols); pixelheight = CHAR_TO_PIXEL_HEIGHT (f, rows); *************** *** 4230,4234 **** #ifdef HAVE_X11 ! x_wm_set_size_hint (f, 0); #endif /* ! defined (HAVE_X11) */ XChangeWindowSize (FRAME_X_WINDOW (f), pixelwidth, pixelheight); --- 4255,4259 ---- #ifdef HAVE_X11 ! x_wm_set_size_hint (f, 0, 0, 0); #endif /* ! defined (HAVE_X11) */ XChangeWindowSize (FRAME_X_WINDOW (f), pixelwidth, pixelheight); *************** *** 4635,4641 **** #ifdef HAVE_X11 ! x_wm_set_size_hint (f, prompting) struct frame *f; long prompting; { XSizeHints size_hints; --- 4660,4670 ---- #ifdef HAVE_X11 ! /* SPEC_X and SPEC_Y are the specified positions. ! We look only at their sign, to decide the gravity. */ ! ! x_wm_set_size_hint (f, prompting, spec_x, spec_y) struct frame *f; long prompting; + int spec_x, spec_y; { XSizeHints size_hints; *************** *** 4707,4710 **** --- 4736,4756 ---- size_hints.flags |= USSize; } + + switch (((spec_x < 0) << 1) + (spec_y < 0)) + { + case 0: + size_hints.win_gravity = NorthWestGravity; + break; + case 1: + size_hints.win_gravity = SouthWestGravity; + break; + case 2: + size_hints.win_gravity = NorthEastGravity; + break; + case 3: + size_hints.win_gravity = SouthEastGravity; + break; + } + size_hints.flags |= PWinGravity; #ifdef HAVE_X11R4 diff -rc2P --exclude-from=exceptions emacs-19.18/src/ymakefile emacs-19.19/src/ymakefile *** emacs-19.18/src/ymakefile Sun Aug 8 02:40:42 1993 --- emacs-19.19/src/ymakefile Sat Aug 14 05:41:09 1993 *************** *** 217,221 **** the information in `config.h'. */ CFLAGS=-g ! ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAG) -I${srcdir} -I. C_SWITCH_MACHINE C_SWITCH_X_MACHINE C_SWITCH_SYSTEM C_SWITCH_X_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE ${CFLAGS} .c.o: $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< --- 217,223 ---- the information in `config.h'. */ CFLAGS=-g ! /* C_SWITCH_X_SITE must come before C_SWITCH_X_MACHINE and C_SWITCH_X_SYSTEM ! since it may have -I options that should override those two. */ ! ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAG) -I${srcdir} -I. C_SWITCH_MACHINE C_SWITCH_SYSTEM C_SWITCH_SITE C_SWITCH_X_SITE C_SWITCH_X_MACHINE C_SWITCH_X_SYSTEM ${CFLAGS} .c.o: $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $< *************** *** 542,546 **** OBJECTS_SYSTEM OBJECTS_MACHINE ${LIBES} ! prefix-args: prefix-args.c $(CC) $(ALL_CFLAGS) ${srcdir}/prefix-args.c -o prefix-args --- 544,548 ---- OBJECTS_SYSTEM OBJECTS_MACHINE ${LIBES} ! prefix-args: prefix-args.c $(config_h) $(CC) $(ALL_CFLAGS) ${srcdir}/prefix-args.c -o prefix-args *************** *** 672,679 **** doprnt.o : doprnt.c editfns.o : editfns.c window.h buffer.h systime.h INTERVAL_SRC $(config_h) ! emacs.o : emacs.c commands.h systty.h INTERVAL_SRC $(config_h) fileio.o : fileio.c window.h buffer.h systime.h INTERVAL_SRC $(config_h) filelock.o : filelock.c buffer.h paths.h $(config_h) ! filemode.o : filemode.c getloadavg.o : getloadavg.c $(config_h) indent.o : indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \ --- 674,681 ---- doprnt.o : doprnt.c editfns.o : editfns.c window.h buffer.h systime.h INTERVAL_SRC $(config_h) ! emacs.o : emacs.c commands.h systty.h syssignal.h process.h INTERVAL_SRC $(config_h) fileio.o : fileio.c window.h buffer.h systime.h INTERVAL_SRC $(config_h) filelock.o : filelock.c buffer.h paths.h $(config_h) ! filemode.o : filemode.c $(config_h) getloadavg.o : getloadavg.c $(config_h) indent.o : indent.c frame.h window.h indent.h buffer.h $(config_h) termchar.h \ *************** *** 685,689 **** keymap.o : keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \ $(config_h) ! lastfile.o : lastfile.c macros.o : macros.c window.h buffer.h commands.h macros.h $(config_h) malloc.o : malloc.c $(config_h) --- 687,691 ---- keymap.o : keymap.c buffer.h commands.h keyboard.h termhooks.h blockinput.h \ $(config_h) ! lastfile.o : lastfile.c $(config_h) macros.o : macros.c window.h buffer.h commands.h macros.h $(config_h) malloc.o : malloc.c $(config_h) *************** *** 696,700 **** mocklisp.o : mocklisp.c buffer.h $(config_h) process.o : process.c process.h buffer.h window.h termhooks.h termopts.h \ ! commands.h syssignal.h systime.h systty.h frame.h $(config_h) regex.o : regex.c syntax.h buffer.h $(config_h) regex.h frame.o : frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \ --- 698,702 ---- mocklisp.o : mocklisp.c buffer.h $(config_h) process.o : process.c process.h buffer.h window.h termhooks.h termopts.h \ ! commands.h syssignal.h systime.h systty.h syswait.h frame.h $(config_h) regex.o : regex.c syntax.h buffer.h $(config_h) regex.h frame.o : frame.c xterm.h window.h frame.h termhooks.h commands.h keyboard.h \ *************** *** 704,708 **** syntax.o : syntax.c syntax.h buffer.h commands.h $(config_h) sysdep.o : sysdep.c $(config_h) dispextern.h termhooks.h termchar.h termopts.h \ ! frame.h syssignal.h systty.h systime.h blockinput.h window.h term.o : term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \ disptab.h --- 706,710 ---- syntax.o : syntax.c syntax.h buffer.h commands.h $(config_h) sysdep.o : sysdep.c $(config_h) dispextern.h termhooks.h termchar.h termopts.h \ ! frame.h syssignal.h systty.h systime.h syswait.h blockinput.h window.h term.o : term.c termchar.h termhooks.h termopts.h $(config_h) cm.h frame.h \ disptab.h end-of-emacs-patch-kit