strbuf_expand: convert "%%" to "%"
authorJeff King <peff@peff.net>
Wed, 13 Jan 2010 17:35:31 +0000 (12:35 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 14 Jan 2010 17:24:42 +0000 (09:24 -0800)
commit0a0416a34a7ef5c64f4e0226371e4cab8c1ba982
tree76ce0e33cbe408a9ead5d29f66a1ec171a8d106c
parent902f235378cb2b2f6dd5dd664b9630c95321f0ae
strbuf_expand: convert "%%" to "%"

The only way to safely quote arbitrary text in a pretty-print user
format is to replace instances of "%" with "%x25". This is slightly
unreadable, and many users would expect "%%" to produce a single
"%", as that is what printf format specifiers do.

This patch converts "%%" to "%" for all users of strbuf_expand():

 (1) git-daemon interpolated paths

 (2) pretty-print user formats

 (3) merge driver command lines

Case (1) was already doing the conversion itself outside of
strbuf_expand(). Case (2) is the intended beneficiary of this patch.
Case (3) users probably won't notice, but as this is user-facing
behavior, consistently providing the quoting mechanism makes sense.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/pretty-formats.txt
Documentation/technical/api-strbuf.txt
daemon.c
strbuf.c
t/t6006-rev-list-format.sh