Index: vte/src/vtedraw.h
===================================================================
--- vte.orig/src/vtedraw.h	2008-06-21 18:17:21.000000000 -0700
+++ vte/src/vtedraw.h	2008-06-21 18:18:20.000000000 -0700
@@ -80,6 +80,7 @@
 	int (*get_text_ascent)(struct _vte_draw *);
 	int (*get_char_width)(struct _vte_draw *, gunichar c, int columns);
 	gboolean (*get_using_fontconfig)(struct _vte_draw *);
+	gboolean (*has_bold_font)(struct _vte_draw *);
 	void (*draw_text)(struct _vte_draw *,
 			  struct _vte_draw_text_request *, gsize,
 			  GdkColor *, guchar);
Index: vte/src/vteft2.c
===================================================================
--- vte.orig/src/vteft2.c	2008-06-21 18:17:21.000000000 -0700
+++ vte/src/vteft2.c	2008-06-21 18:18:20.000000000 -0700
@@ -272,6 +272,12 @@
 }
 
 static gboolean
+_vte_ft2_has_bold_font (struct _vte_draw *draw)
+{
+	return FALSE;
+}
+
+static gboolean
 _vte_ft2_get_using_fontconfig(struct _vte_draw *draw)
 {
 	return TRUE;
@@ -417,6 +423,7 @@
 	_vte_ft2_get_text_ascent,
 	_vte_ft2_get_char_width,
 	_vte_ft2_get_using_fontconfig,
+	_vte_ft2_has_bold_font,
 	_vte_ft2_draw_text,
 	_vte_ft2_draw_char,
 	_vte_ft2_draw_has_char,
Index: vte/src/vtegl.c
===================================================================
--- vte.orig/src/vtegl.c	2008-06-21 18:17:21.000000000 -0700
+++ vte/src/vtegl.c	2008-06-21 18:18:20.000000000 -0700
@@ -419,6 +419,12 @@
 }
 
 static gboolean
+_vte_gl_has_bold_font (struct _vte_draw *draw)
+{
+	return FALSE;
+}
+
+static gboolean
 _vte_gl_get_using_fontconfig(struct _vte_draw *draw)
 {
 	return TRUE;
@@ -603,6 +609,7 @@
 	_vte_gl_get_text_ascent,
 	_vte_gl_get_char_width,
 	_vte_gl_get_using_fontconfig,
+	_vte_gl_has_bold_font,
 	_vte_gl_draw_text,
 	_vte_gl_draw_char,
 	_vte_gl_draw_has_char,
Index: vte/src/vtepango.c
===================================================================
--- vte.orig/src/vtepango.c	2008-06-21 18:17:21.000000000 -0700
+++ vte/src/vtepango.c	2008-06-21 18:18:20.000000000 -0700
@@ -327,6 +327,12 @@
 }
 
 static gboolean
+_vte_pango_has_bold_font (struct _vte_draw *draw)
+{
+	return FALSE;
+}
+
+static gboolean
 _vte_pango_get_using_fontconfig(struct _vte_draw *draw)
 {
 	return TRUE;
@@ -445,6 +451,7 @@
 	_vte_pango_get_text_ascent,
 	_vte_pango_get_char_width,
 	_vte_pango_get_using_fontconfig,
+	_vte_pango_has_bold_font,
 	_vte_pango_draw_text,
 	_vte_pango_draw_char,
 	_vte_pango_draw_has_char,
Index: vte/src/vtepangox.c
===================================================================
--- vte.orig/src/vtepangox.c	2008-06-21 18:17:21.000000000 -0700
+++ vte/src/vtepangox.c	2008-06-21 18:18:20.000000000 -0700
@@ -374,6 +374,12 @@
 }
 
 static gboolean
+_vte_pango_x_has_bold_font (struct _vte_draw *draw)
+{
+	return FALSE;
+}
+
+static gboolean
 _vte_pango_x_get_using_fontconfig(struct _vte_draw *draw)
 {
 	return FALSE;
@@ -494,6 +500,7 @@
 	_vte_pango_x_get_text_ascent,
 	_vte_pango_x_get_char_width,
 	_vte_pango_x_get_using_fontconfig,
+	_vte_pango_x_has_bold_font,
 	_vte_pango_x_draw_text,
 	_vte_pango_x_draw_char,
 	_vte_pango_x_draw_has_char,
Index: vte/src/vtexft.c
===================================================================
--- vte.orig/src/vtexft.c	2008-06-21 18:17:21.000000000 -0700
+++ vte/src/vtexft.c	2008-06-21 18:18:34.000000000 -0700
@@ -831,6 +831,15 @@
 }
 
 static gboolean
+_vte_xft_has_bold_font (struct _vte_draw *draw)
+{
+	struct _vte_xft_data *data;
+	data = (struct _vte_xft_data*) draw->impl_data;
+
+	return (data->font_bold != NULL);
+}
+
+static gboolean
 _vte_xft_get_using_fontconfig (struct _vte_draw *draw)
 {
 	return TRUE;
@@ -1063,6 +1072,7 @@
 	_vte_xft_get_text_ascent,
 	_vte_xft_get_char_width,
 	_vte_xft_get_using_fontconfig,
+	_vte_xft_has_bold_font,
 	_vte_xft_draw_text,
 	_vte_xft_draw_char,
 	_vte_xft_draw_has_char,
