Use cairo_show_glyphs for rendering text

A small step for now.
diff --git a/clients/terminal.c b/clients/terminal.c
index 0b63737..9e77bee 100644
--- a/clients/terminal.c
+++ b/clients/terminal.c
@@ -753,16 +753,13 @@
 	int top_margin, side_margin;
 	int row, col;
 	union utf8_char *p_row;
-	struct utf8_chars {
-		union utf8_char c;
-		char null;
-	} toShow;
 	struct decoded_attr attr;
 	int text_x, text_y;
 	cairo_surface_t *surface;
 	double d;
-
-	toShow.null = 0;
+	int num_glyphs;
+	cairo_scaled_font_t *font;
+	cairo_glyph_t glyphs[256], *g;
 
 	window_get_child_allocation(terminal->window, &allocation);
 
@@ -824,9 +821,15 @@
 				cairo_stroke(cr);
 			}
 			cairo_move_to(cr, text_x, text_y);
-			
-			toShow.c = p_row[col];
-			cairo_show_text(cr, (char *) toShow.c.byte);
+
+			g = glyphs;
+			num_glyphs = ARRAY_LENGTH(glyphs);
+			font = cairo_get_scaled_font (cr);
+			cairo_scaled_font_text_to_glyphs (font, text_x, text_y,
+							  (char *) p_row[col].byte, 4,
+							  &g, &num_glyphs,
+							  NULL, NULL, NULL);
+			cairo_show_glyphs (cr, g, num_glyphs);
 		}
 	}