Matthieu Moy <Matthieu.Moy@xxxxxxxxxxxxxxx> writes: > Junio C Hamano <gitster@xxxxxxxxx> writes: > >> Then used_atom[] could become something like >> >> struct { >> const char *str; /* e.g. "align:position=left,32" */ >> struct { >> const char *part0; /* everything before '=' */ >> const char *part1; /* optional */ >> } *modifier; >> int modifier_nr; >> } *used_atom; > > If the goal is to prepare as much as possible when parsing the format > string, I'd even push it one step further and have stg like > > struct { > const char *str; /* e.g. "align:position=left,32" */ > union { > struct { > int position; > enum { left, right, center } kind; > } align; > struct { > ....; > } objectname; > int modifier_nr; > } *used_atom; > > Just a thought, I'm not sure how useful this would be, and this may be > too much change for this series (so it may deserve a separate topic). Yes, if we are willing to enrich the element of valid_atom[] array with a type-specific parsing functions, we could even do that. Then populate_value() would not have to do any parsing and just do the filling. I was shooting for a middle ground, but certainly with an eye towards such an endgame state in the future. -- 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