On Sun, Jul 09, 2017 at 09:41:51AM -0700, Junio C Hamano wrote: > > On the plus side, this moves an invariant out of the loop. On the minus > > side, it has to introduce an extra variable for "length we add on to" > > versus "dir length to pass to the subdir_cb". That's not rocket science, > > but it does slightly complicate things (though I note we already have > > "origlen", so this is bumping us from 2 to 3 length variables, not 1 to > > 2). > > > > So I dunno. It's fine with me if we take it, and fine if we leave it. > > Unlike origlen, base vs dir lengths are not strictly needed; we > prepare the base including '/', and we know we always have just one > '/' at the end, so anybody that uses dirlen to truncate it back to > the original before passing it down can truncate to (baselen-1), no? > > In other words, something like this (not an incremental but a > replacement) to keep calling "baselen" the length of the leading > constant part we append to? Yeah, I think that is correct. And you could even drop origlen by replacing it with "baselen - 3" at the end. But somehow doing the computation on the fly actually seems more complicated to me (from the perspective of a reader who is trying to make sure all is correct). -Peff