diff --git a/src/epsimage.cpp b/src/epsimage.cpp index d63b1f7d..0e8dd4a3 100644 --- a/src/epsimage.cpp +++ b/src/epsimage.cpp @@ -393,6 +393,7 @@ namespace { unsigned int depth = 0; const unsigned int maxDepth = UINT_MAX; bool illustrator8 = false; + bool corelDraw = false; bool implicitPage = false; bool implicitPageTrailer = false; bool inDefaultsPreviewPrologSetup = false; @@ -547,6 +548,8 @@ namespace { posAi7ThumbnailEndData = startPos; } else if (posEndComments == posEndEps && line == "%%EndComments") { posEndComments = startPos; + } else if (inDefaultsPreviewPrologSetup && startsWith(line, "%%BeginResource: procset wCorel")) { + corelDraw = true; } else if (line == "%%EndPreview") { inDefaultsPreviewPrologSetup = false; } else if (line == "%%EndDefaults") { @@ -922,6 +925,10 @@ namespace { writeTemp(*tempIo, "%%BeginPageSetup" + lineEnding); } writeTemp(*tempIo, "%Exiv2BeginXMP: Before %%EndPageSetup" + lineEnding); + if (corelDraw) { + writeTemp(*tempIo, "%Exiv2Notice: The following line is needed by CorelDRAW." + lineEnding); + writeTemp(*tempIo, "@rs" + lineEnding); + } if (posBeginPhotoshop != posEndEps) { writeTemp(*tempIo, "%Exiv2Notice: The following line is needed by Photoshop." + lineEnding); writeTemp(*tempIo, "%begin_xml_code" + lineEnding); @@ -953,6 +960,10 @@ namespace { writeTemp(*tempIo, "%Exiv2Notice: The following line is needed by Photoshop." + lineEnding); writeTemp(*tempIo, "%end_xml_code" + lineEnding); } + if (corelDraw) { + writeTemp(*tempIo, "%Exiv2Notice: The following line is needed by CorelDRAW." + lineEnding); + writeTemp(*tempIo, "@sv" + lineEnding); + } writeTemp(*tempIo, "%Exiv2EndXMP" + lineEnding); if (line != "%%EndPageSetup") { writeTemp(*tempIo, "%%EndPageSetup" + lineEnding); diff --git a/test/data/eps/eps-flat_coreldraw-x3-lev2.eps b/test/data/eps/eps-flat_coreldraw-x3-lev2.eps new file mode 100644 index 00000000..3c6634b9 Binary files /dev/null and b/test/data/eps/eps-flat_coreldraw-x3-lev2.eps differ diff --git a/test/data/eps/eps-flat_coreldraw-x3-lev2.eps.delxmp b/test/data/eps/eps-flat_coreldraw-x3-lev2.eps.delxmp new file mode 100644 index 00000000..e2554916 Binary files /dev/null and b/test/data/eps/eps-flat_coreldraw-x3-lev2.eps.delxmp differ diff --git a/test/data/eps/eps-flat_coreldraw-x3-lev2.eps.newxmp b/test/data/eps/eps-flat_coreldraw-x3-lev2.eps.newxmp new file mode 100644 index 00000000..ce679285 Binary files /dev/null and b/test/data/eps/eps-flat_coreldraw-x3-lev2.eps.newxmp differ diff --git a/test/data/eps/eps-flat_coreldraw-x3-lev2.xmp b/test/data/eps/eps-flat_coreldraw-x3-lev2.xmp new file mode 100644 index 00000000..12bbf745 --- /dev/null +++ b/test/data/eps/eps-flat_coreldraw-x3-lev2.xmp @@ -0,0 +1 @@ + diff --git a/test/data/eps/eps-flat_coreldraw-x5-lev2.eps b/test/data/eps/eps-flat_coreldraw-x5-lev2.eps new file mode 100644 index 00000000..cb83a40d Binary files /dev/null and b/test/data/eps/eps-flat_coreldraw-x5-lev2.eps differ diff --git a/test/data/eps/eps-flat_coreldraw-x5-lev2.eps.delxmp b/test/data/eps/eps-flat_coreldraw-x5-lev2.eps.delxmp new file mode 100644 index 00000000..9aa25978 Binary files /dev/null and b/test/data/eps/eps-flat_coreldraw-x5-lev2.eps.delxmp differ diff --git a/test/data/eps/eps-flat_coreldraw-x5-lev2.eps.newxmp b/test/data/eps/eps-flat_coreldraw-x5-lev2.eps.newxmp new file mode 100644 index 00000000..addd14ee Binary files /dev/null and b/test/data/eps/eps-flat_coreldraw-x5-lev2.eps.newxmp differ diff --git a/test/data/eps/eps-flat_coreldraw-x5-lev2.xmp b/test/data/eps/eps-flat_coreldraw-x5-lev2.xmp new file mode 100644 index 00000000..12bbf745 --- /dev/null +++ b/test/data/eps/eps-flat_coreldraw-x5-lev2.xmp @@ -0,0 +1 @@ + diff --git a/test/data/eps/eps-test.out b/test/data/eps/eps-test.out index 46f66ae8..bbfbf7f0 100644 --- a/test/data/eps/eps-test.out +++ b/test/data/eps/eps-test.out @@ -1,4 +1,54 @@ +-----> eps-flat_coreldraw-x3-lev2.eps <----- + +Command: exiv2 -u -pa eps-flat_coreldraw-x3-lev2.eps +Exit code: 253 + +Command: exiv2 -dx eps-flat_coreldraw-x3-lev2.eps +Exit code: 0 + +Command: exiv2 -f -ex eps-flat_coreldraw-x3-lev2.eps +Exit code: 0 + +Restore: eps-flat_coreldraw-x3-lev2.eps + +Command: exiv2 -f -eX eps-flat_coreldraw-x3-lev2.eps +Exit code: 0 + +Command: exiv2 -ix eps-flat_coreldraw-x3-lev2.eps +Exit code: 0 + +Command: (2) exiv2 -ix eps-flat_coreldraw-x3-lev2.eps +Exit code: 0 + +Command: exiv2 -f -ex eps-flat_coreldraw-x3-lev2.eps +Exit code: 0 + +-----> eps-flat_coreldraw-x5-lev2.eps <----- + +Command: exiv2 -u -pa eps-flat_coreldraw-x5-lev2.eps +Exit code: 253 + +Command: exiv2 -dx eps-flat_coreldraw-x5-lev2.eps +Exit code: 0 + +Command: exiv2 -f -ex eps-flat_coreldraw-x5-lev2.eps +Exit code: 0 + +Restore: eps-flat_coreldraw-x5-lev2.eps + +Command: exiv2 -f -eX eps-flat_coreldraw-x5-lev2.eps +Exit code: 0 + +Command: exiv2 -ix eps-flat_coreldraw-x5-lev2.eps +Exit code: 0 + +Command: (2) exiv2 -ix eps-flat_coreldraw-x5-lev2.eps +Exit code: 0 + +Command: exiv2 -f -ex eps-flat_coreldraw-x5-lev2.eps +Exit code: 0 + -----> eps-flat_empty-eof-noeol.eps <----- Command: exiv2 -u -pa eps-flat_empty-eof-noeol.eps diff --git a/test/data/preview/eps-flat_coreldraw-x3-lev2-preview1.tif b/test/data/preview/eps-flat_coreldraw-x3-lev2-preview1.tif new file mode 100644 index 00000000..29732726 Binary files /dev/null and b/test/data/preview/eps-flat_coreldraw-x3-lev2-preview1.tif differ diff --git a/test/data/preview/eps-flat_coreldraw-x5-lev2-preview1.tif b/test/data/preview/eps-flat_coreldraw-x5-lev2-preview1.tif new file mode 100644 index 00000000..375b5b62 Binary files /dev/null and b/test/data/preview/eps-flat_coreldraw-x5-lev2-preview1.tif differ diff --git a/test/data/preview/preview-test.out b/test/data/preview/preview-test.out index 82254194..8b878ad4 100644 --- a/test/data/preview/preview-test.out +++ b/test/data/preview/preview-test.out @@ -1,4 +1,22 @@ +-----> eps-flat_coreldraw-x3-lev2.eps <----- + +Command: exiv2 -pp eps-flat_coreldraw-x3-lev2.eps +Preview 1: image/tiff, 1164x1054 pixels, 1229768 bytes +Exit code: 0 + +Command: exiv2 -f -ep eps-flat_coreldraw-x3-lev2.eps +Exit code: 0 + +-----> eps-flat_coreldraw-x5-lev2.eps <----- + +Command: exiv2 -pp eps-flat_coreldraw-x5-lev2.eps +Preview 1: image/tiff, 422x348 pixels, 152914 bytes +Exit code: 0 + +Command: exiv2 -f -ep eps-flat_coreldraw-x5-lev2.eps +Exit code: 0 + -----> eps-flat_inkscape-epsi.eps <----- Command: exiv2 -pp eps-flat_inkscape-epsi.eps diff --git a/test/preview-test.sh b/test/preview-test.sh index e6453acc..fb69f50f 100755 --- a/test/preview-test.sh +++ b/test/preview-test.sh @@ -19,7 +19,9 @@ fi # ---------------------------------------------------------------------- # Tests -images="eps/eps-flat_inkscape-epsi.eps \ +images="eps/eps-flat_coreldraw-x3-lev2.eps \ + eps/eps-flat_coreldraw-x5-lev2.eps \ + eps/eps-flat_inkscape-epsi.eps \ eps/eps-flat_oodraw_ai-10-lev2.eps \ eps/eps-flat_oodraw_ai-8-lev2.eps \ eps/eps-flat_oodraw_ai-8-lev3.eps \