summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Blandy <jimb@redhat.com>1992-04-19 08:53:55 +0000
committerJim Blandy <jimb@redhat.com>1992-04-19 08:53:55 +0000
commite1f6d2e1fabe1363283ccbad20432d5060c88b1f (patch)
treee913367846d314883cd7ec34013f30ed1ad3f2c8
parent0c41415c1ea47f0594268f9a49f76fca4e5a98b6 (diff)
downloademacs-e1f6d2e1fabe1363283ccbad20432d5060c88b1f.tar.gz
*** empty log message ***
-rw-r--r--Makefile.in351
-rwxr-xr-xbuild-ins.in137
-rwxr-xr-xconfigure1.in178
-rw-r--r--etc/README9
-rw-r--r--lisp/lpr.el4
-rw-r--r--lisp/mail/rmail.el19
-rw-r--r--lisp/simple.el7
-rw-r--r--src/=Makefile.in2
-rw-r--r--src/callint.c20
-rw-r--r--src/config.in26
-rw-r--r--src/indent.c8
-rw-r--r--src/lread.c84
12 files changed, 538 insertions, 307 deletions
diff --git a/Makefile.in b/Makefile.in
index cd084aa62d3..1c7d6dfad9e 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,83 +1,131 @@
-# This is the distribution Makefile for Emacs. configure can make
-# most of the changes to this file you might want, so try that first.
+# DIST: This is the distribution Makefile for Emacs. configure can
+# DIST: make most of the changes to this file you might want, so try
+# DIST: that first.
-# make all to compile and build Emacs
-# make install to install it
-# make install.sysv to install on system V.
-# make install.xenix to install on Xenix
+# make all to compile and build Emacs.
+# make install to install it.
+# make install.sysv to install on system V. Note that on system V you
+# must change mandir to /usr/local/man/man1.
+# make install.xenix to install on Xenix.
# make install.aix to install on AIX.
-# make tags to update tags tables
+# make tags to update tags tables.
#
-# make distclean to delete everything that wasn't in the distribution
+# make distclean to delete everything that wasn't in the distribution.
# This is a very dangerous thing to do!
# make clean
-# This is a little less dangerous.
+# This is a little less dangerous.
SHELL = /bin/sh
-# ==================== Where to install things ====================
-# Note that on system V you must change MANDIR to /usr/local/man/man1.
+# ==================== Where To Install Things ====================
-# Where to install all of Emacs's data files - the lisp code,
-# documentation tree, and the architecture-dependent and -independent
-# libraries. If this is not the directory we're building under
-# already, the `install' targets will move or copy it there. The
-# default definitions for the variables below are expressed in terms
-# of this one, so you may not need to change them.
-LIBROOT=/home/gd/gnu/emacs
+# The default location for installation. Everything is placed in
+# subdirectories of this directory. This directory must exist when
+# you start installation. The default values for many of the
+# variables below are expressed in terms of this one, so you may not
+# need to change them.
+prefix=/usr/local
-# This is where the `install' make target should place the binaries
-# people will want to run directly (like etags and Emacs itself).
-INSTALLBIN=/usr/local/bin
+# Where to install Emacs and other binaries that people will want to
+# run directly (like etags).
+bindir=$(prefix)/bin
-# Emacs will search this path to find its elisp files. This should be
-# a colon-separated list of directories. Strictly speaking, all the
-# elisp files should go under DATADIR (below), since both elisp source
-# and compiled elisp are completely portable, but it's traditional to
-# give the lisp files their own subdirectory.
-LISPPATH=/home/gd/gnu/emacs/local-lisp:/home/gd/gnu/emacs/lisp
+# A directory under which we will install many of Emacs's files. The
+# default values for many of the variables below are expressed in
+# terms of this one, so you may not need to change them.
+emacsdir=$(prefix)/emacs-19.0
-# Emacs will look here for its architecture-independent files (like
-# the tutorial and the zippy database).
-DATADIR=/home/gd/gnu/emacs/etc
+# Where to install and expect the architecture-independent data files
+# (like the tutorial and the Zippy database).
+datadir=$(emacsdir)/etc
-# Emacs will look here for its architecture-dependent files, like
-# executables for its utilities.
-LIBDIR=/home/gd/gnu/emacs/arch-lib
+# Where to install the elisp files distributed with Emacs. Strictly
+# speaking, all the elisp files should go under datadir (above), since
+# both elisp source and compiled elisp are completely portable, but
+# it's traditional to give the lisp files their own subdirectory.
+lispdir=$(emacsdir)/lisp
-# The locking directory, where the Emacs locking code keeps track of
-# which files are currently being edited.
-LOCKDIR=/home/gd/gnu/emacs/lock
+# Directories Emacs should search for elisp files specific to this
+# site (i.e. customizations), before consulting $(lispdir). This
+# should be a colon-separated list of directories.
+locallisppath=$(emacsdir)/local-lisp
-# This is where the `install' make target should place the man pages
-# for the binaries it installs.
-MANDIR= /usr/man/man1
+# Where Emacs will search to find its elisp files. Before changing
+# this, check to see if your purpose wouldn't better be served by
+# changing locallisppath. This should be a colon-separated list of
+# directories.
+lisppath=$(locallisppath):$(lispdir)
+# Where Emacs will search for its elisp files before dumping. This is
+# only used during the process of compiling Emacs, to help Emacs find
+# its lisp files before they've been installed in their final
+# location. It's usually identical to lisppath, except that the entry
+# for the directory containing the installed lisp files has been
+# replaced with ../lisp. This should be a colon-separated list of
+# directories.
+dumplisppath=$(locallisppath):../lisp
+# Where to install and expect the files that Emacs modifies as it
+# runs. These files are all architecture-independent. Right now,
+# the only such data is the locking directory.
+statedir=$(emacsdir)
+
+# Where to create and expect the locking directory, where the Emacs
+# locking code keeps track of which files are currently being edited.
+lockdir=$(statedir)/lock
+
+# Where to install and expect executable files to be run by Emacs
+# rather than directly by users, and other architecture-dependent
+# data.
+libdir=$(emacsdir)/arch-lib
+
+# Where to install Emacs's man pages.
+mandir=/usr/man/man1
+
+# Where to install and expect the info files describing Emacs. In the
+# past, this defaulted to a subdirectory of $(prefix)/lib/emacs, but
+# since there are now many packages documented with the texinfo
+# system, it is inappropriate to imply that it is part of Emacs.
+infodir=$(prefix)/info
+
+
+# ==================== Utility Programs for the Build ====================
+
+# Allow the user to specify the install program.
+INSTALL = install
+INSTALLFLAGS = -c
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_DATA = ${INSTALL}
+
+
+# ============================= Targets ==============================
# Flags passed down to subdirectory makefiles.
-MFLAGS=
+MFLAGS =
# Subdirectories to make recursively. `lisp' is not included
# because the compiled lisp files are part of the distribution
# and you cannot remake them without installing Emacs first.
-SUBDIR= lib-src src
+SUBDIR = lib-src src
-# Subdirectories to install
-COPYDIR= arch-lib etc info lisp
-
-# Subdirectories to clean
-CLEANDIR= ${COPYDIR} lisp/term
+# Subdirectories to install, and where they'll go.
+COPYDIR = arch-lib etc info lisp
+COPYDESTS = $(libdir) $(datadir) $(infodir) $(lispdir)
all: src/paths.h ${SUBDIR}
-src/paths.h: Makefile src/paths.h-dist
- /bin/sed < src/paths.h-dist > src/paths.h \
- -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "$(LISPPATH)";' \
- -e 's;\(#.*PATH_EXEC\).*$$;\1 "$(LIBDIR)";' \
- -e 's;\(#.*PATH_DATA\).*$$;\1 "$(DATADIR)";' \
- -e 's;\(#.*PATH_LOCK\).*$$;\1 "$(LOCKDIR)/";' \
- -e 's;\(#.*PATH_SUPERLOCK\).*$$;\1 "$(LOCKDIR)/!!!SuperLock!!!";'
+removenullpaths=sed -e 's/^://' -e 's/:$$//' -e 's/::/:/'
+
+src/paths.h: Makefile src/paths.h.in
+ lisppath=`echo $(lisppath) | $(removenullpaths)` ; \
+ dumplisppath=`echo $(dumplisppath) | $(removenullpaths)` ; \
+ /bin/sed < src/paths.h.in > src/paths.h \
+ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'$${lisppath}'";' \
+ -e 's;\(#.*PATH_DUMPLOADSEARCH\).*$$;\1 "'$${dumplisppath}'";' \
+ -e 's;\(#.*PATH_EXEC\).*$$;\1 "$(libdir)";' \
+ -e 's;\(#.*PATH_DATA\).*$$;\1 "$(datadir)";' \
+ -e 's;\(#.*PATH_LOCK\).*$$;\1 "$(lockdir)/";' \
+ -e 's;\(#.*PATH_SUPERLOCK\).*$$;\1 "$(lockdir)/!!!SuperLock!!!";'
src: lib-src
@@ -87,93 +135,142 @@ ${SUBDIR}: FRC
cd $@; make ${MFLAGS} all
install: all mkdir lockdir
- -if [ `/bin/pwd` != `(cd ${LIBROOT}; /bin/pwd)` ] ; then \
- tar cf - ${COPYDIR} | (cd ${LIBROOT}; umask 0; tar xf - ) ;\
- for i in ${CLEANDIR}; do \
- (rm -rf ${LIBROOT}/$$i/RCS; \
- rm -f ${LIBROOT}/$$i/\#*; \
- rm -f ${LIBROOT}/$$i/*~); \
- done \
- else true; \
- fi
- install -c -s arch-lib/emacsclient ${INSTALLBIN}/emacsclient
- install -c -s arch-lib/etags ${INSTALLBIN}/etags
- install -c -s arch-lib/ctags ${INSTALLBIN}/ctags
- install -c -s -m 1755 src/xemacs ${INSTALLBIN}/xemacs
- install -c -m 444 etc/emacs.1 ${MANDIR}/emacs.1
- -rm -f ${INSTALLBIN}/emacs
- mv ${INSTALLBIN}/xemacs ${INSTALLBIN}/emacs
+ -set ${COPYDESTS} ; \
+ for dir in ${COPYDIR} ; do \
+ dest=$$1 ; shift ; \
+ if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \
+ (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xf - ) ; \
+ for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
+ rm -rf $${subdir}/RCS ; \
+ rm -f $${subdir}/\#* ; \
+ rm -f $${subdir}/*~ ; \
+ done ; \
+ fi ; \
+ done
+ ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/emacsclient ${bindir}/emacsclient
+ ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/etags ${bindir}/etags
+ ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c arch-lib/ctags ${bindir}/ctags
+ ${INSTALL_PROGRAM} ${INSTALLFLAGS} -c -m 1755 src/xemacs ${bindir}/xemacs
+ ${INSTALL_DATA} ${INSTALLFLAGS} -c -m 444 etc/emacs.1 ${mandir}/emacs.1
+ -rm -f ${bindir}/emacs
+ mv ${bindir}/xemacs ${bindir}/emacs
install.sysv: all mkdir lockdir
- -if [ `/bin/pwd` != `(cd ${LIBROOT}; /bin/pwd)` ] ; then \
- find ${COPYDIR} -print | cpio -pdum ${LIBROOT} ;\
- for i in ${CLEANDIR}; do \
- (rm -rf ${LIBROOT}/$$i/RCS; \
- rm -f ${LIBROOT}/$$i/\#*; \
- rm -f ${LIBROOT}/$$i/*~); \
- done \
- else true; \
- fi
- -cpset arch-lib/emacsclient ${INSTALLBIN}/emacsclient 755 bin bin
- -cpset arch-lib/etags ${INSTALLBIN}/etags 755 bin bin
- -cpset arch-lib/ctags ${INSTALLBIN}/ctags 755 bin bin
- -cpset etc/emacs.1 ${MANDIR}/emacs.1 444 bin bin
- -/bin/rm -f ${INSTALLBIN}/emacs
- -cpset src/xemacs ${INSTALLBIN}/emacs 1755 bin bin
+ -set ${COPYDESTS} ; \
+ for dir in ${COPYDIR} ; do \
+ dest=$$1 ; shift ; \
+ if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \
+ (cd $${dir}; find . -print | cpio -pdum ${dest} ) ; \
+ for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
+ rm -rf $${subdir}/RCS ; \
+ rm -f $${subdir}/\#* ; \
+ rm -f $${subdir}/*~ ; \
+ done ; \
+ fi ; \
+ done
+ -cpset arch-lib/emacsclient ${bindir}/emacsclient 755 bin bin
+ -cpset arch-lib/etags ${bindir}/etags 755 bin bin
+ -cpset arch-lib/ctags ${bindir}/ctags 755 bin bin
+ -cpset etc/emacs.1 ${mandir}/emacs.1 444 bin bin
+ -/bin/rm -f ${bindir}/emacs
+ -cpset src/xemacs ${bindir}/emacs 1755 bin bin
install.xenix: all mkdir lockdir
- if [ `pwd` != `(cd ${LIBROOT}; pwd)` ] ; then \
- tar cf - ${COPYDIR} | (cd ${LIBROOT}; umask 0; tar xpf - ) ;\
- for i in ${CLEANDIR}; do \
- (rm -rf ${LIBROOT}/$$i/RCS; \
- rm -f ${LIBROOT}/$$i/\#*; \
- rm -f ${LIBROOT}/$$i/*~); \
- done \
- else true; \
- fi
- cp arch-lib/etags arch-lib/ctags arch-lib/emacsclient ${INSTALLBIN}
- chmod 755 ${INSTALLBIN}/etags ${INSTALLBIN}/ctags ${INSTALLBIN}/emacsclient
- cp etc/emacs.1 ${MANDIR}/emacs.1
- chmod 444 ${MANDIR}/emacs.1
- -mv -f ${INSTALLBIN}/emacs ${INSTALLBIN}/emacs.old
- cp src/xemacs ${INSTALLBIN}/emacs
- chmod 1755 ${INSTALLBIN}/emacs
- -rm -f ${INSTALLBIN}/emacs.old
+ -set ${COPYDESTS} ; \
+ for dir in ${COPYDIR} ; do \
+ dest=$$1 ; shift ; \
+ if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \
+ (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xpf - ) ; \
+ for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
+ rm -rf $${subdir}/RCS ; \
+ rm -f $${subdir}/\#* ; \
+ rm -f $${subdir}/*~ ; \
+ done ; \
+ fi ; \
+ done
+ cp arch-lib/etags arch-lib/ctags arch-lib/emacsclient ${bindir}
+ chmod 755 ${bindir}/etags ${bindir}/ctags ${bindir}/emacsclient
+ cp etc/emacs.1 ${mandir}/emacs.1
+ chmod 444 ${mandir}/emacs.1
+ -mv -f ${bindir}/emacs ${bindir}/emacs.old
+ cp src/xemacs ${bindir}/emacs
+ chmod 1755 ${bindir}/emacs
+ -rm -f ${bindir}/emacs.old
install.aix: all mkdir lockdir
- -if [ `/bin/pwd` != `(cd ${LIBROOT}; /bin/pwd)` ] ; then \
- tar cf - ${COPYDIR} | (cd ${LIBROOT}; umask 0; tar xBf - ) ;\
- for i in ${CLEANDIR}; do \
- (rm -rf ${LIBROOT}/$$i/RCS; \
- rm -f ${LIBROOT}/$$i/\#*; \
- rm -f ${LIBROOT}/$$i/*~); \
- done \
- else true; \
- fi
- install -f ${INSTALLBIN} etc/emacsclient
- install -f ${INSTALLBIN} etc/etags
- install -f ${INSTALLBIN} etc/ctags
- install -M 1755 -f ${INSTALLBIN} src/xemacs
- install -M 444 -f ${MANDIR} etc/emacs.1
- -rm -f ${INSTALLBIN}/emacs
- mv ${INSTALLBIN}/xemacs ${INSTALLBIN}/emacs
+ -set ${COPYDESTS} ; \
+ for dir in ${COPYDIR} ; do \
+ dest=$$1 ; shift ; \
+ if [ `/bin/pwd`/$${dir} != `(cd $${dest}; /bin/pwd)` ] ; then \
+ (cd $${dir}; tar cf - . ) | (cd $${dest}; umask 0; tar xBf - ) ; \
+ for subdir in `find $${dest} -type d ! -name RCS -print` ; do \
+ rm -rf $${subdir}/RCS ; \
+ rm -f $${subdir}/\#* ; \
+ rm -f $${subdir}/*~ ; \
+ done ; \
+ fi ; \
+ done
+ ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/emacsclient
+ ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/etags
+ ${INSTALL_PROGRAM} ${INSTALLFLAGS} -f ${bindir} etc/ctags
+ ${INSTALL_PROGRAM} ${INSTALLFLAGS} -M 1755 -f ${bindir} src/xemacs
+ ${INSTALL_DATA} ${INSTALLFLAGS} -M 444 -f ${mandir} etc/emacs.1
+ -rm -f ${bindir}/emacs
+ mv ${bindir}/xemacs ${bindir}/emacs
+# Build all the directories
mkdir: FRC
- -mkdir ${LIBROOT}
- -chmod 777 ${LIBROOT}
-
-distclean:
- for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} distclean); done
-
-clean:
- cd src; make clean
- cd lib-src; make clean
+ # If any of the directories are below ${emacsdir}, create it.
+ -for dir in ${COPYDESTS}; do \
+ case "$${dir}" in \
+ ${emacsdir}/* ) \
+ if [ ! -d ${emacsdir} ]; then \
+ -mkdir ${emacsdir} ; \
+ -chmod 777 ${emacsdir} ; \
+ fi ; \
+ break\
+ ;; \
+ esac ; \
+ done
+ -mkdir ${COPYDESTS}
+ -chmod 777 ${COPYDESTS}
lockdir:
+ # If the lockdir needs ${emacsdir}, create it.
+ -case "${lockdir}" in \
+ ${statedir}/* ) \
+ if [ ! -d ${emacsdir} ]; then \
+ -mkdir ${emacsdir} ; \
+ -chmod 777 ${emacsdir} ; \
+ fi \
+ ;; \
+ esac
-mkdir ${LOCKDIR}
-chmod 777 ${LOCKDIR}
FRC:
-tags: lib-src
+clean mostlyclean:
+ cd src; make clean
+ if [ `/bin/pwd` != `(cd ${DESTDIR}${LIBDIR}; /bin/pwd)` ] ; then \
+ cd etc; make clean; \
+ else true; \
+ fi
+ cd oldXMenu; make clean
+
+distclean:
+ for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} distclean); done
+ -(cd lock; rm *)
+ -rm config.status config-tmp-*
+ -rm #*# *~
+
+realclean:
+ for i in ${SUBDIR}; do (cd $$i; make ${MFLAGS} realclean); done
+ (cd lock; rm *)
+ rm config.status
+
+TAGS tags: lib-src
cd src; ../arch-lib/etags *.[ch] ../lisp/*.el ../lisp/term/*.el
+
+check:
+ @echo "We don't have any tests for GNU Emacs yet."
diff --git a/build-ins.in b/build-ins.in
index 778c8221e78..d23a1b28e80 100755
--- a/build-ins.in
+++ b/build-ins.in
@@ -2,60 +2,149 @@
#
#Shell script for building and installing Emacs.
+# ==================== Where To Install Things ====================
+
+# The default location for installation. Everything is placed in
+# subdirectories of this directory. This directory must exist when
+# you start installation. The default values for many of the
+# variables below are expressed in terms of this one, so you may not
+# need to change them.
+prefix=/usr/local
+
+# Where to install Emacs and other binaries that people will want to
+# run directly (like etags).
+bindir=${prefix}/bin
+
+# A directory under which we will install many of Emacs's files. The
+# default values for many of the variables below are expressed in
+# terms of this one, so you may not need to change them.
+emacsdir=${prefix}/lib/emacs-19.0
+
+# Where to install and expect the architecture-independent data files
+# (like the tutorial and the zippy database).
+datadir=${emacsdir}/etc
+
+# Where to install the elisp files distributed with Emacs.
+lispdir=${emacsdir}/lisp
+
+# Where Emacs will search to find its elisp files. This should be a
+# colon-separated list of directories. Strictly speaking, all the
+# elisp files should go under datadir (above), since both elisp source
+# and compiled elisp are completely portable, but it's traditional to
+# give the lisp files their own subdirectory.
+lisppath=${emacsdir}/local-lisp:${lispdir}
+
+# Where to install and expect the files that Emacs modifies as it
+# runs. These files are all architecture-independent. Right now,
+# the only such data is the locking directory.
+statedir=${emacsdir}
+
+# Where to create and expect the locking directory, where the Emacs
+# locking code keeps track of which files are currently being edited.
+lockdir=${statedir}/lock
+
+# Where to install and expect executable files to be run by Emacs
+# rather than directly by users, and other architecture-dependent
+# data.
+libdir=${emacsdir}/arch-lib
+
+# Where to install Emacs's man pages.
+mandir=/usr/man/man1
+
+# Where to install and expect the info files describing Emacs. In the
+# past, this defaulted to a subdirectory of ${prefix}/lib/emacs, but
+# since there are now many packages documented with the texinfo
+# system, it is inappropriate to imply that it is part of Emacs.
+infodir=${prefix}/info
+
+scum
+
+
# Where to install all of Emacs's data files - the lisp code,
# documentation tree, and the architecture-dependent and -independent
# libaries. The default definitions for the variables below are
# expressed in terms of this one, so you may not need to change them.
# set LIBROOT=/usr/local/lib/emacs-19.0
-LIBROOT=/home/gd/gnu/emacs
+emacsdir=/u/src/emacs/19.0
# Emacs will search this path to find its elisp files. This should be
# a colon-separated list of directories. Strictly speaking, all the
# elisp files should go under DATADIR (below), since both elisp source
# and compiled elisp are completely portable, but it's traditional to
# give the lisp files their own subdirectory.
-LISPPATH=/home/gd/gnu/emacs/local-lisp:/home/gd/gnu/emacs/lisp
+LISPPATH=/u/src/emacs/19.0/local-lisp:/u/src/emacs/19.0/lisp
# Emacs will look here for its architecture-independent files (like
# the tutorial and the zippy database).
-DATADIR=/home/gd/gnu/emacs/etc
+DATADIR=/u/src/emacs/19.0/etc
# Emacs will look here for its architecture-dependent files, like
# executables for its utilities.
-LIBDIR=/home/gd/gnu/emacs/arch-lib
+LIBDIR=/u/src/emacs/19.0/arch-lib
# The locking directory, where the Emacs locking code keeps track of
# which files are currently being edited.
# set LOCKDIR=${LIBROOT}/lock
-LOCKDIR=/home/gd/gnu/emacs/lock
+LOCKDIR=/u/src/emacs/19.0/lock
# This is where build-install should place the binaries people will
# want to run directly (like etags and Emacs itself).
BINDIR=/usr/local/bin
-/bin/sed < src/paths.h-dist > src/paths.h \
--e 's;\(#.*PATH_LOADSEARCH\).*$;\1 "'${LISPPATH}'";' \
--e 's;\(#.*PATH_EXEC\).*$;\1 "'${LIBDIR}'";' \
--e 's;\(#.*PATH_DATA\).*$;\1 "'${DATADIR}'";' \
--e 's;\(#.*LOCK\).*$;\1 "'${LOCKDIR}'/";'
+/bin/sed < src/paths.h.in > src/paths.h \
+-e 's;\(#.*PATH_LOADSEARCH\).*$;\1 "${lisppath}";' \
+-e 's;\(#.*PATH_EXEC\).*$;\1 "${libdir}";' \
+-e 's;\(#.*PATH_DATA\).*$;\1 "${datadir}";' \
+-e 's;\(#.*PATH_LOCK\).*$;\1 "${lockdir}/";' \
+-e 's;\(#.*PATH_SUPERLOCK\).*$;\1 "${lockdir}/!!!SuperLock!!!";'
(cd lib-src; make) || exit 1
(cd src; make) || exit 1
-if [ `pwd` != `(cd ${LIBROOT}; pwd)` ]; then
- mv `pwd` ${LIBROOT}
- if [ $? != '0' ]; then
- mkdir ${LIBROOT}
- echo mv `pwd` to ${LIBROOT} failed--using tar to copy.
- tar cf - . | (cd ${LIBROOT}; umask 0; tar xf -)
- if [ $? != '0' ]; then
- echo tar-copying `pwd` to ${LIBROOT} failed.
- exit 1
+# Subdirectories to install, and where they'll go.
+copydir=arch-lib etc info lisp
+copydests=${libdir} ${datadir} ${infodir} ${lispdir}
+
+# If any of the directories are below ${emacsdir} or ${statedir}, create them.
+for dir in ${copydests}; do
+ case "${dir}" in
+ ${emacsdir}/* )
+ if [ ! -d ${emacsdir} ]; then
+ -mkdir ${emacsdir}
+ -chmod 777 ${emacsdir}
+ fi
+ ;;
+ ${statedir}/* )
+ if [ ! -d ${statedir} ]; then
+ -mkdir ${statedir}
+ -chmod 777 ${statedir}
+ fi
+ ;;
+ esac
+done
+
+set ${copydests}
+for dir in ${copydir} ; do
+ dest=$1 ; shift
+ mv ${dir} ${dest}
+ if [ $? != 0 ]; then
+ echo mv ${dir} to ${dest} failed -- using tar to copy.
+ if [ `/bin/pwd`/${dir} != `(cd ${dest}; /bin/pwd)` ] ; then
+ (cd ${dir}; tar cf - . ) | (cd ${dest}; umask 0; tar xf - )
+ if [ $? != 0 ]; then
+ echo "tar-copying ${dir} to ${dest} failed too. I give up."
+ exit 1
+ fi
+ for subdir in `find ${dest} -type d ! -name RCS -print` ; do
+ rm -rf ${subdir}/RCS
+ rm -f ${subdir}/\#*
+ rm -f ${subdir}/*~
+ done
fi
fi
-fi
+done
-cp ${LIBROOT}/etc/[ce]tags ${BINDIR}
-mv ${LIBROOT}/src/xemacs ${BINDIR}/emacs
-rm ${LIBROOT}/src/temacs
-chmod 777 ${BINDIR}/[ce]tags ${BINDIR}/emacs
+cp ${libdir}/[ce]tags ${bindir}
+mv src/xemacs ${BINDIR}/emacs
+rm src/temacs
+chmod 777 ${bindir}/[ce]tags ${bindir}/emacs
diff --git a/configure1.in b/configure1.in
index d7b6ab6afd3..cc02b2e9b00 100755
--- a/configure1.in
+++ b/configure1.in
@@ -20,11 +20,11 @@
# Shell script to edit files and make symlinks in preparation for
# compiling Emacs.
-#
+#
# Usage: configure machine
#
# If configure succeeds, it leaves its status in config.status.
-# If configure fails after disturbing the status quo,
+# If configure fails after disturbing the status quo,
# config.status is removed.
#
@@ -95,16 +95,7 @@ lockdir=""
window_system=""
have_x_menu=""
-# This must be the only option on the line, and it can't be abbreviated.
-# This keeps it from interfering with the other, documented options.
-if [ "$*" = "+distribute" ]; then
- libroot=/usr/local/lib/emacs
- machine=hp300bsd
- opsystem=bsd4-3
- shift
-fi
-
-echo "Examining options..."
+echo "Examining options."
for arg in $*; do
case "${arg}" in
-*)
@@ -190,7 +181,7 @@ if [ "${machine}" = "" ]; then
exit 1
fi
-echo "Checking machine..."
+echo "Checking the machine."
machfile="m/${machine}.h"
if [ ! -r src/${machfile} ]; then
echo "${progname}: Emacs has no configuration info for the machine called
@@ -199,11 +190,11 @@ that Emacs has been ported to." 1>&2
exit 1
fi
-echo "Checking operating system..."
+echo "Checking the operating system."
if [ "${opsystem}" = "" ]; then
echo " No operating system explicitly specified."
- echo " Guessing, based on machine..."
+ echo " Guessing, based on machine."
# Get the default operating system to go with the specified machine.
opsystem=`grep 'USUAL-OPSYS="' src/${machfile} \
| sed 's/^.*USUAL-OPSYS="\([^"]*\)".*$/\1/'`
@@ -251,21 +242,21 @@ systems that Emacs has been ported to." 1>&2
fi
if [ "${libroot}" = "" ]; then
- echo "Guessing library directory..."
+ echo "Guessing library directory."
libroot=`/bin/pwd`
fi
-echo "Checking window system..."
+echo "Checking window system."
window_system="`echo ${window_system} | tr A-Z a-z`"
case "${window_system}" in
"none" | "x11" | "x10" ) ;;
"x" ) window_system=x11 ;;
"" )
- echo " No window system specifed. Looking for X Windows."
+ echo " No window system specifed. Looking for X Windows."
window_system=none
if [ -r /usr/lib/libX11.a -a -d /usr/include/X11 ]; then
window_system=x11
- fi
+ fi
;;
* )
echo "The \`-window_system' option must be set to \`none' or \`X11'." 1>&2
@@ -291,7 +282,7 @@ esac
# What is the return type of a signal handler? We grep
# /usr/include/signal.h for the declaration of the signal function.
# Yuck.
-echo "Looking for return type of signal handler functions..."
+echo "Looking for return type of signal handler functions."
if [ -r /usr/include/signal.h ]; then
sigpattern='[ ]*([ ]*\*[ ]*signal[ ]*('
sigtype=void
@@ -301,37 +292,27 @@ if [ -r /usr/include/signal.h ]; then
fi
-# Do the opsystem or machine files prohibit the use of the GNU malloc?
-echo "Checking to see if the GNU malloc routines are permissible..."
-if (cd ./src;grep SYSTEM_MALLOC ${opsysfile} ${machfile} > /dev/null); then
- gnu_malloc=no
- gnu_malloc_reason="
- (The GNU allocators don't work with this machine and/or operating system.)"
-fi
-
-rel_alloc=${gnu_malloc}
-
if [ "${have_x_menu}" = "" ]; then
have_x_menu=no
fi
if [ "${lisppath}" = "" ]; then
- lisppath=${libroot}/local-lisp:${libroot}/lisp
+ lisppath='$(locallisppath):$(lispdir)'
fi
if [ "${datadir}" = "" ]; then
- datadir=${libroot}/etc
+ datadir='$(emacsdir)/etc'
fi
if [ "${libdir}" = "" ]; then
- libdir=${libroot}/arch-lib
+ libdir='$(emacsdir)/arch-lib'
fi
if [ "${lockdir}" = "" ]; then
- lockdir=${libroot}/lock
+ lockdir='$(statedir)/lock'
fi
-echo "Checking for GCC..."
+echo "Checking for GCC."
case "${cc}" in
"" )
temppath=`echo $PATH | sed 's/^:/.:/
@@ -352,8 +333,10 @@ case "${O},${g},${cc}" in
,,* ) O=yes; g=no ;;
esac
-echo "Guessing which libraries the lib-src programs will want,"
-echo " based on the machine- and system-dependent files..."
+echo "Examining the machine- and system-dependent files to find out"
+echo " - which libraries the lib-src programs will want, and"
+echo " - whether the GNU malloc routines are usable."
+tempcname="configure.tmp.$$.c"
echo '#include "src/'${machfile}'"
#include "src/'${opsysfile}'"
#ifndef LIBS_MACHINE
@@ -363,15 +346,31 @@ echo '#include "src/'${machfile}'"
#define LIBS_SYSTEM
#endif
libsrc_libs=LIBS_MACHINE LIBS_SYSTEM
-' > config-tmp-$$.c
-eval `${cc} -E config-tmp-$$.c | grep 'libsrc_libs='`
-rm config-tmp-$$.c
+#ifdef SYSTEM_MALLOC
+system_malloc=yes
+#else
+system_malloc=no
+#endif
+' > ${tempcname}
+eval `${cc} -E ${tempcname} | grep -v '^#' | grep -v '^[ ]*$'`
+rm ${tempcname}
+
+# Do the opsystem or machine files prohibit the use of the GNU malloc?
+if [ "${system_malloc}" = "yes" ]; then
+ gnu_malloc=no
+ gnu_malloc_reason="
+ (The GNU allocators don't work with this machine and/or operating system.)"
+fi
+
+if [ ! "${rel_alloc}" ]; then
+ rel_alloc=${gnu_malloc}
+fi
rm -f config.status
set -e
# Make the proper settings in the config file.
-echo "Making src/config.h from src/config.h-dist"
+echo "Making src/config.h from src/config.h.in"
if [ "${highpri}" != "" ]; then
highpri="(-${highpri})"
fi
@@ -399,48 +398,69 @@ for flag in `echo ${config_h_opts} | tr ':' ' '`; do
esac
sed_flags="${sed_flags} ${f}"
done
-eval '/bin/sed '${sed_flags}' < src/config.h-dist > src/config.h'
+rm -f src/config.h
+eval '/bin/sed '${sed_flags}' < src/config.h.in > src/config.h'
+# Remind people not to edit this.
+chmod -w src/config.h
# Modify the parameters in the top makefile.
-echo "Editing ./Makefile..."
-tempMakefile="tempMakefile"$$
-/bin/sed < Makefile > ${tempMakefile} \
--e 's;^\(LIBROOT=\).*$;\1'"${libroot};" \
--e 's;^\(BINDIR=\).*$;\1'"${bindir};" \
--e 's;^\(LISPPATH=\).*$;\1'"${lisppath};" \
--e 's;^\(DATADIR=\).*$;\1'"${datadir};" \
--e 's;^\(LOCKDIR=\).*$;\1'"${lockdir};" \
--e 's;^\(LIBDIR=\).*$;\1'"${libdir};"
-mv ${tempMakefile} Makefile
+echo "Producing ./Makefile from ./Makefile.in."
+rm -f ./Makefile
+(echo "# This file is generated by \`${progname}' from \`./Makefile.in'.
+# If you are thinking about editing it, you should seriously consider
+# editing \`./Makefile.in' itself, or running \`${progname}' instead."
+ /bin/sed < Makefile.in \
+ -e '/^# DIST: /d' \
+ -e 's;^\(emacsdir=\).*$;\1'"${libroot};" \
+ -e 's;^\(bindir=\).*$;\1'"${bindir};" \
+ -e 's;^\(lisppath=\).*$;\1'"${lisppath};" \
+ -e 's;^\(datadir=\).*$;\1'"${datadir};" \
+ -e 's;^\(lockdir=\).*$;\1'"${lockdir};" \
+ -e 's;^\(libdir=\).*$;\1'"${libdir};") > ./Makefile
+# Remind people not to edit this.
+chmod -w ./Makefile
# Modify the parameters in the `build-install' script.
-echo "Editing ./build-install..."
-tempbi="tempbi"$$
-/bin/sed < build-install > ${tempbi} \
--e 's;^\(LIBROOT=\).*$;\1'"${libroot};" \
--e 's;^\(BINDIR=\).*$;\1'"${bindir};" \
--e 's;^\(LISPPATH=\).*$;\1'"${lisppath};" \
--e 's;^\(DATADIR=\).*$;\1'"${datadir};" \
--e 's;^\(LOCKDIR=\).*$;\1'"${lockdir};" \
--e 's;^\(LIBDIR=\).*$;\1'"${libdir};"
-mv ${tempbi} build-install
-chmod a+x build-install
+echo "Producing ./build-install from ./build-install.in."
+rm -f ./build-install
+(echo "# This file is generated by \`${progname}' from \`./build-install.in'.
+# If you are thinking about editing it, you should seriously consider
+# editing \`./build-install.in' itself, or running \`${progname}' instead."
+ /bin/sed < build-install.in \
+ -e 's;^\(LIBROOT=\).*$;\1'"${libroot};" \
+ -e 's;^\(BINDIR=\).*$;\1'"${bindir};" \
+ -e 's;^\(LISPPATH=\).*$;\1'"${lisppath};" \
+ -e 's;^\(DATADIR=\).*$;\1'"${datadir};" \
+ -e 's;^\(LOCKDIR=\).*$;\1'"${lockdir};" \
+ -e 's;^\(LIBDIR=\).*$;\1'"${libdir};") > ./build-install
+# Remind people not to edit this.
+chmod -w build-install
+chmod +x build-install
# Modify the parameters in the src makefile.
-echo "Editing src/Makefile..."
-tempMakefile="tempMakefile"$$
-/bin/sed < src/Makefile > ${tempMakefile} \
--e 's;^\(CC[ ]*=\).*$;\1'"${cc};"
-mv ${tempMakefile} src/Makefile
+echo "Producing src/Makefile from src/Makefile.in."
+rm -f src/Makefile
+(echo "# This file is generated by \`${progname}' from \`Makefile.in'.
+# If you are thinking about editing it, you should seriously consider
+# editing \`Makefile.in' itself, or running \`${progname}' instead."
+ /bin/sed < src/Makefile.in \
+ -e 's;^\(CC[ ]*=\).*$;\1'"${cc};") > src/Makefile
+# Remind people not to edit this.
+chmod -w src/Makefile
# Modify the parameters in the lib-src makefile.
-echo "Editing lib-src/Makefile..."
-tempMakefile="tempMakefile"$$
-/bin/sed < lib-src/Makefile > ${tempMakefile} \
--e 's;^\(CFLAGS=\).*$;\1'"${c_switch_site};" \
--e 's;^\(LOADLIBES=\).*$;\1'"${libsrc_libs};" \
--e 's;^\(CC=\).*$;\1'"${cc};"
-mv ${tempMakefile} lib-src/Makefile
+echo "Producing lib-src/Makefile from lib-src/Makefile.in."
+rm -f lib-src/Makefile
+(echo "# This file is generated by \`${progname}' from \`Makefile.in'.
+# If you are thinking about editing it, you should seriously consider
+# editing \`Makefile.in' itself, or running \`${progname}' instead."
+ /bin/sed < lib-src/Makefile.in \
+ -e 's;^\(CFLAGS=\).*$;\1'"${c_switch_site};" \
+ -e 's;^\(LOADLIBES=\).*$;\1'"${libsrc_libs};" \
+ -e 's;^\(CC=\).*$;\1'"${cc};") > lib-src/Makefile
+# Remind people not to edit this.
+chmod -w lib-src/Makefile
+
# Create a verbal description of what we have done.
message="# Configured for machine \`${machine}' running \`${opsystem}'.
@@ -476,7 +496,7 @@ echo "# This file is generated by \`${progname}.'
" >> config.status
echo "${message}" >> config.status
echo "'${progname}' \\
- -machine='${machine}' \\
+ -machine='${machine}' \\
-opsystem='${opsystem}' \\
-g=${g} \\
-O=${O} \\
@@ -488,10 +508,12 @@ echo "'${progname}' \\
-lockdir='${lockdir}' \\
-window_system='${window_system}' \\
-have_x_menu='${have_x_menu}' \\
- -gnu_malloc='${gnu_malloc}'
- -rel_malloc='${rel_alloc}' \\
+ -gnu_malloc='${gnu_malloc}' \\
+ -rel_alloc='${rel_alloc}' \\
-highpri='${highpri}' \\
-lisp_float_type='${lisp_float_type}'" >> config.status
+# Remind people not to edit this.
+chmod -w config.status
chmod +x config.status
# Print the description.
diff --git a/etc/README b/etc/README
index 7c49214815d..1d32cc8c91f 100644
--- a/etc/README
+++ b/etc/README
@@ -5,12 +5,3 @@ for Emacs functions and variables.
`termcap.dat' is for VMS. It is a copy of the `/etc/termcap' file
used on Unix.
-
-[/amiga/editors/README Fri Nov 23 15:37:39 EST 1990]
-
-ue-patches/ Patches to Uedit by Rick Stiles.
- [contributed by acs@pccuts.pcc.amdahl.com (Tony Sumrall)]
-
-stevie-*.lzh The VI-like editor STEVIE. Source is portable to many
- machines (Makefiles and Amiga executable included
- [contributed by Fred Walter <grwalter@watmath.waterloo.edu>]
diff --git a/lisp/lpr.el b/lisp/lpr.el
index e377f4c9331..296224679b9 100644
--- a/lisp/lpr.el
+++ b/lisp/lpr.el
@@ -1,5 +1,5 @@
;; Print Emacs buffer on line printer.
-;; Copyright (C) 1985, 1988 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1988, 1992 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -24,7 +24,7 @@
(defvar lpr-command (if (eq system-type 'usg-unix-v)
"lp" "lpr")
- "Shell command for printing a file")
+ "*Shell command for printing a file")
(defvar print-region-function nil
"Function to call to print the region on a printer.
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el
index ace3498a13b..347fce775f1 100644
--- a/lisp/mail/rmail.el
+++ b/lisp/mail/rmail.el
@@ -1,5 +1,5 @@
;; "RMAIL" mail reader for Emacs.
-;; Copyright (C) 1985, 1986, 1987, 1988, 1991 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1988, 1991, 1992 Free Software Foundation, Inc.
;; This file is part of GNU Emacs.
@@ -98,6 +98,11 @@ Called with region narrowed to unformatted header.")
(defvar rmail-last-multi-labels nil)
(defvar rmail-last-file nil)
(defvar rmail-last-rmail-file nil)
+
+(defvar rmail-unix-mail-delimiter
+ "From \\([^ \n]*\\(\\|\".*\"[^ \n]*\\)\\) ?\\([^ \n]*\\) \\([^ ]*\\) *\\([0-9]*\\) \\([0-9:]*\\)\\( ?[A-Z]?[A-Z][A-Z]T\\( DST\\)?\\| ?[-+]?[0-9][0-9][0-9][0-9]\\|\\) [0-9][0-9]\\([0-9]*\\) *\\(remote from [^\n]*\\)?\n"
+ "Regexp matching the delimiter of messages in UNIX mail format (UNIX From lines), minus the
+initial ^. ")
;;;; *** Rmail Mode ***
@@ -634,9 +639,8 @@ argument causes us to read a file name and use that file as the inbox."
(rmail-nuke-pinhead-header)
(if (re-search-forward
(concat "^[\^_]?\\("
- "From [^ \n]*\\(\\|\".*\"[^ \n]*\\) ?[^ \n]* [^ \n]* *"
- "[0-9]* [0-9:]*\\( ?[A-Z]?[A-Z][A-Z]T\\| ?[-+]?[0-9][0-9][0-9][0-9]\\|\\) " ; EDT, -0500
- "[0-9]+ *\\(remote from [^\n]*\\)?$\\|"
+ rmail-unix-mail-delimiter
+ "\\|"
mmdf-delim1 "\\|"
"^BABYL OPTIONS:\\|"
"\^L\n[01],\\)") nil t)
@@ -681,8 +685,7 @@ argument causes us to read a file name and use that file as the inbox."
(setq has-date (and (search-forward "\nDate:" nil t) (point)))
(goto-char start))
(let ((case-fold-search nil))
- (if (re-search-forward
- "^From \\([^ ]*\\(\\|\".*\"[^ ]*\\)\\) ?\\([^ ]*\\) \\([^ ]*\\) *\\([0-9]*\\) \\([0-9:]*\\)\\( ?[A-Z]?[A-Z][A-Z]T\\| ?[-+]?[0-9][0-9][0-9][0-9]\\|\\) [0-9][0-9]\\([0-9]*\\) *\\(remote from [^\n]*\\)?\n" nil t)
+ (if (re-search-forward (concat "^" rmail-unix-mail-delimiter) nil t)
(replace-match
(concat
"Mail-from: \\&"
@@ -692,8 +695,8 @@ argument causes us to read a file name and use that file as the inbox."
""
;; If no time zone specified, assume est.
(if (= (match-beginning 7) (match-end 7))
- "Date: \\3, \\5 \\4 \\8 \\6 EST\n"
- "Date: \\3, \\5 \\4 \\8 \\6\\7\n"))
+ "Date: \\3, \\5 \\4 \\9 \\6 EST\n"
+ "Date: \\3, \\5 \\4 \\9 \\6\\7\n"))
;; Keep and reformat the sender if we don't
;; have a From: field.
(if has-from
diff --git a/lisp/simple.el b/lisp/simple.el
index 8519219324d..087cbc8c5ed 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -136,7 +136,7 @@ In some text modes, where TAB inserts a tab, this indents to the
specified left-margin column."
(interactive "*")
(delete-region (point) (progn (skip-chars-backward " \t") (point)))
- (insert ?\n)
+ (newline)
(indent-according-to-mode))
(defun reindent-then-newline-and-indent ()
@@ -150,7 +150,7 @@ specified left-margin column."
(save-excursion
(delete-region (point) (progn (skip-chars-backward " \t") (point)))
(indent-according-to-mode))
- (insert ?\n)
+ (newline)
(indent-according-to-mode))
;; Internal subroutine of delete-char
@@ -748,7 +748,8 @@ the text which should be made available.")
(defun copy-region-as-kill (beg end)
"Save the region as if killed, but don't kill it.
-If `x-select-kill' is non-nil, also save the text for X cut and paste."
+If `interprogram-cut-function' is non-nil, also save the text for a window
+system cut and paste."
(interactive "r")
(if (eq last-command 'kill-region)
(kill-append (buffer-substring beg end) (< end beg))
diff --git a/src/=Makefile.in b/src/=Makefile.in
index 2458dc57dff..8cb7bdbdefa 100644
--- a/src/=Makefile.in
+++ b/src/=Makefile.in
@@ -11,7 +11,7 @@ SHELL = /bin/sh
all: xmakefile doall
doall:
- $(MAKE) $(MAKEOVERRIDES) -f xmakefile ${MFLAGS} all
+ $(MAKE) CC=${CC} $(MAKEOVERRIDES) -f xmakefile ${MFLAGS} all
#This is used in making a distribution.
#Do not use it on development directories!
diff --git a/src/callint.c b/src/callint.c
index f78a82af022..ffee0785095 100644
--- a/src/callint.c
+++ b/src/callint.c
@@ -1,5 +1,5 @@
/* Call a Lisp function interactively.
- Copyright (C) 1985, 1986 Free Software Foundation, Inc.
+ Copyright (C) 1985, 1986, 1992 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -177,12 +177,14 @@ Otherwise, this is done only if an arg is read using the minibuffer.")
/* Save this now, since use ofminibuffer will clobber it. */
prefix_arg = Vcurrent_prefix_arg;
-retry:
+ retry:
for (fun = function;
XTYPE (fun) == Lisp_Symbol && !EQ (fun, Qunbound);
fun = XSYMBOL (fun)->function)
- ;
+ {
+ QUIT;
+ }
specs = Qnil;
string = 0;
@@ -231,8 +233,14 @@ retry:
else
goto lose;
+ /* If either specs or string is set to a string, use it. */
if (XTYPE (specs) == Lisp_String)
- string = XSTRING (specs)->data;
+ {
+ /* Make a copy of string so that if a GC relocates specs,
+ `string' will still be valid. */
+ string = (char *) alloca (XSTRING (specs)->size + 1);
+ bcopy (XSTRING (specs)->data, string, XSTRING (specs)->size + 1);
+ }
else if (string == 0)
{
i = num_input_chars;
@@ -297,7 +305,7 @@ retry:
gcpro4.nvars = (count + 1);
tem = string;
- for (i = 1; *tem; i++)
+ for (i = 1; *tem; i++)
{
strncpy (prompt1, tem + 1, sizeof prompt1 - 1);
prompt1[sizeof prompt1 - 1] = 0;
@@ -309,7 +317,7 @@ retry:
argstrings[j]
= EQ (visargs[j], Qnil)
? (unsigned char *) ""
- : XSTRING (visargs[j])->data;
+ : XSTRING (visargs[j])->data;
doprnt (prompt, sizeof prompt, prompt1, 0, j - 1, argstrings + 1);
diff --git a/src/config.in b/src/config.in
index be3cc0dbda5..6fd403fa75d 100644
--- a/src/config.in
+++ b/src/config.in
@@ -1,4 +1,4 @@
-/* GNU Emacs site configuration template file.
+/* GNU Emacs site configuration template file. -*- C -*-
Copyright (C) 1988 Free Software Foundation, Inc.
This file is part of GNU Emacs.
@@ -93,18 +93,20 @@ and this notice must be preserved on all copies. */
#define GLYPH unsigned char
#endif
-/* The configuration script links system.h to a s- file that describes
- the system type you are using.
- See the file ../etc/MACHINES for a list of systems and
- the names of the s- files to use for them.
- See s-template.h for documentation on writing s- files. */
+/* The configuration script replaces the string @opsystem@ with the
+ name of the s/*.h file that describes the system type you are
+ using; an option of the form "-opsystem=OPSYS" says to use
+ "s/OPSYS.h". See the file ../etc/MACHINES for a list of systems
+ and the -opsystem flags to use for them.
+ See s/template.h for documentation on writing s/*.h files. */
#include "@opsystem@"
-/* The configuration script links machine.h to a m- file that
- describes the machine and system you use.
- See the file ../etc/MACHINES for a list of machines and
- the names of the m- files to use for them.
- See m-template.h for info on what m- files should define. */
+/* The configuration script replaces the string @machine@ with the
+ name of the m/*.h file that describes the machine you are
+ using; an option of the form "-machine=MACH" says to use
+ "m/MACH.h". See the file ../etc/MACHINES for a list of machines
+ and the -machine flags to use for them.
+ See m/template.h for documentation on writing m/*.h files. */
#include "@machine@"
/* Load in the conversion definitions if this system
@@ -122,7 +124,7 @@ and this notice must be preserved on all copies. */
have code for asynchronous subprocesses
(as used in M-x compile and M-x shell).
These do not work for some USG systems yet;
- for the ones where they work, the s-*.h file defines this flag. */
+ for the ones where they work, the s/*.h file defines this flag. */
#ifndef VMS
#ifndef USG
diff --git a/src/indent.c b/src/indent.c
index 50536120d8b..3f3745a5565 100644
--- a/src/indent.c
+++ b/src/indent.c
@@ -477,10 +477,10 @@ compute_motion (from, fromvpos, fromhpos, to, tovpos, tohpos, width, hscroll, ta
/* A visible line. */
vpos++;
hpos = 0;
- hpos -= hscroll;
- if (hscroll > 0) hpos++; /* Count the ! on column 0 */
- tab_offset = 0;
- }
+ hpos -= hscroll;
+ if (hscroll > 0) hpos++; /* Count the ! on column 0 */
+ tab_offset = 0;
+ }
}
else if (c == CR && selective < 0)
{
diff --git a/src/lread.c b/src/lread.c
index 5a5c106c6e6..78d578758b0 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -5,7 +5,7 @@ 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 1, or (at your option)
+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,
@@ -1431,49 +1431,67 @@ defvar_per_buffer (namestring, address, doc)
init_lread ()
{
- char *normal = PATH_LOADSEARCH;
- Lisp_Object normal_path;
+ char *normal;
/* Compute the default load-path. */
-#ifndef CANNOT_DUMP
- /* If running a dumped Emacs in which load-path was set before dumping
- to a nonstandard value, use that value. */
- if (initialized
- && !(XTYPE (Vload_path) == Lisp_Cons
- && XTYPE (XCONS (Vload_path)->car) == Lisp_String
- && !strcmp (XSTRING (XCONS (Vload_path)->car)->data, "../lisp")))
- normal_path = Vload_path;
+#ifdef CANNOT_DUMP
+ normal = PATH_LOADSEARCH;
+ Vload_path = decode_env_path ("", normal);
+#else
+ if (NILP (Vpurify_flag))
+ normal = PATH_LOADSEARCH;
else
-#endif
- {
- normal_path = decode_env_path ("", normal);
+ normal = PATH_DUMPLOADSEARCH;
- Vload_path = normal_path;
- }
+ /* In a dumped Emacs, we normally have to reset the value of
+ Vload_path from PATH_LOADSEARCH, since the value that was dumped
+ uses ../lisp, instead of the path of the installed elisp
+ libraries. However, if it appears that Vload_path was changed
+ from the default before dumping, don't override that value. */
+ {
+ Lisp_Object normal_path;
+
+ normal_path = decode_env_path ("", normal);
+
+ if (
+ if (initialized
+ || EQ (Vload_path, initial_path))
+ Vload_path = decode_env_path ("", normal);
+#endif
/* Warn if dirs in the *standard* path don't exist. */
- for (; !NILP (normal_path); normal_path = XCONS (normal_path)->cdr)
- {
- Lisp_Object dirfile;
- dirfile = Fcar (normal_path);
- if (!NILP (dirfile))
- {
- dirfile = Fdirectory_file_name (dirfile);
- if (access (XSTRING (dirfile)->data, 0) < 0)
- printf ("Warning: lisp library (%s) does not exist.\n",
- XSTRING (Fcar (normal_path))->data);
- }
- }
+ {
+ Lisp_Object path_tail;
- if (egetenv ("EMACSLOADPATH"))
+ for (path_tail = Vload_path;
+ !NILP (path_tail);
+ path_tail = XCONS (path_tail)->cdr)
+ {
+ Lisp_Object dirfile;
+ dirfile = Fcar (path_tail);
+ if (XTYPE (dirfile) == Lisp_String)
+ {
+ dirfile = Fdirectory_file_name (dirfile);
+ if (access (XSTRING (dirfile)->data, 0) < 0)
+ printf ("Warning: lisp library (%s) does not exist.\n",
+ XSTRING (Fcar (path_tail))->data);
+ }
+ }
+ }
+
+ /* If the EMACSLOADPATH environment variable is set, use its value.
+ This doesn't apply if we're dumping. */
+ if (NILP (Vpurify_flag)
+ && egetenv ("EMACSLOADPATH"))
Vload_path = decode_env_path ("EMACSLOADPATH", normal);
-#ifndef CANNOT_DUMP
- if (!NILP (Vpurify_flag))
- Vload_path = Fcons (build_string ("../lisp"), Vload_path);
-#endif
Vvalues = Qnil;
+ if (initialized)
+ initial_path = Qnil;
+ else
+ initial_path = Vload_path;
+
load_in_progress = 0;
}