From b9373c6e2343625d65d3f4fcea7e3880a845b9c2 Mon Sep 17 00:00:00 2001 From: Johannes Schindelin Date: Tue, 19 May 2020 13:49:37 +0200 Subject: [PATCH 19/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 --- winsup/cygwin/environ.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/winsup/cygwin/environ.cc b/winsup/cygwin/environ.cc index 4a15069..89e989a 100644 --- a/winsup/cygwin/environ.cc +++ b/winsup/cygwin/environ.cc @@ -42,6 +42,7 @@ enum settings isfunc, setdword, setbool, + setnegbool, setbit }; @@ -126,6 +127,7 @@ static struct parse_thing {"wincmdln", {&wincmdln}, setbool, NULL, {{false}, {true}}}, {"winsymlinks", {func: set_winsymlinks}, isfunc, NULL, {{0}, {0}}}, {"disable_pcon", {&disable_pcon}, setbool, NULL, {{false}, {true}}}, + {"enable_pcon", {&disable_pcon}, setnegbool, NULL, {{true}, {false}}}, {NULL, {0}, setdword, 0, {{0}, {0}}} }; @@ -243,6 +245,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)))