- const char *key = list, *val = NULL;
- int vallen = 0, keylen = 0, done = 0;
- zval array;
-
- Z_ARRVAL(array) = items;
-
- if (!(val = strchr(list, '='))) {
- return FAILURE;
- }
-
-#define HTTP_KEYLIST_VAL(array, k, str, len) \
- { \
- char *decoded; \
- size_t decoded_len; \
- if (decode) { \
- decode(str, len, &decoded, &decoded_len TSRMLS_CC); \
- } else { \
- decoded_len = len; \
- decoded = estrndup(str, decoded_len); \
- } \
- add_assoc_stringl(array, k, decoded, decoded_len, 0); \
- }
-#define HTTP_KEYLIST_FIXKEY() \
- { \
- while (isspace(*key)) ++key; \
- keylen = val - key; \
- while (isspace(key[keylen - 1])) --keylen; \
- }
-#define HTTP_KEYLIST_FIXVAL() \
- { \
- ++val; \
- while (isspace(*val)) ++val; \
- vallen = key - val; \
- while (isspace(val[vallen - 1])) --vallen; \
+ zval **args, **trace_0, *old_trace_0, *trace = NULL;
+
+ /* create wrapping exception if requested */
+ if (!new_exception) {
+ MAKE_STD_ZVAL(new_exception);
+ object_init_ex(new_exception, ce);
+ zend_update_property_string(ce, new_exception, "message", lenof("message"), "Exception caused by inner exception(s)" TSRMLS_CC);