diff options
author | Thies C. Arntzen <thies@php.net> | 1999-07-01 09:26:05 +0000 |
---|---|---|
committer | Thies C. Arntzen <thies@php.net> | 1999-07-01 09:26:05 +0000 |
commit | fe4efa91c389ef900aee6aae565f856cfd022f6d (patch) | |
tree | 58c39da5b1b5cec278d0900b39b2b89e37ccc0d1 /ext | |
parent | 2e690ac4b5faea66899b5da4e6649e8d610af86d (diff) | |
download | php-git-fe4efa91c389ef900aee6aae565f856cfd022f6d.tar.gz |
changed boolean behaviour:
var_dump(
Diffstat (limited to 'ext')
-rw-r--r-- | ext/standard/var.c | 20 |
1 files changed, 18 insertions, 2 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c index 09d6e837f3..c370439e22 100644 --- a/ext/standard/var.c +++ b/ext/standard/var.c @@ -51,6 +51,11 @@ void php3api_var_dump(pval **struc, int level) char buf[512]; switch ((*struc)->type) { + case IS_BOOL: + i = sprintf(buf, "%*cbool(%s)\n", level, ' ', ((*struc)->value.lval?"true":"false")); + PHPWRITE(&buf[1], i - 1); + break; + case IS_LONG: i = sprintf(buf, "%*cint(%ld)\n", level, ' ', (*struc)->value.lval); PHPWRITE(&buf[1], i - 1); @@ -165,6 +170,11 @@ void php3api_var_serialize(pval *buf, pval **struc) int i, ch; switch ((*struc)->type) { + case IS_BOOL: + slen = sprintf(s, "b:%ld;", (*struc)->value.lval); + STR_CAT(buf, s, slen); + return; + case IS_LONG: slen = sprintf(s, "i:%ld;", (*struc)->value.lval); STR_CAT(buf, s, slen); @@ -293,8 +303,10 @@ int php3api_var_unserialize(pval **rval, const char **p, const char *max) const char *q; char *str; int i; + char cur; - switch (**p) { + switch (cur = **p) { + case 'b': /* bool */ case 'i': if (*((*p) + 1) != ':') { return 0; @@ -307,7 +319,11 @@ int php3api_var_unserialize(pval **rval, const char **p, const char *max) return 0; } (*p)++; - (*rval)->type = IS_LONG; + if (cur == 'b') { + (*rval)->type = IS_BOOL; + } else { + (*rval)->type = IS_LONG; + } (*rval)->refcount = 1; (*rval)->is_ref = 0; (*rval)->value.lval = atol(q + 2); |