|
@@ -163,11 +163,21 @@ int str2val(db_type_t _t, db_val_t* _v, const char* _s, int _l)
|
|
|
return 0;
|
|
|
}
|
|
|
break;
|
|
|
+
|
|
|
+ case DB_BITMAP:
|
|
|
+ if (str2int(_s, &VAL_INT(_v)) < 0) {
|
|
|
+ LOG(L_ERR, "str2val(): Error while converting bitmap value from string\n");
|
|
|
+ return -3;
|
|
|
+ } else {
|
|
|
+ VAL_TYPE(_v) = DB_BITMAP;
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ break;
|
|
|
|
|
|
case DB_DOUBLE:
|
|
|
if (str2double(_s, &VAL_DOUBLE(_v)) < 0) {
|
|
|
LOG(L_ERR, "str2val(): Error while converting double value from string\n");
|
|
|
- return -3;
|
|
|
+ return -4;
|
|
|
} else {
|
|
|
VAL_TYPE(_v) = DB_DOUBLE;
|
|
|
return 0;
|
|
@@ -188,7 +198,7 @@ int str2val(db_type_t _t, db_val_t* _v, const char* _s, int _l)
|
|
|
case DB_DATETIME:
|
|
|
if (str2time(_s, &VAL_TIME(_v)) < 0) {
|
|
|
LOG(L_ERR, "str2val(): Error while converting datetime value from string\n");
|
|
|
- return -4;
|
|
|
+ return -5;
|
|
|
} else {
|
|
|
VAL_TYPE(_v) = DB_DATETIME;
|
|
|
return 0;
|
|
@@ -201,7 +211,7 @@ int str2val(db_type_t _t, db_val_t* _v, const char* _s, int _l)
|
|
|
VAL_TYPE(_v) = DB_BLOB;
|
|
|
return 0;
|
|
|
}
|
|
|
- return -5;
|
|
|
+ return -6;
|
|
|
}
|
|
|
|
|
|
|
|
@@ -234,10 +244,19 @@ int val2str(db_val_t* _v, char* _s, int* _len)
|
|
|
}
|
|
|
break;
|
|
|
|
|
|
+ case DB_BITMAP:
|
|
|
+ if (int2str(VAL_BITMAP(_v), _s, _len) < 0) {
|
|
|
+ LOG(L_ERR, "val2str(): Error while converting string to int\n");
|
|
|
+ return -3;
|
|
|
+ } else {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
case DB_DOUBLE:
|
|
|
if (double2str(VAL_DOUBLE(_v), _s, _len) < 0) {
|
|
|
LOG(L_ERR, "val2str(): Error while converting string to double\n");
|
|
|
- return -3;
|
|
|
+ return -4;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
@@ -247,7 +266,7 @@ int val2str(db_val_t* _v, char* _s, int* _len)
|
|
|
l = strlen(VAL_STRING(_v));
|
|
|
if (*_len < (l + 3)) {
|
|
|
LOG(L_ERR, "val2str(): Destination buffer too short\n");
|
|
|
- return -4;
|
|
|
+ return -5;
|
|
|
} else {
|
|
|
*_s++ = '\'';
|
|
|
memcpy(_s, VAL_STRING(_v), l);
|
|
@@ -262,7 +281,7 @@ int val2str(db_val_t* _v, char* _s, int* _len)
|
|
|
l = VAL_STR(_v).len;
|
|
|
if (*_len < (l + 3)) {
|
|
|
LOG(L_ERR, "val2str(): Destination buffer too short\n");
|
|
|
- return -5;
|
|
|
+ return -6;
|
|
|
} else {
|
|
|
*_s++ = '\'';
|
|
|
memcpy(_s, VAL_STR(_v).s, l);
|
|
@@ -276,7 +295,7 @@ int val2str(db_val_t* _v, char* _s, int* _len)
|
|
|
case DB_DATETIME:
|
|
|
if (time2str(VAL_TIME(_v), _s, _len) < 0) {
|
|
|
LOG(L_ERR, "val2str(): Error while converting string to time_t\n");
|
|
|
- return -6;
|
|
|
+ return -7;
|
|
|
} else {
|
|
|
return 0;
|
|
|
}
|
|
@@ -286,7 +305,7 @@ int val2str(db_val_t* _v, char* _s, int* _len)
|
|
|
l = VAL_BLOB(_v).len;
|
|
|
if (*_len < (l * 2 + 3)) {
|
|
|
LOG(L_ERR, "val2str(): Destination buffer too short\n");
|
|
|
- return -7;
|
|
|
+ return -8;
|
|
|
} else {
|
|
|
old_s = _s;
|
|
|
*_s++ = '\'';
|
|
@@ -300,7 +319,7 @@ int val2str(db_val_t* _v, char* _s, int* _len)
|
|
|
|
|
|
default:
|
|
|
DBG("val2str(): Unknow data type\n");
|
|
|
- return -7;
|
|
|
+ return -9;
|
|
|
}
|
|
|
/*return -8; --not reached*/
|
|
|
}
|