[Jifty-commit] r6188 - in Template-Declare/branches/markapl-syntax: lib/Template/Declare

Jifty commits jifty-commit at lists.jifty.org
Thu Dec 25 15:16:17 EST 2008


Author: gugod
Date: Thu Dec 25 15:16:17 2008
New Revision: 6188

Modified:
   Template-Declare/branches/markapl-syntax/   (props changed)
   Template-Declare/branches/markapl-syntax/lib/Template/Declare/Tags.pm

Log:
 r9521 at yra:  gugod | 2008-12-26 04:14:01 +0800
 Some work in progress to make closure.t pass...
 


Modified: Template-Declare/branches/markapl-syntax/lib/Template/Declare/Tags.pm
==============================================================================
--- Template-Declare/branches/markapl-syntax/lib/Template/Declare/Tags.pm	(original)
+++ Template-Declare/branches/markapl-syntax/lib/Template/Declare/Tags.pm	Thu Dec 25 15:16:17 2008
@@ -176,8 +176,10 @@
     on_scope_end {
         my $linestr = Devel::Declare::get_linestr;
         my $offset = Devel::Declare::get_linestr_offset;
-        substr($linestr, $offset, 0) = ';';
-        Devel::Declare::set_linestr($linestr);
+        if (substr($linestr, $offset, 1) ne ",") {
+            substr($linestr, $offset, 0) = ';';
+            Devel::Declare::set_linestr($linestr);
+        }
     };
 }
 
@@ -185,13 +187,16 @@
     my ($tag, $tagset) = @_;
 
     return sub {
-        my $block = pop;
-        if ((ref($block) ne 'CODE')) {
-            push @_, $block;
-            $block = sub {};
+        my @attr;
+        my $block;
+
+        for (@_) {
+            if (ref($_) eq 'CODE') {
+                $block = $_;
+                last;
+            }
+            push @attr, $_;
         }
-        
-        my @attr = @_;
 
         if (@attr == 1) {
             %ATTRIBUTES = ();
@@ -206,9 +211,7 @@
         } elsif(@attr > 1) {
             %ATTRIBUTES = (@attr);
         }
-
         _tag($tag, $tagset, $block);
-        return '';
     }
 }
 
@@ -227,10 +230,10 @@
 
         my $name = strip_name;
         my $proto = strip_proto;
-
+        
         inject_if_block("no strict 'subs'; BEGIN { Template::Declare::Tags::inject_scope }; use strict 'subs';");
 
-        unless (inject_before_block(defined $proto ? "$proto, sub" : "sub")) {
+        unless (inject_before_block(defined $proto ? "$proto, sub" : " sub")) {
             inject_right_here("($proto)") if defined $proto;
         }
         


More information about the Jifty-commit mailing list