quote_path: code clarification
authorJunio C Hamano <gitster@pobox.com>
Thu, 10 Sep 2020 17:01:56 +0000 (10:01 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 10 Sep 2020 20:07:19 +0000 (13:07 -0700)
commite2773aa45f673d26fe425cc5423299726f299f0b
treed2b091a4d4859842474cff82c8df10334a2c1c86
parentf3fc4a1b8680c114defd98ce6f2429f8946a5dc1
quote_path: code clarification

The implementation we moved from wt-status to enclose a pathname
that has a SP in it inside a dq-pair is a bit convoluted.  It lets
quote_c_style_counted() do its escaping and then

 (1) if the input string got escaped, which is checked by seeing if
     the result begins with a double-quote, declare that we are
     done.  If there wasn't any SP in the input, that is OK, and if
     there was, the result is quoted already so it is OK, too.

 (2) if the input string did not get escaped, and the result has SP
     in it, enclose the whole thing in a dq-pair ourselves.

Instead we can scan the path upfront to see if the input has SP in
it.  If so, we tell quote_c_style_counted() not to enclose its
output in a dq-pair, and we add a dq-pair ourselves.  Whether the
input had bytes that quote_c_style_counted() uses backslash quoting,
this would give us a desired quoted string.  If the input does not
have SP in it, we just let quote_c_style_counted() do its thing as
usual, which would enclose the result in a dq-pair only when needed.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
quote.c