- patchlevel 203
This commit is contained in:
parent
8143bfab13
commit
cb95305191
150
7.3.203
Normal file
150
7.3.203
Normal file
@ -0,0 +1,150 @@
|
||||
To: vim_dev@googlegroups.com
|
||||
Subject: Patch 7.3.203
|
||||
Fcc: outbox
|
||||
From: Bram Moolenaar <Bram@moolenaar.net>
|
||||
Mime-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
------------
|
||||
|
||||
Patch 7.3.203
|
||||
Problem: MS-Windows: Can't run an external command without a console window.
|
||||
Solution: Support ":!start /b cmd". (Xaizek)
|
||||
Files: runtime/doc/os_win32.txt, src/os_win32.c
|
||||
|
||||
|
||||
*** ../mercurial/vim73/runtime/doc/os_win32.txt 2011-01-08 16:05:50.000000000 +0100
|
||||
--- runtime/doc/os_win32.txt 2011-05-25 17:04:58.000000000 +0200
|
||||
***************
|
||||
*** 313,319 ****
|
||||
with :!start do not get passed Vim's open file handles, which means they do
|
||||
not have to be closed before Vim.
|
||||
To avoid this special treatment, use ":! start".
|
||||
! The optional "/min" argument causes the window to be minimized.
|
||||
|
||||
Q. I'm using Win32s, and when I try to run an external command like "make",
|
||||
Vim doesn't wait for it to finish! Help!
|
||||
--- 313,348 ----
|
||||
with :!start do not get passed Vim's open file handles, which means they do
|
||||
not have to be closed before Vim.
|
||||
To avoid this special treatment, use ":! start".
|
||||
! There are two optional arguments (see the next Q):
|
||||
! /min the window will be minimized.
|
||||
! /b" no console window will be opened
|
||||
! You can only one of these flags at a time. A second second one will be
|
||||
! treated as the start of the command.
|
||||
!
|
||||
! Q. How do I avoid getting a window for programs that I run asynchronously?
|
||||
! A. You have two possible solutions depending on what exactly do you want:
|
||||
! 1) You may use the /min flag that would run program in minimized state with
|
||||
! no other changes. It will work equally for console and GUI applications.
|
||||
! 2) You can use /b flag to run console applications without creating a
|
||||
! console window for them (GUI applications are not affected). But you
|
||||
! should use this flag only if application you run doesn't require any
|
||||
! input. Otherwise it will get an EOF error because it's input stream
|
||||
! (stdin) would be redirected to \\.\NUL (stdour and stderr too).
|
||||
!
|
||||
! Example for a console application, run Exuberant ctags: >
|
||||
! :!start /min ctags -R .
|
||||
! < When it has finished you should see file named "tags" in your current
|
||||
! directory. You should notice the window title blinking on your taskbar.
|
||||
! This is more noticable for commands that take longer.
|
||||
! Now delete the "tags" file and run this command: >
|
||||
! :!start /b ctags -R .
|
||||
! < You should have the same "tags" file, but this time there will be no
|
||||
! blinking on the taskbar.
|
||||
! Example for a GUI application: >
|
||||
! :!start /min notepad
|
||||
! :!start /b notepad
|
||||
! < The first command runs notepad minimized and the second one runs it
|
||||
! normally.
|
||||
|
||||
Q. I'm using Win32s, and when I try to run an external command like "make",
|
||||
Vim doesn't wait for it to finish! Help!
|
||||
*** ../mercurial/vim73/src/os_win32.c 2011-05-05 18:31:54.000000000 +0200
|
||||
--- src/os_win32.c 2011-05-25 16:45:31.000000000 +0200
|
||||
***************
|
||||
*** 3401,3406 ****
|
||||
--- 3401,3407 ----
|
||||
{
|
||||
STARTUPINFO si;
|
||||
PROCESS_INFORMATION pi;
|
||||
+ DWORD flags = CREATE_NEW_CONSOLE;
|
||||
|
||||
si.cb = sizeof(si);
|
||||
si.lpReserved = NULL;
|
||||
***************
|
||||
*** 3418,3423 ****
|
||||
--- 3419,3440 ----
|
||||
si.dwFlags = STARTF_USESHOWWINDOW;
|
||||
si.wShowWindow = SW_SHOWMINNOACTIVE;
|
||||
}
|
||||
+ else if ((STRNICMP(cmdbase, "/b", 2) == 0)
|
||||
+ && vim_iswhite(cmdbase[2]))
|
||||
+ {
|
||||
+ cmdbase = skipwhite(cmdbase + 2);
|
||||
+ flags = CREATE_NO_WINDOW;
|
||||
+ si.dwFlags = STARTF_USESTDHANDLES;
|
||||
+ si.hStdInput = CreateFile("\\\\.\\NUL", // File name
|
||||
+ GENERIC_READ, // Access flags
|
||||
+ 0, // Share flags
|
||||
+ NULL, // Security att.
|
||||
+ OPEN_EXISTING, // Open flags
|
||||
+ FILE_ATTRIBUTE_NORMAL, // File att.
|
||||
+ NULL); // Temp file
|
||||
+ si.hStdOutput = si.hStdInput;
|
||||
+ si.hStdError = si.hStdInput;
|
||||
+ }
|
||||
|
||||
/* When the command is in double quotes, but 'shellxquote' is
|
||||
* empty, keep the double quotes around the command.
|
||||
***************
|
||||
*** 3445,3451 ****
|
||||
NULL, // Process security attributes
|
||||
NULL, // Thread security attributes
|
||||
FALSE, // Inherit handles
|
||||
! CREATE_NEW_CONSOLE, // Creation flags
|
||||
NULL, // Environment
|
||||
NULL, // Current directory
|
||||
&si, // Startup information
|
||||
--- 3462,3468 ----
|
||||
NULL, // Process security attributes
|
||||
NULL, // Thread security attributes
|
||||
FALSE, // Inherit handles
|
||||
! flags, // Creation flags
|
||||
NULL, // Environment
|
||||
NULL, // Current directory
|
||||
&si, // Startup information
|
||||
***************
|
||||
*** 3458,3463 ****
|
||||
--- 3475,3485 ----
|
||||
EMSG(_("E371: Command not found"));
|
||||
#endif
|
||||
}
|
||||
+ if (si.hStdInput != NULL)
|
||||
+ {
|
||||
+ /* Close the handle to \\.\NUL */
|
||||
+ CloseHandle(si.hStdInput);
|
||||
+ }
|
||||
/* Close the handles to the subprocess, so that it goes away */
|
||||
CloseHandle(pi.hThread);
|
||||
CloseHandle(pi.hProcess);
|
||||
*** ../vim-7.3.202/src/version.c 2011-05-25 15:16:06.000000000 +0200
|
||||
--- src/version.c 2011-05-25 17:05:59.000000000 +0200
|
||||
***************
|
||||
*** 711,712 ****
|
||||
--- 711,714 ----
|
||||
{ /* Add new patch number below this line */
|
||||
+ /**/
|
||||
+ 203,
|
||||
/**/
|
||||
|
||||
--
|
||||
hundred-and-one symptoms of being an internet addict:
|
||||
108. While reading a magazine, you look for the Zoom icon for a better
|
||||
look at a photograph.
|
||||
|
||||
/// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
|
||||
/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
|
||||
\\\ an exciting new programming language -- http://www.Zimbu.org ///
|
||||
\\\ help me help AIDS victims -- http://ICCF-Holland.org ///
|
Loading…
Reference in New Issue
Block a user