c91a7b
diff -ruN paps-0.6.6.orig/src/libpaps.c paps-0.6.6/src/libpaps.c
c91a7b
--- paps-0.6.6.orig/src/libpaps.c	2007-03-27 20:25:00.000000000 +0900
c91a7b
+++ paps-0.6.6/src/libpaps.c	2007-03-27 20:31:15.000000000 +0900
c91a7b
@@ -28,6 +28,7 @@
c91a7b
 #include <freetype/ftglyph.h>
c91a7b
 #include <freetype/ftoutln.h>
c91a7b
 #include <errno.h>
c91a7b
+#include <locale.h>
c91a7b
 #include <stdlib.h>
c91a7b
 #include <stdio.h>
c91a7b
 #include <string.h>
c91a7b
@@ -263,7 +264,7 @@
c91a7b
 			 );
c91a7b
   
c91a7b
   /* Outline support */
c91a7b
-  g_string_append_printf(paps->header,
c91a7b
+  paps_string_append_printf(paps->header,
c91a7b
 			 "/conicto {\n"
c91a7b
 			 "    /to_y exch def\n"
c91a7b
 			 "    /to_x exch def\n"
c91a7b
@@ -691,3 +692,28 @@
c91a7b
   return points * 1.0 / 72 * PAPS_DPI * PANGO_SCALE;
c91a7b
 }
c91a7b
 
c91a7b
+void
c91a7b
+paps_string_append_printf(GString *string,
c91a7b
+			  const gchar *fmt,
c91a7b
+			  ...)
c91a7b
+{
c91a7b
+	gchar *buffer, *lc_numeric;
c91a7b
+	gint length;
c91a7b
+	va_list args;
c91a7b
+
c91a7b
+	va_start(args, fmt);
c91a7b
+
c91a7b
+	lc_numeric = g_strdup(setlocale(LC_NUMERIC, NULL));
c91a7b
+	setlocale(LC_NUMERIC, "C");
c91a7b
+
c91a7b
+	length = g_vasprintf(&buffer, fmt, args);
c91a7b
+	g_string_append_len(string, buffer, length);
c91a7b
+
c91a7b
+	setlocale(LC_NUMERIC, lc_numeric);
c91a7b
+
c91a7b
+	g_free(buffer);
c91a7b
+	g_free(lc_numeric);
c91a7b
+
c91a7b
+	va_end(args);
c91a7b
+}
c91a7b
+
c91a7b
diff -ruN paps-0.6.6.orig/src/libpaps.h paps-0.6.6/src/libpaps.h
c91a7b
--- paps-0.6.6.orig/src/libpaps.h	2007-03-27 20:25:00.000000000 +0900
c91a7b
+++ paps-0.6.6/src/libpaps.h	2007-03-27 20:31:02.000000000 +0900
c91a7b
@@ -124,4 +124,8 @@
c91a7b
  */
c91a7b
 double paps_postscript_points_to_pango(double points);
c91a7b
 
c91a7b
+void paps_string_append_printf(GString *string,
c91a7b
+			       const gchar *fmt,
c91a7b
+			       ...) G_GNUC_PRINTF (2, 3);
c91a7b
+
c91a7b
 #endif /* LIBPAPS */
c91a7b
diff -ruN paps-0.6.6.orig/src/paps.c paps-0.6.6/src/paps.c
c91a7b
--- paps-0.6.6.orig/src/paps.c	2007-03-27 20:25:00.000000000 +0900
c91a7b
+++ paps-0.6.6/src/paps.c	2007-03-27 20:31:33.000000000 +0900
c91a7b
@@ -992,7 +992,7 @@
c91a7b
   y_top = page_layout->page_height - page_layout->top_margin - page_layout->header_height - page_layout->header_sep / 2;
c91a7b
   y_bot = page_layout->bottom_margin - page_layout->footer_height;
c91a7b
 
c91a7b
-  g_string_append_printf(ps_pages_string,
c91a7b
+  paps_string_append_printf(ps_pages_string,
c91a7b
                          "%f %f moveto %f %f lineto 0 setlinewidth stroke\n",
c91a7b
                          x_pos, y_top,
c91a7b
                          x_pos, y_bot);
c91a7b
@@ -1154,7 +1154,7 @@
c91a7b
 
c91a7b
   /* header separator */
c91a7b
   line_pos = page_layout->page_height - page_layout->top_margin - page_layout->header_height - page_layout->header_sep / 2;
c91a7b
-  g_string_append_printf(ps_pages_string,
c91a7b
+  paps_string_append_printf(ps_pages_string,
c91a7b
                          "%d %f moveto %d %f lineto 0 setlinewidth stroke\n",
c91a7b
                          page_layout->left_margin, line_pos,
c91a7b
                          page_layout->page_width - page_layout->right_margin, line_pos);