Changeset 1859

Show
Ignore:
Timestamp:
04/11/08 06:01:58 (22 months ago)
Author:
bchoate
Message:

Applied patches for if/elseif stomping on value variable. BugId:79027 Thanks, Ogawa-san.

Location:
branches/release-34/lib/MT
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • branches/release-34/lib/MT/Builder.pm

    r1661 r1859  
    398398                if ((defined $type) && ($type == 2)) { 
    399399                    # conditional; process result 
     400                    my $vars = $ctx->{__stash}{vars}; 
     401                    local $vars->{__value__} = delete $vars->{__cond_value__}; 
     402                    local $vars->{__name__}  = delete $vars->{__cond_name__}; 
    400403                    $out = $out ? $ctx->slurp(\%args, $cond) : $ctx->else(\%args, $cond); 
    401                     delete $ctx->{__stash}{vars}{__value__}; 
    402                     delete $ctx->{__stash}{vars}{__name__}; 
    403404                    return $build->error(MT->translate("Error in <mt[_1]> tag: [_2]", $t->[0], $ctx->errstr)) 
    404405                        unless defined $out; 
  • branches/release-34/lib/MT/Template/ContextHandlers.pm

    r1855 r1859  
    14181418    } 
    14191419 
    1420     $ctx->{__stash}{vars}->{__value__} = $value; 
    1421     $ctx->{__stash}{vars}->{__name__} = $var; 
     1420    local $ctx->{__stash}{vars}{__cond_value__} = $value; 
     1421    local $ctx->{__stash}{vars}{__cond_name__} = $var; 
    14221422 
    14231423    if ( my $op = $args->{op} ) {