ls: avoid redundant processing when already escaping
commit697b8ce26549cceffa8745a1dc0f13654173c575
authorPádraig Brady <P@draigBrady.com>
Tue, 3 Nov 2015 11:07:06 +0000 (3 11:07 +0000)
committerPádraig Brady <P@draigBrady.com>
Wed, 4 Nov 2015 23:30:15 +0000 (4 23:30 +0000)
tree8abc475a2a9ef4c028a45dd5d32c9a6f361be84a
parent7549be4af7e8ac9a088927c35a011da835968b9f
ls: avoid redundant processing when already escaping

This is mainly noticeable when the multi-byte code
within ls.c is triggered by multi-byte quotes.

$ seq 200000 | xargs touch
$ time ls-old -U --quoting=locale --hide-control-chars >/dev/null
real    0m0.483s
$ time ls-new -U --quoting=locale --hide-control-chars >/dev/null
real    0m0.430s

* src/ls.c (quote_name): Avoid rescanning the output looking for
unprintable chars when we know the quoting mode already escapes them.
* tests/misc/ls-misc.pl: Add tests for all quoting modes, with and
without -q, to verify this assumption.
src/ls.c
tests/misc/ls-misc.pl