From: Junio C Hamano Date: Sun, 24 Jan 2021 05:33:08 GMT Subject: Re: [PATCH v3 2/4] grep/pcre2: simplify boolean spaghetti Message-ID: In-Reply-To: <20210124021229.25987-3-avarab@gmail.com> Ævar Arnfjörð Bjarmason writes: > NOT(A && B) is Equivalent to (NOT(A) OR NOT(B)) At this level, however, the left one looks much simpler than the right one ;-) > if (!opt->ignore_locale && is_utf8_locale() && has_non_ascii(p->pattern) && > - !(!opt->ignore_case && (p->fixed || p->is_fixed))) > + (opt->ignore_case || !(p->fixed || p->is_fixed))) > options |= PCRE2_UTF; In the context of this expression, well, I guess the rewritten one is probably simpler but can we explain the whole condition in fewer than three lines? With or without the rewrite, it still looks too complicated to me.