diff src/redisplay.c @ 274:ca9a9ec9c1c1 r21-0b35

Import from CVS: tag r21-0b35
author cvs
date Mon, 13 Aug 2007 10:29:42 +0200
parents c5d627a313b1
children 6330739388db
line wrap: on
line diff
--- a/src/redisplay.c	Mon Aug 13 10:28:54 2007 +0200
+++ b/src/redisplay.c	Mon Aug 13 10:29:42 2007 +0200
@@ -3922,6 +3922,18 @@
 	    }
         }
     }
+  else if (GENERIC_SPECIFIERP (elt))
+    {
+      Lisp_Object window, tem;
+      XSETWINDOW (window, w);
+      tem = specifier_instance_no_quit (elt, Qunbound, window,
+					ERROR_ME_NOT, 0, Qzero);
+      if (!UNBOUNDP (tem))
+	{
+	  elt = tem;
+	  goto tail_recurse;
+	}
+    }
   else if (CONSP (elt))
     {
       /* A cons cell: four distinct cases.
@@ -4084,7 +4096,7 @@
 
   return pos;
 }
-#else /* MODELINE_IS_SCROLLABLE */
+#else /* not MODELINE_IS_SCROLLABLE */
 static void
 generate_formatted_string_db (Lisp_Object format_str, Lisp_Object result_str,
                               struct window *w, struct display_line *dl,
@@ -4418,6 +4430,18 @@
             }
         }
     }
+  else if (GENERIC_SPECIFIERP (elt))
+    {
+      Lisp_Object window, tem;
+      XSETWINDOW (window, w);
+      tem = specifier_instance_no_quit (elt, Qunbound, window,
+					ERROR_ME_NOT, 0, Qzero);
+      if (!UNBOUNDP (tem))
+	{
+	  elt = tem;
+	  goto tail_recurse;
+	}
+    }
   else if (CONSP (elt))
     {
       /* A cons cell: four distinct cases.
@@ -5723,7 +5747,7 @@
   /* We still haven't gotten the window regenerated with point
      visible.  Next we try scrolling a little and see if point comes
      back onto the screen. */
-  if (scroll_step)
+  if (scroll_step > 0)
     {
       int scrolled = scroll_conservatively;
       for (; scrolled >= 0; scrolled -= scroll_step)
@@ -6242,7 +6266,7 @@
 
   line = buffer_line_number (b, pos, 1);
 
-  sprintf (window_line_number_buf, "%d", line + 1);
+  sprintf (window_line_number_buf, "%ld", (long)(line + 1));
 
   return window_line_number_buf;
 }