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};