On Thu, Jan 30, 2014 at 1:49 AM, Christian Couder <chriscool@xxxxxxxxxxxxx> wrote: > We will use a doubly linked list to store all information > about trailers and their configuration. > > This way we can easily remove or add trailers to or from > trailer lists while traversing the lists in either direction. > > Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> > --- > diff --git a/trailer.c b/trailer.c > new file mode 100644 > index 0000000..aed25e1 > --- /dev/null > +++ b/trailer.c > @@ -0,0 +1,48 @@ > +#include "cache.h" > +/* > + * Copyright (c) 2013 Christian Couder <chriscool@xxxxxxxxxxxxx> > + */ > + > +static int same_token(struct trailer_item *a, struct trailer_item *b, int alnum_len) > +{ > + return !strncasecmp(a->token, b->token, alnum_len); > +} Maybe these functions defined in the header should all be 'static inline' rather than just 'static'? Making them inline would be consistent with functions defined in other git headers. > + > +static int same_value(struct trailer_item *a, struct trailer_item *b) > +{ > + return !strcasecmp(a->value, b->value); > +} > + > +static int same_trailer(struct trailer_item *a, struct trailer_item *b, int alnum_len) > +{ > + return same_token(a, b, alnum_len) && same_value(a, b); > +} > + > +/* Get the length of buf from its beginning until its last alphanumeric character */ > +static size_t alnum_len(const char *buf, size_t len) > +{ > + while (--len >= 0 && !isalnum(buf[len])); 'len' has type size_t, which is unsigned, so the conditional '--len >= 0' will always be true (which will result in a crash if 'buf' contains no alphanumerics). > + return len + 1; > +} > -- > 1.8.5.2.201.gacc5987 -- 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