]> granicus.if.org Git - php/commitdiff
Merge branch 'PHP-7.0' into PHP-7.1
authorBob Weinand <bobwei9@hotmail.com>
Sun, 16 Oct 2016 13:46:33 +0000 (15:46 +0200)
committerBob Weinand <bobwei9@hotmail.com>
Sun, 16 Oct 2016 13:46:33 +0000 (15:46 +0200)
1  2 
sapi/phpdbg/phpdbg.c

index 36af9b3719caf801f84ca452ccbb22b6be0dfa84,de73c69ee7ca75e1d2d76f8754d4adc5f1a0b97d..b800f061d2c80096e4bd358f6fd0db6e034e5ff7
@@@ -1676,20 -1627,6 +1652,28 @@@ phpdbg_main
  
        phpdbg->ini_entries = ini_entries;
  
 +      ZEND_INIT_MODULE_GLOBALS(phpdbg, php_phpdbg_globals_ctor, NULL);
 +
++      /* set default colors */
++      phpdbg_set_color_ex(PHPDBG_COLOR_PROMPT,  PHPDBG_STRL("white-bold"));
++      phpdbg_set_color_ex(PHPDBG_COLOR_ERROR,   PHPDBG_STRL("red-bold"));
++      phpdbg_set_color_ex(PHPDBG_COLOR_NOTICE,  PHPDBG_STRL("green"));
++
++      /* set default prompt */
++      phpdbg_set_prompt(PHPDBG_DEFAULT_PROMPT);
++
 +      if (settings > (zend_phpdbg_globals *) 0x2) {
 +#ifdef ZTS
 +              *((zend_phpdbg_globals *) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(phpdbg_globals_id)]) = *settings;
 +#else
 +              phpdbg_globals = *settings;
 +#endif
 +              free(settings);
 +      }
 +
 +      /* set flags from command line */
 +      PHPDBG_G(flags) = flags;
 +
        if (phpdbg->startup(phpdbg) == SUCCESS) {
                zend_mm_heap *mm_heap;
  #ifdef _WIN32
                void (*_free)(void*);
                void* (*_realloc)(void*, size_t);
  
 -              /* set flags from command line */
 -              PHPDBG_G(flags) = flags;
 -
 -              /* set default colors */
 -              phpdbg_set_color_ex(PHPDBG_COLOR_PROMPT,  PHPDBG_STRL("white-bold"));
 -              phpdbg_set_color_ex(PHPDBG_COLOR_ERROR,   PHPDBG_STRL("red-bold"));
 -              phpdbg_set_color_ex(PHPDBG_COLOR_NOTICE,  PHPDBG_STRL("green"));
 -
 -              /* set default prompt */
 -              phpdbg_set_prompt(PHPDBG_DEFAULT_PROMPT);
 -
+               if (show_version || show_help) {
+                       /* It ain't gonna proceed to real execution anyway,
+                               but the correct descriptor is needed already. */
+                       PHPDBG_G(io)[PHPDBG_STDOUT].ptr = stdout;
+                       PHPDBG_G(io)[PHPDBG_STDOUT].fd = fileno(stdout);
+                       if (show_help) {
+                               phpdbg_do_help(NULL);
+                       } else if (show_version) {
+                               phpdbg_out(
+                                       "phpdbg %s (built: %s %s)\nPHP %s, Copyright (c) 1997-2016 The PHP Group\n%s",
+                                       PHPDBG_VERSION,
+                                       __DATE__,
+                                       __TIME__,
+                                       PHP_VERSION,
+                                       get_zend_version()
+                               );
+                       }
+                       sapi_deactivate();
+                       sapi_shutdown();
+                       if (ini_entries) {
+                               free(ini_entries);
+                       }
+                       if (ini_override) {
+                               free(ini_override);
+                       }
+                       if (exec) {
+                               free(exec);
+                       }
+                       if (oplog_file) {
+                               free(oplog_file);
+                       }
+                       if (init_file) {
+                               free(init_file);
+                       }
+                       goto free_and_return;
+               }
 -              if (settings > (zend_phpdbg_globals *) 0x2) {
 -#ifdef ZTS
 -                      *((zend_phpdbg_globals *) (*((void ***) TSRMLS_CACHE))[TSRM_UNSHUFFLE_RSRC_ID(phpdbg_globals_id)]) = *settings;
 -#else
 -                      phpdbg_globals = *settings;
 -#endif
 -                      free(settings);
 -              }
 +              zend_try {
 +                      zend_signal_activate();
 +              } zend_end_try();
  
                /* setup remote server if necessary */
                if (cleaning <= 0 && listen > 0) {
@@@ -2146,18 -2142,11 +2159,19 @@@ phpdbg_out
                /* reset it... else we risk a stack overflow upon next run (when clean'ing) */
                php_stream_stdio_ops.write = PHPDBG_G(php_stdiop_write);
  #endif
 +      }
 +
 +      sapi_shutdown();
 +
 +#ifdef ZTS
 +      ts_free_id(phpdbg_globals_id);
 +#endif
  
 -              sapi_shutdown();
 +      if (sapi_name) {
 +              free(sapi_name);
        }
  
+ free_and_return:
        if (read_from_stdin) {
                free(read_from_stdin);
                read_from_stdin = NULL;