RE: How to use a tcl/tk widget that needs a tcl array

[email protected] ("Konovalov, Vadim (Vadim)** CTR **") Tue, 2 Nov 2010 15:42:33 +0100
Newsgroups perl.tcltk
Message-ID <35BF8D9716175C43BB9D67CA60CC345E21F8AFC5@FRMRSSXCHMBSC2.dc-m.alcatel-lucent.com>
> From: Gisle Aas [mailto:[email protected]] 
> I applied this patch with tests to the repo at 
> <http://github.com/gisle/tcl.pm>.  I also applied a patch to 
> fix RT#56721.
> 
> Vadim, do you want to roll a new release?  Is there other of 
> the RT issues you think we can resolve now?
>

I think there are RTs that we could resolve (e.g. https://rt.cpan.org/Public/Bug/Display.html?id=61859 )

But maybe it's still good to roll a release.
Attached is the patch to current tcl.pm repository (sorry for not uploading these changes myself - I have all my passwords unavailable until 06th November, and also I have bad CR/LFs on my current PC)

I also have a small update to Tcl.xs, which seemingly only affect Tk-related stuff, so should be unnoticeable in normal cases.
I wonder is it fine with everyone?

Best regards,
Vadim.
tcl.pm-diff.txt (text/plain, 1.7 KB)
diff -rbu gisle-tcl.pm-8303685/Changes tcl.pm-for-cpan-02nov2010/Changes
--- gisle-tcl.pm-8303685/Changes	Sun Oct 31 12:35:15 2010
+++ tcl.pm-for-cpan-02nov2010/Changes	Tue Nov  2 17:12:34 2010
@@ -1,5 +1,10 @@
 Revision history for Perl extension Tcl.
 
+0.99	2010-11-02
+
+	- more 'stubs' platform binaries
+	- hashes also treated specially in $interp->call(...)
+
 0.98	2009-11-24
 
 	- moved to git
diff -rbu gisle-tcl.pm-8303685/Tcl.pm tcl.pm-for-cpan-02nov2010/Tcl.pm
--- gisle-tcl.pm-8303685/Tcl.pm	Sun Oct 31 12:35:15 2010
+++ tcl.pm-for-cpan-02nov2010/Tcl.pm	Tue Nov  2 16:07:11 2010
@@ -1,6 +1,6 @@
 package Tcl;
 
-$Tcl::VERSION = '0.98';
+$Tcl::VERSION = '0.99';
 $Tcl::STACK_TRACE = 1;
 
 =head1 NAME
diff -rbu gisle-tcl.pm-8303685/Tcl.xs tcl.pm-for-cpan-02nov2010/Tcl.xs
--- gisle-tcl.pm-8303685/Tcl.xs	Sun Oct 31 12:35:15 2010
+++ tcl.pm-for-cpan-02nov2010/Tcl.xs	Tue Nov  2 16:20:52 2010
@@ -139,6 +139,12 @@
 typedef Tcl_Interp *Tcl;
 typedef AV *Tcl__Var;
 
+#ifdef HAVE_TKINIT
+EXTERN char *		TclSetPreInitScript (char * string);
+void   TclpInitLibraryPath(char **valuePtr, int *lengthPtr, Tcl_Encoding *encodingPtr);
+EXTERN void		TkWinSetHINSTANCE (HINSTANCE hInstance);
+#endif
+
 #ifdef HAVE_BLTINIT
 extern Tcl_PackageInitProc Blt_Init, Blt_SafeInit;
 #endif
@@ -1039,14 +1045,16 @@
     OUTPUT:
 	RETVAL
 
-char*
+void
 TclpInitLibraryPath(path)
 	char *	path
-    CODE:
+    PPCODE:
+	int lengthPtr=0;
+	Tcl_Encoding encodingPtr;
+
 	if (!initialized) { return; }
-	RETVAL = TclpInitLibraryPath(path);
-    OUTPUT:
-	RETVAL
+	/* interface to TclpInitLibraryPath changed between 8.4.x and 8.5.x */
+	TclpInitLibraryPath(&path, &lengthPtr, &encodingPtr);
 
 void
 Tcl_SetDefaultEncodingDir(script)