]> granicus.if.org Git - php/commitdiff
fix eval for new input handling
authorkrakjoe <joe.watkins@live.co.uk>
Wed, 20 Nov 2013 14:25:15 +0000 (14:25 +0000)
committerkrakjoe <joe.watkins@live.co.uk>
Wed, 20 Nov 2013 14:25:15 +0000 (14:25 +0000)
phpdbg_prompt.c

index 10fb60a90068166be48d4d526094add2ffe4f806..c69c056754fbc5e3ea91befd25d0a32f87703fb2 100644 (file)
@@ -514,12 +514,26 @@ static PHPDBG_COMMAND(eval) /* {{{ */
                case STR_PARAM: {
                        zend_bool stepping = (PHPDBG_G(flags) & PHPDBG_IS_STEPPING);
                        zval retval;
-
+                       char *code = NULL;
+                       
                        PHPDBG_G(flags) &= ~ PHPDBG_IS_STEPPING;
 
+                       if (input && input->start) {
+                               code = (char*) input->start;
+                       
+                               if (memcmp(
+                                       code, "eval", sizeof("eval")-1) == SUCCESS) {
+                                       code += sizeof("eval")-1;
+                               } else code += sizeof("E")-1;
+                       
+                               while (code && isspace(*code)) {
+                                       code++;
+                               }
+                       } else code = param->str;
+                       
                        /* disable stepping while eval() in progress */
                        PHPDBG_G(flags) |= PHPDBG_IN_EVAL;
-                       if (zend_eval_stringl(param->str, param->len,
+                       if (zend_eval_stringl(code, strlen(code),
                                &retval, "eval()'d code" TSRMLS_CC) == SUCCESS) {
                                zend_print_zval_r(
                                        &retval, 0 TSRMLS_CC);