XEmacs 21.2.28 "Hermes".
[chise/xemacs-chise.git.1] / src / gutter.c
index d9534d0..224d2fa 100644 (file)
@@ -222,13 +222,18 @@ output_gutter (struct frame *f, enum gutter_pos pos)
   struct device *d = XDEVICE (f->device);
   struct window* w = XWINDOW (window);
   int x, y, width, height, ypos;
-  int line;
-  int border_width = FRAME_GUTTER_BORDER_WIDTH (f, pos);
-  face_index findex = get_builtin_face_cache_index (w, Vgui_element_face);
+  int line, border_width;
+  face_index findex;
   display_line_dynarr* ddla, *cdla;
   struct display_line *dl;
   int cdla_len;
 
+  if (!WINDOW_LIVE_P (w))
+    return;
+
+  border_width = FRAME_GUTTER_BORDER_WIDTH (f, pos);
+  findex = get_builtin_face_cache_index (w, Vgui_element_face);
+
   if (!f->current_display_lines)
     f->current_display_lines = Dynarr_new (display_line);
   if (!f->desired_display_lines)
@@ -805,8 +810,7 @@ in the gutter area.
      automatically knew about specifier fallbacks, so we didn't
      have to do it ourselves. */
   set_specifier_caching (Vdefault_gutter,
-                        slot_offset (struct window,
-                                     default_gutter),
+                        offsetof (struct window, default_gutter),
                         default_gutter_specs_changed,
                         0, 0);
 
@@ -818,8 +822,7 @@ See `default-gutter' for a description of a valid gutter instantiator.
 */ );
   Vgutter[TOP_GUTTER] = Fmake_specifier (Qgutter);
   set_specifier_caching (Vgutter[TOP_GUTTER],
-                        slot_offset (struct window,
-                                     gutter[TOP_GUTTER]),
+                        offsetof (struct window, gutter[TOP_GUTTER]),
                         gutter_specs_changed,
                         0, 0);
 
@@ -836,8 +839,7 @@ displayed even if you provide a value for `bottom-gutter'.
 */ );
   Vgutter[BOTTOM_GUTTER] = Fmake_specifier (Qgutter);
   set_specifier_caching (Vgutter[BOTTOM_GUTTER],
-                        slot_offset (struct window,
-                                     gutter[BOTTOM_GUTTER]),
+                        offsetof (struct window, gutter[BOTTOM_GUTTER]),
                         gutter_specs_changed,
                         0, 0);
 
@@ -854,8 +856,7 @@ displayed even if you provide a value for `left-gutter'.
 */ );
   Vgutter[LEFT_GUTTER] = Fmake_specifier (Qgutter);
   set_specifier_caching (Vgutter[LEFT_GUTTER],
-                        slot_offset (struct window,
-                                     gutter[LEFT_GUTTER]),
+                        offsetof (struct window, gutter[LEFT_GUTTER]),
                         gutter_specs_changed,
                         0, 0);
 
@@ -872,8 +873,7 @@ displayed even if you provide a value for `right-gutter'.
 */ );
   Vgutter[RIGHT_GUTTER] = Fmake_specifier (Qgutter);
   set_specifier_caching (Vgutter[RIGHT_GUTTER],
-                        slot_offset (struct window,
-                                     gutter[RIGHT_GUTTER]),
+                        offsetof (struct window, gutter[RIGHT_GUTTER]),
                         gutter_specs_changed,
                         0, 0);
 
@@ -913,8 +913,7 @@ is the default.
 */ );
   Vdefault_gutter_height = Fmake_specifier (Qgutter_size);
   set_specifier_caching (Vdefault_gutter_height,
-                        slot_offset (struct window,
-                                     default_gutter_height),
+                        offsetof (struct window, default_gutter_height),
                         default_gutter_size_changed_in_window,
                         0, 0);
 
@@ -926,8 +925,7 @@ See `default-gutter-height' for more information.
 */ );
   Vdefault_gutter_width = Fmake_specifier (Qnatnum);
   set_specifier_caching (Vdefault_gutter_width,
-                        slot_offset (struct window,
-                                     default_gutter_width),
+                        offsetof (struct window, default_gutter_width),
                         default_gutter_size_changed_in_window,
                         0, 0);
 
@@ -940,8 +938,7 @@ See `default-gutter-height' for more information.
 */ );
   Vgutter_size[TOP_GUTTER] = Fmake_specifier (Qgutter_size);
   set_specifier_caching (Vgutter_size[TOP_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_size[TOP_GUTTER]),
+                        offsetof (struct window, gutter_size[TOP_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -954,8 +951,7 @@ See `default-gutter-height' for more information.
 */ );
   Vgutter_size[BOTTOM_GUTTER] = Fmake_specifier (Qgutter_size);
   set_specifier_caching (Vgutter_size[BOTTOM_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_size[BOTTOM_GUTTER]),
+                        offsetof (struct window, gutter_size[BOTTOM_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -968,8 +964,7 @@ See `default-gutter-height' for more information.
 */ );
   Vgutter_size[LEFT_GUTTER] = Fmake_specifier (Qnatnum);
   set_specifier_caching (Vgutter_size[LEFT_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_size[LEFT_GUTTER]),
+                        offsetof (struct window, gutter_size[LEFT_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -982,8 +977,7 @@ See `default-gutter-height' for more information.
 */ );
   Vgutter_size[RIGHT_GUTTER] = Fmake_specifier (Qnatnum);
   set_specifier_caching (Vgutter_size[RIGHT_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_size[RIGHT_GUTTER]),
+                        offsetof (struct window, gutter_size[RIGHT_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -995,6 +989,7 @@ See `default-gutter-height' for more information.
   fb = Fcons (Fcons (list1 (Qx), Qautodetect), fb);
 #endif
 #ifdef HAVE_MS_WINDOWS
+  fb = Fcons (Fcons (list1 (Qmsprinter), Qautodetect), fb);
   fb = Fcons (Fcons (list1 (Qmswindows), Qautodetect), fb);
 #endif
   if (!NILP (fb))
@@ -1008,6 +1003,7 @@ See `default-gutter-height' for more information.
   fb = Fcons (Fcons (list1 (Qx), make_int (DEFAULT_GUTTER_WIDTH)), fb);
 #endif
 #ifdef HAVE_MS_WINDOWS
+  fb = Fcons (Fcons (list1 (Qmsprinter), Qzero), fb);
   fb = Fcons (Fcons (list1 (Qmswindows), 
                     make_int (DEFAULT_GUTTER_WIDTH)), fb);
 #endif
@@ -1036,8 +1032,7 @@ instead.
 */ );
   Vdefault_gutter_border_width = Fmake_specifier (Qnatnum);
   set_specifier_caching (Vdefault_gutter_border_width,
-                        slot_offset (struct window,
-                                     default_gutter_border_width),
+                        offsetof (struct window, default_gutter_border_width),
                         default_gutter_border_width_changed_in_window,
                         0, 0);
 
@@ -1050,8 +1045,8 @@ See `default-gutter-height' for more information.
 */ );
   Vgutter_border_width[TOP_GUTTER] = Fmake_specifier (Qnatnum);
   set_specifier_caching (Vgutter_border_width[TOP_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_border_width[TOP_GUTTER]),
+                        offsetof (struct window,
+                                  gutter_border_width[TOP_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -1064,8 +1059,8 @@ See `default-gutter-height' for more information.
 */ );
   Vgutter_border_width[BOTTOM_GUTTER] = Fmake_specifier (Qnatnum);
   set_specifier_caching (Vgutter_border_width[BOTTOM_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_border_width[BOTTOM_GUTTER]),
+                        offsetof (struct window,
+                                  gutter_border_width[BOTTOM_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -1078,8 +1073,8 @@ See `default-gutter-height' for more information.
 */ );
   Vgutter_border_width[LEFT_GUTTER] = Fmake_specifier (Qnatnum);
   set_specifier_caching (Vgutter_border_width[LEFT_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_border_width[LEFT_GUTTER]),
+                        offsetof (struct window,
+                                  gutter_border_width[LEFT_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -1092,8 +1087,8 @@ See `default-gutter-height' for more information.
 */ );
   Vgutter_border_width[RIGHT_GUTTER] = Fmake_specifier (Qnatnum);
   set_specifier_caching (Vgutter_border_width[RIGHT_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_border_width[RIGHT_GUTTER]),
+                        offsetof (struct window,
+                                  gutter_border_width[RIGHT_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -1105,6 +1100,7 @@ See `default-gutter-height' for more information.
   fb = Fcons (Fcons (list1 (Qx), make_int (DEFAULT_GUTTER_BORDER_WIDTH)), fb);
 #endif
 #ifdef HAVE_MS_WINDOWS
+  fb = Fcons (Fcons (list1 (Qmsprinter), Qzero), fb);
   fb = Fcons (Fcons (list1 (Qmswindows), make_int (DEFAULT_GUTTER_BORDER_WIDTH)), fb);
 #endif
   if (!NILP (fb))
@@ -1133,8 +1129,8 @@ visibility specifiers have a fallback value of true.
 */ );
   Vdefault_gutter_visible_p = Fmake_specifier (Qboolean);
   set_specifier_caching (Vdefault_gutter_visible_p,
-                        slot_offset (struct window,
-                                     default_gutter_visible_p),
+                        offsetof (struct window,
+                                  default_gutter_visible_p),
                         default_gutter_visible_p_changed_in_window,
                         0, 0);
 
@@ -1147,8 +1143,8 @@ See `default-gutter-visible-p' for more information.
 */ );
   Vgutter_visible_p[TOP_GUTTER] = Fmake_specifier (Qboolean);
   set_specifier_caching (Vgutter_visible_p[TOP_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_visible_p[TOP_GUTTER]),
+                        offsetof (struct window,
+                                  gutter_visible_p[TOP_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -1161,8 +1157,8 @@ See `default-gutter-visible-p' for more information.
 */ );
   Vgutter_visible_p[BOTTOM_GUTTER] = Fmake_specifier (Qboolean);
   set_specifier_caching (Vgutter_visible_p[BOTTOM_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_visible_p[BOTTOM_GUTTER]),
+                        offsetof (struct window,
+                                  gutter_visible_p[BOTTOM_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -1175,8 +1171,8 @@ See `default-gutter-visible-p' for more information.
 */ );
   Vgutter_visible_p[LEFT_GUTTER] = Fmake_specifier (Qboolean);
   set_specifier_caching (Vgutter_visible_p[LEFT_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_visible_p[LEFT_GUTTER]),
+                        offsetof (struct window,
+                                  gutter_visible_p[LEFT_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -1189,8 +1185,8 @@ See `default-gutter-visible-p' for more information.
 */ );
   Vgutter_visible_p[RIGHT_GUTTER] = Fmake_specifier (Qboolean);
   set_specifier_caching (Vgutter_visible_p[RIGHT_GUTTER],
-                        slot_offset (struct window,
-                                     gutter_visible_p[RIGHT_GUTTER]),
+                        offsetof (struct window,
+                                  gutter_visible_p[RIGHT_GUTTER]),
                         gutter_geometry_changed_in_window,
                         0, 0);
 
@@ -1203,5 +1199,4 @@ See `default-gutter-visible-p' for more information.
   set_specifier_fallback (Vgutter_visible_p[BOTTOM_GUTTER], fb);
   set_specifier_fallback (Vgutter_visible_p[LEFT_GUTTER],   fb);
   set_specifier_fallback (Vgutter_visible_p[RIGHT_GUTTER],  fb);
-
 }