Mercurial > emacs
changeset 617:cde1f15848c6
*** empty log message ***
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Sun, 19 Apr 1992 08:53:55 +0000 |
parents | 3c1ffcac443f |
children | 4c7d08bcc1f2 |
files | Makefile.in build-ins.in configure1.in etc/README lisp/lpr.el lisp/mail/rmail.el lisp/simple.el src/=Makefile.in src/callint.c src/config.in src/indent.c src/lread.c |
diffstat | 12 files changed, 538 insertions(+), 307 deletions(-) [+] |
line wrap: on
line diff
--- a/Makefile.in Sun Apr 19 08:53:10 1992 +0000 +++ b/Makefile.in Sun Apr 19 08:53:55 1992 +0000 @@ -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 ==================== + +# 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 -# 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 +# 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 + +# Where to install and expect the architecture-independent data files +# (like the tutorial and the Zippy database). +datadir=$(emacsdir)/etc -# 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 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 + +# 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 -# 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 +# 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) -# Emacs will look here for its architecture-independent files (like -# the tutorial and the zippy database). -DATADIR=/home/gd/gnu/emacs/etc +# 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 -# Emacs will look here for its architecture-dependent files, like -# executables for its utilities. -LIBDIR=/home/gd/gnu/emacs/arch-lib +# 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 -# The locking directory, where the Emacs locking code keeps track of -# which files are currently being edited. -LOCKDIR=/home/gd/gnu/emacs/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 -# This is where the `install' make target should place the man pages -# for the binaries it installs. -MANDIR= /usr/man/man1 +# 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 @@ 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."
--- a/build-ins.in Sun Apr 19 08:53:10 1992 +0000 +++ b/build-ins.in Sun Apr 19 08:53:55 1992 +0000 @@ -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
--- a/configure1.in Sun Apr 19 08:53:10 1992 +0000 +++ b/configure1.in Sun Apr 19 08:53:55 1992 +0000 @@ -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 @@ 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 @@ 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 @@ 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 @@ 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 @@ # 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 @@ 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 @@ ,,* ) 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 @@ #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 @@ 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 @@ " >> config.status echo "${message}" >> config.status echo "'${progname}' \\ - -machine='${machine}' \\ + -machine='${machine}' \\ -opsystem='${opsystem}' \\ -g=${g} \\ -O=${O} \\ @@ -488,10 +508,12 @@ -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.
--- a/etc/README Sun Apr 19 08:53:10 1992 +0000 +++ b/etc/README Sun Apr 19 08:53:55 1992 +0000 @@ -5,12 +5,3 @@ `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>]
--- a/lisp/lpr.el Sun Apr 19 08:53:10 1992 +0000 +++ b/lisp/lpr.el Sun Apr 19 08:53:55 1992 +0000 @@ -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.
--- a/lisp/mail/rmail.el Sun Apr 19 08:53:10 1992 +0000 +++ b/lisp/mail/rmail.el Sun Apr 19 08:53:55 1992 +0000 @@ -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 @@ (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 @@ (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 @@ (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 @@ "" ;; 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
--- a/lisp/simple.el Sun Apr 19 08:53:10 1992 +0000 +++ b/lisp/simple.el Sun Apr 19 08:53:55 1992 +0000 @@ -136,7 +136,7 @@ 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 @@ (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 @@ (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))
--- a/src/=Makefile.in Sun Apr 19 08:53:10 1992 +0000 +++ b/src/=Makefile.in Sun Apr 19 08:53:55 1992 +0000 @@ -11,7 +11,7 @@ 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!
--- a/src/callint.c Sun Apr 19 08:53:10 1992 +0000 +++ b/src/callint.c Sun Apr 19 08:53:55 1992 +0000 @@ -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 @@ /* 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 @@ 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 @@ 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 @@ 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);
--- a/src/config.in Sun Apr 19 08:53:10 1992 +0000 +++ b/src/config.in Sun Apr 19 08:53:55 1992 +0000 @@ -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 @@ #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 @@ 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
--- a/src/indent.c Sun Apr 19 08:53:10 1992 +0000 +++ b/src/indent.c Sun Apr 19 08:53:55 1992 +0000 @@ -477,10 +477,10 @@ /* 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) {
--- a/src/lread.c Sun Apr 19 08:53:10 1992 +0000 +++ b/src/lread.c Sun Apr 19 08:53:55 1992 +0000 @@ -5,7 +5,7 @@ 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 @@ 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. */ +#ifdef CANNOT_DUMP + normal = PATH_LOADSEARCH; + Vload_path = decode_env_path ("", normal); +#else + if (NILP (Vpurify_flag)) + normal = PATH_LOADSEARCH; + else + normal = PATH_DUMPLOADSEARCH; + + /* 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 - && !(XTYPE (Vload_path) == Lisp_Cons - && XTYPE (XCONS (Vload_path)->car) == Lisp_String - && !strcmp (XSTRING (XCONS (Vload_path)->car)->data, "../lisp"))) - normal_path = Vload_path; - else + || EQ (Vload_path, initial_path)) + Vload_path = decode_env_path ("", normal); #endif - { - normal_path = decode_env_path ("", normal); - - Vload_path = normal_path; - } /* 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; }