[poppler] 3 commits - goo/gbasename.cc utils/InMemoryFile.cc utils/InMemoryFile.h
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sun Feb 10 22:31:36 UTC 2019
goo/gbasename.cc | 10 +++++++++-
utils/InMemoryFile.cc | 4 +++-
utils/InMemoryFile.h | 2 ++
3 files changed, 14 insertions(+), 2 deletions(-)
New commits:
commit e4b72ca0694d86915676a47642fa3c319f8b936b
Author: <greg at midgaarde.localdomain>
Date: Sun Feb 10 16:25:35 2019 -0500
tidyup: #if to #ifdef in HAVE_IN_MEMORY_FILE_FOPENCOOKIE as per aacid
diff --git a/utils/InMemoryFile.cc b/utils/InMemoryFile.cc
index b7865fe9..702a105a 100644
--- a/utils/InMemoryFile.cc
+++ b/utils/InMemoryFile.cc
@@ -58,7 +58,7 @@ int InMemoryFile::_seek(off64_t* offset, int whence)
FILE* InMemoryFile::open(const char* mode)
{
-#if HAVE_IN_MEMORY_FILE_FOPENCOOKIE
+#ifdef HAVE_IN_MEMORY_FILE_FOPENCOOKIE
if (fptr != nullptr) {
fprintf(stderr, "InMemoryFile: BUG: Why is this opened more than once?");
return nullptr; // maybe there's some legit reason for it, whoever comes up with one can remove this line
commit 7b9b3a924d6b63e25e6e6157be5c5e471c43e406
Author: <greg at midgaarde.localdomain>
Date: Sun Feb 10 16:25:18 2019 -0500
MSVC/Mac build fix: Hide the private methods in InMemoryFile behind a HAVE_IN_MEMORY_FILE_FOPENCOOKIE guard. These use datatypes like off64_t which don't seem to port to MSVC/Mac.
diff --git a/utils/InMemoryFile.cc b/utils/InMemoryFile.cc
index d4ed0f48..b7865fe9 100644
--- a/utils/InMemoryFile.cc
+++ b/utils/InMemoryFile.cc
@@ -25,6 +25,7 @@ InMemoryFile::InMemoryFile()
{
}
+#ifdef HAVE_IN_MEMORY_FILE_FOPENCOOKIE
ssize_t InMemoryFile::_read(char* buf, size_t sz)
{
auto toRead = std::min<size_t>(data.size() - iohead, sz);
@@ -53,6 +54,7 @@ int InMemoryFile::_seek(off64_t* offset, int whence)
iohead = static_cast<size_t>(*offset);
return 0;
}
+#endif // def HAVE_IN_MEMORY_FILE_FOPENCOOKIE
FILE* InMemoryFile::open(const char* mode)
{
diff --git a/utils/InMemoryFile.h b/utils/InMemoryFile.h
index 6af7d503..293e1016 100644
--- a/utils/InMemoryFile.h
+++ b/utils/InMemoryFile.h
@@ -32,9 +32,11 @@ private:
std::vector<char> data;
FILE *fptr;
+#ifdef HAVE_IN_MEMORY_FILE_FOPENCOOKIE
ssize_t _read(char* buf, size_t sz);
ssize_t _write(const char* buf, size_t sz);
int _seek(off64_t* offset, int whence);
+#endif
public:
InMemoryFile();
commit 2d1c8327c936600deca28a15230804a448e3f8a2
Author: <greg at midgaarde.localdomain>
Date: Sun Feb 10 16:24:29 2019 -0500
MSVC build fix: gbasename: basename()/libgen.h don't exist in MSVC-land. Instead, use _splitpath_s.
diff --git a/goo/gbasename.cc b/goo/gbasename.cc
index dd4607b4..819de885 100644
--- a/goo/gbasename.cc
+++ b/goo/gbasename.cc
@@ -39,13 +39,21 @@
//========================================================================
#include "gbasename.h"
-#include <libgen.h>
+#ifndef _MSC_VER
+# include <libgen.h>
+#endif
#include <string.h>
std::string gbasename(const char* filename)
{
+#ifdef _MSC_VER
+ char fname[_MAX_FNAME] = {}, fext[_MAX_EXT] = {};
+ errno_t z = _splitpath_s(filename, NULL, 0, NULL, 0, fname, _countof(fname), fext, _countof(fext));
+ return std::string(fname) + std::string(fext);
+#else
char* mutabl = strdup(filename);
std::string retu = basename(mutabl);
free(mutabl);
return retu;
+#endif
}
More information about the poppler
mailing list