From 66b9c59214b0a0c4f2464f9ff37fb52e3cb9824a Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Wed, 12 Mar 2008 01:34:34 +0000 Subject: [PATCH] Use g_ascii_formatd when formatting custom paper sizes, since cups doesn't 2008-03-11 Matthias Clasen * modules/printbackends/cups/gtkprintbackendcups.c: Use g_ascii_formatd when formatting custom paper sizes, since cups doesn't handle , as decimal separator. (#521548) svn path=/trunk/; revision=19762 --- ChangeLog | 6 ++++++ .../printbackends/cups/gtkprintbackendcups.c | 17 +++++++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index adcd947e03..8290f87e91 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-03-11 Matthias Clasen + + * modules/printbackends/cups/gtkprintbackendcups.c: Use + g_ascii_formatd when formatting custom paper sizes, since + cups doesn't handle , as decimal separator. (#521548) + 2008-03-11 Tor Lillqvist Bug 469868 - Filenames with colon ":" are not saved correctly diff --git a/modules/printbackends/cups/gtkprintbackendcups.c b/modules/printbackends/cups/gtkprintbackendcups.c index c7cf677807..a310bc3e65 100644 --- a/modules/printbackends/cups/gtkprintbackendcups.c +++ b/modules/printbackends/cups/gtkprintbackendcups.c @@ -2464,10 +2464,12 @@ cups_printer_get_options (GtkPrinter *printer, else { gchar *custom_name; + char width[G_ASCII_DTOSTR_BUF_SIZE]; + char height[G_ASCII_DTOSTR_BUF_SIZE]; - custom_name = g_strdup_printf (_("Custom %.2fx%.2f"), - gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS), - gtk_paper_size_get_height (paper_size, GTK_UNIT_POINTS)); + g_ascii_formatd (width, sizeof (width), "%.2f", gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS)); + g_ascii_formatd (height, sizeof (height), "%.2f", gtk_paper_size_get_height (paper_size, GTK_UNIT_POINTS)); + custom_name = g_strdup_printf (_("Custom %sx%s"), width, height); strncpy (option->defchoice, custom_name, PPD_MAX_NAME); g_free (custom_name); } @@ -2977,9 +2979,12 @@ cups_printer_prepare_for_print (GtkPrinter *printer, gtk_print_settings_set (settings, "cups-PageSize", ppd_paper_name); else { - char *custom_name = g_strdup_printf ("Custom.%2fx%.2f", - gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS), - gtk_paper_size_get_height (paper_size, GTK_UNIT_POINTS)); + char width[G_ASCII_DTOSTR_BUF_SIZE]; + char height[G_ASCII_DTOSTR_BUF_SIZE]; + + g_ascii_formatd (width, sizeof (width), "%.2f", gtk_paper_size_get_width (paper_size, GTK_UNIT_POINTS)); + g_ascii_formatd (height, sizeof (height), "%.2f", gtk_paper_size_get_height (paper_size, GTK_UNIT_POINTS)); + char *custom_name = g_strdup_printf (("Custom.%sx%s"), width, height); gtk_print_settings_set (settings, "cups-PageSize", custom_name); g_free (custom_name); }