Change 19954 by [EMAIL PROTECTED] on 2003/07/03 11:10:21

        Subject: Re: maint @ 19923
        From: "Vadim Konovalov" <[EMAIL PROTECTED]>
        Date: Thu, 3 Jul 2003 15:57:55 +0400
        Message-ID: <[EMAIL PROTECTED]>

Affected files ...

... //depot/perl/wince/Makefile.ce#27 edit
... //depot/perl/wince/wince.c#11 edit

Differences ...

==== //depot/perl/wince/Makefile.ce#27 (text) ====
Index: perl/wince/Makefile.ce
--- perl/wince/Makefile.ce#26~19158~    Sun Apr  6 20:41:17 2003
+++ perl/wince/Makefile.ce      Thu Jul  3 04:10:21 2003
@@ -824,6 +824,9 @@
 !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)\ $<

==== //depot/perl/wince/wince.c#11 (text) ====
Index: perl/wince/wince.c
--- perl/wince/wince.c#10~17769~        Sun Aug 25 07:16:50 2002
+++ perl/wince/wince.c  Thu Jul  3 04:10:21 2003
@@ -908,12 +908,46 @@
   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
@@ -1519,6 +1553,13 @@
 #endif
 
   MALLOC_INIT;
+}
+
+void
+Perl_win32_term(void)
+{
+    OP_REFCNT_TERM;
+    MALLOC_TERM;
 }
 
 DllExport int
End of Patch.

Reply via email to