cygwin directory changes:

* environ.cc (tty_is_gone): Delete.
	(known): Delete tty, add wincmdln.
	* globals.cc: Reorganize list of environment bools, remove explicit =
	false for slight load time optimization.
	(wincmdln): New global.
	* spawn.cc (child_info_spawn::worker): Honor wincmdln.

doc directory changes:
	* new-features.sgml (ov-new1.7.23): Add new section.  Mention wincmdln.
	* cygwinenv.xml: Mention wincmdln.
This commit is contained in:
Christopher Faylor 2013-07-26 17:28:00 +00:00
parent a30f955d28
commit 033fe7d87f
10 changed files with 51 additions and 23 deletions

View File

@ -1,3 +1,12 @@
2013-07-26 Christopher Faylor <me.cygwin2013@cgf.cx>
* environ.cc (tty_is_gone): Delete.
(known): Delete tty, add wincmdln.
* globals.cc: Reorganize list of environment bools, remove explicit =
false for slight load time optimization.
(wincmdln): New global.
* spawn.cc (child_info_spawn::worker): Honor wincmdln.
2013-07-23 Corinna Vinschen <corinna@vinschen.de>
* ntdll.h (struct _SEMAPHORE_BASIC_INFORMATION): Define.

View File

@ -76,19 +76,6 @@ set_proc_retry (const char *buf)
child_info::retry_count = strtoul (buf, NULL, 0);
}
static void
tty_is_gone (const char *buf)
{
if (!user_shared->warned_notty)
{
small_printf ("\"tty\" option detected in CYGWIN environment variable.\n"
"CYGWIN=tty is no longer supported. Please remove it from your\n"
"CYGWIN environment variable and use a terminal emulator like mintty,\n"
"xterm, or rxvt.\n");
user_shared->warned_notty = 1;
}
}
static void
set_winsymlinks (const char *buf)
{
@ -146,7 +133,7 @@ static struct parse_thing
{"pipe_byte", {&pipe_byte}, setbool, NULL, {{false}, {true}}},
{"proc_retry", {func: set_proc_retry}, isfunc, NULL, {{0}, {5}}},
{"reset_com", {&reset_com}, setbool, NULL, {{false}, {true}}},
{"tty", {func: tty_is_gone}, isfunc, NULL, {{0}, {0}}},
{"wincmdln", {&wincmdln}, setbool, NULL, {{false}, {true}}},
{"winsymlinks", {func: set_winsymlinks}, isfunc, NULL, {{0}, {0}}},
{NULL, {0}, setdword, 0, {{0}, {0}}}
};

View File

@ -96,7 +96,7 @@ fhandler_pty_common::__acquire_output_mutex (const char *fn, int ln,
{
if (strace.active ())
strace.prntf (_STRACE_TERMIOS, fn, "(%d): pty output_mutex (%p): waiting %d ms", ln, output_mutex, ms);
if (ms == INFINITE)
if (0 && ms == INFINITE)
ms = 100;
DWORD res = WaitForSingleObject (output_mutex, ms);
if (res == WAIT_OBJECT_0)
@ -145,6 +145,9 @@ fhandler_pty_common::__release_output_mutex (const char *fn, int ln)
void
fhandler_pty_master::doecho (const void *str, DWORD len)
{
static char buf[128 * 1024];
int buflen = process_slave_output (buf, sizeof (buf), false);
puts_readahead (buf, buflen);
acquire_output_mutex (INFINITE);
if (!WriteFile (to_master, str, len, &len, NULL))
termios_printf ("Write to %p failed, %E", to_master);

View File

@ -67,12 +67,13 @@ int NO_COPY dynamically_loaded;
/* Some CYGWIN environment variable variables. */
bool allow_glob = true;
bool ignore_case_with_glob = false;
bool detect_bloda;
bool dos_file_warning = true;
bool ignore_case_with_glob;
bool pipe_byte;
bool reset_com;
bool wincmdln;
winsym_t allow_winsymlinks = WSYM_sysfile;
bool reset_com = false;
bool pipe_byte = false;
bool detect_bloda = false;
bool NO_COPY in_forkee;

View File

@ -5,6 +5,9 @@ What's new:
What changed:
-----------
- Added CYGWIN environment variable keyword which causes the full windows command
line (<=32K) to always be sent to subprocesses.
See: http://cygwin.com/ml/cygwin/2013-07/threads.html#00523
Bug fixes:
----------

View File

@ -407,8 +407,9 @@ child_info_spawn::worker (const char *prog_arg, const char *const *argv,
moreinfo->argc = newargv.argc;
moreinfo->argv = newargv;
}
else if (!cmd.fromargv (newargv, real_path.get_win32 (),
real_path.iscygexec ()))
if ((wincmdln || !real_path.iscygexec ())
&& !cmd.fromargv (newargv, real_path.get_win32 (),
real_path.iscygexec ()))
{
res = -1;
goto out;

View File

@ -54,10 +54,10 @@ sub update_maybe($%) {
while (<>) {
if ($copyright) {
push @file, $_;
} elsif (/^(?:dnl\s|[#\s]*)Copyright/o) {
} elsif (/^(?:dnl\s|.*"|[#\s]*)Copyright/o) {
$copyright = $_;
$copyright .= scalar <> while $copyright =~ /,\s*$/o;
if ($copyright !~ /Red Hat, Inc\.\n/o) {
if ($copyright !~ /Red Hat, Inc\.(?: 1996\s*-\s*.*)?\n/so) {
push @file, $copyright;
next;
}

View File

@ -1,3 +1,8 @@
2013-07-26 Christopher Faylor <me.cygwin2013@cgf.cx>
* new-features.sgml (ov-new1.7.23): Add new section. Mention wincmdln.
* cygwinenv.xml: Mention wincmdln.
2013-07-25 Corinna Vinschen <corinna@vinschen.de>
* gcc.xml (gcc-64): Fix example.

View File

@ -81,6 +81,12 @@ to 9600-8-N-1 with no flow control when used. This is done at open
time and when handles are inherited. Defaults to set.</para>
</listitem>
<listitem>
<para><envar>(no)wincmdln</envar> - if set, the windows complete command
line (truncated to ~32K) will be passed on any processes that it creates
in addition to the normal UNIX argv list. Defaults to not set.</para>
</listitem>
<listitem>
<para><envar>winsymlinks:{lnk,native,nativestrict}</envar> - if set to just
<literal>winsymlinks</literal> or <literal>winsymlinks:lnk</literal>,

View File

@ -4,6 +4,19 @@
<sect1 id="ov-new1.7"><title>What's new and what changed in Cygwin 1.7</title>
<sect2 id="ov-new1.7.23"><title>What's new and what changed from 1.7.22 to 1.7.23</title>
<itemizedlist mark="bullet">
<listitem><para>
Added CYGWIN environment variable keyword "wincmdln" which causes Cygwin to send the full
windows command line to any subprocesses.
</para></listitem>
</itemizedlist>
</sect2>
<sect2 id="ov-new1.7.22"><title>What's new and what changed from 1.7.21 to 1.7.22</title>
<itemizedlist mark="bullet">