Tim Waugh cc4876
diff -up a2ps-4.14/lib/psgen.c.mb a2ps-4.14/lib/psgen.c
Tim Waugh cc4876
--- a2ps-4.14/lib/psgen.c.mb	2008-09-24 15:29:30.000000000 +0100
Tim Waugh cc4876
+++ a2ps-4.14/lib/psgen.c	2008-09-24 15:29:30.000000000 +0100
Tim Waugh cc4876
@@ -96,7 +96,8 @@ ps_escape_char (a2ps_job * job, uchar c,
Tim Waugh cc4876
   /* Printable, but not 7bit clean caracters */
Tim Waugh 5b0204
   if (encoding_char_exists (job->encoding, job->status->face, c)
Tim Waugh 5b0204
       && ((0177 < c) || (c < 040))) {
Tim Waugh 5b0204
-    sprintf ((char *)res, "%s\\%o", res, c);
Tim Waugh 5b0204
+    char *p = res + strlen (res);
Tim Waugh 5b0204
+    sprintf (p, "\\%o", c);
Tim Waugh 5b0204
     return 1;
Tim Waugh 5b0204
   }
Tim Waugh 5b0204
 
Tim Waugh cc4876
@@ -893,8 +894,8 @@ ps_print_char (a2ps_job * job, int c, en
Tim Waugh 5b0204
   if (c > 127 && encoding_get_composite_flag (job->encoding) &&
Tim Waugh 5b0204
       job->status->face != Symbol) {
Tim Waugh 5b0204
     if (mb_flag) {
Tim Waugh 5b0204
-        nchars = ps_escape_char (job, mb_flag, buf) + 
Tim Waugh 5b0204
-	         ps_escape_char (job, c, buf);
Tim Waugh 5b0204
+        nchars = ps_escape_char (job, mb_flag, buf);
Tim Waugh 5b0204
+	nchars += ps_escape_char (job, c, buf);
Tim Waugh 5b0204
 	job->status->wx += char_composite_WX(job, c);
Tim Waugh 5b0204
 	job->status->column += nchars;
Tim Waugh 5b0204
 	if (line_full) {