Index: gtk/gtkfontsel.c
===================================================================
--- gtk/gtkfontsel.c	(revision 22267)
+++ gtk/gtkfontsel.c	(working copy)
@@ -124,9 +124,12 @@ static void    gtk_font_selection_get_pr
 						      guint            prop_id,
 						      GValue          *value,
 						      GParamSpec      *pspec);
-static void    gtk_font_selection_finalize	     (GObject               *object);
-static void    gtk_font_selection_screen_changed     (GtkWidget		    *widget,
-						      GdkScreen             *previous_screen);
+static void    gtk_font_selection_finalize	     (GObject         *object);
+static void    gtk_font_selection_screen_changed     (GtkWidget	      *widget,
+						      GdkScreen       *previous_screen);
+static void    gtk_font_selection_style_changed      (GObject         *gobject,
+						      GParamSpec      *pspec,
+						      gpointer         user_data);
 
 /* These are the callbacks & related functions. */
 static void     gtk_font_selection_select_font           (GtkTreeSelection *selection,
@@ -155,12 +158,24 @@ static void     gtk_font_selection_scrol
 
 static void     gtk_font_selection_preview_changed       (GtkWidget        *entry,
 							  GtkFontSelection *fontsel);
+static void     gtk_font_selection_scroll_to_selection   (GtkFontSelection *fontsel);
+
 
 /* Misc. utility functions. */
 static void    gtk_font_selection_load_font          (GtkFontSelection *fs);
 static void    gtk_font_selection_update_preview     (GtkFontSelection *fs);
 
 static GdkFont* gtk_font_selection_get_font_internal (GtkFontSelection *fontsel);
+static PangoFontDescription *gtk_font_selection_get_font_description (GtkFontSelection *fontsel);
+static gboolean gtk_font_selection_select_font_desc  (GtkFontSelection      *fontsel,
+						      PangoFontDescription  *new_desc,
+						      PangoFontFamily      **pfamily,
+						      PangoFontFace        **pface);
+static void     gtk_font_selection_reload_fonts          (GtkFontSelection *fontsel);
+static void     gtk_font_selection_ref_family            (GtkFontSelection *fontsel,
+							  PangoFontFamily  *family);
+static void     gtk_font_selection_ref_face              (GtkFontSelection *fontsel,
+							  PangoFontFace    *face);
 
 G_DEFINE_TYPE (GtkFontSelection, gtk_font_selection, GTK_TYPE_VBOX)
 
@@ -534,8 +549,11 @@ gtk_font_selection_init (GtkFontSelectio
 			       -1, INITIAL_PREVIEW_HEIGHT);
   gtk_box_pack_start (GTK_BOX (text_box), fontsel->preview_entry,
 		      TRUE, TRUE, 0);
-
   gtk_widget_pop_composite_child();
+
+  /* We need to reload list of fonts on style-set */
+  g_signal_connect (fontsel, "style-set",
+		    G_CALLBACK (gtk_font_selection_style_changed), NULL);
 }
 
 /**
@@ -567,24 +585,68 @@ gtk_font_selection_finalize (GObject *ob
   if (fontsel->font)
     gdk_font_unref (fontsel->font);
 
+  gtk_font_selection_ref_family (fontsel, NULL);
+  gtk_font_selection_ref_face (fontsel, NULL);
+
   G_OBJECT_CLASS (gtk_font_selection_parent_class)->finalize (object);
 }
 
 static void
-gtk_font_selection_screen_changed (GtkWidget *widget,
-				   GdkScreen *previous_screen)
+gtk_font_selection_ref_family (GtkFontSelection *fontsel,
+			       PangoFontFamily  *family)
 {
-  GtkFontSelection *fontsel = GTK_FONT_SELECTION (widget);
+  if (family)
+    family = g_object_ref (family);
+  if (fontsel->family)
+    g_object_unref (fontsel->family);
+  fontsel->family = family;
+}
 
+static void gtk_font_selection_ref_face (GtkFontSelection *fontsel,
+					 PangoFontFace    *face)
+{
+  if (face)
+    face = g_object_ref (face);
+  if (fontsel->face)
+    g_object_unref (fontsel->face);
+  fontsel->face = face;
+}
+
+static void
+gtk_font_selection_reload_fonts (GtkFontSelection *fontsel)
+{
   if (gtk_widget_has_screen (GTK_WIDGET (fontsel)))
     {
+      PangoFontDescription *desc;
+      desc = gtk_font_selection_get_font_description (fontsel);
+
       gtk_font_selection_show_available_fonts (fontsel);
       gtk_font_selection_show_available_sizes (fontsel, TRUE);
       gtk_font_selection_show_available_styles (fontsel);
+
+      gtk_font_selection_select_font_desc (fontsel, desc, NULL, NULL);
+      gtk_font_selection_scroll_to_selection (fontsel);
+
+      pango_font_description_free (desc);
     }
 }
 
 static void
+gtk_font_selection_screen_changed (GtkWidget *widget,
+				   GdkScreen *previous_screen)
+{
+  gtk_font_selection_reload_fonts (GTK_FONT_SELECTION (widget));
+}
+
+static void
+gtk_font_selection_style_changed (GObject    *gobject,
+                                  GParamSpec *pspec,
+                                  gpointer    user_data)
+{
+  gtk_font_selection_reload_fonts (GTK_FONT_SELECTION (gobject));
+}
+
+static void
 gtk_font_selection_preview_changed (GtkWidget        *entry,
 				    GtkFontSelection *fontsel)
 {
@@ -618,19 +680,9 @@ set_cursor_to_iter (GtkTreeView *view,
   gtk_tree_path_free (path);
 }
 
-/* This is called when the list is mapped. Here we scroll to the current
-   font if necessary. */
 static void
-gtk_font_selection_scroll_on_map (GtkWidget		*widget,
-                                  gpointer		 data)
+gtk_font_selection_scroll_to_selection (GtkFontSelection *fontsel)
 {
-  GtkFontSelection *fontsel;
-  
-#ifdef FONTSEL_DEBUG
-  g_message ("In expose_list\n");
-#endif
-  fontsel = GTK_FONT_SELECTION (data);
-  
   /* Try to scroll the font family list to the selected item */
   scroll_to_selection (GTK_TREE_VIEW (fontsel->family_list));
       
@@ -639,6 +691,15 @@ gtk_font_selection_scroll_on_map (GtkWid
       
   /* Try to scroll the font family list to the selected item */
   scroll_to_selection (GTK_TREE_VIEW (fontsel->size_list));
+/* This is called when the list is mapped. Here we scroll to the current
+   font if necessary. */
+}
+
+static void
+gtk_font_selection_scroll_on_map (GtkWidget		*widget,
+                                  gpointer		 data)
+{
+  gtk_font_selection_scroll_to_selection (GTK_FONT_SELECTION (data));
 }
 
 /* This is called when a family is selected in the list. */
@@ -662,7 +723,7 @@ gtk_font_selection_select_font (GtkTreeS
       gtk_tree_model_get (model, &iter, FAMILY_COLUMN, &family, -1);
       if (fontsel->family != family)
 	{
-	  fontsel->family = family;
+	  gtk_font_selection_ref_family (fontsel, family);
 	  
 #ifdef INCLUDE_FONT_ENTRIES
 	  family_name = pango_font_family_get_name (fontsel->family);
@@ -721,7 +782,7 @@ gtk_font_selection_show_available_fonts 
 	}
     }
 
-  fontsel->family = match_family;
+  gtk_font_selection_ref_family (fontsel, match_family);
   if (match_family)
     {
       set_cursor_to_iter (GTK_TREE_VIEW (fontsel->family_list), &match_row);
@@ -837,7 +898,7 @@ gtk_font_selection_show_available_styles
   if (old_desc)
     pango_font_description_free (old_desc);
 
-  fontsel->face = match_face;
+  gtk_font_selection_ref_face (fontsel, match_face);
   if (match_face)
     {
 #ifdef INCLUDE_FONT_ENTRIES
@@ -890,8 +951,7 @@ gtk_font_selection_select_style (GtkTree
       PangoFontFace *face;
       
       gtk_tree_model_get (model, &iter, FACE_COLUMN, &face, -1);
-      fontsel->face = face;
-
+      gtk_font_selection_ref_face (fontsel, face);
       g_object_unref (face);
     }
 
@@ -1329,48 +1389,26 @@ gtk_font_selection_get_font_name (GtkFon
   return result;
 }
 
-
-/* This sets the current font, selecting the appropriate list rows.
+/* This selects the appropriate list rows.
    First we check the fontname is valid and try to find the font family
    - i.e. the name in the main list. If we can't find that, then just return.
    Next we try to set each of the properties according to the fontname.
    Finally we select the font family & style in the lists. */
-
-/**
- * gtk_font_selection_set_font_name:
- * @fontsel: a #GtkFontSelection
- * @fontname: a font name like "Helvetica 12" or "Times Bold 18"
- * 
- * Sets the currently-selected font. 
- *
- * Note that the @fontsel needs to know the screen in which it will appear 
- * for this to work; this can be guaranteed by simply making sure that the 
- * @fontsel is inserted in a toplevel window before you call this function.
- * 
- * Return value: %TRUE if the font could be set successfully; %FALSE if no 
- *     such font exists or if the @fontsel doesn't belong to a particular 
- *     screen yet.
- */
-gboolean
-gtk_font_selection_set_font_name (GtkFontSelection *fontsel,
-				  const gchar      *fontname)
+static gboolean
+gtk_font_selection_select_font_desc (GtkFontSelection      *fontsel,
+				     PangoFontDescription  *new_desc,
+				     PangoFontFamily      **pfamily,
+				     PangoFontFace        **pface)
 {
   PangoFontFamily *new_family = NULL;
   PangoFontFace *new_face = NULL;
   PangoFontFace *fallback_face = NULL;
-  PangoFontDescription *new_desc;
   GtkTreeModel *model;
   GtkTreeIter iter;
   GtkTreeIter match_iter;
   gboolean valid;
   const gchar *new_family_name;
-  
-  g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), FALSE);
 
-  if (!gtk_widget_has_screen (GTK_WIDGET (fontsel)))
-    return FALSE;
-
-  new_desc = pango_font_description_from_string (fontname);
   new_family_name = pango_font_description_get_family (new_desc);
 
   if (!new_family_name)
@@ -1389,8 +1427,8 @@ gtk_font_selection_set_font_name (GtkFon
       
       if (g_ascii_strcasecmp (pango_font_family_get_name (family),
 			      new_family_name) == 0)
-	new_family = family;
-      
+	new_family = g_object_ref (family);
+
       g_object_unref (family);
       
       if (new_family)
@@ -1400,7 +1438,10 @@ gtk_font_selection_set_font_name (GtkFon
   if (!new_family)
     return FALSE;
 
-  fontsel->family = new_family;
+  if (pfamily)
+    *pfamily = new_family;
+  else
+    g_object_unref (new_family);
   set_cursor_to_iter (GTK_TREE_VIEW (fontsel->family_list), &iter);
   gtk_font_selection_show_available_styles (fontsel);
 
@@ -1416,11 +1457,11 @@ gtk_font_selection_set_font_name (GtkFon
       tmp_desc = pango_font_face_describe (face);
       
       if (font_description_style_equal (tmp_desc, new_desc))
-	new_face = face;
+	new_face = g_object_ref (face);
       
       if (!fallback_face)
 	{
-	  fallback_face = face;
+	  fallback_face = g_object_ref (face);
 	  match_iter = iter;
 	}
       
@@ -1436,19 +1477,71 @@ gtk_font_selection_set_font_name (GtkFon
 
   if (!new_face)
     new_face = fallback_face;
+  else if (fallback_face)
+    g_object_unref (fallback_face);
 
-  fontsel->face = new_face;
+  if (pface)
+    *pface = new_face;
+  else if (new_face)
+    g_object_unref (new_face);
   set_cursor_to_iter (GTK_TREE_VIEW (fontsel->face_list), &match_iter);  
 
   gtk_font_selection_set_size (fontsel, pango_font_description_get_size (new_desc));
+
+  return TRUE;
+}
+
+
+/* This sets the current font, then selecting the appropriate list rows. */
+
+/**
+ * gtk_font_selection_set_font_name:
+ * @fontsel: a #GtkFontSelection
+ * @fontname: a font name like "Helvetica 12" or "Times Bold 18"
+ * 
+ * Sets the currently-selected font. 
+ *
+ * Note that the @fontsel needs to know the screen in which it will appear 
+ * for this to work; this can be guaranteed by simply making sure that the 
+ * @fontsel is inserted in a toplevel window before you call this function.
+ * 
+ * Return value: %TRUE if the font could be set successfully; %FALSE if no 
+ *     such font exists or if the @fontsel doesn't belong to a particular 
+ *     screen yet.
+ */
+gboolean
+gtk_font_selection_set_font_name (GtkFontSelection *fontsel,
+				  const gchar      *fontname)
+{
+  PangoFontFamily *family = NULL;
+  PangoFontFace *face = NULL;
+  PangoFontDescription *new_desc;
+  
+  g_return_val_if_fail (GTK_IS_FONT_SELECTION (fontsel), FALSE);
+
+  if (!gtk_widget_has_screen (GTK_WIDGET (fontsel)))
+    return FALSE;
+
+  new_desc = pango_font_description_from_string (fontname);
+
+  if (gtk_font_selection_select_font_desc (fontsel, new_desc, &family, &face))
+    {
+      gtk_font_selection_ref_family (fontsel, family);
+      if (family)
+        g_object_unref (family);
+
+      gtk_font_selection_ref_face (fontsel, face);
+      if (face)
+        g_object_unref (face);
+    }
+
+  pango_font_description_free (new_desc);
   
   g_object_freeze_notify (G_OBJECT (fontsel));
   g_object_notify (G_OBJECT (fontsel), "font-name");
   g_object_notify (G_OBJECT (fontsel), "font");
   g_object_thaw_notify (G_OBJECT (fontsel));
 
-  pango_font_description_free (new_desc);
-
   return TRUE;
 }
 
Index: docs/reference/gdk-pixbuf/gdk-pixbuf-query-loaders.1
===================================================================
--- docs/reference/gdk-pixbuf/gdk-pixbuf-query-loaders.1	(revision 22267)
+++ docs/reference/gdk-pixbuf/gdk-pixbuf-query-loaders.1	(working copy)
@@ -1,49 +1,200 @@
-.\"Generated by db2man.xsl. Don't modify this, modify the source.
-.de Sh \" Subsection
+.\"     Title: gdk-pixbuf-query-loaders
+.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
+.\" Generator: DocBook XSL Stylesheets v1.74.0 <http://docbook.sf.net/>
+.\"      Date: 01/31/2009
+.\"    Manual: [FIXME: manual]
+.\"    Source: [FIXME: source]
+.\"  Language: English
+.\"
+.TH "GDK\-PIXBUF\-QUERY\-" "1" "01/31/2009" "[FIXME: source]" "[FIXME: manual]"
+.\" -----------------------------------------------------------------
+.\" * (re)Define some macros
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" toupper - uppercase a string (locale-aware)
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de toupper
+.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
+\\$*
+.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SH-xref - format a cross-reference to an SH section
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de SH-xref
+.ie n \{\
+.\}
+.toupper \\$*
+.el \{\
+\\$*
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SH - level-one heading that works better for non-TTY output
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de1 SH
+.\" put an extra blank line of space above the head in non-TTY output
+.if t \{\
+.sp 1
+.\}
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[an-margin]u
+.ti 0
+.HTML-TAG ".NH \\n[an-level]"
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+\." make the size of the head bigger
+.ps +3
+.ft B
+.ne (2v + 1u)
+.ie n \{\
+.\" if n (TTY output), use uppercase
+.toupper \\$*
+.\}
+.el \{\
+.nr an-break-flag 0
+.\" if not n (not TTY), use normal case (not uppercase)
+\\$1
+.in \\n[an-margin]u
+.ti 0
+.\" if not n (not TTY), put a border/line under subheading
+.sp -.6
+\l'\n(.lu'
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SS - level-two heading that works better for non-TTY output
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de1 SS
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[IN]u
+.ti \\n[SN]u
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.ps \\n[PS-SS]u
+\." make the size of the head bigger
+.ps +2
+.ft B
+.ne (2v + 1u)
+.if \\n[.$] \&\\$*
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" BB/BE - put background/screen (filled box) around block of text
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de BB
+.if t \{\
+.sp -.5
 .br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
+.in +2n
+.ll -2n
+.gcolor red
+.di BX
+.\}
 ..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
+.de EB
+.if t \{\
+.if "\\$2"adjust-for-leading-newline" \{\
+.sp -1
+.\}
+.br
+.di
+.in
+.ll
+.gcolor
+.nr BW \\n(.lu-\\n(.i
+.nr BH \\n(dn+.5v
+.ne \\n(BHu+.5v
+.ie "\\$2"adjust-for-leading-newline" \{\
+\M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.el \{\
+\M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.in 0
+.sp -.5v
+.nf
+.BX
+.in
+.sp .5v
+.fi
+.\}
 ..
-.de Ip \" List item
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" BM/EM - put colored marker in margin next to block of text
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de BM
+.if t \{\
 .br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
+.ll -2n
+.gcolor red
+.di BX
+.\}
 ..
-.TH "GDK-PIXBUF-QUERY" 1 "" "" ""
-.SH NAME
-gdk-pixbuf-query-loaders \- GdkPixbuf loader registration utility
-.SH "SYNOPSIS"
-
+.de EM
+.if t \{\
+.br
+.di
+.ll
+.gcolor
+.nr BH \\n(dn
+.ne \\n(BHu
+\M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[]
+.in 0
 .nf
-\fBgdk-pixbuf-query-loaders\fR [module...]
+.BX
+.in
 .fi
-
-.SH "DESCRIPTION"
-
-.PP
- \fBgdk-pixbuf-query-loaders\fR collects information about loadable modules for gdk-pixbuf and writes it to \fIstdout\fR\&.
-
-.PP
-If called without arguments, it looks for modules in the gdk-pixbuf loader directory\&.
-
+.\}
+..
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "Name"
+gdk-pixbuf-query-loaders \- GdkPixbuf loader registration utility
+.SH "Synopsis"
+.fam C
+.HP \w'\fBgdk\-pixbuf\-query\-loaders\fR\ 'u
+\fBgdk\-pixbuf\-query\-loaders\fR [module...]
+.fam
+.SH "Description"
+.PP
+
+\fBgdk\-pixbuf\-query\-loaders\fR
+collects information about loadable modules for
+gdk\-pixbuf
+and writes it to
+\FCstdout\F[]\&.
+.PP
+If called without arguments, it looks for modules in the
+gdk\-pixbuf
+loader directory\&.
 .PP
 If called with arguments, it looks for the specified modules\&. The arguments may be absolute or relative paths\&.
-
-.SH "ENVIRONMENT"
-
+.SH "Environment"
 .PP
-The environment variable \fBGDK_PIXBUF_MODULEDIR\fR can be used to specify a different loader directory\&. The default gdk-pixbuf loader directory is \fI\fIlibdir\fR/gtk-2\&.0/\fIversion\fR/loaders\fR\&.
-
-.SH "BUGS"
-
+The environment variable
+\fBGDK_PIXBUF_MODULEDIR\fR
+can be used to specify a different loader directory\&. The default
+gdk\-pixbuf
+loader directory is
+\FC\fIlibdir\fR/gtk\-2\&.0/\fIversion\fR/loaders\F[]\&.
+.SH "Bugs"
 .PP
 None known yet\&.
-
Index: docs/reference/gdk-pixbuf/gdk-pixbuf-csource.1
===================================================================
--- docs/reference/gdk-pixbuf/gdk-pixbuf-csource.1	(revision 22267)
+++ docs/reference/gdk-pixbuf/gdk-pixbuf-csource.1	(working copy)
@@ -1,118 +1,290 @@
-.\"Generated by db2man.xsl. Don't modify this, modify the source.
-.de Sh \" Subsection
+.\"     Title: gdk-pixbuf-csource
+.\"    Author: [see the "Author" section]
+.\" Generator: DocBook XSL Stylesheets v1.74.0 <http://docbook.sf.net/>
+.\"      Date: 01/31/2009
+.\"    Manual: [FIXME: manual]
+.\"    Source: [FIXME: source]
+.\"  Language: English
+.\"
+.TH "GDK\-PIXBUF\-CSOURCE" "1" "01/31/2009" "[FIXME: source]" "[FIXME: manual]"
+.\" -----------------------------------------------------------------
+.\" * (re)Define some macros
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" toupper - uppercase a string (locale-aware)
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de toupper
+.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
+\\$*
+.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SH-xref - format a cross-reference to an SH section
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de SH-xref
+.ie n \{\
+.\}
+.toupper \\$*
+.el \{\
+\\$*
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SH - level-one heading that works better for non-TTY output
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de1 SH
+.\" put an extra blank line of space above the head in non-TTY output
+.if t \{\
+.sp 1
+.\}
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[an-margin]u
+.ti 0
+.HTML-TAG ".NH \\n[an-level]"
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+\." make the size of the head bigger
+.ps +3
+.ft B
+.ne (2v + 1u)
+.ie n \{\
+.\" if n (TTY output), use uppercase
+.toupper \\$*
+.\}
+.el \{\
+.nr an-break-flag 0
+.\" if not n (not TTY), use normal case (not uppercase)
+\\$1
+.in \\n[an-margin]u
+.ti 0
+.\" if not n (not TTY), put a border/line under subheading
+.sp -.6
+\l'\n(.lu'
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SS - level-two heading that works better for non-TTY output
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de1 SS
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[IN]u
+.ti \\n[SN]u
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.ps \\n[PS-SS]u
+\." make the size of the head bigger
+.ps +2
+.ft B
+.ne (2v + 1u)
+.if \\n[.$] \&\\$*
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" BB/BE - put background/screen (filled box) around block of text
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de BB
+.if t \{\
+.sp -.5
 .br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
+.in +2n
+.ll -2n
+.gcolor red
+.di BX
+.\}
 ..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
+.de EB
+.if t \{\
+.if "\\$2"adjust-for-leading-newline" \{\
+.sp -1
+.\}
+.br
+.di
+.in
+.ll
+.gcolor
+.nr BW \\n(.lu-\\n(.i
+.nr BH \\n(dn+.5v
+.ne \\n(BHu+.5v
+.ie "\\$2"adjust-for-leading-newline" \{\
+\M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.el \{\
+\M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.in 0
+.sp -.5v
+.nf
+.BX
+.in
+.sp .5v
+.fi
+.\}
 ..
-.de Ip \" List item
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" BM/EM - put colored marker in margin next to block of text
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de BM
+.if t \{\
 .br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
+.ll -2n
+.gcolor red
+.di BX
+.\}
 ..
-.TH "GDK-PIXBUF-CSOURCE" 1 "" "" ""
-.SH NAME
-gdk-pixbuf-csource \- C code generation utility for GdkPixbuf images
-.SH "SYNOPSIS"
+.de EM
+.if t \{\
+.br
+.di
+.ll
+.gcolor
+.nr BH \\n(dn
+.ne \\n(BHu
+\M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[]
+.in 0
+.nf
+.BX
+.in
+.fi
+.\}
+..
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
 .ad l
-.hy 0
-.HP 19
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "Name"
+gdk-pixbuf-csource \- C code generation utility for GdkPixbuf images
+.SH "Synopsis"
+.fam C
+.HP \w'\fBgdk\-pixbuf\-csource\fR\ 'u
 \fBgdk\-pixbuf\-csource\fR [options] [image]
-.ad
-.hy
-.ad l
-.hy 0
-.HP 19
+.fam
+.fam C
+.HP \w'\fBgdk\-pixbuf\-csource\fR\ 'u
 \fBgdk\-pixbuf\-csource\fR [options] \-\-build\-list [[name]\ [image]...]
-.ad
-.hy
-
-.SH "DESCRIPTION"
-
+.fam
+.SH "Description"
 .PP
- \fBgdk\-pixbuf\-csource\fR is a small utility that generates C code containing images, useful for compiling images directly into programs\&.
-
-.SH "INVOCATION"
 
+\fBgdk\-pixbuf\-csource\fR
+is a small utility that generates C code containing images, useful for compiling images directly into programs\&.
+.SH "Invocation"
 .PP
- \fBgdk\-pixbuf\-csource\fR either takes as input one image file name to generate code for, or, using the \fB\-\-build\-list\fR option, a list of (\fIname\fR, \fIimage\fR) pairs to generate code for a list of images into named variables\&.
 
+\fBgdk\-pixbuf\-csource\fR
+either takes as input one image file name to generate code for, or, using the
+\fB\-\-build\-list\fR
+option, a list of (\fIname\fR,
+\fIimage\fR) pairs to generate code for a list of images into named variables\&.
 .SS "Options"
-
-.TP
+.PP
 \fB\-\-stream\fR
-Generate pixbuf data stream (a single string containing a serialized GdkPixdata structure in network byte order)\&.
-
-.TP
+.RS 4
+Generate pixbuf data stream (a single string containing a serialized
+GdkPixdata
+structure in network byte order)\&.
+.RE
+.PP
 \fB\-\-struct\fR
-Generate GdkPixdata structure (needs the GdkPixdata structure definition from \fIgdk\-pixdata\&.h\fR)\&.
-
-.TP
+.RS 4
+Generate GdkPixdata structure (needs the
+GdkPixdata
+structure definition from
+\FCgdk\-pixdata\&.h\F[])\&.
+.RE
+.PP
 \fB\-\-macros\fR
+.RS 4
 Generate *_ROWSTRIDE, *_WIDTH, *_HEIGHT, *_BYTES_PER_PIXEL and *_RLE_PIXEL_DATA or *_PIXEL_DATA macro definitions for the image\&.
-
-.TP
+.RE
+.PP
 \fB\-\-rle\fR
+.RS 4
 Enables run\-length encoding for the generated pixel data (default)\&.
-
-.TP
+.RE
+.PP
 \fB\-\-raw\fR
+.RS 4
 Disables run\-length encoding for the generated pixel data\&.
-
-.TP
+.RE
+.PP
 \fB\-\-extern\fR
+.RS 4
 Generate extern symbols\&.
-
-.TP
+.RE
+.PP
 \fB\-\-static\fR
+.RS 4
 Generate static symbols (default)\&.
-
-.TP
+.RE
+.PP
 \fB\-\-decoder\fR
+.RS 4
 Provide a *_RUN_LENGTH_DECODE(image_buf, rle_data, size, bpp) macro definition to decode run\-length encoded image data\&.
-
-.TP
+.RE
+.PP
 \fB\-\-name=identifier\fR
-Specifies the identifier name (prefix) for the generated variables or macros (useful only if \fB\-\-build\-list\fR was not specified)\&.
-
-.TP
+.RS 4
+Specifies the identifier name (prefix) for the generated variables or macros (useful only if
 \fB\-\-build\-list\fR
-Enables (\fIname\fR, \fIimage\fR) pair parsing mode\&.
-
-.TP
+was not specified)\&.
+.RE
+.PP
+\fB\-\-build\-list\fR
+.RS 4
+Enables (\fIname\fR,
+\fIimage\fR) pair parsing mode\&.
+.RE
+.PP
 \fB\-h\fR, \fB\-\-help\fR
+.RS 4
 Print brief help and exit\&.
-
-.TP
+.RE
+.PP
 \fB\-v\fR, \fB\-\-version\fR
+.RS 4
 Print version and exit\&.
-
-.TP
+.RE
+.PP
 \fB\-\-g\-fatal\-warnings\fR
+.RS 4
 Make warnings fatal (causes the program to abort)\&.
-
-.SH "SEE ALSO"
-
+.RE
+.SH "See also"
 .PP
-The GdkPixbuf documentation, shipped with the Gtk+ distribution, available from www\&.gtk\&.org: \fIhttp://www.gtk.org\fR\&.
-
-.SH "BUGS"
-
+The
+GdkPixbuf
+documentation, shipped with the Gtk+ distribution, available from
+\m[blue]\fBwww\&.gtk\&.org\fR\m[]\&\s-2\u[1]\d\s+2\&.
+.SH "Bugs"
 .PP
 The runlength encoder gets out of sync with the pixel boundaries, since it includes the rowstride padding in the encoded stream\&. Furthermore, it generates pixbufs with suboptimal rowstride in some cases\&.
-
-.SH "AUTHOR"
-
+.SH "Author"
 .PP
- \fBgdk\-pixbuf\-csource\fR was written by Tim Janik <timj@gtk\&.org>\&.
 
+\fBgdk\-pixbuf\-csource\fR
+was written by Tim Janik
+\FCtimj@gtk\&.org\F[]\&.
 .PP
-This manual page was provided by Tim Janik <timj@gtk\&.org>\&.
-
+This manual page was provided by Tim Janik
+\FCtimj@gtk\&.org\F[]\&.
+.SH "Notes"
+.IP " 1." 4
+www.gtk.org
+.RS 4
+\%http://www.gtk.org
+.RE
Index: docs/reference/gtk/gtk-query-immodules-2.0.1
===================================================================
--- docs/reference/gtk/gtk-query-immodules-2.0.1	(revision 22267)
+++ docs/reference/gtk/gtk-query-immodules-2.0.1	(working copy)
@@ -1,49 +1,193 @@
-.\"Generated by db2man.xsl. Don't modify this, modify the source.
-.de Sh \" Subsection
+.\"     Title: gtk-query-immodules-2.0
+.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
+.\" Generator: DocBook XSL Stylesheets v1.74.0 <http://docbook.sf.net/>
+.\"      Date: 01/31/2009
+.\"    Manual: [FIXME: manual]
+.\"    Source: [FIXME: source]
+.\"  Language: English
+.\"
+.TH "GTK\-QUERY\-IMMODULE" "1" "01/31/2009" "[FIXME: source]" "[FIXME: manual]"
+.\" -----------------------------------------------------------------
+.\" * (re)Define some macros
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" toupper - uppercase a string (locale-aware)
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de toupper
+.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
+\\$*
+.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SH-xref - format a cross-reference to an SH section
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de SH-xref
+.ie n \{\
+.\}
+.toupper \\$*
+.el \{\
+\\$*
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SH - level-one heading that works better for non-TTY output
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de1 SH
+.\" put an extra blank line of space above the head in non-TTY output
+.if t \{\
+.sp 1
+.\}
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[an-margin]u
+.ti 0
+.HTML-TAG ".NH \\n[an-level]"
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+\." make the size of the head bigger
+.ps +3
+.ft B
+.ne (2v + 1u)
+.ie n \{\
+.\" if n (TTY output), use uppercase
+.toupper \\$*
+.\}
+.el \{\
+.nr an-break-flag 0
+.\" if not n (not TTY), use normal case (not uppercase)
+\\$1
+.in \\n[an-margin]u
+.ti 0
+.\" if not n (not TTY), put a border/line under subheading
+.sp -.6
+\l'\n(.lu'
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SS - level-two heading that works better for non-TTY output
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de1 SS
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[IN]u
+.ti \\n[SN]u
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.ps \\n[PS-SS]u
+\." make the size of the head bigger
+.ps +2
+.ft B
+.ne (2v + 1u)
+.if \\n[.$] \&\\$*
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" BB/BE - put background/screen (filled box) around block of text
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de BB
+.if t \{\
+.sp -.5
 .br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
+.in +2n
+.ll -2n
+.gcolor red
+.di BX
+.\}
 ..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
+.de EB
+.if t \{\
+.if "\\$2"adjust-for-leading-newline" \{\
+.sp -1
+.\}
+.br
+.di
+.in
+.ll
+.gcolor
+.nr BW \\n(.lu-\\n(.i
+.nr BH \\n(dn+.5v
+.ne \\n(BHu+.5v
+.ie "\\$2"adjust-for-leading-newline" \{\
+\M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.el \{\
+\M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.in 0
+.sp -.5v
+.nf
+.BX
+.in
+.sp .5v
+.fi
+.\}
 ..
-.de Ip \" List item
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" BM/EM - put colored marker in margin next to block of text
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de BM
+.if t \{\
 .br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
+.ll -2n
+.gcolor red
+.di BX
+.\}
 ..
-.TH "GTK-QUERY-IMMODUL" 1 "" "" ""
-.SH NAME
-gtk-query-immodules-2.0 \- Input method module registration utility
-.SH "SYNOPSIS"
-
+.de EM
+.if t \{\
+.br
+.di
+.ll
+.gcolor
+.nr BH \\n(dn
+.ne \\n(BHu
+\M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[]
+.in 0
 .nf
-\fBgtk-query-immodules-2.0\fR [module...]
+.BX
+.in
 .fi
-
-.SH "DESCRIPTION"
-
+.\}
+..
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
+.\" disable hyphenation
+.nh
+.\" disable justification (adjust text to left margin only)
+.ad l
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "Name"
+gtk-query-immodules-2.0 \- Input method module registration utility
+.SH "Synopsis"
+.fam C
+.HP \w'\fBgtk\-query\-immodules\-2\&.0\fR\ 'u
+\fBgtk\-query\-immodules\-2\&.0\fR [module...]
+.fam
+.SH "Description"
 .PP
- \fBgtk-query-immodules-2.0\fR collects information about loadable input method modules for GTK+ and writes it to \fIstdout\fR\&.
 
+\fBgtk\-query\-immodules\-2\&.0\fR
+collects information about loadable input method modules for GTK+ and writes it to
+\FCstdout\F[]\&.
 .PP
 If called without arguments, it looks for modules in the GTK+ input method module path\&.
-
 .PP
 If called with arguments, it looks for the specified modules\&. The arguments may be absolute or relative paths\&.
-
-.SH "ENVIRONMENT"
-
+.SH "Environment"
 .PP
-The environment variable \fBGTK_PATH\fR can be used to prepend directories to the input method module path\&.
-
-.SH "BUGS"
-
+The environment variable
+\fBGTK_PATH\fR
+can be used to prepend directories to the input method module path\&.
+.SH "Bugs"
 .PP
 None known yet\&.
-
Index: docs/reference/gtk/gtk-update-icon-cache.1
===================================================================
--- docs/reference/gtk/gtk-update-icon-cache.1	(revision 22267)
+++ docs/reference/gtk/gtk-update-icon-cache.1	(working copy)
@@ -1,51 +1,227 @@
-.\" ** You probably do not want to edit this file directly **
-.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
-.\" Instead of manually editing it, you probably should edit the DocBook XML
-.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GTK\-UPDATE\-ICON\-CACH" "1" "11/07/2005" "" ""
+.\"     Title: gtk-update-icon-cache
+.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
+.\" Generator: DocBook XSL Stylesheets v1.74.0 <http://docbook.sf.net/>
+.\"      Date: 01/31/2009
+.\"    Manual: [FIXME: manual]
+.\"    Source: [FIXME: source]
+.\"  Language: English
+.\"
+.TH "GTK\-UPDATE\-ICON\-C" "1" "01/31/2009" "[FIXME: source]" "[FIXME: manual]"
+.\" -----------------------------------------------------------------
+.\" * (re)Define some macros
+.\" -----------------------------------------------------------------
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" toupper - uppercase a string (locale-aware)
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de toupper
+.tr aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ
+\\$*
+.tr aabbccddeeffgghhiijjkkllmmnnooppqqrrssttuuvvwwxxyyzz
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SH-xref - format a cross-reference to an SH section
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de SH-xref
+.ie n \{\
+.\}
+.toupper \\$*
+.el \{\
+\\$*
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SH - level-one heading that works better for non-TTY output
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de1 SH
+.\" put an extra blank line of space above the head in non-TTY output
+.if t \{\
+.sp 1
+.\}
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[an-margin]u
+.ti 0
+.HTML-TAG ".NH \\n[an-level]"
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+\." make the size of the head bigger
+.ps +3
+.ft B
+.ne (2v + 1u)
+.ie n \{\
+.\" if n (TTY output), use uppercase
+.toupper \\$*
+.\}
+.el \{\
+.nr an-break-flag 0
+.\" if not n (not TTY), use normal case (not uppercase)
+\\$1
+.in \\n[an-margin]u
+.ti 0
+.\" if not n (not TTY), put a border/line under subheading
+.sp -.6
+\l'\n(.lu'
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" SS - level-two heading that works better for non-TTY output
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de1 SS
+.sp \\n[PD]u
+.nr an-level 1
+.set-an-margin
+.nr an-prevailing-indent \\n[IN]
+.fi
+.in \\n[IN]u
+.ti \\n[SN]u
+.it 1 an-trap
+.nr an-no-space-flag 1
+.nr an-break-flag 1
+.ps \\n[PS-SS]u
+\." make the size of the head bigger
+.ps +2
+.ft B
+.ne (2v + 1u)
+.if \\n[.$] \&\\$*
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" BB/BE - put background/screen (filled box) around block of text
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de BB
+.if t \{\
+.sp -.5
+.br
+.in +2n
+.ll -2n
+.gcolor red
+.di BX
+.\}
+..
+.de EB
+.if t \{\
+.if "\\$2"adjust-for-leading-newline" \{\
+.sp -1
+.\}
+.br
+.di
+.in
+.ll
+.gcolor
+.nr BW \\n(.lu-\\n(.i
+.nr BH \\n(dn+.5v
+.ne \\n(BHu+.5v
+.ie "\\$2"adjust-for-leading-newline" \{\
+\M[\\$1]\h'1n'\v'+.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.el \{\
+\M[\\$1]\h'1n'\v'-.5v'\D'P \\n(BWu 0 0 \\n(BHu -\\n(BWu 0 0 -\\n(BHu'\M[]
+.\}
+.in 0
+.sp -.5v
+.nf
+.BX
+.in
+.sp .5v
+.fi
+.\}
+..
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.\" BM/EM - put colored marker in margin next to block of text
+.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+.de BM
+.if t \{\
+.br
+.ll -2n
+.gcolor red
+.di BX
+.\}
+..
+.de EM
+.if t \{\
+.br
+.di
+.ll
+.gcolor
+.nr BH \\n(dn
+.ne \\n(BHu
+\M[\\$1]\D'P -.75n 0 0 \\n(BHu -(\\n[.i]u - \\n(INu - .75n) 0 0 -\\n(BHu'\M[]
+.in 0
+.nf
+.BX
+.in
+.fi
+.\}
+..
+.\" -----------------------------------------------------------------
+.\" * set default formatting
+.\" -----------------------------------------------------------------
 .\" disable hyphenation
 .nh
 .\" disable justification (adjust text to left margin only)
 .ad l
-.SH "NAME"
-gtk\-update\-icon\-cache \- Icon theme caching utility
-.SH "SYNOPSIS"
-.HP 22
-\fBgtk\-update\-icon\-cache\fR [\-\-force] [\-\-ignore\-theme\-index] [\-\-index\-only] [\-\-source\ [name]] [\-\-quiet] {iconpath}
-.SH "DESCRIPTION"
+.\" -----------------------------------------------------------------
+.\" * MAIN CONTENT STARTS HERE *
+.\" -----------------------------------------------------------------
+.SH "Name"
+gtk-update-icon-cache \- Icon theme caching utility
+.SH "Synopsis"
+.fam C
+.HP \w'\fBgtk\-update\-icon\-cache\fR\ 'u
+\fBgtk\-update\-icon\-cache\fR [\-\-force] [\-\-ignore\-theme\-index] [\-\-index\-only] [\-\-source\ [name]] [\-\-quiet] [\-\-validate] {iconpath}
+.fam
+.SH "Description"
 .PP
 \fBgtk\-update\-icon\-cache\fR
-creates mmap()able cache files for icon themes.
+creates mmap()able cache files for icon themes\&.
 .PP
 It expects to be given the path to a icon theme directory containing an
-\fIindex.theme\fR, e.g.
-\fI/usr/share/icons/hicolor\fR, and writes a
-\fIicon\-theme.cache\fR
-containing cached information about the icons in the directory tree below the given directory.
+\FCindex\&.theme\F[], e\&.g\&.
+\FC/usr/share/icons/hicolor\F[], and writes a
+\FCicon\-theme\&.cache\F[]
+containing cached information about the icons in the directory tree below the given directory\&.
 .PP
 GTK+ can use the cache files created by
 \fBgtk\-update\-icon\-cache\fR
-to avoid a lot of system call and disk seek overhead when the application starts. Since the format of the cache files allows them to be mmap()ed shared between multiple applications, the overall memory consumption is reduced as well.
-.SH "OPTIONS"
-.TP
+to avoid a lot of system call and disk seek overhead when the application starts\&. Since the format of the cache files allows them to be mmap()ed shared between multiple applications, the overall memory consumption is reduced as well\&.
+.SH "Options"
+.PP
 \-\-force, \-f
-Overwrite an existing cache file even if it appears to be uptodate.
-.TP
+.RS 4
+Overwrite an existing cache file even if it appears to be uptodate\&.
+.RE
+.PP
 \-\-ignore\-theme\-index, \-t
-Don't check for the existence of 'index.theme' in the icon theme directory. Without this option,
+.RS 4
+Don\'t check for the existence of \'index\&.theme\' in the icon theme directory\&. Without this option,
 \fBgtk\-update\-icon\-cache\fR
-refuses to create an icon cache in a directory which does not appear to be the toplevel directory of an icon theme.
-.TP
+refuses to create an icon cache in a directory which does not appear to be the toplevel directory of an icon theme\&.
+.RE
+.PP
 \-\-index\-only, \-i
-Don't include image data in the cache.
-.TP
+.RS 4
+Don\'t include image data in the cache\&.
+.RE
+.PP
 \-\-source, \-c
+.RS 4
 Output a C header file declaring a constant
 \fIname\fR
-with the contents of the icon cache.
-.TP
+with the contents of the icon cache\&.
+.RE
+.PP
 \-\-quiet, \-q
-Turn off verbose output.
-.SH "BUGS"
+.RS 4
+Turn off verbose output\&.
+.RE
+.PP
+\-\-validate, \-v
+.RS 4
+Validate existing icon cache\&.
+.RE
+.SH "Bugs"
 .PP
-None known yet.
+None known yet\&.
