summaryrefslogtreecommitdiff
path: root/office/epdfview/epdfview-0.1.6-print-segfault.patch
diff options
context:
space:
mode:
Diffstat (limited to 'office/epdfview/epdfview-0.1.6-print-segfault.patch')
-rw-r--r--office/epdfview/epdfview-0.1.6-print-segfault.patch95
1 files changed, 95 insertions, 0 deletions
diff --git a/office/epdfview/epdfview-0.1.6-print-segfault.patch b/office/epdfview/epdfview-0.1.6-print-segfault.patch
new file mode 100644
index 0000000000..498febbd5f
--- /dev/null
+++ b/office/epdfview/epdfview-0.1.6-print-segfault.patch
@@ -0,0 +1,95 @@
+--- src/PrintPter.cxx (revision 262)
++++ src/PrintPter.cxx (revision 281)
+@@ -231,17 +231,24 @@
+ view.clearPageSizeList ();
+ int pageSizeToSelect = 0;
+- ppd_choice_t *pageSizeChoice = pageSizeOption->choices;
+- for ( int currentSize = 0 ;
+- currentSize < pageSizeOption->num_choices ;
+- ++currentSize, ++pageSizeChoice )
+- {
+- const gchar *sizeName = pageSizeChoice->text;
+- const gchar *sizeValue = pageSizeChoice->choice;
+-
+- view.addPageSize (_(sizeName), sizeValue);
+- if ( pageSizeChoice->marked )
++ if ( 0 != pageSizeOption )
++ {
++ ppd_choice_t *pageSizeChoice = pageSizeOption->choices;
++ for ( int currentSize = 0 ;
++ currentSize < pageSizeOption->num_choices ;
++ ++currentSize, ++pageSizeChoice )
+ {
+- pageSizeToSelect = currentSize;
++ const gchar *sizeName = pageSizeChoice->text;
++ const gchar *sizeValue = pageSizeChoice->choice;
++
++ view.addPageSize (_(sizeName), sizeValue);
++ if ( pageSizeChoice->marked )
++ {
++ pageSizeToSelect = currentSize;
++ }
+ }
++ }
++ else
++ {
++ view.addPageSize (_("A4"), "A4");
+ }
+ view.selectPageSize (pageSizeToSelect);
+@@ -252,17 +259,24 @@
+ view.clearResolutionList ();
+ int resolutionToSelect = 0;
+- ppd_choice_t *resolutionChoice = resolutionOption->choices;
+- for ( int currentRes = 0 ;
+- currentRes < resolutionOption->num_choices ;
+- ++currentRes, ++resolutionChoice )
+- {
+- const gchar *resName = resolutionChoice->text;
+- const gchar *resValue = resolutionChoice->choice;
+-
+- view.addResolution (_(resName), resValue);
+- if ( resolutionChoice->marked )
++ if ( 0 != resolutionOption )
++ {
++ ppd_choice_t *resolutionChoice = resolutionOption->choices;
++ for ( int currentRes = 0 ;
++ currentRes < resolutionOption->num_choices ;
++ ++currentRes, ++resolutionChoice )
+ {
+- resolutionToSelect = currentRes;
++ const gchar *resName = resolutionChoice->text;
++ const gchar *resValue = resolutionChoice->choice;
++
++ view.addResolution (_(resName), resValue);
++ if ( resolutionChoice->marked )
++ {
++ resolutionToSelect = currentRes;
++ }
+ }
++ }
++ else
++ {
++ view.addResolution (_("300 DPI"), "300x300dpi");
+ }
+ view.selectResolution (resolutionToSelect);
+@@ -272,7 +286,7 @@
+ ppdFindOption (printerPPD, "ColorModel");
+ view.clearColorModelList ();
++ int colorModelToSelect = 0;
+ if ( NULL != colorModelOption )
+ {
+- int colorModelToSelect = 0;
+ ppd_choice_t *colorModelChoice = colorModelOption->choices;
+ for ( int currentColor = 0 ;
+@@ -289,5 +303,4 @@
+ }
+ }
+- view.selectColorModel (colorModelToSelect);
+ }
+ else
+@@ -295,4 +308,5 @@
+ view.addColorModel (_("Grayscale"), "Gray");
+ }
++ view.selectColorModel (colorModelToSelect);
+ ppdClose (printerPPD);
+ }