Index: lisp/gutter-items.el
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/lisp/Attic/gutter-items.el,v
retrieving revision 1.1.2.57
diff -u -r1.1.2.57 gutter-items.el
--- gutter-items.el	2001/01/10 21:02:41	1.1.2.57
+++ gutter-items.el	2001/01/30 22:08:56
@@ -348,10 +348,7 @@
 		     :items items)
 	     frame)
 	    ;; set-glyph-image will not make the gutter dirty
-	    (set-specifier-dirty-flag 
-	     (eval (intern (concat 
-			    (symbol-name gutter-buffers-tab-orientation) 
-			    "-gutter"))))))))))
+	    (set-gutter-dirty-p gutter-buffers-tab-orientation)))))))
 
 ;; A myriad of different update hooks all doing slightly different things
 (add-one-shot-hook 
@@ -426,7 +423,8 @@
 		     ;; 'quit is special and acts "asynchronously".
 		     :descriptor "Stop" :callback 'quit]
 		    ,progress-text-instantiator)])
-    (set-glyph-image progress-layout-glyph progress-layout-instantiator locale))
+    (set-glyph-image progress-layout-glyph progress-layout-instantiator
+		     locale))
    (t 
     (setq progress-glyph-height 24)
     (setq progress-layout-instantiator
@@ -442,23 +440,27 @@
 			      :descriptor " Stop "
 			      ;; 'quit is special and acts "asynchronously".
 			      :callback 'quit])])])
-    (set-glyph-image progress-layout-glyph progress-layout-instantiator locale))))
+    (set-glyph-image progress-layout-glyph progress-layout-instantiator
+		     locale))))
 
+(defvar progress-abort-glyph (make-glyph))
+
+(defun set-progress-abort-instantiator (&optional locale)
+  (set-glyph-image progress-abort-glyph
+		   `[layout :orientation vertical :justify left
+			    :items (,progress-text-instantiator
+				    [layout
+				     :margin-width 4
+				     :pixel-height progress-glyph-height
+				     :orientation horizontal])]
+		   locale))
+
 (defvar progress-stack nil
   "An alist of label/string pairs representing active progress gauges.
 The first element in the list is currently displayed in the gutter area.
 Do not modify this directly--use the `progress-feedback' or
 `display-progress-feedback'/`clear-progress-feedback' functions.")
 
-(defvar progress-abort-glyph
-  (make-glyph
-   `[layout :orientation vertical :justify left
-	    :items (,progress-text-instantiator
-		    [layout
-		     :margin-width 4
-		     :pixel-height progress-glyph-height
-		     :orientation horizontal])]))
-
 (defun progress-feedback-displayed-p (&optional return-string frame)
   "Return a non-nil value if a progress gauge is presently displayed in the
 gutter area.  If optional argument RETURN-STRING is non-nil,
@@ -570,8 +572,8 @@
 	  ;; fixup the gutter specifiers
 	  (set-gutter-element bottom-gutter 'progress gutter-string frame)
 	  (set-specifier bottom-gutter-border-width 2 frame)
-	  (set-instantiator-property progress-text-instantiator :datat message)
-	  (set-progress-feedback-instantiator (frame-selected-window frame))
+	  (set-instantiator-property progress-text-instantiator :data message)
+	  (set-progress-abort-instantiator (frame-selected-window frame))
 	  (set-specifier bottom-gutter-height 'autodetect frame)
 	  (set-gutter-element-visible-p bottom-gutter-visible-p 
 					'progress t frame)
Index: lisp/gutter.el
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/lisp/Attic/gutter.el,v
retrieving revision 1.1.2.6
diff -u -r1.1.2.6 gutter.el
--- gutter.el	2000/11/06 05:44:14	1.1.2.6
+++ gutter.el	2001/01/30 22:08:58
@@ -108,6 +108,21 @@
     (or (and (listp spec) (memq 'buffers-tab spec))
  	spec)))
 
+(defun set-gutter-dirty-p (gutter-or-location)
+  "Make GUTTER-OR-LOCATION dirty to force redisplay updates."
+  ;; set-glyph-image will not make the gutter dirty
+  (when (or (gutter-specifier-p gutter-or-location)
+	    (eq gutter-or-location 'top)
+	    (eq gutter-or-location 'bottom)
+	    (eq gutter-or-location 'left)
+	    (eq gutter-or-location 'right))
+    (or (gutter-specifier-p gutter-or-location) 
+	(setq gutter-or-location
+	      (eval (intern (concat 
+			     (symbol-name gutter-or-location)
+			     "-gutter")))))
+    (set-specifier-dirty-flag gutter-or-location)))
+
 (defun make-gutter-specifier (spec-list)
   "Return a new `gutter' specifier object with the given specification list.
 SPEC-LIST can be a list of specifications (each of which is a cons of a
Index: src/glyphs-widget.c
===================================================================
RCS file: /usr/CVSroot/XEmacs/xemacs/src/Attic/glyphs-widget.c,v
retrieving revision 1.1.2.55
diff -u -r1.1.2.55 glyphs-widget.c
--- glyphs-widget.c	2001/01/17 21:54:19	1.1.2.55
+++ glyphs-widget.c	2001/01/30 22:09:02
@@ -150,7 +150,7 @@
 static void
 check_valid_int_or_function (Lisp_Object data)
 {
-  if (!INTP (data) && !CONSP (data))
+  if (!INTP (data) && !CONSP (data) && !SYMBOLP (data))
     invalid_argument ("must be an integer or expresssion", data);
 }
 
@@ -1021,6 +1021,8 @@
 	  /* Instantiate any new glyphs. */
 	  for (; !NILP (items); items = XCDR (items))
 	    {
+	      /* #### We really want to use call_with_suspended_errors
+		 here, but it won't allow us to call lisp. */
 	      border = Fcons (call1 (Qmake_glyph, XCAR (items)), border);
 	    }
 	  IMAGE_INSTANCE_LAYOUT_CHILDREN (ii) = Fnreverse (border);
