[poppler] 3 commits - config.h.cmake goo/JpegWriter.cc poppler/StdinCachedFile.cc poppler/TextOutputDev.cc utils/pdftocairo.cc utils/pdftoppm.cc
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Aug 29 20:48:40 UTC 2021
config.h.cmake | 2 ++
goo/JpegWriter.cc | 4 ++--
poppler/StdinCachedFile.cc | 8 ++++----
poppler/TextOutputDev.cc | 8 ++++----
utils/pdftocairo.cc | 14 ++++++++++----
utils/pdftoppm.cc | 8 ++++----
6 files changed, 26 insertions(+), 18 deletions(-)
New commits:
commit e2183097ad35038bb7266f181578020edf7cd08d
Author: Peter Williams <peter at newton.cx>
Date: Wed Aug 18 10:39:21 2021 -0400
Fix up setmode calls
To compile and work correctly on both Cygwin and MSVC, we should always
call the function `_setmode` and check for either `_WIN32` or
`__CYGWIN__` being defined. This fixes the MSVC build and corrects some
behavior handling output to stdout on Cygwin.
diff --git a/poppler/StdinCachedFile.cc b/poppler/StdinCachedFile.cc
index 4727064e..90e38aaf 100644
--- a/poppler/StdinCachedFile.cc
+++ b/poppler/StdinCachedFile.cc
@@ -14,9 +14,9 @@
#include "StdinCachedFile.h"
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__CYGWIN__)
# include <fcntl.h> // for O_BINARY
-# include <io.h> // for setmode
+# include <io.h> // for _setmode
#endif
#include <cstdio>
@@ -25,8 +25,8 @@ size_t StdinCacheLoader::init(GooString *dummy, CachedFile *cachedFile)
size_t read, size = 0;
char buf[CachedFileChunkSize];
-#ifdef _WIN32
- setmode(fileno(stdin), O_BINARY);
+#if defined(_WIN32) || defined(__CYGWIN__)
+ _setmode(fileno(stdin), O_BINARY);
#endif
CachedFileWriter writer = CachedFileWriter(cachedFile, nullptr);
diff --git a/poppler/TextOutputDev.cc b/poppler/TextOutputDev.cc
index 041503f6..9583a700 100644
--- a/poppler/TextOutputDev.cc
+++ b/poppler/TextOutputDev.cc
@@ -58,9 +58,9 @@
#include <cfloat>
#include <cctype>
#include <algorithm>
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__CYGWIN__)
# include <fcntl.h> // for O_BINARY
-# include <io.h> // for setmode
+# include <io.h> // for _setmode
#endif
#include "goo/gfile.h"
#include "goo/gmem.h"
@@ -5544,9 +5544,9 @@ TextOutputDev::TextOutputDev(const char *fileName, bool physLayoutA, double fixe
if (fileName) {
if (!strcmp(fileName, "-")) {
outputStream = stdout;
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__CYGWIN__)
// keep DOS from munging the end-of-line characters
- setmode(fileno(stdout), O_BINARY);
+ _setmode(fileno(stdout), O_BINARY);
#endif
} else if ((outputStream = openFile(fileName, append ? "ab" : "wb"))) {
needClose = true;
diff --git a/utils/pdftocairo.cc b/utils/pdftocairo.cc
index 8cdb13d2..b9ee9129 100644
--- a/utils/pdftocairo.cc
+++ b/utils/pdftocairo.cc
@@ -50,6 +50,9 @@
#include <cmath>
#include <cstring>
#include <fcntl.h>
+#if defined(_WIN32) || defined(__CYGWIN__)
+# include <io.h> // for _setmode
+#endif
#include "parseargs.h"
#include "goo/gmem.h"
#include "goo/GooString.h"
@@ -388,8 +391,8 @@ static void writePageImage(GooString *filename)
return;
if (filename->cmp("fd://0") == 0) {
-#ifdef _WIN32
- setmode(fileno(stdout), O_BINARY);
+#if defined(_WIN32) || defined(__CYGWIN__)
+ _setmode(fileno(stdout), O_BINARY);
#endif
file = stdout;
} else
@@ -558,9 +561,12 @@ static void beginDocument(GooString *inputFileName, GooString *outputFileName, d
if (printToWin32) {
output_file = nullptr;
} else {
- if (outputFileName->cmp("fd://0") == 0)
+ if (outputFileName->cmp("fd://0") == 0) {
+#if defined(_WIN32) || defined(__CYGWIN__)
+ _setmode(fileno(stdout), O_BINARY);
+#endif
output_file = stdout;
- else {
+ } else {
output_file = fopen(outputFileName->c_str(), "wb");
if (!output_file) {
fprintf(stderr, "Error opening output file %s\n", outputFileName->c_str());
diff --git a/utils/pdftoppm.cc b/utils/pdftoppm.cc
index 3e889b9c..76d35c8c 100644
--- a/utils/pdftoppm.cc
+++ b/utils/pdftoppm.cc
@@ -44,9 +44,9 @@
#include "config.h"
#include <poppler-config.h>
-#ifdef _WIN32
+#if defined(_WIN32) || defined(__CYGWIN__)
# include <fcntl.h> // for O_BINARY
-# include <io.h> // for setmode
+# include <io.h> // for _setmode
#endif
#include <cstdio>
#include <cmath>
@@ -314,8 +314,8 @@ static void savePageSlice(PDFDoc *doc, SplashOutputDev *splashOut, int pg, int x
exit(EXIT_FAILURE);
}
} else {
-#ifdef _WIN32
- setmode(fileno(stdout), O_BINARY);
+#if defined(_WIN32) || defined(__CYGWIN__)
+ _setmode(fileno(stdout), O_BINARY);
#endif
if (png) {
commit db9aa98fb14f3e88f8ab9fd6fc5043a45ccba3fd
Author: Peter Williams <peter at newton.cx>
Date: Wed Aug 18 10:38:11 2021 -0400
Map str{n,}casecmp to supported names on MSVC
diff --git a/config.h.cmake b/config.h.cmake
index 1d66c9ba..00e1445a 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -176,6 +176,8 @@
#if defined(_MSC_VER) || defined(__BORLANDC__)
#define popen _popen
#define pclose _pclose
+#define strncasecmp _strnicmp
+#define strcasecmp _stricmp
#endif
/* Number of bits in a file offset, on hosts where this is settable. */
commit e5cfc6977f716c4d42df4598cdd958fd865ed1a0
Author: Peter Williams <peter at newton.cx>
Date: Wed Aug 18 10:36:54 2021 -0400
JpegWriter: include poppler/Error.h sooner
This is needed to avoid a symbol redefinition error on Windows/MSVC.
diff --git a/goo/JpegWriter.cc b/goo/JpegWriter.cc
index e5a4a3f2..f122c27a 100644
--- a/goo/JpegWriter.cc
+++ b/goo/JpegWriter.cc
@@ -19,12 +19,12 @@
#ifdef ENABLE_LIBJPEG
+# include "poppler/Error.h"
+
extern "C" {
# include <jpeglib.h>
}
-# include "poppler/Error.h"
-
struct JpegWriterPrivate
{
bool progressive;
More information about the poppler
mailing list