cvsuser     02/10/04 13:00:42

  Modified:    P5EEx/Blue/P5EEx/Blue Context.pm
  Log:
  use wget(), wset(), wdelete() on a name.var without having to parse out name and var 
separately
  
  Revision  Changes    Path
  1.38      +44 -5     p5ee/P5EEx/Blue/P5EEx/Blue/Context.pm
  
  Index: Context.pm
  ===================================================================
  RCS file: /cvs/public/p5ee/P5EEx/Blue/P5EEx/Blue/Context.pm,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -w -r1.37 -r1.38
  --- Context.pm        30 Aug 2002 17:49:11 -0000      1.37
  +++ Context.pm        4 Oct 2002 20:00:42 -0000       1.38
  @@ -1,6 +1,6 @@
   
   #############################################################################
  -## $Id: Context.pm,v 1.37 2002/08/30 17:49:11 spadkins Exp $
  +## $Id: Context.pm,v 1.38 2002/10/04 20:00:42 spadkins Exp $
   #############################################################################
   
   package P5EEx::Blue::Context;
  @@ -780,6 +780,20 @@
       my ($self, $name, $var, $default, $setdefault) = @_;
       my ($perl, $value);
   
  +    if (!defined $var || $var eq "") {
  +        if ($name =~ /^([a-zA-Z0-9_\.-]+)([\{\}\[\]].*)$/) {
  +            $name = $1;
  +            $var = $2;
  +        }
  +        elsif ($name =~ /^([a-zA-Z0-9_\.-]+)\.([a-zA-Z0-9_]+)$/) {
  +            $name = $1;
  +            $var = $2;
  +        }
  +        else {
  +            return undef;
  +        }
  +    }
  +
       if ($var !~ /[\[\]\{\}]/) {         # no special chars, "foo.bar"
           $value = $self->{session}{cache}{Widget}{$name}{$var};
           if (!defined $value && defined $default) {
  @@ -809,10 +823,7 @@
               if ($P5EEx::Blue::DEBUG && $self->dbg(3));
           return $value;
       } # match {
  -    elsif ($var =~ /^([a-zA-Z0-9_\.-]+)([\{\}\[\]].*)$/) {
  -
  -        $name = $1;
  -        $var = $2;
  +    elsif ($var =~ /^[\{\}\[\]].*$/) {
   
           $self->widget($name) if (!defined $self->{session}{cache}{Widget}{$name});
   
  @@ -864,6 +875,20 @@
       $self->dbgprint("Context->wset($name,$var,$value)")
           if ($P5EEx::Blue::DEBUG && $self->dbg(3));
   
  +    if (!defined $var || $var eq "") {
  +        if ($name =~ /^([a-zA-Z0-9_\.-]+)([\{\}\[\]].*)$/) {
  +            $name = $1;
  +            $var = $2;
  +        }
  +        elsif ($name =~ /^([a-zA-Z0-9_\.-]+)\.([a-zA-Z0-9_]+)$/) {
  +            $name = $1;
  +            $var = $2;
  +        }
  +        else {
  +            return;
  +        }
  +    }
  +
       if ($var !~ /[\[\]\{\}]/) {         # no special chars, "foo.bar"
           $self->{session}{store}{Widget}{$name}{$var} = $value;
           $self->{session}{cache}{Widget}{$name}{$var} = $value
  @@ -925,6 +950,20 @@
   
       $self->dbgprint("Context->wdelete($name,$var)")
           if ($P5EEx::Blue::DEBUG && $self->dbg(3));
  +
  +    if (!defined $var || $var eq "") {
  +        if ($name =~ /^([a-zA-Z0-9_\.-]+)([\{\}\[\]].*)$/) {
  +            $name = $1;
  +            $var = $2;
  +        }
  +        elsif ($name =~ /^([a-zA-Z0-9_\.-]+)\.([a-zA-Z0-9_]+)$/) {
  +            $name = $1;
  +            $var = $2;
  +        }
  +        else {
  +            return;
  +        }
  +    }
   
       if ($var !~ /[\[\]\{\}]/) {         # no special chars, "foo.bar"
           delete $self->{session}{store}{Widget}{$name}{$var};
  
  
  


Reply via email to