From 0561f1fd6075d82f35b2799e80bc2ddd243576c1 Mon Sep 17 00:00:00 2001 From: Joe Marcus Clarke Date: Sat, 8 Aug 2009 21:35:28 +0000 Subject: Merge a patch from GNOME git to fix a crash with printing. Reported by: Kevin Oberman --- math/gnumeric/Makefile | 2 +- math/gnumeric/files/patch-print-crash | 69 +++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 math/gnumeric/files/patch-print-crash (limited to 'math') diff --git a/math/gnumeric/Makefile b/math/gnumeric/Makefile index 1afa80cef5c0..f7481b778564 100644 --- a/math/gnumeric/Makefile +++ b/math/gnumeric/Makefile @@ -8,7 +8,7 @@ PORTNAME= gnumeric PORTVERSION= 1.9.9 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= math gnome MASTER_SITES= GNOME DIST_SUBDIR= gnome2 diff --git a/math/gnumeric/files/patch-print-crash b/math/gnumeric/files/patch-print-crash new file mode 100644 index 000000000000..dc9e7c4930d7 --- /dev/null +++ b/math/gnumeric/files/patch-print-crash @@ -0,0 +1,69 @@ +From f4d534730632873339ad0a16419edc835b9c771a Mon Sep 17 00:00:00 2001 +From: Andreas J. Guelzow +Date: Mon, 22 Jun 2009 23:54:08 +0000 +Subject: Fix printing crash. [#586672] + +2009-06-22 Andreas J. Guelzow + + * src/print-info.c (gnm_page_breaks_clean): we can't and don't need + to clean a non-existing breaks array. + * src/print.c (compute_sheet_pages): fix sense of test anc combine + code +--- +--- src/print-info.c ++++ src/print-info.c +@@ -1441,6 +1441,10 @@ void + gnm_page_breaks_clean (GnmPageBreaks *breaks) + { + guint i; ++ ++ if (breaks == NULL) ++ return; ++ + for (i = 0; i < breaks->details->len; i++) { + GnmPageBreak *pbreak = &g_array_index (breaks->details, + GnmPageBreak, i); +diff --git a/src/print.c b/src/print.c +index 2c0afd4..5fb815a 100644 +--- src/print.c ++++ src/print.c +@@ -953,9 +953,18 @@ compute_sheet_pages (GtkPrintContext *context, + repeat_left_start = repeat_left_use ? r.start.col : 0; + repeat_left_end = repeat_left_use ? r.end.col : 0; + +- if (pi->ignore_pb) { +- gnm_page_breaks_clean (pinfo->page_breaks.h); +- gnm_page_breaks_clean (pinfo->page_breaks.v); ++ if (!pi->ignore_pb) { ++ if (pinfo->page_breaks.h == NULL) ++ print_info_set_breaks (pinfo, ++ gnm_page_breaks_new (FALSE)); ++ else ++ gnm_page_breaks_clean (pinfo->page_breaks.h); ++ if (pinfo->page_breaks.v == NULL) ++ print_info_set_breaks (pinfo, ++ gnm_page_breaks_new (TRUE)); ++ else ++ gnm_page_breaks_clean (pinfo->page_breaks.v); ++ + } + + if (pinfo->scaling.type == PRINT_SCALE_FIT_PAGES) { +@@ -995,15 +1004,6 @@ compute_sheet_pages (GtkPrintContext *context, + usable_x = page_width / px; + usable_y = page_height / py; + +- if (!pi->ignore_pb) { +- if (pinfo->page_breaks.h == NULL) +- print_info_set_breaks (pinfo, +- gnm_page_breaks_new (FALSE)); +- if (pinfo->page_breaks.v == NULL) +- print_info_set_breaks (pinfo, +- gnm_page_breaks_new (TRUE)); +- } +- + paginate (&column_pagination, sheet, r.start.col, r.end.col, + usable_x - row_header_width, + repeat_left_use, repeat_left_start, repeat_left_end, +-- +cgit v0.8.2 -- cgit v1.2.3