# HG changeset patch # User Jim Blandy # Date 696888154 0 # Node ID bacdab90fa8bd6b6dc45b7abd3a0f2413fa0abd5 # Parent 4c39235316a2253dd90a994335cb0c4897b2fa94 *** empty log message *** diff -r 4c39235316a2 -r bacdab90fa8b Makefile.in --- a/Makefile.in Fri Jan 31 19:36:02 1992 +0000 +++ b/Makefile.in Fri Jan 31 20:02:34 1992 +0000 @@ -23,7 +23,7 @@ # 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=/u/emacs +LIBROOT=/u/src/emacs/19.0 # This is where the `install' make target should place the binaries # people will want to run directly (like etags and Emacs itself). @@ -34,19 +34,19 @@ # 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=/u/emacs/lisp +LISPPATH=/u/src/emacs/19.0/lisp # Emacs will look here for its architecture-independent files (like # 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 # 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 # 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 # for the binaries it installs. @@ -72,7 +72,6 @@ src/paths.h: Makefile src/paths.h-dist /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_EXEC\).*$$;\1 "$(LIBDIR)";' \ -e 's;\(#.*PATH_DATA\).*$$;\1 "$(DATADIR)";' \ @@ -87,7 +86,7 @@ install: all mkdir lockdir -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 \ (rm -rf ${LIBROOT}/$$i/RCS; \ rm -f ${LIBROOT}/$$i/\#*; \ diff -r 4c39235316a2 -r bacdab90fa8b build-ins.in --- a/build-ins.in Fri Jan 31 19:36:02 1992 +0000 +++ b/build-ins.in Fri Jan 31 20:02:34 1992 +0000 @@ -1,4 +1,4 @@ -#!/bin/csh -fx +#!/bin/sh -x # #Shell script for building and installing Emacs. @@ -7,58 +7,55 @@ # 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 -set LIBROOT=/u/emacs +LIBROOT=/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. -set LISPPATH=/u/emacs/lisp +LISPPATH=/u/src/emacs/19.0/lisp # Emacs will look here for its architecture-independent files (like # 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 # 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 # which files are currently being edited. # 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 # 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 \ --e 's;/usr/local/emacs;'${LIBDIR}';g' \ --e 's;\(#.*PATH_LOADSEARCH\).*$$;\1 "'${LISPPATH}'";' \ --e 's;\(#.*PATH_EXEC\).*$$;\1 "'${LIBDIR}'";' \ --e 's;\(#.*PATH_DATA\).*$$;\1 "'${DATADIR}'";' \ --e 's;\(#.*LOCK\).*$$;\1 "'${LOCKDIR}'/";' - -exit 1 +-e 's;\(#.*PATH_LOADSEARCH\).*$;\1 "'${LISPPATH}'";' \ +-e 's;\(#.*PATH_EXEC\).*$;\1 "'${LIBDIR}'";' \ +-e 's;\(#.*PATH_DATA\).*$;\1 "'${DATADIR}'";' \ +-e 's;\(#.*LOCK\).*$;\1 "'${LOCKDIR}'/";' (cd lib-src; make) || exit 1 (cd src; make) || exit 1 -if (`pwd` != `(cd ${LIBROOT}; pwd)`) then +if [ `pwd` != `(cd ${LIBROOT}; pwd)` ]; then mv `pwd` ${LIBROOT} - if ($status) then + if [ $? != '0' ]; then mkdir ${LIBROOT} echo mv `pwd` to ${LIBROOT} failed--using tar to copy. tar cf - . | (cd ${LIBROOT}; umask 0; tar xf -) - if ($status) then + if [ $? != '0' ]; then echo tar-copying `pwd` to ${LIBROOT} failed. exit 1 - endif - endif -endif + fi + fi +fi -cp ${LIBROOT}/etc/{ctags,etags} ${BINDIR} +cp ${LIBROOT}/etc/[ce]tags ${BINDIR} mv ${LIBROOT}/src/xemacs ${BINDIR}/emacs rm ${LIBROOT}/src/temacs -chmod 777 ${BINDIR}/{ctags,etags,emacs} +chmod 777 ${BINDIR}/[ce]tags ${BINDIR}/emacs diff -r 4c39235316a2 -r bacdab90fa8b src/window.c --- a/src/window.c Fri Jan 31 19:36:02 1992 +0000 +++ b/src/window.c Fri Jan 31 20:02:34 1992 +0000 @@ -27,6 +27,7 @@ #include "indent.h" #include "termchar.h" #include "disptab.h" +#include "keyboard.h" Lisp_Object Qwindowp; @@ -1930,9 +1931,10 @@ /* Scroll contents of window WINDOW up N lines. */ void -window_scroll (window, n) +window_scroll (window, n, noerror) Lisp_Object window; int n; + int noerror; { register struct window *w = XWINDOW (window); register int opoint = point; @@ -1961,14 +1963,14 @@ SET_PT (opoint); if (lose) - Fsignal (Qbeginning_of_buffer, Qnil); + { + if (noerror) + return; + else + Fsignal (Qbeginning_of_buffer, Qnil); + } 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); w->start_at_line_beg = bolp; @@ -1987,7 +1989,12 @@ } } 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. */ @@ -2000,29 +2007,27 @@ register int defalt; int count = specpdl_ptr - specpdl; - /* If selected window's buffer isn't current, make it current for the moment. - But don't screw up if window_scroll gets an error. */ + /* Code here used to set the current buffer to the selected window's + 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) - { - record_unwind_protect (save_excursion_restore, save_excursion_save ()); - Fset_buffer (XWINDOW (selected_window)->buffer); - } + abort (); defalt = (window_internal_height (XWINDOW (selected_window)) - next_screen_context_lines); defalt = direction * (defalt < 1 ? 1 : defalt); if (NILP (n)) - window_scroll (selected_window, defalt); + window_scroll (selected_window, defalt, 0); else if (EQ (n, Qminus)) - window_scroll (selected_window, - defalt); + window_scroll (selected_window, - defalt, 0); else { 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", @@ -2093,15 +2098,15 @@ SET_PT (marker_position (w->pointm)); 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)) - window_scroll (window, next_screen_context_lines - ht); + window_scroll (window, next_screen_context_lines - ht, 1); else { if (XTYPE (n) == Lisp_Cons) n = Fcar (n); CHECK_NUMBER (n, 0); - window_scroll (window, XINT (n)); + window_scroll (window, XINT (n), 1); } Fset_marker (w->pointm, make_number (point), Qnil);