Introduction
Introduction Statistics Contact Development Disclaimer Help
Simplify tempfile handling. - sam - An updated version of the sam text editor.
git clone git://vernunftzentrum.de/sam.git
Log
Files
Refs
LICENSE
---
commit 4c9e3607fb166772364e2c55a56db63ea761d345
parent f1040f7de2a4570da1602e1cc13d4616b5b12405
Author: Rob King <[email protected]>
Date: Thu, 1 Sep 2016 09:42:41 -0500
Simplify tempfile handling.
Diffstat:
include/u.h | 2 +-
sam/disc.c | 2 +-
sam/sam.h | 2 +-
sam/unix.c | 28 +++++-----------------------
4 files changed, 8 insertions(+), 26 deletions(-)
---
diff --git a/include/u.h b/include/u.h
@@ -10,7 +10,7 @@
typedef uint16_t ushort;
typedef uint8_t uchar;
-typedef wchar_t Rune;
+typedef uint16_t Rune;
#if USE64BITS == 0
typedef uint32_t ulong;
diff --git a/sam/disc.c b/sam/disc.c
@@ -20,7 +20,7 @@ Dstart(void)
for(i=0, dd=desc; dd->fd; i++, dd++)
if(i == NBUFFILES-1)
panic("too many buffer files");
- fd = newtmp(i);
+ fd = newtmp();
if(fd < 0)
panic("can't create buffer file");
dd->fd = fd;
diff --git a/sam/sam.h b/sam/sam.h
@@ -281,7 +281,7 @@ void move(File*, Address);
void moveto(File*, Range);
File *newfile(void);
void nextmatch(File*, String*, Posn, int);
-int newtmp(int);
+int newtmp(void);
void notifyf(void*, char*);
void panic(char*);
void printposn(File*, int);
diff --git a/sam/unix.c b/sam/unix.c
@@ -120,31 +120,13 @@ notifyf(void *a, char *b) /* never called */
{
}
-/*
- * if your system doesn't have tempnam(), substitute the following
- * code for this function:
- * FILE *f;
- * f = tmpfile();
- * if (f == 0)
- * return -1;
- * return fileno(f);
- *
- * we use tempnam to allow temp files to be allocated in the
- * most efficient place; nodes with disks may mount /usr/tmp
- * remotely, causing excessive network traffic. place
- * the temp files locally, if possible.
- */
int
-newtmp(int i)
+newtmp(void)
{
- char s[1024] = {0};
- sprint(s, "%s/sam.XXXXXX", TMPDIR);
- int fd = mkstemp(s);
- if (fd >= 0)
- {
- unlink(s);
- }
- return fd;
+ FILE *f = tmpfile();
+ if (f)
+ return fileno(f);
+ panic("could not create tempfile!");
}
void
You are viewing proxied material from vernunftzentrum.de. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.