archive: refactor file extension format-guessing
authorJeff King <peff@peff.net>
Wed, 22 Jun 2011 01:25:25 +0000 (21:25 -0400)
committerJunio C Hamano <gitster@pobox.com>
Wed, 22 Jun 2011 18:12:35 +0000 (11:12 -0700)
commit08716b3c11f4899c1be046eca735761b30ca686d
treeb7a6ae9a16f127580fc14d140fb34c72897ad3ce
parent56baa61d011e9ed5199766fea89ea8c2c183f0ba
archive: refactor file extension format-guessing

Git-archive will guess a format from the output filename if
no format is explicitly given.  The current function just
hardcodes "zip" to the zip format, and leaves everything
else NULL (which will default to tar). Since we are about
to add user-specified formats, we need to be more flexible.
The new rule is "if a filename ends with a dot and the name
of a format, it matches that format". For the existing "tar"
and "zip" formats, this is identical to the current
behavior. For new user-specified formats, this will do what
the user expects if they name their formats appropriately.

Because we will eventually start matching arbitrary
user-specified extensions that may include dots, the strrchr
search for the final dot is not sufficient. We need to do an
actual suffix match with each extension.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
archive.c