summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorThies C. Arntzen <thies@php.net>1999-07-01 09:26:05 +0000
committerThies C. Arntzen <thies@php.net>1999-07-01 09:26:05 +0000
commitfe4efa91c389ef900aee6aae565f856cfd022f6d (patch)
tree58c39da5b1b5cec278d0900b39b2b89e37ccc0d1 /ext
parent2e690ac4b5faea66899b5da4e6649e8d610af86d (diff)
downloadphp-git-fe4efa91c389ef900aee6aae565f856cfd022f6d.tar.gz
changed boolean behaviour:
var_dump(
Diffstat (limited to 'ext')
-rw-r--r--ext/standard/var.c20
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);