diff options
Diffstat (limited to 'openbsd-compat')
-rw-r--r-- | openbsd-compat/bsd-misc.c | 21 | ||||
-rw-r--r-- | openbsd-compat/bsd-misc.h | 5 |
2 files changed, 24 insertions, 2 deletions
diff --git a/openbsd-compat/bsd-misc.c b/openbsd-compat/bsd-misc.c index 7bf46dd75..237f93931 100644 --- a/openbsd-compat/bsd-misc.c +++ b/openbsd-compat/bsd-misc.c | |||
@@ -24,7 +24,7 @@ | |||
24 | 24 | ||
25 | #include "includes.h" | 25 | #include "includes.h" |
26 | 26 | ||
27 | RCSID("$Id: bsd-misc.c,v 1.5 2001/10/10 20:38:56 mouring Exp $"); | 27 | RCSID("$Id: bsd-misc.c,v 1.6 2002/05/08 02:51:32 tim Exp $"); |
28 | 28 | ||
29 | char *get_progname(char *argv0) | 29 | char *get_progname(char *argv0) |
30 | { | 30 | { |
@@ -99,3 +99,22 @@ int utimes(char *filename, struct timeval *tvp) | |||
99 | return(utime(filename, &ub)); | 99 | return(utime(filename, &ub)); |
100 | } | 100 | } |
101 | #endif | 101 | #endif |
102 | |||
103 | #ifndef HAVE_TRUNCATE | ||
104 | int truncate (const char *path, off_t length) | ||
105 | { | ||
106 | int fd, ret, saverrno; | ||
107 | |||
108 | fd = open(path, O_WRONLY); | ||
109 | if (fd < 0) | ||
110 | return -1; | ||
111 | |||
112 | ret = ftruncate(fd, length); | ||
113 | saverrno = errno; | ||
114 | (void) close (fd); | ||
115 | if (ret == -1) | ||
116 | errno = saverrno; | ||
117 | return(ret); | ||
118 | } | ||
119 | #endif /* HAVE_TRUNCATE */ | ||
120 | |||
diff --git a/openbsd-compat/bsd-misc.h b/openbsd-compat/bsd-misc.h index 2ca0f3704..9475a2945 100644 --- a/openbsd-compat/bsd-misc.h +++ b/openbsd-compat/bsd-misc.h | |||
@@ -22,7 +22,7 @@ | |||
22 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 22 | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
23 | */ | 23 | */ |
24 | 24 | ||
25 | /* $Id: bsd-misc.h,v 1.3 2001/04/09 14:50:56 stevesk Exp $ */ | 25 | /* $Id: bsd-misc.h,v 1.4 2002/05/08 02:51:32 tim Exp $ */ |
26 | 26 | ||
27 | #ifndef _BSD_MISC_H | 27 | #ifndef _BSD_MISC_H |
28 | #define _BSD_MISC_H | 28 | #define _BSD_MISC_H |
@@ -72,5 +72,8 @@ struct timeval { | |||
72 | int utimes(char *filename, struct timeval *tvp); | 72 | int utimes(char *filename, struct timeval *tvp); |
73 | #endif /* HAVE_UTIMES */ | 73 | #endif /* HAVE_UTIMES */ |
74 | 74 | ||
75 | #ifndef HAVE_TRUNCATE | ||
76 | int truncate (const char *path, off_t length); | ||
77 | #endif /* HAVE_TRUNCATE */ | ||
75 | 78 | ||
76 | #endif /* _BSD_MISC_H */ | 79 | #endif /* _BSD_MISC_H */ |