*** empty log message ***
[bpt/emacs.git] / src / xdisp.c
index 82a92d5..2808c51 100644 (file)
@@ -1,5 +1,5 @@
 /* Display generation from window structure and buffer text.
-   Copyright (C) 1985, 1986, 1987, 1988 Free Software Foundation, Inc.
+   Copyright (C) 1985, 1986, 1987, 1988, 1992 Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
 
@@ -167,31 +167,7 @@ int clip_changed;
 int windows_or_buffers_changed;
 
 \f
-#ifndef MULTI_SCREEN
-
-DEFUN ("redraw-display", Fredraw_display, Sredraw_display, 0, 0, "",
-  "Clear the screen and output again what is supposed to appear on it.")
-  ()
-{
-  if (screen_height == 0) abort (); /* Some bug zeros some core */
-  clear_screen ();
-  fflush (stdout);
-  clear_screen_records ();
-  if (screen_height == 0) abort (); /* Some bug zeros some core */
-  windows_or_buffers_changed++;
-  /* Mark all windows as INaccurate,
-     so that every window will have its redisplay done.  */
-  mark_window_display_accurate (XWINDOW (minibuf_window)->prev, 0);
-  if (screen_height == 0) abort (); /* Some bug zeros some core */
-  return Qnil;
-}
-
-#endif /* not MULTI_SCREEN */
-\f
-/* Buffer used for messages formatted by `message'.  */
-char *message_buf;
-
-/* Nonzero if message_buf is being used by print;
+/* Nonzero if SCREEN_MESSAGE_BUF (selected_screen) is being used by print;
    zero if being used by message.  */
 int message_buf_print;
 
@@ -310,7 +286,19 @@ echo_area_display ()
 
       /* If desired cursor location is on this line, put it at end of text */
       if (SCREEN_CURSOR_Y (s) == vpos)
-       SCREEN_CURSOR_X (s) = s->desired_glyphs->used[vpos];
+       SCREEN_CURSOR_X (s) = SCREEN_DESIRED_GLYPHS (s)->used[vpos];
+
+      /* Fill the rest of the minibuffer window with blank lines.  */
+      {
+       int i;
+
+       for (i = vpos + 1; i < vpos + XWINDOW (minibuf_window)->height; i++)
+         {
+           get_display_line (s, i, 0);
+           display_string (XWINDOW (minibuf_window), vpos,
+                           "", 0, 0, 0, SCREEN_WIDTH (s));
+         }
+      }
     }
   else if (!EQ (minibuf_window, selected_window))
     windows_or_buffers_changed++;
@@ -458,7 +446,8 @@ redisplay ()
                                 XFASTINT (w->width) - 1
                                 - (XFASTINT (w->width) + XFASTINT (w->left)
                                    != SCREEN_WIDTH (selected_screen)),
-                                XINT (w->hscroll), 0);
+                                XINT (w->hscroll),
+                                pos_tab_offset (w, tlbufpos));
          if (pos.vpos < 1)
            {
              SCREEN_CURSOR_X (selected_screen)
@@ -1773,7 +1762,7 @@ display_mode_line (w)
      and the rest of this line is mode lines of the sibling windows).  */
   if (XFASTINT (w->width) == SCREEN_WIDTH (s)
       || XFASTINT (XWINDOW (w->parent)->width) == SCREEN_WIDTH (s))
-    s->desired_glyphs->highlight[vpos] = mode_line_inverse_video;
+    SCREEN_DESIRED_GLYPHS (s)->highlight[vpos] = mode_line_inverse_video;
 
 #ifdef HAVE_X_WINDOWS
   /* I'm trying this out because I saw Unimpress use it, but it's
@@ -2059,15 +2048,11 @@ decode_mode_spec (w, c, maxwidth)
 
     case 's':
       /* status of process */
-#ifdef subprocesses
       obj = Fget_buffer_process (Fcurrent_buffer ());
       if (NILP (obj))
        return "no process";
       obj = Fsymbol_name (Fprocess_status (obj));
       break;
-#else
-      return "no processes";
-#endif /* subprocesses */
 
     case 'p':
       {
@@ -2316,10 +2301,6 @@ If this is zero, point is always centered after it moves off screen.");
   DEFVAR_BOOL ("mode-line-inverse-video", &mode_line_inverse_video,
     "*Non-nil means use inverse video for the mode line.");
   mode_line_inverse_video = 1;
-
-#ifndef MULTI_SCREEN
-  defsubr (&Sredraw_display);
-#endif /* MULTI_SCREEN */
 }
 
 /* initialize the window system */