From 8100305834564f2a5793a855edb3f71da87df3d7 Mon Sep 17 00:00:00 2001 From: Vadim Konovalov Date: Thu, 3 Jul 2003 19:57:55 +0400 Subject: Re: maint @ 19923 Message-ID: <048e01c3415b$da0fe510$7c5ec3d9@vad> p4raw-id: //depot/perl@19954 --- wince/wince.c | 47 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 44 insertions(+), 3 deletions(-) (limited to 'wince/wince.c') diff --git a/wince/wince.c b/wince/wince.c index 16bf2d2990..cec2facf94 100644 --- a/wince/wince.c +++ b/wince/wince.c @@ -908,12 +908,46 @@ win32_rewind(FILE *pf) return; } +DllExport int +win32_tmpfd(void) +{ + dTHX; + char prefix[MAX_PATH+1]; + char filename[MAX_PATH+1]; + DWORD len = GetTempPath(MAX_PATH, prefix); + if (len && len < MAX_PATH) { + if (GetTempFileName(prefix, "plx", 0, filename)) { + HANDLE fh = CreateFile(filename, + DELETE | GENERIC_READ | GENERIC_WRITE, + 0, + NULL, + CREATE_ALWAYS, + FILE_ATTRIBUTE_NORMAL + | FILE_FLAG_DELETE_ON_CLOSE, + NULL); + if (fh != INVALID_HANDLE_VALUE) { + int fd = win32_open_osfhandle((intptr_t)fh, 0); + if (fd >= 0) { +#if defined(__BORLANDC__) + setmode(fd,O_BINARY); +#endif + DEBUG_p(PerlIO_printf(Perl_debug_log, + "Created tmpfile=%s\n",filename)); + return fd; + } + } + } + } + return -1; +} + DllExport FILE* win32_tmpfile(void) { - Perl_croak(aTHX_ PL_no_func, "tmpfile"); - - return NULL; + int fd = win32_tmpfd(); + if (fd >= 0) + return win32_fdopen(fd, "w+b"); + return NULL; } DllExport void @@ -1521,6 +1555,13 @@ Perl_win32_init(int *argcp, char ***argvp) MALLOC_INIT; } +void +Perl_win32_term(void) +{ + OP_REFCNT_TERM; + MALLOC_TERM; +} + DllExport int win32_flock(int fd, int oper) { -- cgit v1.2.1