[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/pdf-tools 37bbe86175: Use mkstemp instead of tempnam
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/pdf-tools 37bbe86175: Use mkstemp instead of tempnam |
Date: |
Wed, 11 May 2022 15:58:45 -0400 (EDT) |
branch: elpa/pdf-tools
commit 37bbe861755bc60c7cc333359fee3e2a5d919c77
Author: Vedang Manerikar <ved.manerikar@gmail.com>
Commit: Vedang Manerikar <ved.manerikar@gmail.com>
Use mkstemp instead of tempnam
This reverts commit 8ee31220a6ae3e41549bfffca7a89c481d270004 and
brings in @JunyuanChen's change once again.
We modify the commit to fix the problem on Windows by changing the
code as follows:
--- a/server/epdfinfo.c
+++ b/server/epdfinfo.c
@@ -347,6 +347,6 @@
static char*
mktempfile()
{
- char template[] = "/tmp/epdfinfoXXXXXX";
+ char template[] = P_tmpdir "/epdfinfoXXXXXX";
char *filename = malloc(sizeof(template));
memcpy(filename, template, sizeof(template));
This works correctly for Windows (as confirmed by @ShuguangSun),
Mac (tested by @vedang) and Linux (tested by @Junyuanchen)
Relates to: #101, #94
Closes: #110
---
server/epdfinfo.c | 29 +++++++++++------------------
1 file changed, 11 insertions(+), 18 deletions(-)
diff --git a/server/epdfinfo.c b/server/epdfinfo.c
index 3e0e7c1166..906bdb486b 100644
--- a/server/epdfinfo.c
+++ b/server/epdfinfo.c
@@ -35,6 +35,7 @@
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
+#include <unistd.h>
#include <errno.h>
#include <png.h>
#include <math.h>
@@ -346,26 +347,18 @@ strchomp (char *str)
static char*
mktempfile()
{
- char *filename = NULL;
- int tries = 3;
- while (! filename && tries-- > 0)
+ char template[] = P_tmpdir "/epdfinfoXXXXXX";
+ char *filename = malloc(sizeof(template));
+ memcpy(filename, template, sizeof(template));
+ int fd = mkstemp(filename);
+ if (fd == -1)
{
-
- filename = tempnam(NULL, "epdfinfo");
- if (filename)
- {
- int fd = open(filename, O_CREAT | O_EXCL | O_RDONLY, S_IRWXU);
- if (fd > 0)
- close (fd);
- else
- {
- free (filename);
- filename = NULL;
- }
- }
+ fprintf (stderr, "Unable to create tempfile");
+ free(filename);
+ filename = NULL;
}
- if (! filename)
- fprintf (stderr, "Unable to create tempfile");
+ else
+ close(fd);
return filename;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [nongnu] elpa/pdf-tools 37bbe86175: Use mkstemp instead of tempnam,
ELPA Syncer <=