You know what, this is getting boring :)
diff -ruN Inline-Tcl-0.09/Changes Inline-Tcl-0.09-new/Changes
--- Inline-Tcl-0.09/Changes 2001-05-28 10:30:35.000000000 -0700
+++ Inline-Tcl-0.09-new/Changes 2009-08-21 00:01:12.203125000 -0700
@@ -1,4 +1,5 @@
Revision history for Inline::Tcl
+0.091: [Anonymous Monk] added $Inline::Tcl::LASTERROR (and t/03error.
+t )
0.09: Initial release compatible with Inline-0.40
Removed debugging files mydebug.h and test.sh
Files Inline-Tcl-0.09/Inline-Tcl-0.091.tar.gz and Inline-Tcl-0.09-new/
+Inline-Tcl-0.091.tar.gz differ
diff -ruN Inline-Tcl-0.09/Makefile.PL Inline-Tcl-0.09-new/Makefile.PL
--- Inline-Tcl-0.09/Makefile.PL 2001-05-14 12:46:29.000000000 -0700
+++ Inline-Tcl-0.09-new/Makefile.PL 2009-08-21 00:10:59.921875000 -
+0700
@@ -57,7 +57,7 @@
my $lib = prompt(join("\n",("Found these TCL libraries: ",
map {$num++ . ". $_"} @tcl_libs_found))."\nUse? (or e
+nter alternative)",
"1") if @tcl_libs_found;
-$lib = prompt ("Please enter the TCL library.", "")
+$lib = prompt ("Please enter the TCL library.", scalar glob "C:/Tcl/l
+ib/tcl8*.lib")
unless @tcl_libs_found;
$lib = $tcl_libs_found[$lib-1] if $lib =~ /^\d+$/;
@@ -69,7 +69,7 @@
my $inc = prompt(join("\n",("Found these TCL include dirs: ",
map {$num++ . ". $_"} @tcl_incs_found))."\nUse? (or e
+nter alternative)",
"1") if @tcl_incs_found;
-$inc = prompt ("Please enter the TCL include directory.", "")
+$inc = prompt ("Please enter the TCL include directory.", "C:/Tcl/inc
+lude")
unless @tcl_incs_found;
$inc = $tcl_incs_found[$inc-1] if $inc =~ /^\d+$/;
diff -ruN Inline-Tcl-0.09/MANIFEST Inline-Tcl-0.09-new/MANIFEST
--- Inline-Tcl-0.09/MANIFEST 2001-05-27 19:13:14.000000000 -0700
+++ Inline-Tcl-0.09-new/MANIFEST 2009-08-20 23:51:09.812500000 -070
+0
@@ -9,4 +9,5 @@
t/00init.t
t/01aaa.t
t/02bbb.t
+t/03error.t
t/a1.pl
diff -ruN Inline-Tcl-0.09/t/03error.t Inline-Tcl-0.09-new/t/03error.t
--- Inline-Tcl-0.09/t/03error.t 1969-12-31 16:00:00.000000000 -0800
+++ Inline-Tcl-0.09-new/t/03error.t 2009-08-21 00:02:12.328125000 -
+0700
@@ -0,0 +1,15 @@
+
+use Inline Config => DIRECTORY => './blib_test';
+
+use Test::More tests => 1;
+
+my $ok = eval {
+Inline->import(Tcl => <<END);
+ proc ASDF { valval {
+ }
+END
+
+ 1
+};
+
+ok( ! defined $ok , $@); # Couldn't parse your Tcl code: missing clos
+e-brace
diff -ruN Inline-Tcl-0.09/Tcl.pm Inline-Tcl-0.09-new/Tcl.pm
--- Inline-Tcl-0.09/Tcl.pm 2001-05-27 19:06:02.000000000 -0700
+++ Inline-Tcl-0.09-new/Tcl.pm 2009-08-20 23:59:34.640625000 -0700
@@ -1,7 +1,7 @@
package Inline::Tcl;
use strict;
-$Inline::Tcl::VERSION = '0.09';
+$Inline::Tcl::VERSION = '0.091';
require Inline;
require DynaLoader;
@@ -15,6 +15,9 @@
@EXPORT_OK = qw(eval_tcl);
+
+$Inline::Tcl::LASTERROR = undef;
+
#====================================================================
+==========
# Load (and initialize) the Tcl Interpreter
#====================================================================
+==========
@@ -156,7 +159,7 @@
my $o = shift;
return if $o->{Tcl}{built};
my $result = _eval_tcl($o->{API}{code});
- croak "Couldn't parse your Tcl code.\n"
+ croak "Couldn't parse your Tcl code: $Inline::Tcl::LASTERROR\n"
unless $result;
my %namespace = _Inline_parse_tcl_namespace();
diff -ruN Inline-Tcl-0.09/Tcl.xs Inline-Tcl-0.09-new/Tcl.xs
--- Inline-Tcl-0.09/Tcl.xs 2001-05-27 19:14:37.000000000 -0700
+++ Inline-Tcl-0.09-new/Tcl.xs 2009-08-20 23:38:35.781250000 -0700
@@ -105,6 +105,7 @@
int result;
CODE:
result = Tcl_Eval(interp,x);
+ sv_setpv(get_sv("Inline::Tcl::LASTERROR", TRUE), Tcl_GetStringRes
+ult(interp));
RETVAL = (result == TCL_OK);
OUTPUT:
RETVAL
@@ -145,6 +146,7 @@
Tcl_Eval(interp, command);
result = Tcl_GetStringResult(interp);
+ sv_setpv(get_sv("Inline::Tcl::LASTERROR", TRUE), result);
ret = Tcl2Pl(result, PKG);
free(command);
To apply this patch cd to Inline-Tcl-0.09 and run patch -p1 -N < Inline-Tcl-0.09-new.patch
This should give you an actual error message like tclsh does. |