Re: [PATCH v2] wrapper: NetBSD gives EFTYPE and FreeBSD gives EMFILE where POSIX uses ELOOP
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 5, 2025, 20:41 UTC
- Message-ID
- <xmqqo6w6okni.fsf@gitster.g>
- In-Reply-To
- <aBheGySF1FTsIVzx@pks.im>
Patrick Steinhardt <ps@pks.im> writes:
Show 18 quoted lines
>> +#ifdef __NetBSD__ >> +#define SYMLINK_ERRNO EFTYPE >> +#elif defined(__FreeBSD__) >> +#define SYMLINK_ERRNO EMLINK >> +#endif > > Nit, to make this a bit easier to read: our style guide says that nested > preprocessor directives should be indented by one spaces. So this would > become: > > # ifdef __NetBSD__ > # define SYMLINK_ERRNO EFTYPE > # elif defined(__FreeBSD__) > # define SYMLINK_ERRNO EMLINK > # endif > > Note that the `ifdef` itself would also be indented because we already > have a surrounding `#ifdef O_NOFOLLOW`.
Hmph, it does look easier to read. I think we used to have some outlier files that indented CPP directives by prefixing spaces in front of the whole line, but these days we standardized to express the indentation by inserting spaces immediately after '#' that always sit at the beginning of line, so what you showed here is a good example to mimic.
Thanks.
Show 12 quoted lines
>
>> +#if SYMLINK_ERRNO
>> + if (ret < 0 && errno == SYMLINK_ERRNO) {
>> + errno = ELOOP;
>> + return -1;
>> + }
>> +#undef SYMLINK_ERRNO
>> +#endif
>
> These three preprocessor defines should be indented, as well.
>
> Patrick