changeset 522:bacdab90fa8b

*** empty log message ***
author Jim Blandy <jimb@redhat.com>
date Fri, 31 Jan 1992 20:02:34 +0000
parents 4c39235316a2
children aa0674056f59
files Makefile.in build-ins.in src/window.c
diffstat 3 files changed, 52 insertions(+), 51 deletions(-) [+]
line wrap: on
line diff
--- 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/\#*; \
--- 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
--- 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);