55 lines
2.0 KiB
Diff
55 lines
2.0 KiB
Diff
From 2683e34cbf53f18fbe059812586104b82fe2e864 Mon Sep 17 00:00:00 2001
|
|
From: Johannes Schindelin <johannes.schindelin@gmx.de>
|
|
Date: Tue, 19 May 2020 13:49:37 +0200
|
|
Subject: [PATCH 21/N] Introduce the `enable_pcon` value for `MSYS`
|
|
|
|
It is simply the negation of `disable_pcon`, i.e. `MSYS=enable_pcon` is
|
|
equivalent to `MSYS=nodisable_pcon` (the former is slightly more
|
|
intuitive than the latter) and likewise `MSYS=noenable_pcon` is
|
|
equivalent to `MSYS=disable_pcon` (here, the latter is definitely more
|
|
intuitive than the former).
|
|
|
|
This is needed because we just demoted the pseudo console feature to be
|
|
opt-in instead of opt-out, and it would be awkward to recommend to users
|
|
to use "nodisable_pcon"... "nodisable" is not even a verb.
|
|
|
|
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
|
|
---
|
|
winsup/cygwin/environ.cc | 9 +++++++++
|
|
1 file changed, 9 insertions(+)
|
|
|
|
diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc
|
|
index a9cce96..b9600ef 100644
|
|
--- a/winsup/cygwin/environ.cc
|
|
+++ b/winsup/cygwin/environ.cc
|
|
@@ -42,6 +42,7 @@ enum settings
|
|
isfunc,
|
|
setdword,
|
|
setbool,
|
|
+ setnegbool,
|
|
setbit
|
|
};
|
|
|
|
@@ -118,6 +119,7 @@ static struct parse_thing
|
|
} known[] NO_COPY =
|
|
{
|
|
{"disable_pcon", {&disable_pcon}, setbool, NULL, {{false}, {true}}},
|
|
+ {"enable_pcon", {&disable_pcon}, setnegbool, NULL, {{true}, {false}}},
|
|
{"error_start", {func: error_start_init}, isfunc, NULL, {{0}, {0}}},
|
|
{"export", {&export_settings}, setbool, NULL, {{false}, {true}}},
|
|
{"glob", {func: glob_init}, isfunc, NULL, {{0}, {s: "normal"}}},
|
|
@@ -244,6 +246,13 @@ parse_options (const char *inbuf)
|
|
*k->setting.b = !!strtol (eq, NULL, 0);
|
|
debug_printf ("%s%s", *k->setting.b ? "" : "no", k->name);
|
|
break;
|
|
+ case setnegbool:
|
|
+ if (!istrue || !eq)
|
|
+ *k->setting.b = k->values[istrue].i;
|
|
+ else
|
|
+ *k->setting.b = !strtol (eq, NULL, 0);
|
|
+ debug_printf ("%s%s", !*k->setting.b ? "" : "no", k->name);
|
|
+ break;
|
|
case setbit:
|
|
*k->setting.x &= ~k->values[istrue].i;
|
|
if (istrue || (eq && strtol (eq, NULL, 0)))
|