Tk 804.27.0.4: up to date.  (from ppm 'upgrade Tk')
v5.8.7 built for MSWin32-x86-multi-thread Binary build 815 [211909]

I having having a fork problem with Tk code.  I 
understand there is a patch to fix it.  Looks like
it was put together for sh to run, which I don't have.
So before I spend hours figuring out how to do it,
can anyone tell me if the above Tk release contains the 
fork fix?

Thanks

Here's some dialog on the matter:

 
# 
# To apply this patch: 
# STEP 1: Chdir to the source directory. 
# STEP 2: Run the 'applypatch' program with this patch file as input. 
# 
# If you do not have 'applypatch', it is part of the 'makepatch' package 
# that you can fetch from the Comprehensive Perl Archive Network: 
# http://www.perl.com/CPAN/authors/Johan_Vromans/makepatch-x.y.tar.gz 
# In the above URL, 'x' should be 2 or higher. 
# 
# To apply this patch without the use of 'applypatch': 
# STEP 1: Chdir to the source directory. 
# If you have a decent Bourne-type shell: 
# STEP 2: Run the shell with this file as input. 
# If you don't have such a shell, you may need to manually create 
# the files as shown below. 
# STEP 3: Run the 'patch' program with this file as input. 
# 
# These are the commands needed to create/delete files/directories: 
# 
touch 't/fork.t' 
chmod 0775 't/fork.t' 
# 
# This command terminates the shell and need not be executed manually. 
exit 
# 
#### End of Preamble #### 


#### Patch data follows #### 
diff -up 'Tk-804.025_beta14/Event/Event.xs'
'Tk-804.025_beta14-perl5.8.3d/Event/Event.xs' 
Index: ./Event/Event.xs 
--- ./Event/Event.xs    Thu Jan 29 00:08:33 2004 
+++ ./Event/Event.xs    Sun Feb  8 20:25:16 2004 
@@ -1236,7 +1236,25 @@ XS(XS_Tk__Event_INIT) 


 #define pTk_exit(status) TclpExit(status) 


-#define pTk_END() Tcl_Finalize() 
+void pTk_END() 
+{ 
+ dSP; 
+ SV* ret; 
+ int count; 
+ ENTER; 
+ SAVETMPS; 
+ PUSHMARK(SP); 
+ count = call_pv("Tk::MainWindow::IsParentProcess", G_SCALAR); 
+ SPAGAIN; 
+ if (count != 1) croak("Unexpected return value from IsParentProcess"); 
+ ret = POPs; 
+ if (SvTRUE(ret)) { 
+  Tcl_Finalize(); 
+ } 
+ PUTBACK; 
+ FREETMPS; 
+ LEAVE; 
+} 


 MODULE = Tk    PACKAGE = Tk    PREFIX = pTk_ 


diff -up 'Tk-804.025_beta14/Event/t/basic.t'
'Tk-804.025_beta14-perl5.8.3d/Event/t/basic.t' 
Index: ./Event/t/basic.t 
--- ./Event/t/basic.t   Thu Dec 11 21:21:36 2003 
+++ ./Event/t/basic.t   Mon Feb  9 02:07:52 2004 
@@ -1,3 +1,3 @@ 
 use Test::More (tests => 1); 
- 
+use Tk; # needed because of Tk::END 
 use_ok('Tk::Event'); 
diff -up 'Tk-804.025_beta14/MANIFEST' 'Tk-804.025_beta14-perl5.8.3d/MANIFEST' 
Index: ./MANIFEST 
--- ./MANIFEST  Thu Jan 29 00:08:33 2004 
+++ ./MANIFEST  Sun Feb  8 20:07:43 2004 
@@ -1847,6 +1847,7 @@ t/fbox.t 
 t/fileevent.t 
 t/fileselect.t 
 t/font.t 
+t/fork.t 
 t/geomgr.t 
 t/iso8859-1.t 
 t/JP.dat 
diff -up 'Tk-804.025_beta14/Tk/MainWindow.pm'
'Tk-804.025_beta14-perl5.8.3d/Tk/MainWindow.pm' 
Index: ./Tk/MainWindow.pm 
--- ./Tk/MainWindow.pm  Sat Dec 27 10:10:04 2003 
+++ ./Tk/MainWindow.pm  Sun Feb  8 20:07:25 2004 
@@ -151,9 +151,14 @@ sub Existing 
  return @Windows; 
 } 


+sub IsParentProcess 
+{ 
+ $pid == $$; 
+} 
+ 
 END 
 { 
- if ($pid == $$) 
+ if (IsParentProcess()) 
   { 
    foreach my $top (values %Windows) 
     { 
diff -up /dev/null 'Tk-804.025_beta14-perl5.8.3d/t/fork.t' 
Index: ./t/fork.t 
--- ./t/fork.t  Thu Jan  1 01:00:00 1970 
+++ ./t/fork.t  Sun Feb  8 20:40:00 2004 
@@ -0,0 +1,18 @@ 
+#!/usr/bin/perl -w 
+ 
+use strict; 
+use Test; 
+use Tk; 
+ 
+plan tests => 1; 
+ 
+my $mw = tkinit; 
+ 
+if (fork == 0) { 
+    CORE::exit(); 
+} 
+select undef, undef, undef, 0.2; 
+$mw->update; 
+ok(1); 
+ 
+__END__ 
#### End of Patch data #### 


#### ApplyPatch data follows #### 
# Data version        : 1.0 
# Date generated      : Mon Feb  9 02:07:58 2004 
# Generated by        : makepatch 2.00_05 
# Recurse directories : Yes 
# v 'pTk/patchlevel.h' 934 1071174116 33056 
# p 'Event/Event.xs' 30806 1076268316 0100440 
# p 'Event/t/basic.t' 51 1076288872 0100440 
# p 'MANIFEST' 48329 1076267263 0100440 
# p 'Tk/MainWindow.pm' 5663 1076267245 0100444 
# c 't/fork.t' 0 1076269200 0100775 
#### End of ApplyPatch data #### 


#### End of Patch kit [created: Mon Feb  9 02:07:58 2004] #### 
#### Patch checksum: 112 2706 60311 #### 
#### Checksum: 142 3705 13145 #### 


-- 
Slaven Rezic - [EMAIL PROTECTED] 


    tkrevdiff - graphical display of diffs between revisions (RCS, CVS or SVN)

    http://ptktools.sourceforge.net/#tkrevdiff-++**==--++**==--++**==--++... 
This message was posted through the Stanford campus mailing list 
server.  If you wish to unsubscribe from this mailing list, send the 
message body of "unsubscribe ptk" to [EMAIL PROTECTED] 



__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
_______________________________________________
Perl-Win32-Users mailing list
[email protected]
To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs

Reply via email to