Bug 729924 - Crash trying to print in OSX

This commit is contained in:
John Ralls
2014-05-25 16:58:16 -07:00
committed by Matthias Clasen
parent d0c0d657b4
commit 825e035833

View File

@@ -4839,25 +4839,33 @@ cups_printer_get_options (GtkPrinter *printer,
paper_size = gtk_page_setup_get_paper_size (page_setup);
option = ppdFindOption (ppd_file, "PageSize");
ppd_name = gtk_paper_size_get_ppd_name (paper_size);
if (ppd_name)
strncpy (option->defchoice, ppd_name, PPD_MAX_NAME);
else
if (option)
{
gchar *custom_name;
char width[G_ASCII_DTOSTR_BUF_SIZE];
char height[G_ASCII_DTOSTR_BUF_SIZE];
ppd_name = gtk_paper_size_get_ppd_name (paper_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));
/* Translators: this format is used to display a custom paper
* size. The two placeholders are replaced with the width and height
* in points. E.g: "Custom 230.4x142.9"
*/
custom_name = g_strdup_printf (_("Custom %sx%s"), width, height);
strncpy (option->defchoice, custom_name, PPD_MAX_NAME);
g_free (custom_name);
if (ppd_name)
strncpy (option->defchoice, ppd_name, PPD_MAX_NAME);
else
{
gchar *custom_name;
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));
/* Translators: this format is used to display a custom
* paper size. The two placeholders are replaced with
* the width and height in points. E.g: "Custom
* 230.4x142.9"
*/
custom_name = g_strdup_printf (_("Custom %sx%s"), width, height);
strncpy (option->defchoice, custom_name, PPD_MAX_NAME);
g_free (custom_name);
}
}
for (i = 0; i < ppd_file->num_groups; i++)