On Fri, May 25, 2012 at 12:33 AM, Jonathan Nieder <jrnieder@xxxxxxxxx> wrote: > David Barr wrote: > >> vcs-svn/svndiff.c:278:3: warning: expression result unused [-Wunused-value] >> error("invalid delta: incorrect postimage length"); >> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> In file included from vcs-svn/svndiff.c:6: >> vcs-svn/compat-util.h:18:61: note: instantiated from: >> #define error(...) (fprintf(stderr, "error: " __VA_ARGS__), -1) >> ^~ > > Yuck. Would you be ok with an inline variadic function? > > static inline int error(const char *fmt, ...) > { > va_list ap; > > fprintf(stderr, "error: "); > > va_start(ap, fmt); > vfprintf(stderr, fmt, ap) > va_end(ap); > > fprintf(stderr, "\n"); > > return -1; > } > > The error() macro above also seems to leave out a newline. > >> --- a/vcs-svn/svndiff.c >> +++ b/vcs-svn/svndiff.c >> @@ -258,6 +258,7 @@ static int apply_window_in_core(struct window *ctx) > [...] >> @@ -275,16 +276,15 @@ static int apply_one_window(struct line_buffer *delta, off_t *delta_len, >> if (apply_window_in_core(&ctx)) >> goto error_out; >> if (ctx.out.len != out_len) { >> - error("invalid delta: incorrect postimage length"); >> + rv = error("invalid delta: incorrect postimage length"); >> goto error_out; >> } >> if (write_strbuf(&ctx.out, out)) >> goto error_out; >> - window_release(&ctx); >> - return 0; >> + rv = 0; >> error_out: >> window_release(&ctx); >> - return -1; >> + return rv; > > That said, if this change is justified by saying that it avoids having > to repeat the cleanup code, it already looks like a good change. The > commit message could mention that the original motivation and a > side-benefit is to help the standalone version that has a slightly > crazier definition of error(). I'll rework the commit message and requeue. -- David Barr. -- 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