Skip to content

Commit

Permalink
Fixed bug #74849 Process is started as interactive shell in PhpStorm
Browse files Browse the repository at this point in the history
  • Loading branch information
weltling committed Jul 3, 2017
1 parent 55cd4e8 commit 8871d2d
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 2 deletions.
3 changes: 1 addition & 2 deletions sapi/cli/php_cli.c
Original file line number Diff line number Diff line change
Expand Up @@ -675,8 +675,7 @@ static int do_cli(int argc, char **argv) /* {{{ */
char *arg_free=NULL, **arg_excp=&arg_free;
char *script_file=NULL, *translated_path = NULL;
#if defined(PHP_WIN32) && !defined(PHP_CLI_WIN32_NO_CONSOLE) && (HAVE_LIBREADLINE || HAVE_LIBEDIT) && !defined(COMPILE_DL_READLINE)
DWORD pl[1];
int interactive = (GetConsoleProcessList(pl, 1) == 1) && !IsDebuggerPresent();
int interactive = php_win32_console_is_own();
#else
int interactive=0;
#endif
Expand Down
12 changes: 12 additions & 0 deletions win32/console.c
Original file line number Diff line number Diff line change
Expand Up @@ -91,3 +91,15 @@ PHP_WINUTIL_API BOOL php_win32_console_fileno_set_vt100(zend_long fileno, BOOL e
}
return result;
}

PHP_WINUTIL_API BOOL php_win32_console_is_own(void)
{
CONSOLE_SCREEN_BUFFER_INFO csbi;

if (GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi) && !IsDebuggerPresent()) {
return !csbi.dwCursorPosition.X && !csbi.dwCursorPosition.Y;
}

return FALSE;
}

5 changes: 5 additions & 0 deletions win32/console.h
Original file line number Diff line number Diff line change
Expand Up @@ -56,4 +56,9 @@ associated to a file descriptor
*/
PHP_WINUTIL_API BOOL php_win32_console_fileno_set_vt100(zend_long fileno, BOOL enable);

/* Check, whether the program has its own console. If a process was launched
through a GUI, it will have it's own console. For more info see
http://support.microsoft.com/kb/99115 */
PHP_WINUTIL_API BOOL php_win32_console_is_own(void);

#endif

0 comments on commit 8871d2d

Please sign in to comment.