From: Pete Wyckoff Date: Mon, 20 Dec 2010 14:41:59 GMT Subject: Re: [PATCH] convert filter: supply path to external driver Message-ID: <20101220144159.GB30945@honk.padd.com> In-Reply-To: <4D0F0DFB.20502@viscovery.net> j.sixt@viscovery.net wrote on Mon, 20 Dec 2010 09:04 +0100: > Am 12/19/2010 22:29, schrieb Pete Wyckoff: > > Filtering to support keyword expansion may need the name of > > the file being filtered. In particular, to support p4 keywords > > like > > > > $File: //depot/product/dir/script.sh $ > > > > the smudge filter needs to know the name of the file it is > > smudging. > > > > Add a "%s" conversion specifier to the gitattribute for filter. > > It will be expanded with the path name to the file when invoking > > the external filter command. > > What happens if there are any shell special characters in the path name > (or spaces, for that matter). Does this shell-escape the substituted path > name anywhere in the call chain? Good catch---it doesn't. I'll see if running everything through sq_quote_buf will help. Incidentally there appears to be no way to quote spaces in filenames listed in .gitattributes, although fnmatch wildcards can be used to work around that. -- Pete