From: Junio C Hamano Date: Wed, 26 Aug 2015 15:46:00 GMT Subject: Re: [PATCH v13 00/12] port tag.c to use ref-filter APIs Message-ID: In-Reply-To: Junio C Hamano writes: > Matthieu Moy writes: > >>> For the current code %(if:empty)%(align)%(end)%(then)Empty%(else)Not Empty%(end) >>> would print non-empty, I guess the documentation holds in that case. >>> Not sure if we require it to print non-empty. >> >> You don't want the %(if) condition to depend on whether >> --shell/--python/... is used. Since %(if:empty)%(align)%(end)%(then) >> holds when you don't use --shell, you also want it to hold when you >> quote. IOW, you should check for emptyness before (or actually without) >> doing the quoting. I guess this is what you're doing, and if so, I think >> it's "The Right Thing". > > I agree that %(align)%(end) should expand to empty and %(if:empty)...%(then) > should look at that empty string without quoting. So > > %(if:empty)%(align)%(end)%(then)Empty%(else)Not Empty%(end) > > should give "Empty"; otherwise the code is buggy, I think. (I shouldn't be typing while eating...) It should give "Empty", but the --shell/--python/... may make the whole "Empty", as the result of %(if:...)...%(end), be quoted. So you may see "'Empty'" in the output.