From: Vadim Konovalov Date: Thu, 3 Jul 2003 15:57:55 +0000 (+0400) Subject: Re: maint @ 19923 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=8100305834564f2a5793a855edb3f71da87df3d7;p=p5sagit%2Fp5-mst-13.2.git Re: maint @ 19923 Message-ID: <048e01c3415b$da0fe510$7c5ec3d9@vad> p4raw-id: //depot/perl@19954 --- diff --git a/wince/Makefile.ce b/wince/Makefile.ce index af482dc..f6ea3f2 100644 --- a/wince/Makefile.ce +++ b/wince/Makefile.ce @@ -824,6 +824,9 @@ $(DLLDIR)\DynaLoader.obj !IF "$(PERL_MALLOC)" == "define" XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\malloc.obj !ENDIF +!IF "$(CRYPT_SRC)" != "" +XDLLOBJS = $(XDLLOBJS) $(DLLDIR)\fcrypt.obj +!ENDIF {$(SRCDIR)}.c{$(DLLDIR)}.obj: $(CC) -c $(CFLAGS) -DPERL_EXTERNAL_GLOB -Fo$(DLLDIR)\ $< diff --git a/wince/wince.c b/wince/wince.c index 16bf2d2..cec2fac 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) {