Re: [PATCH v2] Submodule merge support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Martin Waitz <tali@xxxxxxxxxxxxxx> writes:

>> > +		if (S_ISDIRLNK(mode)) {
>> > +			/* defer dirlinks to another process, don't try to */
>> > +			/* read the object "sha" here */
>> > +			const char *dirlink_checkout[] = {
>> > +				"dirlink-checkout", path, sha1_to_hex(sha), NULL
>> > +			};
>> > +			struct child_process cmd = {
>> > +				.argv = dirlink_checkout,
>> > +				.git_cmd = 1,
>> > +			};
>> 
>> My Solaris 9 system cannot compile this syntax, even though it is
>> a clean way to initalize the child_process.
>
> any special thing it does not like in the above code or does it just
> not support structs that are initialized that way?

Portability rules:

 - We do not do C99 initializers;
 - We do not do decl-after-statement;

Readability rules:

 - We always write NULL, not 0, for a NULL pointer.

There may be a handful more unwritten rules we use.

>> > +	status = read(cmd.out, hex, sizeof(hex));
>> > +	if (status != 40) return status;
>> 
>> OK, this is probably just never trusting the OS, but shouldn't that
>> read be wrapped up in a loop, like our read_in_full?  We want 40
>> bytes here, and expect it, and the read call is allowed to return
>> as few as 1 byte....
>
> right.

I think we have read-in-full or something like that for this
exact purpose.

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux