Re: [PATCH] add status.relativePaths config variable

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

 



On Sat, Dec 08, 2007 at 12:05:49AM -0800, Junio C Hamano wrote:

> >> index 225fb4d..63d50f2 100644
> >> --- a/wt-status.h
> >> +++ b/wt-status.h
> >> @@ -28,6 +28,7 @@ struct wt_status {
> >>  
> >>  int git_status_config(const char *var, const char *value);
> >>  int wt_status_use_color;
> >> +int wt_status_relative_paths;
> >>  void wt_status_prepare(struct wt_status *s);
> >>  void wt_status_print(struct wt_status *s);
> >
> > Shouldn't both of these ints be marked "extern"? I'm surprised it worked
> > at all (or perhaps the part of my brain that stores C linkage issues is
> > rotting?).
> 
> Yes, rotting very much.

Nope, there's still a little grey matter left. It is not technically
guaranteed by the standard to work, since the declaration in every
source file which includes wt-status.h is a "tentative definition."
Fortunately, the linker is nice enough to figure out what's going on as
long as only one is actually initialized. This is listed in C99 Section
J.5.11 as a "Common extension".

The Summit C FAQ mentions it as well:

  http://c-faq.com/decl/decldef.html

So "extern" is better, but apparently not required for any
linkers we care about. Note that omitting "extern" _is_ illegal in C++,
but fortunately we _really_ don't care about those linkers. :)

But at least I'm not totally crazy.

-Peff
-
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