- CHECK_INT (value);
- Fmove_to_window_line (Qzero, window);
- /* can't use Fvertical_motion() because it moves the buffer point
- rather than the window's point.
-
- #### It does? Why does it take a window argument then? */
- bufpos = vmotion (XWINDOW (window), XINT (Fwindow_point (window)),
- XINT (value), 0);
- Fset_window_point (window, make_int (bufpos));
- Fcenter_to_window_line (Qzero, window);
- }
-#endif /* Athena */
+ if (NILP (XCDR (object)))
+ window_scroll (window, Qnil, -1, ERROR_ME_NOT);
+ else
+ {
+ Bufpos bufpos;
+ Lisp_Object value = Fcdr (object);
+
+ CHECK_INT (value);
+ Fmove_to_window_line (Qzero, window);
+ /* can't use Fvertical_motion() because it moves the buffer point
+ rather than the window's point.
+
+ #### It does? Why does it take a window argument then? */
+ bufpos = vmotion (XWINDOW (window), XINT (Fwindow_point (window)),
+ XINT (value), 0);
+ Fset_window_point (window, make_int (bufpos));
+ Fcenter_to_window_line (Qzero, window);
+ }
+