+ /* we're not collating and we've reached a sheet from the wrong sheet set */
+ if (!export->collate &&
+ ((export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 != 0) ||
+ (export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 != 1))) {
+
+ do {
+ export->page_count++;
+ export->collated++;
+ export->sheet = 1 + (export->page_count - 1) / export->pages_per_sheet;
+
+ if (export->collated == export->collated_copies) {
+ export->collated = 0;
+
+ if (!export_print_inc_page (export)) {
+ ev_document_doc_mutex_lock ();
+ ev_file_exporter_end (EV_FILE_EXPORTER (op->document));
+ ev_document_doc_mutex_unlock ();
+
+ close (export->fd);
+ export->fd = -1;
+
+ update_progress (export);
+
+ export_print_done (export);
+ return FALSE;
+ }
+ }
+
+ } while ((export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 != 0) ||
+ (export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 != 1));
+
+ }
+
+ if (export->pages_per_sheet == 1 ||
+ (export->page_count % export->pages_per_sheet == 1 &&
+ (export->page_set == GTK_PAGE_SET_ALL ||
+ (export->page_set == GTK_PAGE_SET_EVEN && export->sheet % 2 == 0) ||
+ (export->page_set == GTK_PAGE_SET_ODD && export->sheet % 2 == 1)))) {