#include "cache.h"
+#include "config.h"
#include "utf8.h"
#include "strbuf.h"
#include "mailinfo.h"
static const char *unquote_comment(struct strbuf *outbuf, const char *in)
{
int c;
- int take_next_litterally = 0;
+ int take_next_literally = 0;
strbuf_addch(outbuf, '(');
while ((c = *in++) != 0) {
- if (take_next_litterally == 1) {
- take_next_litterally = 0;
+ if (take_next_literally == 1) {
+ take_next_literally = 0;
} else {
switch (c) {
case '\\':
- take_next_litterally = 1;
+ take_next_literally = 1;
continue;
case '(':
in = unquote_comment(outbuf, in);
static const char *unquote_quoted_string(struct strbuf *outbuf, const char *in)
{
int c;
- int take_next_litterally = 0;
+ int take_next_literally = 0;
while ((c = *in++) != 0) {
- if (take_next_litterally == 1) {
- take_next_litterally = 0;
+ if (take_next_literally == 1) {
+ take_next_literally = 0;
} else {
switch (c) {
case '\\':
- take_next_litterally = 1;
+ take_next_literally = 1;
continue;
case '"':
return in;
at = strchr(f.buf, '@');
if (!at) {
parse_bogus_from(mi, from);
- return;
+ goto out;
}
/*
* If we already have one email, don't take any confusing lines
*/
- if (mi->email.len && strchr(at + 1, '@')) {
- strbuf_release(&f);
- return;
- }
+ if (mi->email.len && strchr(at + 1, '@'))
+ goto out;
/* Pick up the string around '@', possibly delimited with <>
* pair; that is the email part.
}
get_sane_name(&mi->name, &f, &mi->email);
+out:
strbuf_release(&f);
}
/* we hit an end boundary */
/* pop the current boundary off the stack */
strbuf_release(*(mi->content_top));
- free(*(mi->content_top));
- *(mi->content_top) = NULL;
+ FREE_AND_NULL(*(mi->content_top));
/* technically won't happen as is_multipart_boundary()
will fail first. But just in case..
error("Detected mismatched boundaries, can't recover");
mi->input_error = -1;
mi->content_top = mi->content;
+ strbuf_release(&newline);
return 0;
}
handle_filter(mi, &newline);