Lines Matching refs:dsc

66 #define DSC_START(dsc)  ((dsc)->data_offset + (dsc)->data_index - (dsc)->line_length)  argument
67 #define DSC_END(dsc) ((dsc)->data_offset + (dsc)->data_index) argument
80 static void * dsc_memalloc(CDSC *dsc, size_t size);
81 static void dsc_memfree(CDSC*dsc, void *ptr);
82 static CDSC * dsc_init2(CDSC *dsc);
83 static void dsc_reset(CDSC *dsc);
85 static int dsc_read_line(CDSC *dsc);
86 static int dsc_read_doseps(CDSC *dsc);
87 static int dsc_read_macbin(CDSC *dsc);
88 static int dsc_read_applesingle(CDSC *dsc);
89 static char * dsc_alloc_string(CDSC *dsc, const char *str, int len);
90 static char * dsc_add_line(CDSC *dsc, const char *line, unsigned int len);
100 static void dsc_unknown(CDSC *dsc);
102 static int dsc_parse_pages(CDSC *dsc);
103 static int dsc_parse_bounding_box(CDSC *dsc, CDSCBBOX** pbbox, int offset);
104 static int dsc_parse_float_bounding_box(CDSC *dsc, CDSCFBBOX** pfbbox, int offset);
105 static int dsc_parse_orientation(CDSC *dsc, unsigned int *porientation,
107 static int dsc_parse_order(CDSC *dsc);
108 static int dsc_parse_media(CDSC *dsc, const CDSCMEDIA **page_media);
109 static int dsc_parse_document_media(CDSC *dsc);
110 static int dsc_parse_viewing_orientation(CDSC *dsc, CDSCCTM **pctm);
111 static int dsc_parse_page(CDSC *dsc);
112 static void dsc_save_line(CDSC *dsc);
113 static int dsc_scan_type(CDSC *dsc);
114 static int dsc_scan_comments(CDSC *dsc);
115 static int dsc_scan_preview(CDSC *dsc);
116 static int dsc_scan_defaults(CDSC *dsc);
117 static int dsc_scan_prolog(CDSC *dsc);
118 static int dsc_scan_setup(CDSC *dsc);
119 static int dsc_scan_page(CDSC *dsc);
120 static int dsc_scan_trailer(CDSC *dsc);
121 static int dsc_error(CDSC *dsc, unsigned int explanation,
123 static int dsc_dcs2_fixup(CDSC *dsc);
124 static int dsc_parse_platefile(CDSC *dsc);
125 static int dsc_parse_dcs1plate(CDSC *dsc);
126 static CDSCCOLOUR * dsc_find_colour(CDSC *dsc, const char *colourname);
127 static int dsc_parse_process_colours(CDSC *dsc);
128 static int dsc_parse_custom_colours(CDSC *dsc);
129 static int dsc_parse_cmyk_custom_colour(CDSC *dsc);
130 static int dsc_parse_rgb_custom_colour(CDSC *dsc);
208 CDSC *dsc = (CDSC *)malloc(sizeof(CDSC)); in dsc_init() local
209 if (dsc == NULL) in dsc_init()
211 memset(dsc, 0, sizeof(CDSC)); in dsc_init()
212 dsc->caller_data = caller_data; in dsc_init()
213 dsc->ref_count = 0; in dsc_init()
214 dsc_ref(dsc); in dsc_init()
216 return dsc_init2(dsc); in dsc_init()
227 CDSC *dsc = (CDSC *)memalloc(sizeof(CDSC), closure_data); in dsc_init_with_alloc() local
228 if (dsc == NULL) in dsc_init_with_alloc()
230 memset(dsc, 0, sizeof(CDSC)); in dsc_init_with_alloc()
231 dsc->caller_data = caller_data; in dsc_init_with_alloc()
233 dsc->memalloc = memalloc; in dsc_init_with_alloc()
234 dsc->memfree = memfree; in dsc_init_with_alloc()
235 dsc->mem_closure_data = closure_data; in dsc_init_with_alloc()
236 dsc->ref_count = 0; in dsc_init_with_alloc()
237 dsc_ref(dsc); in dsc_init_with_alloc()
239 return dsc_init2(dsc); in dsc_init_with_alloc()
244 dsc_free(CDSC *dsc) in dsc_free() argument
246 if (dsc == NULL) in dsc_free()
248 dsc_reset(dsc); in dsc_free()
249 dsc_memfree(dsc, dsc); in dsc_free()
259 dsc_ref(CDSC *dsc) in dsc_ref() argument
261 return ++(dsc->ref_count); in dsc_ref()
265 dsc_unref(CDSC *dsc) in dsc_unref() argument
267 if (dsc->ref_count <= 0) in dsc_unref()
269 dsc->ref_count--; in dsc_unref()
270 if (dsc->ref_count == 0) { in dsc_unref()
271 dsc_free(dsc); in dsc_unref()
274 return dsc->ref_count; in dsc_unref()
281 dsc_set_length(CDSC *dsc, DSC_OFFSET len) in dsc_set_length() argument
283 dsc->file_length = len; in dsc_set_length()
294 dsc_scan_data(CDSC *dsc, const char *data, int length) in dsc_scan_data() argument
299 if (dsc == NULL) in dsc_scan_data()
302 if (dsc->id == CDSC_NOTDSC) in dsc_scan_data()
304 dsc->id = CDSC_OK; in dsc_scan_data()
305 if (dsc->eof) in dsc_scan_data()
310 dsc->eof = TRUE; in dsc_scan_data()
314 if (dsc->id == CDSC_NOTDSC) in dsc_scan_data()
319 if (dsc->data_length > CDSC_DATA_LENGTH/2) { in dsc_scan_data()
320 memmove(dsc->data, dsc->data + dsc->data_index, in dsc_scan_data()
321 dsc->data_length - dsc->data_index); in dsc_scan_data()
322 dsc->data_offset += dsc->data_index; in dsc_scan_data()
323 dsc->data_length -= dsc->data_index; in dsc_scan_data()
324 dsc->data_index = 0; in dsc_scan_data()
327 bytes_read = min(length, (int)(CDSC_DATA_LENGTH - dsc->data_length)); in dsc_scan_data()
328 memcpy(dsc->data + dsc->data_length, data, bytes_read); in dsc_scan_data()
329 dsc->data_length += bytes_read; in dsc_scan_data()
333 if (dsc->scan_section == scan_none) { in dsc_scan_data()
334 code = dsc_scan_type(dsc); in dsc_scan_data()
340 dsc->id = code; in dsc_scan_data()
344 dsc->id = CDSC_NOTDSC; in dsc_scan_data()
348 while ((code = dsc_read_line(dsc)) > 0) { in dsc_scan_data()
349 if (dsc->id == CDSC_NOTDSC) in dsc_scan_data()
351 if (dsc->file_length && in dsc_scan_data()
352 (dsc->data_offset + dsc->data_index > dsc->file_length)) { in dsc_scan_data()
356 if (dsc->doseps_end && in dsc_scan_data()
357 (dsc->data_offset + dsc->data_index > dsc->doseps_end)) { in dsc_scan_data()
363 if (dsc->eof) in dsc_scan_data()
365 if (dsc->skip_document) in dsc_scan_data()
367 if (dsc->skip_lines) in dsc_scan_data()
369 if (IS_DSC(dsc->line, "%%BeginData:")) in dsc_scan_data()
371 if (IS_DSC(dsc->line, "%%BeginBinary:")) in dsc_scan_data()
373 if (IS_DSC(dsc->line, "%%EndDocument")) in dsc_scan_data()
375 if (IS_DSC(dsc->line, "%%EndData")) in dsc_scan_data()
377 if (IS_DSC(dsc->line, "%%EndBinary")) in dsc_scan_data()
381 switch (dsc->scan_section) { in dsc_scan_data()
383 code = dsc_scan_comments(dsc); in dsc_scan_data()
387 code = dsc_scan_preview(dsc); in dsc_scan_data()
391 code = dsc_scan_defaults(dsc); in dsc_scan_data()
395 code = dsc_scan_prolog(dsc); in dsc_scan_data()
399 code = dsc_scan_setup(dsc); in dsc_scan_data()
403 code = dsc_scan_page(dsc); in dsc_scan_data()
407 code = dsc_scan_trailer(dsc); in dsc_scan_data()
425 dsc->id = CDSC_NOTDSC; in dsc_scan_data()
431 return (code < 0) ? code : dsc->id; in dsc_scan_data()
436 dsc_fixup(CDSC *dsc) in dsc_fixup() argument
442 if (dsc->id == CDSC_NOTDSC) in dsc_fixup()
446 dsc_scan_data(dsc, NULL, 0); in dsc_fixup()
449 if (dsc->eof && in dsc_fixup()
450 (dsc->skip_lines || dsc->skip_bytes || dsc->skip_document)) { in dsc_fixup()
451 switch (dsc->scan_section) { in dsc_fixup()
453 dsc->endcomments = DSC_END(dsc); in dsc_fixup()
456 dsc->endpreview = DSC_END(dsc); in dsc_fixup()
459 dsc->enddefaults = DSC_END(dsc); in dsc_fixup()
462 dsc->endprolog = DSC_END(dsc); in dsc_fixup()
465 dsc->endsetup = DSC_END(dsc); in dsc_fixup()
468 if (dsc->page_count) in dsc_fixup()
469 dsc->page[dsc->page_count-1].end = DSC_END(dsc); in dsc_fixup()
473 dsc->endtrailer = DSC_END(dsc); in dsc_fixup()
479 if (dsc->page_count && (dsc->page[0].begin != dsc->endsetup) in dsc_fixup()
480 && (dsc->endsetup != dsc->beginsetup)) { in dsc_fixup()
481 dsc->endsetup = dsc->page[0].begin; in dsc_fixup()
482 dsc_debug_print(dsc, "Warning: code included between setup and first page\n"); in dsc_fixup()
487 if (dsc->page_count && (dsc->begintrailer != 0) && in dsc_fixup()
488 (dsc->page[dsc->page_count-1].end != dsc->begintrailer)) { in dsc_fixup()
489 dsc_debug_print(dsc, "Ignoring earlier misplaced trailer\n"); in dsc_fixup()
490 dsc_debug_print(dsc, "and extending last page to start of trailer\n"); in dsc_fixup()
491 dsc->page[dsc->page_count-1].end = dsc->begintrailer; in dsc_fixup()
499 last = &dsc->endcomments; in dsc_fixup()
500 dsc_section_join(dsc->beginpreview, &dsc->endpreview, &last); in dsc_fixup()
501 dsc_section_join(dsc->begindefaults, &dsc->enddefaults, &last); in dsc_fixup()
502 dsc_section_join(dsc->beginprolog, &dsc->endprolog, &last); in dsc_fixup()
503 dsc_section_join(dsc->beginsetup, &dsc->endsetup, &last); in dsc_fixup()
504 for (i=0; i<dsc->page_count; i++) in dsc_fixup()
505 dsc_section_join(dsc->page[i].begin, &dsc->page[i].end, &last); in dsc_fixup()
506 if (dsc->begintrailer) in dsc_fixup()
507 *last = dsc->begintrailer; in dsc_fixup()
509 if ((dsc->page_pages == 0) && (dsc->page_count == 1)) { in dsc_fixup()
512 dsc->page_pages = dsc->page_count; in dsc_fixup()
516 if ((dsc->page_count != dsc->page_pages)) { in dsc_fixup()
517 int rc = dsc_error(dsc, CDSC_MESSAGE_PAGES_WRONG, NULL, 0); in dsc_fixup()
521 dsc->page_pages = dsc->page_count; in dsc_fixup()
530 if (dsc->epsf && (dsc->bbox == (CDSCBBOX *)NULL)) { in dsc_fixup()
532 int rc = dsc_error(dsc, CDSC_MESSAGE_EPS_NO_BBOX, NULL, 0); in dsc_fixup()
539 dsc->epsf = FALSE; in dsc_fixup()
545 if (dsc->epsf && ((dsc->page_count > 1) || (dsc->page_pages > 1))) { in dsc_fixup()
546 int rc = dsc_error(dsc, CDSC_MESSAGE_EPS_PAGES, NULL, 0); in dsc_fixup()
553 dsc->epsf = FALSE; in dsc_fixup()
561 dsc_dcs2_fixup(dsc); in dsc_fixup()
563 if ((dsc->media_count == 1) && (dsc->page_media == NULL)) { in dsc_fixup()
566 dsc->page_media = dsc->media[0]; in dsc_fixup()
569 if ((dsc->media_count != 0) && (dsc->page_media == NULL)) { in dsc_fixup()
570 int rc = dsc_error(dsc, CDSC_MESSAGE_NO_MEDIA, NULL, 0); in dsc_fixup()
574 dsc->page_media = dsc->media[0]; in dsc_fixup()
585 for (i=0; i<dsc->page_count; i++) { in dsc_fixup()
586 if (strlen(dsc->page[i].label) == 0) { in dsc_fixup()
588 if ((dsc->page[i].label = dsc_alloc_string(dsc, buf, (int)strlen(buf))) in dsc_fixup()
601 dsc_set_error_function(CDSC *dsc, in dsc_set_error_function() argument
602 int (*fn)(void *caller_data, CDSC *dsc, in dsc_set_error_function()
605 dsc->dsc_error_fn = fn; in dsc_set_error_function()
611 dsc_set_debug_function(CDSC *dsc, in dsc_set_debug_function() argument
614 dsc->debug_print_fn = debug_fn; in dsc_set_debug_function()
620 dsc_add_page(CDSC *dsc, int ordinal, char *label) in dsc_add_page() argument
622 dsc->page[dsc->page_count].ordinal = ordinal; in dsc_add_page()
623 dsc->page[dsc->page_count].label = in dsc_add_page()
624 dsc_alloc_string(dsc, label, (int)strlen(label)+1); in dsc_add_page()
625 dsc->page[dsc->page_count].begin = 0; in dsc_add_page()
626 dsc->page[dsc->page_count].end = 0; in dsc_add_page()
627 dsc->page[dsc->page_count].orientation = CDSC_ORIENT_UNKNOWN; in dsc_add_page()
628 dsc->page[dsc->page_count].media = NULL; in dsc_add_page()
629 dsc->page[dsc->page_count].bbox = NULL; in dsc_add_page()
630 dsc->page[dsc->page_count].viewing_orientation = NULL; in dsc_add_page()
631 dsc->page[dsc->page_count].crop_box = NULL; in dsc_add_page()
633 dsc->page_count++; in dsc_add_page()
634 if (dsc->page_count >= dsc->page_chunk_length) { in dsc_add_page()
635 CDSCPAGE *new_page = (CDSCPAGE *)dsc_memalloc(dsc, in dsc_add_page()
636 (CDSC_PAGE_CHUNK+dsc->page_count) * sizeof(CDSCPAGE)); in dsc_add_page()
639 memcpy(new_page, dsc->page, in dsc_add_page()
640 dsc->page_count * sizeof(CDSCPAGE)); in dsc_add_page()
641 dsc_memfree(dsc, dsc->page); in dsc_add_page()
642 dsc->page= new_page; in dsc_add_page()
643 dsc->page_chunk_length = CDSC_PAGE_CHUNK+dsc->page_count; in dsc_add_page()
651 dsc_add_media(CDSC *dsc, CDSCMEDIA *media) in dsc_add_media() argument
657 newmedia_array = (CDSCMEDIA **)dsc_memalloc(dsc, in dsc_add_media()
658 (dsc->media_count + 1) * sizeof(CDSCMEDIA *)); in dsc_add_media()
661 if (dsc->media != NULL) { in dsc_add_media()
662 memcpy(newmedia_array, dsc->media, in dsc_add_media()
663 dsc->media_count * sizeof(CDSCMEDIA *)); in dsc_add_media()
664 dsc_memfree(dsc, dsc->media); in dsc_add_media()
666 dsc->media = newmedia_array; in dsc_add_media()
669 newmedia = dsc->media[dsc->media_count] = in dsc_add_media()
670 (CDSCMEDIA *)dsc_memalloc(dsc, sizeof(CDSCMEDIA)); in dsc_add_media()
681 dsc->media_count++; in dsc_add_media()
684 newmedia->name = dsc_alloc_string(dsc, media->name, in dsc_add_media()
693 newmedia->colour = dsc_alloc_string(dsc, media->colour, in dsc_add_media()
699 newmedia->type = dsc_alloc_string(dsc, media->type, in dsc_add_media()
707 newmedia->mediabox = (CDSCBBOX *)dsc_memalloc(dsc, sizeof(CDSCBBOX)); in dsc_add_media()
718 dsc_set_page_bbox(CDSC *dsc, unsigned int page_number, in dsc_set_page_bbox() argument
722 if (page_number >= dsc->page_count) in dsc_set_page_bbox()
724 bbox = dsc->page[page_number].bbox; in dsc_set_page_bbox()
726 dsc->page[page_number].bbox = bbox = in dsc_set_page_bbox()
727 (CDSCBBOX *)dsc_memalloc(dsc, sizeof(CDSCBBOX)); in dsc_set_page_bbox()
742 dsc_memalloc(CDSC *dsc, size_t size) in dsc_memalloc() argument
744 if (dsc->memalloc) in dsc_memalloc()
745 return dsc->memalloc(size, dsc->mem_closure_data); in dsc_memalloc()
750 dsc_memfree(CDSC*dsc, void *ptr) in dsc_memfree() argument
752 if (dsc->memfree) in dsc_memfree()
753 dsc->memfree(ptr, dsc->mem_closure_data); in dsc_memfree()
760 dsc_init2(CDSC *dsc) in dsc_init2() argument
762 dsc_reset(dsc); in dsc_init2()
764 dsc->string_head = (CDSCSTRING *)dsc_memalloc(dsc, sizeof(CDSCSTRING)); in dsc_init2()
765 if (dsc->string_head == NULL) { in dsc_init2()
766 dsc_free(dsc); in dsc_init2()
769 dsc->string = dsc->string_head; in dsc_init2()
770 dsc->string->next = NULL; in dsc_init2()
771 dsc->string->data = (char *)dsc_memalloc(dsc, CDSC_STRING_CHUNK); in dsc_init2()
772 if (dsc->string->data == NULL) { in dsc_init2()
773 dsc_free(dsc); in dsc_init2()
776 dsc->string->index = 0; in dsc_init2()
777 dsc->string->length = CDSC_STRING_CHUNK; in dsc_init2()
779 dsc->page = (CDSCPAGE *)dsc_memalloc(dsc, CDSC_PAGE_CHUNK * sizeof(CDSCPAGE)); in dsc_init2()
780 if (dsc->page == NULL) { in dsc_init2()
781 dsc_free(dsc); in dsc_init2()
784 dsc->page_chunk_length = CDSC_PAGE_CHUNK; in dsc_init2()
785 dsc->page_count = 0; in dsc_init2()
787 dsc->line = NULL; in dsc_init2()
788 dsc->data_length = 0; in dsc_init2()
789 dsc->data_index = dsc->data_length; in dsc_init2()
791 return dsc; in dsc_init2()
795 dsc_reset(CDSC *dsc) in dsc_reset() argument
799 dsc->dsc = FALSE; in dsc_reset()
800 dsc->ctrld = FALSE; in dsc_reset()
801 dsc->pjl = FALSE; in dsc_reset()
802 dsc->epsf = FALSE; in dsc_reset()
803 dsc->pdf = FALSE; in dsc_reset()
804 dsc->epsf = FALSE; in dsc_reset()
805 dsc->preview = CDSC_NOPREVIEW; in dsc_reset()
806 dsc->dsc_version = NULL; /* stored in dsc->string */ in dsc_reset()
807 dsc->language_level = 0; in dsc_reset()
808 dsc->document_data = CDSC_DATA_UNKNOWN; in dsc_reset()
809 dsc->begincomments = 0; in dsc_reset()
810 dsc->endcomments = 0; in dsc_reset()
811 dsc->beginpreview = 0; in dsc_reset()
812 dsc->endpreview = 0; in dsc_reset()
813 dsc->begindefaults = 0; in dsc_reset()
814 dsc->enddefaults = 0; in dsc_reset()
815 dsc->beginprolog = 0; in dsc_reset()
816 dsc->endprolog = 0; in dsc_reset()
817 dsc->beginsetup = 0; in dsc_reset()
818 dsc->endsetup = 0; in dsc_reset()
819 dsc->begintrailer = 0; in dsc_reset()
820 dsc->endtrailer = 0; in dsc_reset()
822 for (i=0; i<dsc->page_count; i++) { in dsc_reset()
826 if (dsc->page[i].bbox) in dsc_reset()
827 dsc_memfree(dsc, dsc->page[i].bbox); in dsc_reset()
828 if (dsc->page[i].viewing_orientation) in dsc_reset()
829 dsc_memfree(dsc, dsc->page[i].viewing_orientation); in dsc_reset()
830 if (dsc->page[i].crop_box) in dsc_reset()
831 dsc_memfree(dsc, dsc->page[i].crop_box); in dsc_reset()
833 if (dsc->page) in dsc_reset()
834 dsc_memfree(dsc, dsc->page); in dsc_reset()
835 dsc->page = NULL; in dsc_reset()
837 dsc->page_count = 0; in dsc_reset()
838 dsc->page_pages = 0; in dsc_reset()
839 dsc->page_order = CDSC_ORDER_UNKNOWN; in dsc_reset()
840 dsc->page_orientation = CDSC_ORIENT_UNKNOWN; in dsc_reset()
841 if (dsc->viewing_orientation) in dsc_reset()
842 dsc_memfree(dsc, dsc->viewing_orientation); in dsc_reset()
843 dsc->viewing_orientation = NULL; in dsc_reset()
845 if (dsc->media) { in dsc_reset()
846 for (i=0; i<dsc->media_count; i++) { in dsc_reset()
847 if (dsc->media[i]) { in dsc_reset()
848 if (dsc->media[i]->mediabox) in dsc_reset()
849 dsc_memfree(dsc, dsc->media[i]->mediabox); in dsc_reset()
850 dsc_memfree(dsc, dsc->media[i]); in dsc_reset()
853 dsc_memfree(dsc, dsc->media); in dsc_reset()
855 dsc->media_count = 0; in dsc_reset()
856 dsc->media = NULL; in dsc_reset()
860 dsc->page_media = NULL; in dsc_reset()
862 if (dsc->bbox) in dsc_reset()
863 dsc_memfree(dsc, dsc->bbox); in dsc_reset()
864 dsc->bbox = NULL; in dsc_reset()
865 if (dsc->page_bbox) in dsc_reset()
866 dsc_memfree(dsc, dsc->page_bbox); in dsc_reset()
867 dsc->page_bbox = NULL; in dsc_reset()
868 if (dsc->doseps) in dsc_reset()
869 dsc_memfree(dsc, dsc->doseps); in dsc_reset()
870 dsc->doseps = NULL; in dsc_reset()
872 dsc->dsc_title = NULL; in dsc_reset()
873 dsc->dsc_creator = NULL; in dsc_reset()
874 dsc->dsc_date = NULL; in dsc_reset()
875 dsc->dsc_for = NULL; in dsc_reset()
877 dsc->max_error = DSC_MAX_ERROR; in dsc_reset()
878 dsc->severity = dsc_severity; in dsc_reset()
882 dsc->id = CDSC_OK; in dsc_reset()
883 dsc->scan_section = scan_none; in dsc_reset()
884 dsc->doseps_end = 0; in dsc_reset()
885 dsc->page_chunk_length = 0; in dsc_reset()
886 dsc->file_length = 0; in dsc_reset()
887 dsc->skip_document = 0; in dsc_reset()
888 dsc->skip_bytes = 0; in dsc_reset()
889 dsc->skip_lines = 0; in dsc_reset()
890 dsc->skip_pjl = 0; in dsc_reset()
891 dsc->begin_font_count = 0; in dsc_reset()
892 dsc->begin_feature_count = 0; in dsc_reset()
893 dsc->begin_resource_count = 0; in dsc_reset()
894 dsc->begin_procset_count = 0; in dsc_reset()
896 dsc->data_length = 0; in dsc_reset()
897 dsc->data_index = 0; in dsc_reset()
898 dsc->data_offset = 0; in dsc_reset()
900 dsc->eof = 0; in dsc_reset()
902 dsc->line = 0; in dsc_reset()
903 dsc->line_length = 0; in dsc_reset()
904 dsc->eol = 0; in dsc_reset()
905 dsc->last_cr = FALSE; in dsc_reset()
906 dsc->line_count = 1; in dsc_reset()
907 dsc->long_line = FALSE; in dsc_reset()
908 memset(dsc->last_line, 0, sizeof(dsc->last_line)); in dsc_reset()
910 dsc->string = dsc->string_head; in dsc_reset()
911 while (dsc->string != (CDSCSTRING *)NULL) { in dsc_reset()
912 if (dsc->string->data) in dsc_reset()
913 dsc_memfree(dsc, dsc->string->data); in dsc_reset()
914 dsc->string_head = dsc->string; in dsc_reset()
915 dsc->string = dsc->string->next; in dsc_reset()
916 dsc_memfree(dsc, dsc->string_head); in dsc_reset()
918 dsc->string_head = NULL; in dsc_reset()
919 dsc->string = NULL; in dsc_reset()
924 if (dsc->hires_bbox) in dsc_reset()
925 dsc_memfree(dsc, dsc->hires_bbox); in dsc_reset()
926 dsc->hires_bbox = NULL; in dsc_reset()
927 if (dsc->crop_box) in dsc_reset()
928 dsc_memfree(dsc, dsc->crop_box); in dsc_reset()
929 dsc->crop_box = NULL; in dsc_reset()
931 if (dsc->dcs2) { in dsc_reset()
933 this_dcs = dsc->dcs2; in dsc_reset()
937 dsc_memfree(dsc, this_dcs); in dsc_reset()
940 dsc->dcs2 = NULL; in dsc_reset()
942 if (dsc->colours) { in dsc_reset()
944 this_colour = dsc->colours; in dsc_reset()
948 dsc_memfree(dsc, this_colour); in dsc_reset()
951 dsc->colours = NULL; in dsc_reset()
954 if (dsc->macbin) in dsc_reset()
955 dsc_memfree(dsc, dsc->macbin); in dsc_reset()
956 dsc->macbin = NULL; in dsc_reset()
978 dsc_read_line(CDSC *dsc) in dsc_read_line() argument
981 dsc->line = NULL; in dsc_read_line()
983 if (dsc->eof) { in dsc_read_line()
985 dsc->line = dsc->data + dsc->data_index; in dsc_read_line()
986 dsc->line_length = dsc->data_length - dsc->data_index; in dsc_read_line()
987 dsc->data_index = dsc->data_length; in dsc_read_line()
988 return dsc->line_length; in dsc_read_line()
991 if (dsc->file_length && in dsc_read_line()
992 (dsc->data_offset + dsc->data_index >= dsc->file_length)) { in dsc_read_line()
995 dsc->line = dsc->data + dsc->data_index; in dsc_read_line()
996 dsc->line_length = dsc->data_length - dsc->data_index; in dsc_read_line()
997 dsc->data_index = dsc->data_length; in dsc_read_line()
998 return dsc->line_length; in dsc_read_line()
1001 if (dsc->doseps_end && in dsc_read_line()
1002 (dsc->data_offset + dsc->data_index >= dsc->doseps_end)) { in dsc_read_line()
1005 dsc->line = dsc->data + dsc->data_index; in dsc_read_line()
1006 dsc->line_length = dsc->data_length - dsc->data_index; in dsc_read_line()
1007 dsc->data_index = dsc->data_length; in dsc_read_line()
1008 return dsc->line_length; in dsc_read_line()
1012 if (dsc->skip_bytes) { in dsc_read_line()
1013 int cnt = min(dsc->skip_bytes, in dsc_read_line()
1014 (int)(dsc->data_length - dsc->data_index)); in dsc_read_line()
1015 dsc->skip_bytes -= cnt; in dsc_read_line()
1016 dsc->data_index += cnt; in dsc_read_line()
1017 if (dsc->skip_bytes != 0) in dsc_read_line()
1022 dsc->line = dsc->data + dsc->data_index; in dsc_read_line()
1023 last = dsc->data + dsc->data_length; in dsc_read_line()
1024 if (dsc->data_index == dsc->data_length) { in dsc_read_line()
1025 dsc->line_length = 0; in dsc_read_line()
1028 if (dsc->eol) { in dsc_read_line()
1030 dsc->line_count++; in dsc_read_line()
1031 if (dsc->skip_lines) in dsc_read_line()
1032 dsc->skip_lines--; in dsc_read_line()
1036 if (dsc->last_cr && dsc->line[0] == '\n') { in dsc_read_line()
1037 dsc->data_index++; in dsc_read_line()
1038 dsc->line++; in dsc_read_line()
1040 dsc->last_cr = FALSE; in dsc_read_line()
1043 dsc->eol = FALSE; in dsc_read_line()
1044 for (p = dsc->line; p < last; p++) { in dsc_read_line()
1050 dsc->last_cr = TRUE; /* we might need to skip \n */ in dsc_read_line()
1051 dsc->eol = TRUE; /* dsc->line is a complete line */ in dsc_read_line()
1056 dsc->eol = TRUE; /* dsc->line is a complete line */ in dsc_read_line()
1060 dsc->eol = TRUE; in dsc_read_line()
1063 if (dsc->eol == FALSE) { in dsc_read_line()
1065 if (dsc->data_length - dsc->data_index < sizeof(dsc->data)/2) { in dsc_read_line()
1067 dsc->line_length = 0; in dsc_read_line()
1071 dsc->data_index += dsc->line_length = (int)(p - dsc->line); in dsc_read_line()
1072 } while (dsc->skip_lines && dsc->line_length); in dsc_read_line()
1074 if (dsc->line_length == 0) in dsc_read_line()
1077 if ((dsc->line[0]=='%') && (dsc->line[1]=='%')) { in dsc_read_line()
1079 if ((dsc->skip_document) && dsc->line_length && in dsc_read_line()
1080 COMPARE(dsc->line, "%%EndDocument")) { in dsc_read_line()
1081 dsc->skip_document--; in dsc_read_line()
1085 if (COMPARE(dsc->line, "%%BeginData:")) { in dsc_read_line()
1094 cnt = dsc->line_length; in dsc_read_line()
1095 if (dsc->line_length > sizeof(begindata)-1) in dsc_read_line()
1097 memcpy(begindata, dsc->line, cnt); in dsc_read_line()
1108 int rc = dsc_error(dsc, CDSC_MESSAGE_INCORRECT_USAGE, in dsc_read_line()
1109 dsc->line, dsc->line_length); in dsc_read_line()
1123 if (dsc->skip_lines == 0) { in dsc_read_line()
1125 dsc->skip_lines = cnt+1; in dsc_read_line()
1132 if (dsc->skip_bytes == 0) { in dsc_read_line()
1134 dsc->skip_bytes = cnt; in dsc_read_line()
1141 else if (COMPARE(dsc->line, "%%BeginBinary:")) { in dsc_read_line()
1143 int cnt = dsc_get_int(dsc->line + 14, in dsc_read_line()
1144 dsc->line_length - 14, NULL); in dsc_read_line()
1145 if (dsc->skip_bytes == 0) { in dsc_read_line()
1147 dsc->skip_bytes = cnt; in dsc_read_line()
1152 if ((dsc->line[0]=='%') && (dsc->line[1]=='%') && in dsc_read_line()
1153 COMPARE(dsc->line, "%%BeginDocument:") ) { in dsc_read_line()
1155 dsc->skip_document++; in dsc_read_line()
1158 if (!dsc->long_line && (dsc->line_length > DSC_LINE_LENGTH)) { in dsc_read_line()
1159 dsc_error(dsc, CDSC_MESSAGE_LONG_LINE, dsc->line, dsc->line_length); in dsc_read_line()
1160 dsc->long_line = TRUE; in dsc_read_line()
1163 return dsc->line_length; in dsc_read_line()
1168 dsc_save_line(CDSC *dsc) in dsc_save_line() argument
1170 int len = min(sizeof(dsc->last_line), dsc->line_length); in dsc_save_line()
1171 memcpy(dsc->last_line, dsc->line, len); in dsc_save_line()
1176 dsc_unknown(CDSC *dsc) in dsc_unknown() argument
1178 if (dsc->debug_print_fn) { in dsc_unknown()
1180 unsigned int length = min(DSC_LINE_LENGTH-1, dsc->line_length); in dsc_unknown()
1182 dsc_scan_section_name[dsc->scan_section], dsc->line_count); in dsc_unknown()
1183 dsc_debug_print(dsc, line); in dsc_unknown()
1184 strncpy(line, dsc->line, length); in dsc_unknown()
1186 dsc_debug_print(dsc, line); in dsc_unknown()
1187 dsc_debug_print(dsc, "\n"); in dsc_unknown()
1256 dsc_read_doseps(CDSC *dsc) in dsc_read_doseps() argument
1258 unsigned char *line = (unsigned char *)dsc->line; in dsc_read_doseps()
1259 if ((dsc->doseps = (CDSCDOSEPS *)dsc_memalloc(dsc, sizeof(CDSCDOSEPS))) == NULL) in dsc_read_doseps()
1262 dsc->doseps->ps_begin = dsc_get_dword(line+4); in dsc_read_doseps()
1263 dsc->doseps->ps_length = dsc_get_dword(line+8); in dsc_read_doseps()
1264 dsc->doseps->wmf_begin = dsc_get_dword(line+12); in dsc_read_doseps()
1265 dsc->doseps->wmf_length = dsc_get_dword(line+16); in dsc_read_doseps()
1266 dsc->doseps->tiff_begin = dsc_get_dword(line+20); in dsc_read_doseps()
1267 dsc->doseps->tiff_length = dsc_get_dword(line+24); in dsc_read_doseps()
1268 dsc->doseps->checksum = dsc_get_word(line+28); in dsc_read_doseps()
1270 if (dsc->file_length && in dsc_read_doseps()
1271 (dsc->doseps->ps_begin + dsc->doseps->ps_length > dsc->file_length)) { in dsc_read_doseps()
1277 dsc->doseps->ps_length = in dsc_read_doseps()
1278 (GSDWORD)(dsc->file_length - dsc->doseps->ps_begin); in dsc_read_doseps()
1281 dsc->doseps_end = dsc->doseps->ps_begin + dsc->doseps->ps_length; in dsc_read_doseps()
1284 dsc->data_index -= dsc->line_length - 30; in dsc_read_doseps()
1286 dsc->line_count = 0; in dsc_read_doseps()
1288 dsc->skip_bytes = dsc->doseps->ps_begin - 30; in dsc_read_doseps()
1290 if (dsc->doseps->tiff_begin) in dsc_read_doseps()
1291 dsc->preview = CDSC_TIFF; in dsc_read_doseps()
1292 if (dsc->doseps->wmf_begin) in dsc_read_doseps()
1293 dsc->preview = CDSC_WMF; in dsc_read_doseps()
1299 dsc_read_macbin(CDSC *dsc) in dsc_read_macbin() argument
1301 unsigned char *line = (unsigned char *)dsc->line; in dsc_read_macbin()
1302 if ((dsc->macbin = in dsc_read_macbin()
1303 (CDSCMACBIN *)dsc_memalloc(dsc, sizeof(CDSCMACBIN))) == NULL) in dsc_read_macbin()
1306 dsc->macbin->data_begin = 128; in dsc_read_macbin()
1307 dsc->macbin->data_length = dsc_get_bigendian_dword(line+83); in dsc_read_macbin()
1308 dsc->macbin->resource_begin = in dsc_read_macbin()
1309 (dsc->macbin->data_begin + dsc->macbin->data_length + 127 ) & ~127; in dsc_read_macbin()
1310 dsc->macbin->resource_length = dsc_get_bigendian_dword(line+87); in dsc_read_macbin()
1312 if (dsc->file_length && in dsc_read_macbin()
1313 (((dsc->macbin->resource_begin + dsc->macbin->resource_length in dsc_read_macbin()
1314 + 127) & ~127) > dsc->file_length)) { in dsc_read_macbin()
1318 dsc->doseps_end = dsc->macbin->data_begin + dsc->macbin->data_length; in dsc_read_macbin()
1321 dsc->data_index -= dsc->line_length - 128; in dsc_read_macbin()
1323 dsc->line_count = 0; in dsc_read_macbin()
1325 dsc->preview = CDSC_PICT; in dsc_read_macbin()
1331 dsc_read_applesingle(CDSC *dsc) in dsc_read_applesingle() argument
1341 unsigned char *line = (unsigned char *)dsc->line; in dsc_read_applesingle()
1342 if ((dsc->macbin = in dsc_read_applesingle()
1343 (CDSCMACBIN *)dsc_memalloc(dsc, sizeof(CDSCMACBIN))) == NULL) in dsc_read_applesingle()
1353 dsc->macbin->data_begin = Offset; in dsc_read_applesingle()
1354 dsc->macbin->data_length = Length; in dsc_read_applesingle()
1358 dsc->macbin->resource_begin = Offset; in dsc_read_applesingle()
1359 dsc->macbin->resource_length = Length; in dsc_read_applesingle()
1363 if (dsc->file_length && in dsc_read_applesingle()
1364 (dsc->macbin->resource_begin + dsc->macbin->resource_length in dsc_read_applesingle()
1365 > dsc->file_length)) { in dsc_read_applesingle()
1368 if (dsc->file_length && in dsc_read_applesingle()
1369 (dsc->macbin->data_begin + dsc->macbin->data_length in dsc_read_applesingle()
1370 > dsc->file_length)) { in dsc_read_applesingle()
1374 dsc->doseps_end = dsc->macbin->data_begin + dsc->macbin->data_length; in dsc_read_applesingle()
1378 dsc->data_index -= dsc->line_length - header; in dsc_read_applesingle()
1380 dsc->line_count = 0; in dsc_read_applesingle()
1382 dsc->skip_bytes = dsc->macbin->data_begin - header; in dsc_read_applesingle()
1384 dsc->preview = CDSC_PICT; in dsc_read_applesingle()
1390 dsc_parse_pages(CDSC *dsc) in dsc_parse_pages() argument
1396 if ((dsc->page_pages != 0) && (dsc->scan_section == scan_comments)) { in dsc_parse_pages()
1397 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_COMMENT, dsc->line, in dsc_parse_pages()
1398 dsc->line_length); in dsc_parse_pages()
1407 if ((dsc->page_pages != 0) && (dsc->scan_section == scan_trailer)) { in dsc_parse_pages()
1408 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_TRAILER, dsc->line, in dsc_parse_pages()
1409 dsc->line_length); in dsc_parse_pages()
1419 n = IS_DSC(dsc->line, "%%+") ? 3 : 8; in dsc_parse_pages()
1420 while (IS_WHITE(dsc->line[n])) in dsc_parse_pages()
1422 p = dsc->line + n; in dsc_parse_pages()
1424 if (dsc->scan_section != scan_comments) in dsc_parse_pages()
1425 dsc_unknown(dsc); in dsc_parse_pages()
1427 int rc = dsc_error(dsc, CDSC_MESSAGE_ATEND, in dsc_parse_pages()
1428 dsc->line, dsc->line_length); in dsc_parse_pages()
1443 if (dsc->scan_section != scan_comments) in dsc_parse_pages()
1444 dsc_unknown(dsc); in dsc_parse_pages()
1449 ip = dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_pages()
1452 dsc->page_pages = ip; in dsc_parse_pages()
1453 io = dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_pages()
1457 if (dsc->page_order == CDSC_ORDER_UNKNOWN) in dsc_parse_pages()
1460 dsc->page_order = CDSC_DESCEND; in dsc_parse_pages()
1463 dsc->page_order = CDSC_SPECIAL; in dsc_parse_pages()
1466 dsc->page_order = CDSC_ASCEND; in dsc_parse_pages()
1472 int rc = dsc_error(dsc, CDSC_MESSAGE_INCORRECT_USAGE, dsc->line, in dsc_parse_pages()
1473 dsc->line_length); in dsc_parse_pages()
1488 dsc_parse_bounding_box(CDSC *dsc, CDSCBBOX** pbbox, int offset) in dsc_parse_bounding_box() argument
1495 if ((*pbbox != NULL) && (dsc->scan_section == scan_comments)) { in dsc_parse_bounding_box()
1496 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_COMMENT, dsc->line, in dsc_parse_bounding_box()
1497 dsc->line_length); in dsc_parse_bounding_box()
1506 if ((*pbbox != NULL) && (dsc->scan_section == scan_pages)) { in dsc_parse_bounding_box()
1507 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_COMMENT, dsc->line, in dsc_parse_bounding_box()
1508 dsc->line_length); in dsc_parse_bounding_box()
1517 if ((*pbbox != NULL) && (dsc->scan_section == scan_trailer)) { in dsc_parse_bounding_box()
1518 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_TRAILER, dsc->line, in dsc_parse_bounding_box()
1519 dsc->line_length); in dsc_parse_bounding_box()
1529 dsc_memfree(dsc, *pbbox); in dsc_parse_bounding_box()
1535 while (IS_WHITE(dsc->line[offset])) in dsc_parse_bounding_box()
1537 p = dsc->line + offset; in dsc_parse_bounding_box()
1540 if (dsc->scan_section == scan_trailer) in dsc_parse_bounding_box()
1541 dsc_unknown(dsc); in dsc_parse_bounding_box()
1543 int rc = dsc_error(dsc, CDSC_MESSAGE_ATEND, dsc->line, in dsc_parse_bounding_box()
1544 dsc->line_length); in dsc_parse_bounding_box()
1559 if (dsc->scan_section == scan_trailer) in dsc_parse_bounding_box()
1560 dsc_unknown(dsc); in dsc_parse_bounding_box()
1567 llx = dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_bounding_box()
1570 lly = dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_bounding_box()
1573 urx = dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_bounding_box()
1576 ury = dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_bounding_box()
1578 *pbbox = (CDSCBBOX *)dsc_memalloc(dsc, sizeof(CDSCBBOX)); in dsc_parse_bounding_box()
1587 int rc = dsc_error(dsc, CDSC_MESSAGE_BBOX, dsc->line, in dsc_parse_bounding_box()
1588 dsc->line_length); in dsc_parse_bounding_box()
1594 fllx = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_bounding_box()
1597 flly = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_bounding_box()
1600 furx = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_bounding_box()
1603 fury = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_bounding_box()
1605 *pbbox = (CDSCBBOX *)dsc_memalloc(dsc, sizeof(CDSCBBOX)); in dsc_parse_bounding_box()
1625 dsc_parse_float_bounding_box(CDSC *dsc, CDSCFBBOX** pbbox, int offset) in dsc_parse_float_bounding_box() argument
1633 if ((*pbbox != NULL) && (dsc->scan_section == scan_comments)) { in dsc_parse_float_bounding_box()
1634 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_COMMENT, dsc->line, in dsc_parse_float_bounding_box()
1635 dsc->line_length); in dsc_parse_float_bounding_box()
1644 if ((*pbbox != NULL) && (dsc->scan_section == scan_pages)) { in dsc_parse_float_bounding_box()
1645 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_COMMENT, dsc->line, in dsc_parse_float_bounding_box()
1646 dsc->line_length); in dsc_parse_float_bounding_box()
1655 if ((*pbbox != NULL) && (dsc->scan_section == scan_trailer)) { in dsc_parse_float_bounding_box()
1656 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_TRAILER, dsc->line, in dsc_parse_float_bounding_box()
1657 dsc->line_length); in dsc_parse_float_bounding_box()
1667 dsc_memfree(dsc, *pbbox); in dsc_parse_float_bounding_box()
1673 while (IS_WHITE(dsc->line[offset])) in dsc_parse_float_bounding_box()
1675 p = dsc->line + offset; in dsc_parse_float_bounding_box()
1678 if (dsc->scan_section == scan_trailer) in dsc_parse_float_bounding_box()
1679 dsc_unknown(dsc); in dsc_parse_float_bounding_box()
1681 int rc = dsc_error(dsc, CDSC_MESSAGE_ATEND, dsc->line, in dsc_parse_float_bounding_box()
1682 dsc->line_length); in dsc_parse_float_bounding_box()
1697 if (dsc->scan_section == scan_trailer) in dsc_parse_float_bounding_box()
1698 dsc_unknown(dsc); in dsc_parse_float_bounding_box()
1705 fllx = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_float_bounding_box()
1708 flly = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_float_bounding_box()
1711 furx = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_float_bounding_box()
1714 fury = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_float_bounding_box()
1716 *pbbox = (CDSCFBBOX *)dsc_memalloc(dsc, sizeof(CDSCFBBOX)); in dsc_parse_float_bounding_box()
1729 dsc_parse_orientation(CDSC *dsc, unsigned int *porientation, int offset) in dsc_parse_orientation() argument
1732 if ((dsc->page_orientation != CDSC_ORIENT_UNKNOWN) && in dsc_parse_orientation()
1733 (dsc->scan_section == scan_comments)) { in dsc_parse_orientation()
1734 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_COMMENT, dsc->line, in dsc_parse_orientation()
1735 dsc->line_length); in dsc_parse_orientation()
1744 if ((dsc->page_orientation != CDSC_ORIENT_UNKNOWN) && in dsc_parse_orientation()
1745 (dsc->scan_section == scan_trailer)) { in dsc_parse_orientation()
1746 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_TRAILER, dsc->line, in dsc_parse_orientation()
1747 dsc->line_length); in dsc_parse_orientation()
1756 p = dsc->line + offset; in dsc_parse_orientation()
1760 if (dsc->scan_section == scan_trailer) in dsc_parse_orientation()
1761 dsc_unknown(dsc); in dsc_parse_orientation()
1763 int rc = dsc_error(dsc, CDSC_MESSAGE_ATEND, in dsc_parse_orientation()
1764 dsc->line, dsc->line_length); in dsc_parse_orientation()
1779 if (dsc->scan_section == scan_trailer) in dsc_parse_orientation()
1780 dsc_unknown(dsc); in dsc_parse_orientation()
1791 dsc_unknown(dsc); in dsc_parse_orientation()
1797 dsc_parse_order(CDSC *dsc) in dsc_parse_order() argument
1800 if ((dsc->page_order != CDSC_ORDER_UNKNOWN) && in dsc_parse_order()
1801 (dsc->scan_section == scan_comments)) { in dsc_parse_order()
1802 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_COMMENT, dsc->line, in dsc_parse_order()
1803 dsc->line_length); in dsc_parse_order()
1812 if ((dsc->page_order != CDSC_ORDER_UNKNOWN) && in dsc_parse_order()
1813 (dsc->scan_section == scan_trailer)) { in dsc_parse_order()
1814 int rc = dsc_error(dsc, CDSC_MESSAGE_DUP_TRAILER, dsc->line, in dsc_parse_order()
1815 dsc->line_length); in dsc_parse_order()
1825 p = dsc->line + (IS_DSC(dsc->line, "%%+") ? 3 : 13); in dsc_parse_order()
1829 if (dsc->scan_section == scan_trailer) in dsc_parse_order()
1830 dsc_unknown(dsc); in dsc_parse_order()
1832 int rc = dsc_error(dsc, CDSC_MESSAGE_ATEND, dsc->line, in dsc_parse_order()
1833 dsc->line_length); in dsc_parse_order()
1848 if (dsc->scan_section == scan_trailer) in dsc_parse_order()
1849 dsc_unknown(dsc); in dsc_parse_order()
1854 dsc->page_order = CDSC_ASCEND; in dsc_parse_order()
1857 dsc->page_order = CDSC_DESCEND; in dsc_parse_order()
1860 dsc->page_order = CDSC_SPECIAL; in dsc_parse_order()
1863 dsc_unknown(dsc); in dsc_parse_order()
1869 dsc_parse_media(CDSC *dsc, const CDSCMEDIA **page_media) in dsc_parse_media() argument
1872 int n = IS_DSC(dsc->line, "%%+") ? 3 : 12; /* %%PageMedia: */ in dsc_parse_media()
1876 dsc->line+n, dsc->line_length-n, NULL)) { in dsc_parse_media()
1877 for (i=0; i<dsc->media_count; i++) { in dsc_parse_media()
1878 if (dsc->media[i]->name && in dsc_parse_media()
1879 (dsc_stricmp(media_name, dsc->media[i]->name) == 0)) { in dsc_parse_media()
1880 *page_media = dsc->media[i]; in dsc_parse_media()
1885 dsc_unknown(dsc); in dsc_parse_media()
1891 dsc_parse_document_media(CDSC *dsc) in dsc_parse_document_media() argument
1897 if (IS_DSC(dsc->line, "%%DocumentMedia:")) in dsc_parse_document_media()
1899 else if (IS_DSC(dsc->line, "%%+")) in dsc_parse_document_media()
1906 for (i=n; i<dsc->line_length; i++) { in dsc_parse_document_media()
1907 if (!IS_WHITE_OR_EOL(dsc->line[i])) { in dsc_parse_document_media()
1921 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_document_media()
1924 lmedia.width = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_document_media()
1927 lmedia.height = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_document_media()
1930 lmedia.weight = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_document_media()
1934 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_document_media()
1938 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_document_media()
1941 dsc_unknown(dsc); /* we didn't get all fields */ in dsc_parse_document_media()
1943 if (dsc_add_media(dsc, &lmedia)) in dsc_parse_document_media()
1954 dsc_parse_viewing_orientation(CDSC *dsc, CDSCCTM **pctm) in dsc_parse_viewing_orientation() argument
1960 dsc_memfree(dsc, *pctm); in dsc_parse_viewing_orientation()
1964 n = IS_DSC(dsc->line, "%%+") ? 3 : 21; /* %%ViewingOrientation: */ in dsc_parse_viewing_orientation()
1965 while (IS_WHITE(dsc->line[n])) in dsc_parse_viewing_orientation()
1969 ctm.xx = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_viewing_orientation()
1972 ctm.xy = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_viewing_orientation()
1975 ctm.yx = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_viewing_orientation()
1978 ctm.yy = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_viewing_orientation()
1980 dsc_unknown(dsc); /* we didn't get all fields */ in dsc_parse_viewing_orientation()
1983 *pctm = (CDSCCTM *)dsc_memalloc(dsc, sizeof(CDSCCTM)); in dsc_parse_viewing_orientation()
1996 dsc_scan_type(CDSC *dsc) in dsc_scan_type() argument
1999 unsigned char *line = (unsigned char *)(dsc->data + dsc->data_index); in dsc_scan_type()
2000 int length = dsc->data_length - dsc->data_index; in dsc_scan_type()
2020 if (dsc->skip_bytes) { in dsc_scan_type()
2021 int cnt = min(dsc->skip_bytes, in dsc_scan_type()
2022 (int)(dsc->data_length - dsc->data_index)); in dsc_scan_type()
2023 dsc->skip_bytes -= cnt; in dsc_scan_type()
2024 dsc->data_index += cnt; in dsc_scan_type()
2027 if (dsc->skip_bytes != 0) in dsc_scan_type()
2031 if (dsc->skip_pjl) { in dsc_scan_type()
2037 dsc->data_index++; in dsc_scan_type()
2043 dsc->data_index++; in dsc_scan_type()
2051 dsc->data_index++; in dsc_scan_type()
2053 dsc->skip_pjl = FALSE; in dsc_scan_type()
2058 dsc->data_index++; in dsc_scan_type()
2062 if (dsc->skip_pjl) in dsc_scan_type()
2071 dsc->data_index++; in dsc_scan_type()
2073 dsc->ctrld = TRUE; in dsc_scan_type()
2081 dsc->skip_pjl = TRUE; /* skip until first PostScript comment */ in dsc_scan_type()
2082 dsc->pjl = TRUE; in dsc_scan_type()
2083 dsc->data_index += 9; in dsc_scan_type()
2084 return dsc_scan_type(dsc); in dsc_scan_type()
2103 dsc->line = (char *)line; in dsc_scan_type()
2104 if (dsc_read_doseps(dsc)) in dsc_scan_type()
2119 dsc->line = (char *)line; in dsc_scan_type()
2120 if (dsc_read_applesingle(dsc)) in dsc_scan_type()
2130 dsc->line = (char *)line; in dsc_scan_type()
2131 if (dsc_read_macbin(dsc)) in dsc_scan_type()
2141 dsc->pdf = TRUE; in dsc_scan_type()
2142 dsc->scan_section = scan_comments; in dsc_scan_type()
2150 if (dsc_read_line(dsc) <= 0) in dsc_scan_type()
2153 dsc->dsc_version = dsc_add_line(dsc, dsc->line, dsc->line_length); in dsc_scan_type()
2154 if (COMPARE(dsc->line, "%!PS-Adobe")) { in dsc_scan_type()
2155 dsc->dsc = TRUE; in dsc_scan_type()
2156 dsc->begincomments = DSC_START(dsc); in dsc_scan_type()
2157 if (dsc->dsc_version == NULL) in dsc_scan_type()
2159 p = (unsigned char *)dsc->line + 14; in dsc_scan_type()
2163 dsc->epsf = TRUE; in dsc_scan_type()
2164 dsc->scan_section = scan_comments; in dsc_scan_type()
2167 if (COMPARE(dsc->line, "%!")) { in dsc_scan_type()
2168 dsc->scan_section = scan_comments; in dsc_scan_type()
2172 dsc->scan_section = scan_comments; in dsc_scan_type()
2177 dsc_scan_comments(CDSC *dsc) in dsc_scan_comments() argument
2185 char *line = dsc->line; in dsc_scan_comments()
2187 dsc->id = CDSC_OK; in dsc_scan_comments()
2189 dsc->id = CDSC_ENDCOMMENTS; in dsc_scan_comments()
2190 dsc->endcomments = DSC_END(dsc); in dsc_scan_comments()
2191 dsc->scan_section = scan_pre_preview; in dsc_scan_comments()
2196 dsc->id = CDSC_BEGINCOMMENTS; in dsc_scan_comments()
2199 dsc->endcomments = DSC_START(dsc); in dsc_scan_comments()
2200 dsc->scan_section = scan_pre_preview; in dsc_scan_comments()
2204 dsc->endcomments = DSC_START(dsc); in dsc_scan_comments()
2205 dsc->scan_section = scan_pre_preview; in dsc_scan_comments()
2209 dsc->id = CDSC_OK; in dsc_scan_comments()
2210 dsc->endcomments = DSC_START(dsc); in dsc_scan_comments()
2211 dsc->scan_section = scan_pre_preview; in dsc_scan_comments()
2215 dsc->endcomments = DSC_START(dsc); in dsc_scan_comments()
2216 dsc->scan_section = scan_pre_preview; in dsc_scan_comments()
2229 line = dsc->last_line; in dsc_scan_comments()
2233 dsc_save_line(dsc); in dsc_scan_comments()
2236 dsc->id = CDSC_PAGES; in dsc_scan_comments()
2237 if (dsc_parse_pages(dsc) != 0) in dsc_scan_comments()
2241 dsc->id = CDSC_CREATOR; in dsc_scan_comments()
2242 dsc->dsc_creator = dsc_add_line(dsc, dsc->line+10, dsc->line_length-10); in dsc_scan_comments()
2243 if (dsc->dsc_creator==NULL) in dsc_scan_comments()
2247 dsc->id = CDSC_CREATIONDATE; in dsc_scan_comments()
2248 dsc->dsc_date = dsc_add_line(dsc, dsc->line+15, dsc->line_length-15); in dsc_scan_comments()
2249 if (dsc->dsc_date==NULL) in dsc_scan_comments()
2253 dsc->id = CDSC_TITLE; in dsc_scan_comments()
2254 dsc->dsc_title = dsc_add_line(dsc, dsc->line+8, dsc->line_length-8); in dsc_scan_comments()
2255 if (dsc->dsc_title==NULL) in dsc_scan_comments()
2259 dsc->id = CDSC_FOR; in dsc_scan_comments()
2260 dsc->dsc_for = dsc_add_line(dsc, dsc->line+6, dsc->line_length-6); in dsc_scan_comments()
2261 if (dsc->dsc_for==NULL) in dsc_scan_comments()
2268 dsc->id = CDSC_LANGUAGELEVEL; in dsc_scan_comments()
2269 ll = dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_scan_comments()
2272 dsc->language_level = ll; in dsc_scan_comments()
2274 dsc_unknown(dsc); in dsc_scan_comments()
2278 dsc_unknown(dsc); in dsc_scan_comments()
2281 dsc->id = CDSC_BOUNDINGBOX; in dsc_scan_comments()
2282 if (dsc_parse_bounding_box(dsc, &(dsc->bbox), continued ? 3 : 14)) in dsc_scan_comments()
2286 dsc->id = CDSC_HIRESBOUNDINGBOX; in dsc_scan_comments()
2287 if (dsc_parse_float_bounding_box(dsc, &(dsc->hires_bbox), in dsc_scan_comments()
2292 dsc->id = CDSC_CROPBOX; in dsc_scan_comments()
2293 if (dsc_parse_float_bounding_box(dsc, &(dsc->crop_box), in dsc_scan_comments()
2298 dsc->id = CDSC_ORIENTATION; in dsc_scan_comments()
2299 if (dsc_parse_orientation(dsc, &(dsc->page_orientation), in dsc_scan_comments()
2304 dsc->id = CDSC_PAGEORDER; in dsc_scan_comments()
2305 if (dsc_parse_order(dsc)) in dsc_scan_comments()
2309 dsc->id = CDSC_DOCUMENTMEDIA; in dsc_scan_comments()
2310 if (dsc_parse_document_media(dsc)) in dsc_scan_comments()
2320 dsc->id = CDSC_DOCUMENTPAPERSIZES; in dsc_scan_comments()
2321 while (i && (dsc->line[n]!='\r') && (dsc->line[n]!='\n')) { in dsc_scan_comments()
2323 dsc->line+n, dsc->line_length-n, &i); in dsc_scan_comments()
2326 if (count >= dsc->media_count) { in dsc_scan_comments()
2336 if (dsc_add_media(dsc, &lmedia)) in dsc_scan_comments()
2340 dsc->media[count]->name = in dsc_scan_comments()
2341 dsc_alloc_string(dsc, p, (int)strlen(p)); in dsc_scan_comments()
2345 dsc->media[count]->width = m->width; in dsc_scan_comments()
2346 dsc->media[count]->height = m->height; in dsc_scan_comments()
2363 dsc->id = CDSC_DOCUMENTPAPERFORMS; in dsc_scan_comments()
2364 while (i && (dsc->line[n]!='\r') && (dsc->line[n]!='\n')) { in dsc_scan_comments()
2366 dsc->line+n, dsc->line_length-n, &i); in dsc_scan_comments()
2368 if (count >= dsc->media_count) { in dsc_scan_comments()
2378 if (dsc_add_media(dsc, &lmedia)) in dsc_scan_comments()
2382 dsc->media[count]->type = in dsc_scan_comments()
2383 dsc_alloc_string(dsc, p, (int)strlen(p)); in dsc_scan_comments()
2396 dsc->id = CDSC_DOCUMENTPAPERCOLORS; in dsc_scan_comments()
2397 while (i && (dsc->line[n]!='\r') && (dsc->line[n]!='\n')) { in dsc_scan_comments()
2399 dsc->line+n, dsc->line_length-n, &i); in dsc_scan_comments()
2401 if (count >= dsc->media_count) { in dsc_scan_comments()
2411 if (dsc_add_media(dsc, &lmedia)) in dsc_scan_comments()
2415 dsc->media[count]->colour = in dsc_scan_comments()
2416 dsc_alloc_string(dsc, p, (int)strlen(p)); in dsc_scan_comments()
2428 dsc->id = CDSC_DOCUMENTPAPERWEIGHTS; in dsc_scan_comments()
2429 while (i && (dsc->line[n]!='\r') && (dsc->line[n]!='\n')) { in dsc_scan_comments()
2430 w = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_scan_comments()
2432 if (count >= dsc->media_count) { in dsc_scan_comments()
2442 if (dsc_add_media(dsc, &lmedia)) in dsc_scan_comments()
2446 dsc->media[count]->weight = w; in dsc_scan_comments()
2454 char *p = dsc->line + n; in dsc_scan_comments()
2457 dsc->id = CDSC_DOCUMENTDATA; in dsc_scan_comments()
2459 dsc->document_data = CDSC_CLEAN7BIT; in dsc_scan_comments()
2461 dsc->document_data = CDSC_CLEAN8BIT; in dsc_scan_comments()
2463 dsc->document_data = CDSC_BINARY; in dsc_scan_comments()
2465 dsc_unknown(dsc); in dsc_scan_comments()
2468 dsc->id = CDSC_REQUIREMENTS; in dsc_scan_comments()
2472 dsc->id = CDSC_DOCUMENTNEEDEDFONTS; in dsc_scan_comments()
2476 dsc->id = CDSC_DOCUMENTSUPPLIEDFONTS; in dsc_scan_comments()
2480 dsc->id = CDSC_PLATEFILE; in dsc_scan_comments()
2481 if (dsc_parse_platefile(dsc) != CDSC_OK) in dsc_scan_comments()
2482 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_comments()
2488 dsc->id = CDSC_PLATEFILE; in dsc_scan_comments()
2489 if (dsc_parse_dcs1plate(dsc) != CDSC_OK) in dsc_scan_comments()
2490 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_comments()
2493 dsc->id = CDSC_DOCUMENTPROCESSCOLORS; in dsc_scan_comments()
2494 if (dsc_parse_process_colours(dsc) != CDSC_OK) in dsc_scan_comments()
2495 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_comments()
2498 dsc->id = CDSC_DOCUMENTCUSTOMCOLORS; in dsc_scan_comments()
2499 if (dsc_parse_custom_colours(dsc) != CDSC_OK) in dsc_scan_comments()
2500 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_comments()
2503 dsc->id = CDSC_CMYKCUSTOMCOLOR; in dsc_scan_comments()
2504 if (dsc_parse_cmyk_custom_colour(dsc) != CDSC_OK) in dsc_scan_comments()
2505 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_comments()
2508 dsc->id = CDSC_RGBCUSTOMCOLOR; in dsc_scan_comments()
2509 if (dsc_parse_rgb_custom_colour(dsc) != CDSC_OK) in dsc_scan_comments()
2510 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_comments()
2512 else if (dsc->line[0] == '%' && IS_WHITE_OR_EOL(dsc->line[1])) { in dsc_scan_comments()
2513 dsc->id = CDSC_OK; in dsc_scan_comments()
2517 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_comments()
2518 dsc_unknown(dsc); in dsc_scan_comments()
2521 dsc->endcomments = DSC_END(dsc); in dsc_scan_comments()
2526 dsc_scan_preview(CDSC *dsc) in dsc_scan_preview() argument
2532 char *line = dsc->line; in dsc_scan_preview()
2533 dsc->id = CDSC_OK; in dsc_scan_preview()
2535 if (dsc->scan_section == scan_pre_preview) { in dsc_scan_preview()
2539 dsc->id = CDSC_BEGINPREVIEW; in dsc_scan_preview()
2540 dsc->beginpreview = DSC_START(dsc); in dsc_scan_preview()
2541 dsc->endpreview = DSC_END(dsc); in dsc_scan_preview()
2542 dsc->scan_section = scan_preview; in dsc_scan_preview()
2544 if (dsc->preview == CDSC_NOPREVIEW) in dsc_scan_preview()
2545 dsc->preview = CDSC_EPSI; in dsc_scan_preview()
2549 dsc->scan_section = scan_pre_defaults; in dsc_scan_preview()
2558 dsc->endpreview = DSC_START(dsc); in dsc_scan_preview()
2559 dsc->scan_section = scan_pre_defaults; in dsc_scan_preview()
2563 dsc->id = CDSC_ENDPREVIEW; in dsc_scan_preview()
2564 dsc->endpreview = DSC_END(dsc); in dsc_scan_preview()
2565 dsc->scan_section = scan_pre_defaults; in dsc_scan_preview()
2572 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_preview()
2574 dsc_unknown(dsc); in dsc_scan_preview()
2577 dsc->endpreview = DSC_END(dsc); in dsc_scan_preview()
2582 dsc_scan_defaults(CDSC *dsc) in dsc_scan_defaults() argument
2588 char *line = dsc->line; in dsc_scan_defaults()
2589 dsc->id = CDSC_OK; in dsc_scan_defaults()
2591 if (dsc->scan_section == scan_pre_defaults) { in dsc_scan_defaults()
2595 dsc->id = CDSC_BEGINDEFAULTS; in dsc_scan_defaults()
2596 dsc->begindefaults = DSC_START(dsc); in dsc_scan_defaults()
2597 dsc->enddefaults = DSC_END(dsc); in dsc_scan_defaults()
2598 dsc->scan_section = scan_defaults; in dsc_scan_defaults()
2602 dsc->scan_section = scan_pre_prolog; in dsc_scan_defaults()
2617 dsc->enddefaults = DSC_START(dsc); in dsc_scan_defaults()
2618 dsc->scan_section = scan_pre_prolog; in dsc_scan_defaults()
2622 dsc->id = CDSC_ENDDEFAULTS; in dsc_scan_defaults()
2623 dsc->enddefaults = DSC_END(dsc); in dsc_scan_defaults()
2624 dsc->scan_section = scan_pre_prolog; in dsc_scan_defaults()
2628 dsc->id = CDSC_PAGEMEDIA; in dsc_scan_defaults()
2629 dsc_parse_media(dsc, &dsc->page_media); in dsc_scan_defaults()
2632 dsc->id = CDSC_PAGEORIENTATION; in dsc_scan_defaults()
2634 if (dsc_parse_orientation(dsc, &(dsc->page_orientation), 18)) in dsc_scan_defaults()
2638 dsc->id = CDSC_PAGEBOUNDINGBOX; in dsc_scan_defaults()
2639 if (dsc_parse_bounding_box(dsc, &(dsc->page_bbox), 18)) in dsc_scan_defaults()
2643 dsc->id = CDSC_VIEWINGORIENTATION; in dsc_scan_defaults()
2644 if (dsc_parse_viewing_orientation(dsc, &dsc->viewing_orientation)) in dsc_scan_defaults()
2648 dsc->id = CDSC_PAGECROPBOX; in dsc_scan_defaults()
2649 if (dsc_parse_float_bounding_box(dsc, &dsc->crop_box, 14)) in dsc_scan_defaults()
2653 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_defaults()
2655 dsc_unknown(dsc); in dsc_scan_defaults()
2657 dsc->enddefaults = DSC_END(dsc); in dsc_scan_defaults()
2664 dsc_check_match_prompt(CDSC *dsc, const char *str, int count) in dsc_check_match_prompt() argument
2668 if (dsc->line_length < (unsigned int)(sizeof(buf)/2-1)) { in dsc_check_match_prompt()
2669 strncpy(buf, dsc->line, dsc->line_length); in dsc_check_match_prompt()
2670 buf[dsc->line_length] = '\0'; in dsc_check_match_prompt()
2673 return dsc_error(dsc, CDSC_MESSAGE_BEGIN_END, buf, (int)strlen(buf)); in dsc_check_match_prompt()
2679 dsc_check_match_type(CDSC *dsc, const char *str, int count) in dsc_check_match_type() argument
2681 if (dsc_check_match_prompt(dsc, str, count) == CDSC_RESPONSE_IGNORE_ALL) in dsc_check_match_type()
2689 dsc_check_match(CDSC *dsc) in dsc_check_match() argument
2698 rc = dsc_check_match_type(dsc, font, dsc->begin_font_count); in dsc_check_match()
2700 rc = dsc_check_match_type(dsc, feature, dsc->begin_feature_count); in dsc_check_match()
2702 rc = dsc_check_match_type(dsc, resource, dsc->begin_resource_count); in dsc_check_match()
2704 rc = dsc_check_match_type(dsc, procset, dsc->begin_procset_count); in dsc_check_match()
2706 dsc->begin_font_count = 0; in dsc_check_match()
2707 dsc->begin_feature_count = 0; in dsc_check_match()
2708 dsc->begin_resource_count = 0; in dsc_check_match()
2709 dsc->begin_procset_count = 0; in dsc_check_match()
2714 dsc_scan_prolog(CDSC *dsc) in dsc_scan_prolog() argument
2720 char *line = dsc->line; in dsc_scan_prolog()
2721 dsc->id = CDSC_OK; in dsc_scan_prolog()
2723 if (dsc->scan_section == scan_pre_prolog) { in dsc_scan_prolog()
2725 dsc->scan_section = scan_pre_setup; in dsc_scan_prolog()
2728 dsc->id = CDSC_BEGINPROLOG; in dsc_scan_prolog()
2729 dsc->beginprolog = DSC_START(dsc); in dsc_scan_prolog()
2730 dsc->endprolog = DSC_END(dsc); in dsc_scan_prolog()
2731 dsc->scan_section = scan_prolog; in dsc_scan_prolog()
2749 dsc->endprolog = DSC_START(dsc); in dsc_scan_prolog()
2750 dsc->scan_section = scan_pre_setup; in dsc_scan_prolog()
2751 if (dsc_check_match(dsc)) in dsc_scan_prolog()
2756 dsc->id = CDSC_ENDPROLOG; in dsc_scan_prolog()
2757 dsc->endprolog = DSC_END(dsc); in dsc_scan_prolog()
2758 dsc->scan_section = scan_pre_setup; in dsc_scan_prolog()
2759 if (dsc_check_match(dsc)) in dsc_scan_prolog()
2764 dsc->id = CDSC_BEGINFONT; in dsc_scan_prolog()
2767 dsc->begin_font_count++; in dsc_scan_prolog()
2770 dsc->id = CDSC_ENDFONT; in dsc_scan_prolog()
2771 dsc->begin_font_count--; in dsc_scan_prolog()
2774 dsc->id = CDSC_BEGINFEATURE; in dsc_scan_prolog()
2777 dsc->begin_feature_count++; in dsc_scan_prolog()
2780 dsc->id = CDSC_ENDFEATURE; in dsc_scan_prolog()
2781 dsc->begin_feature_count--; in dsc_scan_prolog()
2784 dsc->id = CDSC_BEGINRESOURCE; in dsc_scan_prolog()
2787 dsc->begin_resource_count++; in dsc_scan_prolog()
2790 dsc->id = CDSC_ENDRESOURCE; in dsc_scan_prolog()
2791 dsc->begin_resource_count--; in dsc_scan_prolog()
2794 dsc->id = CDSC_BEGINPROCSET; in dsc_scan_prolog()
2797 dsc->begin_procset_count++; in dsc_scan_prolog()
2800 dsc->id = CDSC_ENDPROCSET; in dsc_scan_prolog()
2801 dsc->begin_procset_count--; in dsc_scan_prolog()
2805 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_prolog()
2806 dsc_unknown(dsc); in dsc_scan_prolog()
2809 dsc->endprolog = DSC_END(dsc); in dsc_scan_prolog()
2814 dsc_scan_setup(CDSC *dsc) in dsc_scan_setup() argument
2821 char *line = dsc->line; in dsc_scan_setup()
2822 dsc->id = CDSC_OK; in dsc_scan_setup()
2824 if (dsc->scan_section == scan_pre_setup) { in dsc_scan_setup()
2828 dsc->id = CDSC_BEGINSETUP; in dsc_scan_setup()
2829 dsc->beginsetup = DSC_START(dsc); in dsc_scan_setup()
2830 dsc->endsetup = DSC_END(dsc); in dsc_scan_setup()
2831 dsc->scan_section = scan_setup; in dsc_scan_setup()
2835 dsc->scan_section = scan_pre_pages; in dsc_scan_setup()
2856 dsc->endsetup = DSC_START(dsc); in dsc_scan_setup()
2857 dsc->scan_section = scan_pre_pages; in dsc_scan_setup()
2858 if (dsc_check_match(dsc)) in dsc_scan_setup()
2863 dsc->id = CDSC_ENDSETUP; in dsc_scan_setup()
2864 dsc->endsetup = DSC_END(dsc); in dsc_scan_setup()
2865 dsc->scan_section = scan_pre_pages; in dsc_scan_setup()
2866 if (dsc_check_match(dsc)) in dsc_scan_setup()
2871 dsc->id = CDSC_BEGINFEATURE; in dsc_scan_setup()
2874 dsc->begin_feature_count++; in dsc_scan_setup()
2877 dsc->id = CDSC_ENDFEATURE; in dsc_scan_setup()
2878 dsc->begin_feature_count--; in dsc_scan_setup()
2881 dsc->id = CDSC_FEATURE; in dsc_scan_setup()
2885 dsc->id = CDSC_BEGINRESOURCE; in dsc_scan_setup()
2888 dsc->begin_resource_count++; in dsc_scan_setup()
2891 dsc->id = CDSC_ENDRESOURCE; in dsc_scan_setup()
2892 dsc->begin_resource_count--; in dsc_scan_setup()
2895 dsc->id = CDSC_PAPERCOLOR; in dsc_scan_setup()
2899 dsc->id = CDSC_PAPERFORM; in dsc_scan_setup()
2903 dsc->id = CDSC_PAPERWEIGHT; in dsc_scan_setup()
2913 dsc->id = CDSC_PAPERSIZE; in dsc_scan_setup()
2914 dsc_copy_string(buf, sizeof(buf)-1, dsc->line+n, dsc->line_length-n, in dsc_scan_setup()
2916 for (i=0; i<(int)dsc->media_count; i++) { in dsc_scan_setup()
2917 if (dsc->media[i] && dsc->media[i]->name && in dsc_scan_setup()
2918 (dsc_stricmp(buf, dsc->media[i]->name)==0)) { in dsc_scan_setup()
2919 dsc->page_media = dsc->media[i]; in dsc_scan_setup()
2930 dsc->page_media = m; in dsc_scan_setup()
2936 dsc_unknown(dsc); in dsc_scan_setup()
2941 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_setup()
2942 dsc_unknown(dsc); in dsc_scan_setup()
2945 dsc->endsetup = DSC_END(dsc); in dsc_scan_setup()
2950 dsc_scan_page(CDSC *dsc) in dsc_scan_page() argument
2956 char *line = dsc->line; in dsc_scan_page()
2957 dsc->id = CDSC_OK; in dsc_scan_page()
2959 if (dsc->scan_section == scan_pre_pages) { in dsc_scan_page()
2961 dsc->scan_section = scan_pages; in dsc_scan_page()
2970 if (dsc->endsetup != 0) in dsc_scan_page()
2971 last = &dsc->endsetup; in dsc_scan_page()
2972 else if (dsc->endprolog != 0) in dsc_scan_page()
2973 last = &dsc->endprolog; in dsc_scan_page()
2974 else if (dsc->enddefaults != 0) in dsc_scan_page()
2975 last = &dsc->enddefaults; in dsc_scan_page()
2976 else if (dsc->endpreview != 0) in dsc_scan_page()
2977 last = &dsc->endpreview; in dsc_scan_page()
2978 else if (dsc->endcomments != 0) in dsc_scan_page()
2979 last = &dsc->endcomments; in dsc_scan_page()
2981 last = &dsc->begincomments; in dsc_scan_page()
2982 *last = DSC_START(dsc); in dsc_scan_page()
2984 dsc->scan_section = scan_pre_trailer; in dsc_scan_page()
2987 *last = DSC_END(dsc); in dsc_scan_page()
2997 dsc->id = CDSC_PAGE; in dsc_scan_page()
2998 if (dsc->page_count) { in dsc_scan_page()
2999 dsc->page[dsc->page_count-1].end = DSC_START(dsc); in dsc_scan_page()
3000 if (dsc_check_match(dsc)) in dsc_scan_page()
3004 if ( (code = dsc_parse_page(dsc)) != CDSC_OK) in dsc_scan_page()
3006 if (dsc->page_count == 0) in dsc_scan_page()
3007 dsc->scan_section = scan_pre_pages; in dsc_scan_page()
3023 if (dsc->page_count) in dsc_scan_page()
3024 dsc->page[dsc->page_count-1].end = DSC_START(dsc); in dsc_scan_page()
3025 if (dsc->file_length) { in dsc_scan_page()
3026 if ((!dsc->doseps_end && in dsc_scan_page()
3027 ((DSC_END(dsc) + 32768) < dsc->file_length)) || in dsc_scan_page()
3028 ((dsc->doseps_end) && in dsc_scan_page()
3029 ((DSC_END(dsc) + 32768) < dsc->doseps_end))) { in dsc_scan_page()
3030 int rc = dsc_error(dsc, CDSC_MESSAGE_EARLY_TRAILER, in dsc_scan_page()
3031 dsc->line, dsc->line_length); in dsc_scan_page()
3038 dsc->scan_section = scan_pre_trailer; in dsc_scan_page()
3039 if (dsc_check_match(dsc)) in dsc_scan_page()
3047 dsc->scan_section = scan_pre_trailer; in dsc_scan_page()
3048 if (dsc_check_match(dsc)) in dsc_scan_page()
3054 dsc->scan_section = scan_pre_trailer; in dsc_scan_page()
3055 if (dsc_check_match(dsc)) in dsc_scan_page()
3061 if (dsc->page_count) in dsc_scan_page()
3062 dsc->page[dsc->page_count-1].end = DSC_START(dsc); in dsc_scan_page()
3063 if (dsc->file_length) { in dsc_scan_page()
3064 if ((!dsc->doseps_end && in dsc_scan_page()
3065 ((DSC_END(dsc) + 100) < dsc->file_length)) || in dsc_scan_page()
3066 ((dsc->doseps_end) && in dsc_scan_page()
3067 ((DSC_END(dsc) + 100) < dsc->doseps_end))) { in dsc_scan_page()
3068 int rc = dsc_error(dsc, CDSC_MESSAGE_EARLY_EOF, in dsc_scan_page()
3069 dsc->line, dsc->line_length); in dsc_scan_page()
3076 dsc->scan_section = scan_eof; in dsc_scan_page()
3077 dsc->eof = TRUE; in dsc_scan_page()
3078 if (dsc_check_match(dsc)) in dsc_scan_page()
3088 if (dsc_check_match(dsc)) in dsc_scan_page()
3096 int rc = dsc_error(dsc, CDSC_MESSAGE_BAD_SECTION, in dsc_scan_page()
3097 dsc->line, dsc->line_length); in dsc_scan_page()
3103 dsc->id = CDSC_PAGETRAILER; in dsc_scan_page()
3107 dsc->id = CDSC_BEGINPAGESETUP; in dsc_scan_page()
3111 dsc->id = CDSC_ENDPAGESETUP; in dsc_scan_page()
3115 dsc->id = CDSC_PAGEMEDIA; in dsc_scan_page()
3116 if (dsc->page_count) in dsc_scan_page()
3117 dsc_parse_media(dsc, &(dsc->page[dsc->page_count-1].media)); in dsc_scan_page()
3120 dsc->id = CDSC_PAPERCOLOR; in dsc_scan_page()
3124 dsc->id = CDSC_PAPERFORM; in dsc_scan_page()
3128 dsc->id = CDSC_PAPERWEIGHT; in dsc_scan_page()
3138 dsc_copy_string(buf, sizeof(buf)-1, dsc->line+n, in dsc_scan_page()
3139 dsc->line_length-n, NULL); in dsc_scan_page()
3140 for (i=0; i<(int)dsc->media_count; i++) { in dsc_scan_page()
3141 if (dsc->media[i] && dsc->media[i]->name && in dsc_scan_page()
3142 (dsc_stricmp(buf, dsc->media[i]->name)==0)) { in dsc_scan_page()
3143 if (dsc->page_count) in dsc_scan_page()
3144 dsc->page[dsc->page_count-1].media = dsc->media[i]; in dsc_scan_page()
3155 if (dsc->page_count) in dsc_scan_page()
3156 dsc->page[dsc->page_count-1].media = m; in dsc_scan_page()
3162 dsc_unknown(dsc); in dsc_scan_page()
3166 if (dsc->page_count) { in dsc_scan_page()
3167 dsc->id = CDSC_PAGEORIENTATION; in dsc_scan_page()
3168 if (dsc_parse_orientation(dsc, in dsc_scan_page()
3169 &(dsc->page[dsc->page_count-1].orientation) ,18)) in dsc_scan_page()
3174 if (dsc->page_count) { in dsc_scan_page()
3175 dsc->id = CDSC_PAGEBOUNDINGBOX; in dsc_scan_page()
3176 if (dsc_parse_bounding_box(dsc, in dsc_scan_page()
3177 &dsc->page[dsc->page_count-1].bbox, 18)) in dsc_scan_page()
3182 if (dsc->page_count) { in dsc_scan_page()
3183 dsc->id = CDSC_VIEWINGORIENTATION; in dsc_scan_page()
3184 if (dsc_parse_viewing_orientation(dsc, in dsc_scan_page()
3185 &dsc->page[dsc->page_count-1].viewing_orientation)) in dsc_scan_page()
3190 if (dsc->page_count) { in dsc_scan_page()
3191 dsc->id = CDSC_PAGECROPBOX; in dsc_scan_page()
3192 if (dsc_parse_float_bounding_box(dsc, in dsc_scan_page()
3193 &(dsc->page[dsc->page_count-1].crop_box), 14)) in dsc_scan_page()
3198 dsc->id = CDSC_BEGINFONT; in dsc_scan_page()
3201 dsc->begin_font_count++; in dsc_scan_page()
3204 dsc->id = CDSC_BEGINFONT; in dsc_scan_page()
3205 dsc->begin_font_count--; in dsc_scan_page()
3208 dsc->id = CDSC_BEGINFEATURE; in dsc_scan_page()
3211 dsc->begin_feature_count++; in dsc_scan_page()
3214 dsc->id = CDSC_ENDFEATURE; in dsc_scan_page()
3215 dsc->begin_feature_count--; in dsc_scan_page()
3218 dsc->id = CDSC_BEGINRESOURCE; in dsc_scan_page()
3221 dsc->begin_resource_count++; in dsc_scan_page()
3224 dsc->id = CDSC_ENDRESOURCE; in dsc_scan_page()
3225 dsc->begin_resource_count--; in dsc_scan_page()
3228 dsc->id = CDSC_BEGINPROCSET; in dsc_scan_page()
3231 dsc->begin_procset_count++; in dsc_scan_page()
3234 dsc->id = CDSC_ENDPROCSET; in dsc_scan_page()
3235 dsc->begin_procset_count--; in dsc_scan_page()
3238 dsc->id = CDSC_INCLUDEFONT; in dsc_scan_page()
3243 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_page()
3244 dsc_unknown(dsc); in dsc_scan_page()
3247 if (dsc->page_count) in dsc_scan_page()
3248 dsc->page[dsc->page_count-1].end = DSC_END(dsc); in dsc_scan_page()
3299 dsc_scan_trailer(CDSC *dsc) in dsc_scan_trailer() argument
3305 char *line = dsc->line; in dsc_scan_trailer()
3307 dsc->id = CDSC_OK; in dsc_scan_trailer()
3309 if (dsc->scan_section == scan_pre_trailer) { in dsc_scan_trailer()
3311 dsc->id = CDSC_TRAILER; in dsc_scan_trailer()
3312 dsc->begintrailer = DSC_START(dsc); in dsc_scan_trailer()
3313 dsc->endtrailer = DSC_END(dsc); in dsc_scan_trailer()
3314 dsc->scan_section = scan_trailer; in dsc_scan_trailer()
3318 dsc->id = CDSC_EOF; in dsc_scan_trailer()
3319 dsc->begintrailer = DSC_START(dsc); in dsc_scan_trailer()
3320 dsc->endtrailer = DSC_END(dsc); in dsc_scan_trailer()
3321 dsc->scan_section = scan_trailer; in dsc_scan_trailer()
3331 if (dsc->beginsetup) in dsc_scan_trailer()
3332 dsc->endsetup = DSC_END(dsc); in dsc_scan_trailer()
3333 else if (dsc->beginprolog) in dsc_scan_trailer()
3334 dsc->endprolog = DSC_END(dsc); in dsc_scan_trailer()
3347 line = dsc->last_line; in dsc_scan_trailer()
3351 dsc_save_line(dsc); in dsc_scan_trailer()
3356 else if (IS_DSC(dsc->line, "%%EOF")) { in dsc_scan_trailer()
3358 dsc->id = CDSC_EOF; in dsc_scan_trailer()
3360 else if (IS_DSC(dsc->line, "%%Trailer")) { in dsc_scan_trailer()
3363 dsc->id = CDSC_TRAILER; in dsc_scan_trailer()
3364 dsc->begintrailer = DSC_START(dsc); in dsc_scan_trailer()
3367 dsc->id = CDSC_PAGES; in dsc_scan_trailer()
3368 if (dsc_parse_pages(dsc) != 0) in dsc_scan_trailer()
3372 dsc->id = CDSC_BOUNDINGBOX; in dsc_scan_trailer()
3373 if (dsc_parse_bounding_box(dsc, &(dsc->bbox), continued ? 3 : 14)) in dsc_scan_trailer()
3377 dsc->id = CDSC_HIRESBOUNDINGBOX; in dsc_scan_trailer()
3378 if (dsc_parse_float_bounding_box(dsc, &(dsc->hires_bbox), in dsc_scan_trailer()
3383 dsc->id = CDSC_CROPBOX; in dsc_scan_trailer()
3384 if (dsc_parse_float_bounding_box(dsc, &(dsc->crop_box), in dsc_scan_trailer()
3389 dsc->id = CDSC_ORIENTATION; in dsc_scan_trailer()
3390 if (dsc_parse_orientation(dsc, &(dsc->page_orientation), continued ? 3 : 14)) in dsc_scan_trailer()
3394 dsc->id = CDSC_PAGEORDER; in dsc_scan_trailer()
3395 if (dsc_parse_order(dsc)) in dsc_scan_trailer()
3399 dsc->id = CDSC_DOCUMENTMEDIA; in dsc_scan_trailer()
3400 if (dsc_parse_document_media(dsc)) in dsc_scan_trailer()
3403 else if (IS_DSC(dsc->line, "%%Page:")) { in dsc_scan_trailer()
3407 int rc = dsc_error(dsc, CDSC_MESSAGE_PAGE_IN_TRAILER, in dsc_scan_trailer()
3408 dsc->line, dsc->line_length); in dsc_scan_trailer()
3413 dsc->scan_section = scan_pre_pages; in dsc_scan_trailer()
3414 if (dsc->page_count) in dsc_scan_trailer()
3415 dsc->page[dsc->page_count-1].end = DSC_START(dsc); in dsc_scan_trailer()
3425 dsc->id = CDSC_DOCUMENTNEEDEDFONTS; in dsc_scan_trailer()
3429 dsc->id = CDSC_DOCUMENTSUPPLIEDFONTS; in dsc_scan_trailer()
3433 dsc->id = CDSC_DOCUMENTPROCESSCOLORS; in dsc_scan_trailer()
3434 if (dsc_parse_process_colours(dsc) != CDSC_OK) in dsc_scan_trailer()
3435 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_trailer()
3438 dsc->id = CDSC_DOCUMENTCUSTOMCOLORS; in dsc_scan_trailer()
3439 if (dsc_parse_custom_colours(dsc) != CDSC_OK) in dsc_scan_trailer()
3440 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_trailer()
3444 dsc->id = CDSC_UNKNOWNDSC; in dsc_scan_trailer()
3445 dsc_unknown(dsc); in dsc_scan_trailer()
3448 dsc->endtrailer = DSC_END(dsc); in dsc_scan_trailer()
3453 dsc_alloc_string(CDSC *dsc, const char *str, int len) in dsc_alloc_string() argument
3456 if (dsc->string_head == NULL) { in dsc_alloc_string()
3457 dsc->string_head = (CDSCSTRING *)dsc_memalloc(dsc, sizeof(CDSCSTRING)); in dsc_alloc_string()
3458 if (dsc->string_head == NULL) in dsc_alloc_string()
3460 dsc->string = dsc->string_head; in dsc_alloc_string()
3461 dsc->string->next = NULL; in dsc_alloc_string()
3462 dsc->string->data = (char *)dsc_memalloc(dsc, CDSC_STRING_CHUNK); in dsc_alloc_string()
3463 if (dsc->string->data == NULL) { in dsc_alloc_string()
3464 dsc_reset(dsc); in dsc_alloc_string()
3467 dsc->string->index = 0; in dsc_alloc_string()
3468 dsc->string->length = CDSC_STRING_CHUNK; in dsc_alloc_string()
3470 if ( dsc->string->index + len + 1 > dsc->string->length) { in dsc_alloc_string()
3472 CDSCSTRING *newstring = (CDSCSTRING *)dsc_memalloc(dsc, sizeof(CDSCSTRING)); in dsc_alloc_string()
3474 dsc_debug_print(dsc, "Out of memory\n"); in dsc_alloc_string()
3480 newstring->data = (char *)dsc_memalloc(dsc, CDSC_STRING_CHUNK); in dsc_alloc_string()
3482 dsc_memfree(dsc, newstring); in dsc_alloc_string()
3483 dsc_debug_print(dsc, "Out of memory\n"); in dsc_alloc_string()
3487 dsc->string->next = newstring; in dsc_alloc_string()
3488 dsc->string = newstring; in dsc_alloc_string()
3490 if ( dsc->string->index + len + 1 > dsc->string->length) in dsc_alloc_string()
3492 p = dsc->string->data + dsc->string->index; in dsc_alloc_string()
3495 dsc->string->index += len + 1; in dsc_alloc_string()
3501 dsc_add_line(CDSC *dsc, const char *line, unsigned int len) in dsc_add_line() argument
3509 newline = dsc_alloc_string(dsc, line, len); in dsc_add_line()
3690 dsc_parse_page(CDSC *dsc) in dsc_parse_page() argument
3699 p = dsc->line + 7; in dsc_parse_page()
3700 pl = dsc_copy_string(page_label, sizeof(page_label), p, dsc->line_length-7, &i); in dsc_parse_page()
3704 if (dsc->line_length - 7 - i == 0) { in dsc_parse_page()
3720 page_ordinal = dsc_get_int(p, dsc->line_length - 7 - i, NULL); in dsc_parse_page()
3723 (dsc->page_count && in dsc_parse_page()
3724 (page_ordinal != dsc->page[dsc->page_count-1].ordinal+1)) ) { in dsc_parse_page()
3725 int rc = dsc_error(dsc, CDSC_MESSAGE_PAGE_ORDINAL, dsc->line, in dsc_parse_page()
3726 dsc->line_length); in dsc_parse_page()
3739 page_number = dsc->page_count; in dsc_parse_page()
3740 dsc_add_page(dsc, page_ordinal, page_label); in dsc_parse_page()
3741 dsc->page[page_number].begin = DSC_START(dsc); in dsc_parse_page()
3742 dsc->page[page_number].end = DSC_START(dsc); in dsc_parse_page()
3744 if (dsc->page[page_number].label == NULL) in dsc_parse_page()
3753 dsc_debug_print(CDSC *dsc, const char *str) in dsc_debug_print() argument
3755 if (dsc->debug_print_fn) in dsc_debug_print()
3756 dsc->debug_print_fn(dsc->caller_data, str); in dsc_debug_print()
3772 dsc_error(CDSC *dsc, unsigned int explanation, in dsc_error() argument
3776 if (dsc->dsc_error_fn) in dsc_error()
3777 return dsc->dsc_error_fn(dsc->caller_data, dsc, in dsc_error()
3786 dsc_dcs2_fixup(CDSC *dsc) in dsc_dcs2_fixup() argument
3793 if (dsc->dcs2) { in dsc_dcs2_fixup()
3799 CDCS2 *pdcs = dsc->dcs2; in dsc_dcs2_fixup()
3803 if (dsc->page_count == 0) in dsc_dcs2_fixup()
3804 code = dsc_add_page(dsc, 1, composite); in dsc_dcs2_fixup()
3805 else if (dsc->page_count == 1) in dsc_dcs2_fixup()
3806 dsc->page[0].label = in dsc_dcs2_fixup()
3807 dsc_alloc_string(dsc, composite, (int)strlen(composite)+1); in dsc_dcs2_fixup()
3810 page_number = dsc->page_count - 1; in dsc_dcs2_fixup()
3811 pbegin = &dsc->page[page_number].begin; in dsc_dcs2_fixup()
3812 pend = &dsc->page[page_number].end; in dsc_dcs2_fixup()
3819 if (dsc->begincomments != dsc->endcomments) { in dsc_dcs2_fixup()
3820 *pbegin = min(dsc->begincomments, *pbegin); in dsc_dcs2_fixup()
3821 dsc->begincomments = 0; in dsc_dcs2_fixup()
3822 *pend = max(dsc->endcomments, *pend); in dsc_dcs2_fixup()
3823 dsc->endcomments = 0; in dsc_dcs2_fixup()
3826 if (dsc->beginpreview != dsc->endpreview) { in dsc_dcs2_fixup()
3827 *pbegin = min(dsc->beginpreview, *pbegin); in dsc_dcs2_fixup()
3828 dsc->beginpreview = 0; in dsc_dcs2_fixup()
3829 *pend = max(dsc->endpreview, *pend); in dsc_dcs2_fixup()
3830 dsc->endpreview = 0; in dsc_dcs2_fixup()
3833 if (dsc->begindefaults != dsc->enddefaults) { in dsc_dcs2_fixup()
3834 *pbegin = min(dsc->begindefaults, *pbegin); in dsc_dcs2_fixup()
3835 dsc->begindefaults = 0; in dsc_dcs2_fixup()
3836 *pend = max(dsc->enddefaults, *pend); in dsc_dcs2_fixup()
3837 dsc->enddefaults = 0; in dsc_dcs2_fixup()
3840 if (dsc->beginprolog != dsc->endprolog) { in dsc_dcs2_fixup()
3841 *pbegin = min(dsc->beginprolog, *pbegin); in dsc_dcs2_fixup()
3842 dsc->beginprolog = 0; in dsc_dcs2_fixup()
3843 *pend = max(dsc->endprolog, *pend); in dsc_dcs2_fixup()
3844 dsc->endprolog = 0; in dsc_dcs2_fixup()
3847 if (dsc->beginsetup != dsc->endsetup) { in dsc_dcs2_fixup()
3848 *pbegin = min(dsc->beginsetup, *pbegin); in dsc_dcs2_fixup()
3849 dsc->beginsetup = 0; in dsc_dcs2_fixup()
3850 *pend = max(dsc->endsetup, *pend); in dsc_dcs2_fixup()
3851 dsc->endsetup = 0; in dsc_dcs2_fixup()
3854 if (dsc->begintrailer != dsc->endtrailer) { in dsc_dcs2_fixup()
3855 *pbegin = min(dsc->begintrailer, *pbegin); in dsc_dcs2_fixup()
3856 dsc->begintrailer = 0; in dsc_dcs2_fixup()
3857 *pend = max(dsc->endtrailer, *pend); in dsc_dcs2_fixup()
3858 dsc->endtrailer = 0; in dsc_dcs2_fixup()
3866 page_number = dsc->page_count; in dsc_dcs2_fixup()
3869 code = dsc_add_page(dsc, page_number+1, pdcs->colourname); in dsc_dcs2_fixup()
3872 dsc->page[page_number].begin = pdcs->begin; in dsc_dcs2_fixup()
3873 dsc->page[page_number].end = pdcs->end; in dsc_dcs2_fixup()
3887 code = dsc_add_page(dsc, page_number+1, pdcs->colourname); in dsc_dcs2_fixup()
3890 dsc->page[page_number].begin = 0; in dsc_dcs2_fixup()
3891 dsc->page[page_number].end = 0; in dsc_dcs2_fixup()
3908 if (dsc->doseps_end && (*pend > dsc->doseps_end)) in dsc_dcs2_fixup()
3909 *pend = dsc->doseps_end; in dsc_dcs2_fixup()
3915 dsc_parse_platefile(CDSC *dsc) in dsc_parse_platefile() argument
3927 if (IS_DSC(dsc->line, "%%PlateFile:")) in dsc_parse_platefile()
3929 else if (IS_DSC(dsc->line, "%%+")) in dsc_parse_platefile()
3942 for (i=n; i<dsc->line_length; i++) { in dsc_parse_platefile()
3943 if (!IS_WHITE_OR_EOL(dsc->line[i])) { in dsc_parse_platefile()
3951 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_platefile()
3955 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_platefile()
3957 while (IS_WHITE_OR_EOL(dsc->line[n])) in dsc_parse_platefile()
3959 if (dsc->line[n] == '#') { in dsc_parse_platefile()
3964 dcs2.begin= dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_platefile()
3968 dsc_get_int(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_platefile()
3974 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_platefile()
3977 filename = dsc->line+n; in dsc_parse_platefile()
3978 filename_length = dsc->line_length-n; in dsc_parse_platefile()
3982 dsc_unknown(dsc); /* we didn't get all fields */ in dsc_parse_platefile()
3986 dcs2.colourname = dsc_alloc_string(dsc, in dsc_parse_platefile()
3989 dcs2.filetype = dsc_alloc_string(dsc, in dsc_parse_platefile()
3992 dcs2.location = dsc_alloc_string(dsc, in dsc_parse_platefile()
3995 dcs2.filename = dsc_add_line(dsc, filename, filename_length); in dsc_parse_platefile()
3999 dsc->file_length = min(dsc->file_length, dcs2.begin); in dsc_parse_platefile()
4001 pdcs2 = (CDCS2 *)dsc_memalloc(dsc, sizeof(CDCS2)); in dsc_parse_platefile()
4006 if (dsc->dcs2 == NULL) in dsc_parse_platefile()
4007 dsc->dcs2 = pdcs2; in dsc_parse_platefile()
4009 CDCS2 *this_dcs2 = dsc->dcs2; in dsc_parse_platefile()
4021 dsc_parse_dcs1plate(CDSC *dsc) in dsc_parse_dcs1plate() argument
4030 char *line = dsc->line; in dsc_parse_dcs1plate()
4037 line = dsc->last_line; in dsc_parse_dcs1plate()
4066 for (i=n; i<dsc->line_length; i++) { in dsc_parse_dcs1plate()
4067 if (!IS_WHITE_OR_EOL(dsc->line[i])) { in dsc_parse_dcs1plate()
4075 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_dcs1plate()
4077 dsc_unknown(dsc); /* we didn't get all fields */ in dsc_parse_dcs1plate()
4080 dcs2.colourname = dsc_alloc_string(dsc, in dsc_parse_dcs1plate()
4082 dcs2.filetype = dsc_alloc_string(dsc, "EPS", 3); in dsc_parse_dcs1plate()
4083 dcs2.location = dsc_alloc_string(dsc, "Local", 5); in dsc_parse_dcs1plate()
4085 dcs2.filename = dsc_alloc_string(dsc, in dsc_parse_dcs1plate()
4088 pdcs2 = (CDCS2 *)dsc_memalloc(dsc, sizeof(CDCS2)); in dsc_parse_dcs1plate()
4093 if (dsc->dcs2 == NULL) in dsc_parse_dcs1plate()
4094 dsc->dcs2 = pdcs2; in dsc_parse_dcs1plate()
4096 CDCS2 *this_dcs2 = dsc->dcs2; in dsc_parse_dcs1plate()
4113 dsc_find_platefile(CDSC *dsc, int page) in dsc_find_platefile() argument
4115 CDCS2 *pdcs = dsc->dcs2; in dsc_find_platefile()
4134 dsc_find_colour(CDSC *dsc, const char *colourname) in dsc_find_colour() argument
4136 CDSCCOLOUR *colour = dsc->colours; in dsc_find_colour()
4146 dsc_parse_process_colours(CDSC *dsc) in dsc_parse_process_colours() argument
4152 if (IS_DSC(dsc->line, "%%DocumentProcessColors:")) in dsc_parse_process_colours()
4154 else if (IS_DSC(dsc->line, "%%+")) in dsc_parse_process_colours()
4163 for (i=n; i<dsc->line_length; i++) { in dsc_parse_process_colours()
4164 if (!IS_WHITE_OR_EOL(dsc->line[i])) { in dsc_parse_process_colours()
4169 while (IS_WHITE(dsc->line[n])) in dsc_parse_process_colours()
4171 if (COMPARE(dsc->line+n, "(atend)")) { in dsc_parse_process_colours()
4172 if (dsc->scan_section == scan_comments) in dsc_parse_process_colours()
4175 dsc_unknown(dsc); in dsc_parse_process_colours()
4183 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_process_colours()
4186 if ((pcolour = dsc_find_colour(dsc, colourname)) == NULL) { in dsc_parse_process_colours()
4188 dsc_memalloc(dsc, sizeof(CDSCCOLOUR)); in dsc_parse_process_colours()
4193 pcolour->name = dsc_alloc_string(dsc, in dsc_parse_process_colours()
4195 if (dsc->colours == NULL) in dsc_parse_process_colours()
4196 dsc->colours = pcolour; in dsc_parse_process_colours()
4198 CDSCCOLOUR *this_colour = dsc->colours; in dsc_parse_process_colours()
4247 dsc_parse_custom_colours(CDSC *dsc) in dsc_parse_custom_colours() argument
4253 if (IS_DSC(dsc->line, "%%DocumentCustomColors:")) in dsc_parse_custom_colours()
4255 else if (IS_DSC(dsc->line, "%%+")) in dsc_parse_custom_colours()
4264 for (i=n; i<dsc->line_length; i++) { in dsc_parse_custom_colours()
4265 if (!IS_WHITE_OR_EOL(dsc->line[i])) { in dsc_parse_custom_colours()
4270 while (IS_WHITE(dsc->line[n])) in dsc_parse_custom_colours()
4272 if (COMPARE(dsc->line+n, "(atend)")) { in dsc_parse_custom_colours()
4273 if (dsc->scan_section == scan_comments) in dsc_parse_custom_colours()
4276 dsc_unknown(dsc); in dsc_parse_custom_colours()
4284 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_custom_colours()
4287 if ((pcolour = dsc_find_colour(dsc, colourname)) == NULL) { in dsc_parse_custom_colours()
4289 dsc_memalloc(dsc, sizeof(CDSCCOLOUR)); in dsc_parse_custom_colours()
4293 pcolour->name = dsc_alloc_string(dsc, in dsc_parse_custom_colours()
4296 if (dsc->colours == NULL) in dsc_parse_custom_colours()
4297 dsc->colours = pcolour; in dsc_parse_custom_colours()
4299 CDSCCOLOUR *this_colour = dsc->colours; in dsc_parse_custom_colours()
4313 dsc_parse_cmyk_custom_colour(CDSC *dsc) in dsc_parse_cmyk_custom_colour() argument
4320 if (IS_DSC(dsc->line, "%%CMYKCustomColor:")) in dsc_parse_cmyk_custom_colour()
4322 else if (IS_DSC(dsc->line, "%%+")) in dsc_parse_cmyk_custom_colour()
4333 for (i=n; i<dsc->line_length; i++) { in dsc_parse_cmyk_custom_colour()
4334 if (!IS_WHITE_OR_EOL(dsc->line[i])) { in dsc_parse_cmyk_custom_colour()
4343 cyan = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_cmyk_custom_colour()
4346 magenta = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_cmyk_custom_colour()
4349 yellow = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_cmyk_custom_colour()
4352 black = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_cmyk_custom_colour()
4356 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_cmyk_custom_colour()
4359 if ((pcolour = dsc_find_colour(dsc, colourname)) == NULL) { in dsc_parse_cmyk_custom_colour()
4361 dsc_memalloc(dsc, sizeof(CDSCCOLOUR)); in dsc_parse_cmyk_custom_colour()
4365 pcolour->name = dsc_alloc_string(dsc, in dsc_parse_cmyk_custom_colour()
4368 if (dsc->colours == NULL) in dsc_parse_cmyk_custom_colour()
4369 dsc->colours = pcolour; in dsc_parse_cmyk_custom_colour()
4371 CDSCCOLOUR *this_colour = dsc->colours; in dsc_parse_cmyk_custom_colour()
4389 dsc_parse_rgb_custom_colour(CDSC *dsc) in dsc_parse_rgb_custom_colour() argument
4396 if (IS_DSC(dsc->line, "%%RGBCustomColor:")) in dsc_parse_rgb_custom_colour()
4398 else if (IS_DSC(dsc->line, "%%+")) in dsc_parse_rgb_custom_colour()
4409 for (i=n; i<dsc->line_length; i++) { in dsc_parse_rgb_custom_colour()
4410 if (!IS_WHITE_OR_EOL(dsc->line[i])) { in dsc_parse_rgb_custom_colour()
4419 red = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_rgb_custom_colour()
4422 green = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_rgb_custom_colour()
4425 blue = dsc_get_real(dsc->line+n, dsc->line_length-n, &i); in dsc_parse_rgb_custom_colour()
4429 dsc->line+n, dsc->line_length-n, &i); in dsc_parse_rgb_custom_colour()
4432 if ((pcolour = dsc_find_colour(dsc, colourname)) == NULL) { in dsc_parse_rgb_custom_colour()
4434 dsc_memalloc(dsc, sizeof(CDSCCOLOUR)); in dsc_parse_rgb_custom_colour()
4438 pcolour->name = dsc_alloc_string(dsc, in dsc_parse_rgb_custom_colour()
4441 if (dsc->colours == NULL) in dsc_parse_rgb_custom_colour()
4442 dsc->colours = pcolour; in dsc_parse_rgb_custom_colour()
4444 CDSCCOLOUR *this_colour = dsc->colours; in dsc_parse_rgb_custom_colour()