[poppler] utils/pdftops.cc
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Wed Mar 29 09:54:25 UTC 2023
utils/pdftops.cc | 23 +++++++++++------------
1 file changed, 11 insertions(+), 12 deletions(-)
New commits:
commit 09aed1a65e703ec419980506d12578ca4149f58d
Author: Oliver Sander <oliver.sander at tu-dresden.de>
Date: Wed Mar 29 08:36:49 2023 +0200
Use std::string for psFileName, instead of GooString
This simplifies the memory and error handling a little bit.
diff --git a/utils/pdftops.cc b/utils/pdftops.cc
index 89a53ba8..d9f6692a 100644
--- a/utils/pdftops.cc
+++ b/utils/pdftops.cc
@@ -25,7 +25,7 @@
// Copyright (C) 2013 Suzuki Toshiya <mpsuzuki at hiroshima-u.ac.jp>
// Copyright (C) 2014, 2017 Adrian Johnson <ajohnson at redneon.com>
// Copyright (C) 2018 Adam Reichold <adam.reichold at t-online.de>
-// Copyright (C) 2019, 2021 Oliver Sander <oliver.sander at tu-dresden.de>
+// Copyright (C) 2019, 2021, 2023 Oliver Sander <oliver.sander at tu-dresden.de>
// Copyright (C) 2020 Philipp Knechtges <philipp-dev at knechtges.com>
// Copyright (C) 2021 Hubert Figuiere <hub at figuiere.net>
//
@@ -194,7 +194,7 @@ int main(int argc, char *argv[])
{
std::unique_ptr<PDFDoc> doc;
GooString *fileName;
- GooString *psFileName;
+ std::string psFileName;
PSLevel level;
PSOutMode mode;
std::optional<GooString> ownerPW, userPW;
@@ -391,18 +391,19 @@ int main(int argc, char *argv[])
// construct PostScript file name
if (argc == 3) {
- psFileName = new GooString(argv[2]);
+ psFileName = std::string(argv[2]);
} else if (fileName->cmp("fd://0") == 0) {
error(errCommandLine, -1, "You have to provide an output filename when reading from stdin.");
goto err1;
} else {
const char *p = fileName->c_str() + fileName->getLength() - 4;
if (!strcmp(p, ".pdf") || !strcmp(p, ".PDF")) {
- psFileName = new GooString(fileName->c_str(), fileName->getLength() - 4);
+ psFileName = std::string(fileName->c_str(), fileName->getLength() - 4);
+
} else {
- psFileName = fileName->copy();
+ psFileName = fileName->toStr();
}
- psFileName->append(doEPS ? ".eps" : ".ps");
+ psFileName += (doEPS ? ".eps" : ".ps");
}
// get page range
@@ -414,13 +415,13 @@ int main(int argc, char *argv[])
}
if (lastPage < firstPage) {
error(errCommandLine, -1, "Wrong page range given: the first page ({0:d}) can not be after the last page ({1:d}).", firstPage, lastPage);
- goto err2;
+ goto err1;
}
// check for multi-page EPS or form
if ((doEPS || doForm) && firstPage != lastPage) {
error(errCommandLine, -1, "EPS and form files can only contain one page.");
- goto err2;
+ goto err1;
}
for (int i = firstPage; i <= lastPage; ++i) {
@@ -428,7 +429,7 @@ int main(int argc, char *argv[])
}
// write PostScript file
- psOut = new PSOutputDev(psFileName->c_str(), doc.get(), nullptr, pages, mode, paperWidth, paperHeight, noCrop, duplex, /*imgLLXA*/ 0, /*imgLLYA*/ 0,
+ psOut = new PSOutputDev(psFileName.c_str(), doc.get(), nullptr, pages, mode, paperWidth, paperHeight, noCrop, duplex, /*imgLLXA*/ 0, /*imgLLYA*/ 0,
/*imgURXA*/ 0, /*imgURYA*/ 0, psRasterizeWhenNeeded, /*manualCtrlA*/ false, /*customCodeCbkA*/ nullptr, /*customCodeCbkDataA*/ nullptr, level);
if (noCenter) {
psOut->setPSCenter(false);
@@ -496,15 +497,13 @@ int main(int argc, char *argv[])
} else {
delete psOut;
exitCode = 2;
- goto err2;
+ goto err1;
}
delete psOut;
exitCode = 0;
// clean up
-err2:
- delete psFileName;
err1:
delete fileName;
err0:
More information about the poppler
mailing list