diff src/window.c @ 28417:4b675266db04

* lisp.h (XCONS, XSTRING, XSYMBOL, XFLOAT, XPROCESS, XWINDOW, XSUBR, XBUFFER): Verify correct object type before returning pointer, using eassert. * frame.h (XFRAME): Likewise. * buffer.c (Frename_buffer, Fset_buffer_multibyte, swap_out_buffer_local_variables, Fmove_overlay): Don't apply XSYMBOL, XBUFFER, etc, to values that may be nil or of the wrong type. * data.c (set_internal): Likewise. * dispextern.h (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P): Likewise. * fileio.c (auto_save_1): Likewise. * insdel.c (check_markers): Likewise. * marker.c (buf_charpos_to_bytepos, unchain_marker): Likewise. * undo.c (record_insert): Likewise. * vmsproc.c (child_sig): Likewise. * window.c (unshow_buffer, window_loop): Likewise. * xterm.c (x_erase_phys_cursor): Likewise.
author Ken Raeburn <raeburn@raeburn.org>
date Thu, 30 Mar 2000 09:56:31 +0000
parents 7eb1735d6d4d
children 4591d285fb65
line wrap: on
line diff
--- a/src/window.c	Thu Mar 30 09:37:06 2000 +0000
+++ b/src/window.c	Thu Mar 30 09:56:31 2000 +0000
@@ -905,7 +905,8 @@
      So don't clobber point in that buffer.  */
   if (! EQ (buf, XWINDOW (selected_window)->buffer)
       /* This line helps to fix Horsley's testbug.el bug.  */
-      && !(w != XWINDOW (b->last_selected_window)
+      && !(WINDOWP (b->last_selected_window)
+	   && w != XWINDOW (b->last_selected_window)
 	   && EQ (buf, XWINDOW (b->last_selected_window)->buffer)))
     temp_set_point_both (b,
 			 clip_to_bounds (BUF_BEGV (b),
@@ -915,7 +916,8 @@
 					 marker_byte_position (w->pointm),
 					 BUF_ZV_BYTE (b)));
   
-  if (w == XWINDOW (b->last_selected_window))
+  if (WINDOWP (b->last_selected_window)
+      && w == XWINDOW (b->last_selected_window))
     b->last_selected_window = Qnil;
 }
 
@@ -1633,7 +1635,8 @@
 	  case GET_LARGEST_WINDOW:
 	    /* Ignore dedicated windows and minibuffers.  */
 	    if (MINI_WINDOW_P (XWINDOW (w))
-		|| !NILP (XWINDOW (w)->dedicated))
+		|| !NILP (XWINDOW (w)->dedicated)
+		|| NILP (best_window))
 	      break;
 	    {
 	      struct window *best_window_ptr = XWINDOW (best_window);