Pierre Habouzit wrote: > you cannot take the address of a bit portably in C, so you can't let > parseopt set/clear bits through bitfields (as in unsigned field : 1 in a > struct in C I mean). For the curious: I think this means doing something like v1.5.4-rc0~186^2~1 (Make the diff_options bitfields be an unsigned with explicit masks, 2007-11-10), which means instead of writing revs->topo_order = 1; one would write something like REV_TRAV_SET(revs, TOPO_ORDER); See [1] and [2]. Looks simple and reasonable. While we are exploring ancient history, I find[3]: I came up with the relocation thing because I feared that the msys port (and maybe other ?) that are about to use (or already do) threads would step on each other toes while recursing into a sub-array of options. Johannes thinks that this never happens in our codebase, hence that my patches are an overkill. The likely users of this feature are currently diff options (diff.c diff_opt_parse) and revisions (builtin-log.c setup_revisions). Using Johannes patch, we will have to export a global struct diff_option (resp. struct rev_info) from diff.c (resp. revisions.c) and no function (or almost) would take struct diff_option (resp struct rev_info) as an argument because everyone would work on the global variable[0]. With my patches, we can work like we do now, with a more functional approach. Is the relocation thing worth thinking about? (Mind you, I was not there, so I do not know what it is nor whether it was a dead end.) If so, is it documented anywhere? The table-inclusion method[4] still appeals to me very much. Well, whatever seems to work best. [1] http://thread.gmane.org/gmane.comp.version-control.git/63797/focus=63937 [2] http://thread.gmane.org/gmane.comp.version-control.git/83083/focus=83114 [3] http://thread.gmane.org/gmane.comp.version-control.git/63502/focus=63506 [4] http://thread.gmane.org/gmane.comp.version-control.git/63505/focus=63517 -- 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