Re: [GSoC][PATCH v7 06/10] dir-iterator: add flags parameter to dir_iterator_begin
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jun 26, 2019, 18:04 UTC
- Message-ID
- <xmqqwoh8cjeg.fsf@gitster-ct.c.googlers.com>
- In-Reply-To
- <nycvar.QRO.7.76.6.1906261528360.44@tvgsbejvaqbjf.bet>
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:
Show 22 quoted lines
> Hi Matheus,
>
> On Tue, 18 Jun 2019, Matheus Tavares wrote:
>
>>[...]
>> +/*
>> + * Look for a recursive symlink at iter->base.path pointing to any directory on
>> + * the previous stack levels. If it is found, return 1. If not, return 0.
>> + */
>> +static int find_recursive_symlinks(struct dir_iterator_int *iter)
>> +{
>> + int i;
>> +
>> + if (!(iter->flags & DIR_ITERATOR_FOLLOW_SYMLINKS) ||
>> + !S_ISDIR(iter->base.st.st_mode))
>> + return 0;
>>
>> + for (i = 0; i < iter->levels_nr; ++i)
>> + if (iter->base.st.st_ino == iter->levels[i].ino)
>
> This does not work on Windows. [[ Windows port does not have
> usable st_ino field ]]]And if you cross mountpoint, st_ino alone does not guarantee uniqueness; you'd need to combine it with st_dev, I would think, even on POSIX systems.