Commit f8026fd8 authored by Jim Blandy's avatar Jim Blandy

*** empty log message ***

parent 4915b8d6
...@@ -23,7 +23,7 @@ SHELL = /bin/sh ...@@ -23,7 +23,7 @@ SHELL = /bin/sh
# already, the `install' targets will move or copy it there. The # already, the `install' targets will move or copy it there. The
# default definitions for the variables below are expressed in terms # default definitions for the variables below are expressed in terms
# of this one, so you may not need to change them. # of this one, so you may not need to change them.
LIBROOT=/u/emacs LIBROOT=/u/src/emacs/19.0
# This is where the `install' make target should place the binaries # This is where the `install' make target should place the binaries
# people will want to run directly (like etags and Emacs itself). # people will want to run directly (like etags and Emacs itself).
...@@ -34,19 +34,19 @@ INSTALLBIN=/usr/local/bin ...@@ -34,19 +34,19 @@ INSTALLBIN=/usr/local/bin
# elisp files should go under DATADIR (below), since both elisp source # elisp files should go under DATADIR (below), since both elisp source
# and compiled elisp are completely portable, but it's traditional to # and compiled elisp are completely portable, but it's traditional to
# give the lisp files their own subdirectory. # give the lisp files their own subdirectory.
LISPPATH=/u/emacs/lisp LISPPATH=/u/src/emacs/19.0/lisp
# Emacs will look here for its architecture-independent files (like # Emacs will look here for its architecture-independent files (like
# the tutorial and the zippy database). # the tutorial and the zippy database).
DATADIR=/u/emacs/share-lib DATADIR=/u/src/emacs/19.0/share-lib
# Emacs will look here for its architecture-dependent files, like # Emacs will look here for its architecture-dependent files, like
# executables for its utilities. # executables for its utilities.
LIBDIR=/u/emacs/arch-lib LIBDIR=/u/src/emacs/19.0/arch-lib
# The locking directory, where the Emacs locking code keeps track of # The locking directory, where the Emacs locking code keeps track of
# which files are currently being edited. # which files are currently being edited.
LOCKDIR=/u/emacs/lock LOCKDIR=/u/src/emacs/19.0/lock
# This is where the `install' make target should place the man pages # This is where the `install' make target should place the man pages
# for the binaries it installs. # for the binaries it installs.
...@@ -72,7 +72,6 @@ all: src/paths.h ${SUBDIR} ...@@ -72,7 +72,6 @@ all: src/paths.h ${SUBDIR}
src/paths.h: Makefile src/paths.h-dist src/paths.h: Makefile src/paths.h-dist
/bin/sed < src/paths.h-dist > src/paths.h \ /bin/sed < src/paths.h-dist > src/paths.h \
-e 's;/usr/local/lib/emacs;${LIBROOT};g' \
-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "$(LISPPATH)";' \ -e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "$(LISPPATH)";' \
-e 's;\(#.*PATH_EXEC\).*$$;\1 "$(LIBDIR)";' \ -e 's;\(#.*PATH_EXEC\).*$$;\1 "$(LIBDIR)";' \
-e 's;\(#.*PATH_DATA\).*$$;\1 "$(DATADIR)";' \ -e 's;\(#.*PATH_DATA\).*$$;\1 "$(DATADIR)";' \
...@@ -87,7 +86,7 @@ ${SUBDIR}: FRC ...@@ -87,7 +86,7 @@ ${SUBDIR}: FRC
install: all mkdir lockdir install: all mkdir lockdir
-if [ `/bin/pwd` != `(cd ${LIBROOT}; /bin/pwd)` ] ; then \ -if [ `/bin/pwd` != `(cd ${LIBROOT}; /bin/pwd)` ] ; then \
tar cf - ${COPYDIR} | (cd ${LIBROOT}; umask 0; tar xBf - ) ;\ tar cf - ${COPYDIR} | (cd ${LIBROOT}; umask 0; tar xf - ) ;\
for i in ${CLEANDIR}; do \ for i in ${CLEANDIR}; do \
(rm -rf ${LIBROOT}/$$i/RCS; \ (rm -rf ${LIBROOT}/$$i/RCS; \
rm -f ${LIBROOT}/$$i/\#*; \ rm -f ${LIBROOT}/$$i/\#*; \
......
#!/bin/csh -fx #!/bin/sh -x
# #
#Shell script for building and installing Emacs. #Shell script for building and installing Emacs.
...@@ -7,58 +7,55 @@ ...@@ -7,58 +7,55 @@
# libaries. The default definitions for the variables below are # libaries. The default definitions for the variables below are
# expressed in terms of this one, so you may not need to change them. # expressed in terms of this one, so you may not need to change them.
# set LIBROOT=/usr/local/lib/emacs-19.0 # set LIBROOT=/usr/local/lib/emacs-19.0
set LIBROOT=/u/emacs LIBROOT=/u/src/emacs/19.0
# Emacs will search this path to find its elisp files. This should be # Emacs will search this path to find its elisp files. This should be
# a colon-separated list of directories. Strictly speaking, all the # a colon-separated list of directories. Strictly speaking, all the
# elisp files should go under DATADIR (below), since both elisp source # elisp files should go under DATADIR (below), since both elisp source
# and compiled elisp are completely portable, but it's traditional to # and compiled elisp are completely portable, but it's traditional to
# give the lisp files their own subdirectory. # give the lisp files their own subdirectory.
set LISPPATH=/u/emacs/lisp LISPPATH=/u/src/emacs/19.0/lisp
# Emacs will look here for its architecture-independent files (like # Emacs will look here for its architecture-independent files (like
# the tutorial and the zippy database). # the tutorial and the zippy database).
set DATADIR=/u/emacs/share-lib DATADIR=/u/src/emacs/19.0/share-lib
# Emacs will look here for its architecture-dependent files, like # Emacs will look here for its architecture-dependent files, like
# executables for its utilities. # executables for its utilities.
set LIBDIR=/u/emacs/arch-lib LIBDIR=/u/src/emacs/19.0/arch-lib
# The locking directory, where the Emacs locking code keeps track of # The locking directory, where the Emacs locking code keeps track of
# which files are currently being edited. # which files are currently being edited.
# set LOCKDIR=${LIBROOT}/lock # set LOCKDIR=${LIBROOT}/lock
set LOCKDIR=/u/emacs/lock LOCKDIR=/u/src/emacs/19.0/lock
# This is where build-install should place the binaries people will # This is where build-install should place the binaries people will
# want to run directly (like etags and Emacs itself). # want to run directly (like etags and Emacs itself).
set BINDIR=/usr/local/bin BINDIR=/usr/local/bin
/bin/sed < src/paths.h-dist > src/paths.h \ /bin/sed < src/paths.h-dist > src/paths.h \
-e 's;/usr/local/emacs;'${LIBDIR}';g' \ -e 's;\(#.*PATH_LOADSEARCH\).*$;\1 "'${LISPPATH}'";' \
-e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'${LISPPATH}'";' \ -e 's;\(#.*PATH_EXEC\).*$;\1 "'${LIBDIR}'";' \
-e 's;\(#.*PATH_EXEC\).*$$;\1 "'${LIBDIR}'";' \ -e 's;\(#.*PATH_DATA\).*$;\1 "'${DATADIR}'";' \
-e 's;\(#.*PATH_DATA\).*$$;\1 "'${DATADIR}'";' \ -e 's;\(#.*LOCK\).*$;\1 "'${LOCKDIR}'/";'
-e 's;\(#.*LOCK\).*$$;\1 "'${LOCKDIR}'/";'
exit 1
(cd lib-src; make) || exit 1 (cd lib-src; make) || exit 1
(cd src; make) || exit 1 (cd src; make) || exit 1
if (`pwd` != `(cd ${LIBROOT}; pwd)`) then if [ `pwd` != `(cd ${LIBROOT}; pwd)` ]; then
mv `pwd` ${LIBROOT} mv `pwd` ${LIBROOT}
if ($status) then if [ $? != '0' ]; then
mkdir ${LIBROOT} mkdir ${LIBROOT}
echo mv `pwd` to ${LIBROOT} failed--using tar to copy. echo mv `pwd` to ${LIBROOT} failed--using tar to copy.
tar cf - . | (cd ${LIBROOT}; umask 0; tar xf -) tar cf - . | (cd ${LIBROOT}; umask 0; tar xf -)
if ($status) then if [ $? != '0' ]; then
echo tar-copying `pwd` to ${LIBROOT} failed. echo tar-copying `pwd` to ${LIBROOT} failed.
exit 1 exit 1
endif fi
endif fi
endif fi
cp ${LIBROOT}/etc/{ctags,etags} ${BINDIR} cp ${LIBROOT}/etc/[ce]tags ${BINDIR}
mv ${LIBROOT}/src/xemacs ${BINDIR}/emacs mv ${LIBROOT}/src/xemacs ${BINDIR}/emacs
rm ${LIBROOT}/src/temacs rm ${LIBROOT}/src/temacs
chmod 777 ${BINDIR}/{ctags,etags,emacs} chmod 777 ${BINDIR}/[ce]tags ${BINDIR}/emacs
...@@ -27,6 +27,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ ...@@ -27,6 +27,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
#include "indent.h" #include "indent.h"
#include "termchar.h" #include "termchar.h"
#include "disptab.h" #include "disptab.h"
#include "keyboard.h"
Lisp_Object Qwindowp; Lisp_Object Qwindowp;
...@@ -1930,9 +1931,10 @@ window_internal_height (w) ...@@ -1930,9 +1931,10 @@ window_internal_height (w)
/* Scroll contents of window WINDOW up N lines. */ /* Scroll contents of window WINDOW up N lines. */
void void
window_scroll (window, n) window_scroll (window, n, noerror)
Lisp_Object window; Lisp_Object window;
int n; int n;
int noerror;
{ {
register struct window *w = XWINDOW (window); register struct window *w = XWINDOW (window);
register int opoint = point; register int opoint = point;
...@@ -1961,14 +1963,14 @@ window_scroll (window, n) ...@@ -1961,14 +1963,14 @@ window_scroll (window, n)
SET_PT (opoint); SET_PT (opoint);
if (lose) if (lose)
Fsignal (Qbeginning_of_buffer, Qnil); {
if (noerror)
return;
else
Fsignal (Qbeginning_of_buffer, Qnil);
}
if (pos < ZV) if (pos < ZV)
#if 0
/* Allow scrolling to an empty screen (end of buffer)
if that is exactly how far we wanted to go. */
|| XINT (nmoved) == n)
#endif
{ {
set_marker_restricted (w->start, make_number (pos), w->buffer); set_marker_restricted (w->start, make_number (pos), w->buffer);
w->start_at_line_beg = bolp; w->start_at_line_beg = bolp;
...@@ -1987,7 +1989,12 @@ window_scroll (window, n) ...@@ -1987,7 +1989,12 @@ window_scroll (window, n)
} }
} }
else else
Fsignal (Qend_of_buffer, Qnil); {
if (noerror)
return;
else
Fsignal (Qend_of_buffer, Qnil);
}
} }
/* This is the guts of Fscroll_up and Fscroll_down. */ /* This is the guts of Fscroll_up and Fscroll_down. */
...@@ -2000,29 +2007,27 @@ scroll_command (n, direction) ...@@ -2000,29 +2007,27 @@ scroll_command (n, direction)
register int defalt; register int defalt;
int count = specpdl_ptr - specpdl; int count = specpdl_ptr - specpdl;
/* If selected window's buffer isn't current, make it current for the moment. /* Code here used to set the current buffer to the selected window's
But don't screw up if window_scroll gets an error. */ buffer, but since this command always operates on the selected
window, the current buffer should always be the selected window's
buffer already. Verify this assumption, so we won't be screwed
if we're guessing wrong. */
if (XBUFFER (XWINDOW (selected_window)->buffer) != current_buffer) if (XBUFFER (XWINDOW (selected_window)->buffer) != current_buffer)
{ abort ();
record_unwind_protect (save_excursion_restore, save_excursion_save ());
Fset_buffer (XWINDOW (selected_window)->buffer);
}
defalt = (window_internal_height (XWINDOW (selected_window)) defalt = (window_internal_height (XWINDOW (selected_window))
- next_screen_context_lines); - next_screen_context_lines);
defalt = direction * (defalt < 1 ? 1 : defalt); defalt = direction * (defalt < 1 ? 1 : defalt);
if (NILP (n)) if (NILP (n))
window_scroll (selected_window, defalt); window_scroll (selected_window, defalt, 0);
else if (EQ (n, Qminus)) else if (EQ (n, Qminus))
window_scroll (selected_window, - defalt); window_scroll (selected_window, - defalt, 0);
else else
{ {
n = Fprefix_numeric_value (n); n = Fprefix_numeric_value (n);
window_scroll (selected_window, XINT (n) * direction); window_scroll (selected_window, XINT (n) * direction, 0);
} }
unbind_to (count, Qnil);
} }
DEFUN ("scroll-up", Fscroll_up, Sscroll_up, 0, 1, "P", DEFUN ("scroll-up", Fscroll_up, Sscroll_up, 0, 1, "P",
...@@ -2093,15 +2098,15 @@ showing that buffer, popping the buffer up if necessary.") ...@@ -2093,15 +2098,15 @@ showing that buffer, popping the buffer up if necessary.")
SET_PT (marker_position (w->pointm)); SET_PT (marker_position (w->pointm));
if (NILP (n)) if (NILP (n))
window_scroll (window, ht - next_screen_context_lines); window_scroll (window, ht - next_screen_context_lines, 1);
else if (EQ (n, Qminus)) else if (EQ (n, Qminus))
window_scroll (window, next_screen_context_lines - ht); window_scroll (window, next_screen_context_lines - ht, 1);
else else
{ {
if (XTYPE (n) == Lisp_Cons) if (XTYPE (n) == Lisp_Cons)
n = Fcar (n); n = Fcar (n);
CHECK_NUMBER (n, 0); CHECK_NUMBER (n, 0);
window_scroll (window, XINT (n)); window_scroll (window, XINT (n), 1);
} }
Fset_marker (w->pointm, make_number (point), Qnil); Fset_marker (w->pointm, make_number (point), Qnil);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment